{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.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:///(webpack)/buildin/module.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","g","this","Function","e","window","factory","_typeof","iterator","obj","constructor","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","state","substring","toString","match","parseInt","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","hexToBinaryString","bytes","push","substr","String","fromCharCode","apply","SparkMD5","reset","ArrayBuffer","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","byteLength","begin","end","Uint8Array","set","append","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","hash","setState","destroy","hashBinary","content","arr","first","second","returnUInt8Array","result","buffer","subarray","utf8Str2ArrayBuffer","md51_array","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","findElement","root","selector","document","querySelector","dispatchEvent","element","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","toArray$1","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","head","getAttribute","getMetaValue","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","querySelectorAll","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","button","focus","click","style","display","appendChild","submitForm","setTimeout","ActiveStorage","require","Set","clear","values","has","indexOf","add","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","resolve","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","IMPORT_LINK_TYPE","forDocumentTree","wrap","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","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","upgradeWithDefinition","implementPrototype","_polyfilled","toLowerCase","attributeChangedCallback","ctor","createElementNS","Error","__name","lifecycle","ancestry","concat","ready","registry","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","_t","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","replace","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","escapeHTML","textContent","innerHTML","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_s","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","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","_n2","_t3","insertBefore","_t4","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n3","Reflect","construct","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t5","startContainer","endContainer","dataTransferIsPlainText","getData","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t6","ObjectMap","find","ElementStore","elements","trixStoreKey","_t7","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","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","body","_t8","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","_t9","objectGroup","getChildViews","createContainerElement","_t10","Controller","didMutate","_h","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t11","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","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","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","trim","insertText","Text","textForStringWithAttributes","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","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","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","_t12","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","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","_t13","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t14","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","_t15","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t16","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","_t17","textForAttachmentWithAttributes","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","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","sanitizeElement","previousElementSibling","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","processTextNode","appendBlockForElement","processElement","isBlockElement","currentBlockElement","isInsignificantTextNode","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","appendStringWithAttributes","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","_t18","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","_t19","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t20","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t21","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","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","inputElement","editorController","defaultValue","registerResetListener","unregisterResetListener","resetListener","resetBubbled","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","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","webpackPolyfill","deprecate","paths","children","_defineProperties","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-8a191894fcd1404a82d0.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","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _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\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\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\n function md5blk(s) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\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\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\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\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n function rhex(n) {\n var s = \"\",\n j;\n\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\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\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\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\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\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\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\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\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\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\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\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\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\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\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\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\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\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\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\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\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\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\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\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\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\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\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\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\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\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\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\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\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\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\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\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\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\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\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\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\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\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\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\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\n var id = 0;\n\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\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\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\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\n return object[methodName].apply(object, messages);\n }\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\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\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\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\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\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\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\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\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\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\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\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\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\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\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\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\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\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/* 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(\"trix\")\nrequire(\"@rails/actiontext\")\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.2.0\nCopyright © 2019 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\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\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\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\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\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\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\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\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\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\n function c(t, e) {\n var n = !1;\n\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\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\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\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\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++) {\n t[i].then(e, n);\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 /**\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() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(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 get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(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 has(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\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\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\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\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\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\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\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\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\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 g(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 observe(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\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\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\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\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 n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(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 removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(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 addTransientObserver(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 removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(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\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\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\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\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 now() {\n return Date.now() - t;\n }\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\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\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 i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\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\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i[\"import\"] && r(i[\"import\"], e, n);\n }\n\n e(t);\n }\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\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\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\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\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\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\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\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\n function v(t) {\n A(t, m);\n }\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\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\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e[\"native\"]), t.__proto__ = e.prototype);\n }\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++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\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\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\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\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\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e[\"extends\"]).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t[\"extends\"], i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t[\"native\"] = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\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\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\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\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\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\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\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\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\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\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\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.2.0\",\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\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\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\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 n(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(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\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\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\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\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n escapeHTML: function escapeHTML(t) {\n var e;\n return e = document.createElement(\"div\"), e.textContent = t, e.innerHTML;\n },\n summarizeStringChange: function summarizeStringChange(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(_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(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(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\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\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 summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\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 getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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 handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\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 s(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 handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(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 elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(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 findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(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\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, i = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n a = e.attributes;\n\n for (r in a) {\n h = a[r], i.setAttribute(r, h);\n }\n }\n\n if (e.style) {\n u = e.style;\n\n for (r in u) {\n h = u[r], i.style[r] = h;\n }\n }\n\n if (e.data) {\n c = e.data;\n\n for (r in c) {\n h = c[r], i.dataset[r] = h;\n }\n }\n\n if (e.className) for (l = e.className.split(\" \"), o = 0, s = l.length; s > o; o++) {\n n = l[o], i.classList.add(n);\n }\n return e.textContent && (i.textContent = e.textContent), i;\n },\n getBlockTagNames: function getBlockTagNames() {\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\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(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 nodeIsBlockStart(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 nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(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 nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(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 i(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 rangeIsCollapsed(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 rangesAreEqual(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 n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r;\n e.registerElement = function (t, e) {\n var s, a;\n return null == e && (e = {}), t = t.toLowerCase(), e = r(e), a = o(e), (s = a.defaultCSS) && (delete a.defaultCSS, n(s, t)), i(t, a);\n }, n = function n(e, _n2) {\n var i;\n return i = t(_n2), i.textContent = e.replace(/%t/g, _n2);\n }, t = function t(_t3) {\n var e;\n return e = document.createElement(\"style\"), e.setAttribute(\"type\", \"text/css\"), e.setAttribute(\"data-tag-name\", _t3.toLowerCase()), document.head.insertBefore(e, document.head.firstChild), e;\n }, o = function o(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, r = function () {\n var t;\n return t = function t(_t4) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t4[i], delete _t4[i];\n }\n\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() {\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 }(), i = function () {\n return window.customElements ? function (t, e) {\n var _n3;\n\n return _n3 = function n() {\n return Reflect.construct(HTMLElement, [], _n3);\n }, _n3.prototype = Object.create(HTMLElement.prototype, e), window.customElements.define(t, _n3), _n3;\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 getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\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 setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t5) {\n return n(_t5.startContainer) || n(_t5.endContainer);\n }, n = function n(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 dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = document.createElement(\"div\"), e.innerHTML = n, e.textContent === i ? !e.querySelector(\":not(meta)\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\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 () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\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\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\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\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\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\n for (t in i) {\n n = i[t], e.push(t, n);\n }\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 u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(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\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\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\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\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\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\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\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\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\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 s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\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\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\n for (o = [], e = 0, i = t.length; i > e;) {\n 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 }\n\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\n for (r = [], e = 0, o = t.length; o > e; e++) {\n 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 }\n\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 test(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 test(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 formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t[\"byte\"];\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\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 parser(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 parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(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 applicationJson(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 textHtml(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\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(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 deserializeFromContentType(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 getDefaultHTML() {\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 getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(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 initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, 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, i.call(this.childViews, t) < 0 && this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\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\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\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\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\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\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 n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\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(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\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 a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n var _h, p, d, f;\n\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\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\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\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\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\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++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\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\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\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\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\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 h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\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\n try {\n e.abort();\n } catch (i) {}\n\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 i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\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\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\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\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;\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 f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\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 keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\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++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(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 textInput(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 dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(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 dragover(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 dragend() {\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 drop(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 cut(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 copy(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 paste(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;\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 = \"URL\", l.href = a, l.string = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertText(e.Text.textForStringWithAttributes(l.string, {\n href: l.href\n })), 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 compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\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 tab(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 left(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 right(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 d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(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 _return(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 tab(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 left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\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 backspace() {\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\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\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 r(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 p(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 h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\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++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\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\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 o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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 keydown(t) {\n var e, i, o, r;\n\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 paste(t) {\n var n, i, o, r, s, a, u, c, l;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), i = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (o = this.delegate) && o.inputControllerWillPaste(i), null != (r = this.responder) && r.insertString(i.string), this.render(), null != (s = this.delegate) ? s.inputControllerDidPaste(i) : void 0) : (n = null != (a = t.clipboardData) ? a.getData(\"URL\") : void 0) ? (t.preventDefault(), i = {\n type: \"URL\",\n href: n,\n string: n\n }, null != (u = this.delegate) && u.inputControllerWillPaste(i), null != (c = this.responder) && c.insertText(e.Text.textForStringWithAttributes(i.string, {\n href: i.href\n })), this.render(), null != (l = this.delegate) ? l.inputControllerDidPaste(i) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(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 dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return this.dragging && (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) ? (this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0) : void 0;\n },\n drop: function drop(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 dragend() {\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 compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\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 ArrowRight() {\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 Backspace() {\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 Tab() {\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 TabShift() {\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 deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\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 deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\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 formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\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 formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\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 insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (s.type = \"URL\", s.href = i, s.string = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertText(e.Text.textForStringWithAttributes(s.string, {\n href: s.href\n })) : 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\")) ? (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 insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\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 insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\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 insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\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 f(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\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(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 h(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 p(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 l(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 d(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,\n l = function l(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n n = e.defer, i = e.escapeHTML, o = e.handleEvent, a = e.makeElement, c = e.tagName, u = e.config, s = u.lang, t = u.css, r = u.keyNames, e.AttachmentEditorController = function (u) {\n function p(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = l(this.didBlurCaption, this), this.didChangeCaption = l(this.didChangeCaption, this), this.didInputCaption = l(this.didInputCaption, this), this.didKeyDownCaption = l(this.didKeyDownCaption, this), this.didClickActionButton = l(this.didClickActionButton, this), this.didClickToolbar = l(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === c(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var d;\n return h(p, u), d = function d(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 }, p.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, p.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, p.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 }, p.prototype.makeElementMutable = d(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 }), p.prototype.addToolbar = d(function () {\n var n, r, u;\n return n = a({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n }\n }), n.innerHTML = '
\\n \\n \\n \\n
\", this.attachment.isPreviewable() && (r = i(this.attachment.getFilename()), u = i(this.attachment.getFormattedFilesize()), n.innerHTML += '
\\n \\n ' + r + '\\n ' + u + \"\\n \\n
\"), o(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), o(\"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 }), p.prototype.installCaptionEditor = d(function () {\n var i, r, u, c, l;\n return c = a({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: s.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, i = function i() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, o(\"input\", {\n onElement: c,\n withCallback: i\n }), o(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), o(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), o(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), o(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), r = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", r.appendChild(c), r.appendChild(l), r.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(r, u), i(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(r), u.style.display = null;\n }\n };\n }), p.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, p.prototype.didClickActionButton = function (t) {\n var e, n;\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 }, p.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === r[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, p.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, p.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, p.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, p;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\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++) {\n u = c[o], r.appendChild(u);\n }\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 a(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 n(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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\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++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\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\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\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\n for (r in a) {\n 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\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\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(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\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\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\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\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 }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h;\n if (t = document.createComment(\"block\"), u = [t], this.block.isEmpty() ? u.push(i(\"br\")) : (l = null != (c = n(this.block.getLastAttribute())) ? c.text : void 0, h = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: l\n }), u.push.apply(u, h.getNodes()), this.shouldAddExtraNewlineElement() && u.push(i(\"br\"))), this.attributes.length) return u;\n\n for (o = i(e.config.blockAttributes[\"default\"].tagName), r = 0, s = u.length; s > r; r++) {\n a = u[r], o.appendChild(a);\n }\n\n return [o];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a;\n return o = this.attributes[e], a = n(o).tagName, r = {\n tagName: a\n }, \"attachmentGallery\" === o && (s = this.block.getBlockBreakPosition(), r.className = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + s), i(r);\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 i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\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\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\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++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\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\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\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\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(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 s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\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\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 o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\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\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\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\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\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n 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 }\n\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\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 n = u[o], n.removeAttribute(\"disabled\");\n }\n\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\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t13, e) {\n function i() {\n this.constructor = _t13;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t13[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t13.prototype = new i(), _t13.__super__ = e.prototype, _t13;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\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(_t14, e) {\n return function () {\n return _t14.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"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(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\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\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(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\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\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\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\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\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\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\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\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\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\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\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\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\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\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\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\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\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\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 s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\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\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\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\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\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\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\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\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\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\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\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\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\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\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\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\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\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\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\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\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.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes();\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));\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(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\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\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 l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].slice,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n this.allowedAttributes = (null != e ? e : {}).allowedAttributes, null == this.allowedAttributes && (this.allowedAttributes = c), this.body = l(t);\n }\n\n var c, l, h;\n return o(u, r), c = \"style href src width height class\".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\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n h(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o;\n\n for (o = s.call(t.attributes), e = 0, n = o.length; n > e; e++) {\n i = o[e].name, a.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = s.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, h = function h(e) {\n return (null != e ? e.nodeType : void 0) !== Node.ELEMENT_NODE || t(e) ? void 0 : \"script\" === n(e) || \"false\" === e.getAttribute(\"data-trix-serialize\");\n }, l = function l(t) {\n var e, n, i, o, r;\n\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 n = r[i], e.body.appendChild(n);\n }\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 p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: w\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\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 }, w = function w(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 return this.processTextNode(t);\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\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), o && t(n, this.currentBlock.attributes)))) return 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\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\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return this.isInsignificantTextNode(t) ? void 0 : (n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = C(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 = y(t), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\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\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = A(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\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 S(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 E(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 m(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, m;\n r = {}, d = e.config.textAttributes;\n\n for (n in d) {\n if (u = d[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (m = u.parser(t)) {\n for (i = !1, f = this.findBlockElementAncestors(t), c = 0, p = f.length; p > c; c++) {\n if (s = f[c], u.parser(s) === m) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = m);\n }\n } else u.styleProperty && (m = t.style[u.styleProperty]) && (r[n] = m);\n }\n\n if (a(t) && (l = t.getAttribute(\"data-trix-attributes\"))) {\n g = JSON.parse(l);\n\n for (h in g) {\n m = g[h], r[h] = m;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n 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 }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, y = function y(t) {\n return JSON.parse(t.getAttribute(\"data-trix-attachment\"));\n }, A = function A(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, (!x(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 v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, x = function x(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\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 }\n\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 : b(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), b(t);\n }, b = function b(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 }, C = function C(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(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 r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\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\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\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\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\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\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\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\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\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\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(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\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\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\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\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\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; 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 }\n\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\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\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\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\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\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 h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\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\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\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\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\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n 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 }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\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\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\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\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\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++;\n }\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\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++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\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\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\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\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\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\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++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\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(_t18, e) {\n function i() {\n this.constructor = _t18;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t18[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t18.prototype = new i(), _t18.__super__ = e.prototype, _t18;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\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 i(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\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\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n 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 }\n\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(_t19, e) {\n return function () {\n return _t19.apply(e, arguments);\n };\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\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.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(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\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\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(_t21, e) {\n function i() {\n this.constructor = _t21;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t21[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t21.prototype = new i(), _t21.__super__ = e.prototype, _t21;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\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\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\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\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\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 ;\n }\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\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\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\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n 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 }\n\n return i;\n }, d = function d(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 p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(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\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\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\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 n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\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\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\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 s(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 h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\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\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\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\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\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\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 r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\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\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.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.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 test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\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\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\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\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; 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 }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(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\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\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;\n }(e.Controller);\n }.call(this), function () {\n var t, n, i, o, r, s;\n n = e.browser, r = e.makeElement, s = e.triggerEvent, i = e.handleEvent, o = e.handleEventOnce, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var a, u, c, l, h, p, d, f;\n return p = 0, u = function u(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, d = function d(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), o(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return c(t);\n }\n }));\n }, a = function a(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, c = function c(t) {\n return h(t), f(t);\n }, h = function h(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), i(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, f = function f() {\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 }, l = 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}\\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: \" + l.display + \" !important;\\n width: \" + l.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 get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++p), this.trixId);\n }\n },\n toolbarElement: {\n get: function get() {\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 = r(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\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 = r(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? s(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return d(this), a(this);\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (s(\"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 s(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), u(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n return t.target !== (null != (e = this.inputElement) ? e.form : void 0) || t.defaultPrevented ? void 0 : this.reset();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _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; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // 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.\n\n\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\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\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 } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\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\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\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\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\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 var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(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\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a