/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ var _o=Object.create;var Pr=Object.defineProperty;var xo=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var vo=Object.getPrototypeOf,bo=Object.prototype.hasOwnProperty;var da=e=>Pr(e,"__esModule",{value:!0});var wo=(e,t)=>{da(e);for(var r in t)Pr(e,r,{get:t[r],enumerable:!0})},ko=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of yo(t))!bo.call(e,i)&&i!=="default"&&Pr(e,i,{get:()=>t[i],enumerable:!(r=xo(t,i))||r.enumerable});return e},$=e=>ko(da(Pr(e!=null?_o(vo(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var ma=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return r=>{for(var i=r.length,n=new Uint8Array((i-(r[i-1]=="=")-(r[i-2]=="="))*3/4|0),a=0,s=0;a>4,n[s++]=l<<4|h>>2,n[s++]=h<<6|m}return n}})();wo(exports,{default:()=>Zn});var Zt=$(require("obsidian"));var ti=$(require("obsidian"));var te=function(){function e(){}return e.explainIfInvalidTSDocTagName=function(t){if(t[0]!=="@")return'A TSDoc tag name must start with an "@" symbol';if(!e._tsdocTagNameRegExp.test(t))return"A TSDoc tag name must start with a letter and contain only letters and numbers"},e.validateTSDocTagName=function(t){var r=e.explainIfInvalidTSDocTagName(t);if(r)throw new Error(r)},e.explainIfInvalidLinkUrl=function(t){if(t.length===0)return"The URL cannot be empty";if(!e._urlSchemeRegExp.test(t))return'An @link URL must begin with a scheme comprised only of letters and numbers followed by "://". (For general URLs, use an HTML "" tag instead.)';if(!e._urlSchemeAfterRegExp.test(t))return'An @link URL must have at least one character after "://"'},e.explainIfInvalidHtmlName=function(t){if(!e._htmlNameRegExp.test(t))return"An HTML name must be an ASCII letter followed by zero or more letters, digits, or hyphens"},e.validateHtmlName=function(t){var r=e.explainIfInvalidHtmlName(t);if(r)throw new Error(r)},e.explainIfInvalidPackageName=function(t){if(t.length===0)return"The package name cannot be an empty string";if(!e._validPackageNameRegExp.test(t))return"The package name ".concat(JSON.stringify(t)," is not a valid package name")},e.explainIfInvalidImportPath=function(t,r){if(t.length>0){if(t.indexOf("//")>=0)return'An import path must not contain "//"';if(t[t.length-1]==="/")return'An import path must not end with "/"';if(!r&&t[0]==="/")return'An import path must not start with "/" unless prefixed by a package name'}},e.isSystemSelector=function(t){return e._systemSelectors.has(t)},e.explainIfInvalidUnquotedIdentifier=function(t){if(t.length===0)return"The identifier cannot be an empty string";if(e._identifierBadCharRegExp.test(t))return"The identifier cannot non-word characters";if(e._identifierNumberStartRegExp.test(t))return"The identifier must not start with a number"},e.explainIfInvalidUnquotedMemberIdentifier=function(t){var r=e.explainIfInvalidUnquotedIdentifier(t);if(r!==void 0)return r;if(e.isSystemSelector(t))return'The identifier "'.concat(t,'" must be quoted because it is a TSDoc system selector name')},e._tsdocTagNameRegExp=/^@[a-z][a-z0-9]*$/i,e._urlSchemeRegExp=/^[a-z][a-z0-9]*\:\/\//i,e._urlSchemeAfterRegExp=/^[a-z][a-z0-9]*\:\/\/./i,e._htmlNameRegExp=/^[a-z]+[a-z0-9\-]*$/i,e._identifierBadCharRegExp=/[^a-z0-9_$]/i,e._identifierNumberStartRegExp=/^[0-9]/,e._validPackageNameRegExp=/^(?:@[a-z0-9\-_\.]+\/)?[a-z0-9\-_\.]+$/i,e._systemSelectors=new Set(["instance","static","constructor","class","enum","function","interface","namespace","type","variable"]),e}();var Ni=function(){function e(){this._docNodeDefinitionsByKind=new Map,this._docNodeDefinitionsByConstructor=new Map}return e.prototype.registerDocNodes=function(t,r){var i=te.explainIfInvalidPackageName(t);if(i)throw new Error("Invalid NPM package name: "+i);for(var n=0,a=r;n0&&n.appendNodes(i),n}return Object.defineProperty(t.prototype,"nodes",{get:function(){return this._nodes},enumerable:!1,configurable:!0}),t.prototype.appendNode=function(r){if(!this.configuration.docNodeManager.isAllowedChild(this.kind,r.kind))throw new Error("The TSDocConfiguration does not allow a ".concat(this.kind," node to")+" contain a node of type ".concat(r.kind));this._nodes.push(r)},t.prototype.appendNodes=function(r){for(var i=0,n=r;i0){var n=this.nodes[this.nodes.length-1];n.kind===g.Paragraph&&(i=n)}i||(i=new We({configuration:this.configuration}),this.appendNode(i)),i.appendNode(r)},t.prototype.appendNodesInParagraph=function(r){for(var i=0,n=r;i1){var t=this._chunks.join("");this._chunks.length=1,this._chunks[0]=t}return this._chunks[0]},e}();var _a=function(){function e(){}return e.transform=function(t){for(var r=[],i=!1,n=[],a=[],s=!1,u=0,l=t.nodes;u0&&(i&&(n.push(" "),i=!1),n.push(O),a.push(h),s=!0),F&&s&&(i=!0);break;case g.SoftBreak:s&&(i=!0),a.push(h);break;default:i&&(n.push(" "),i=!1),n.length>0&&(r.push(new Fe({configuration:t.configuration,text:n.join("")})),n.length=0,a.length=0),r.push(h),s=!0}}n.length>0&&(r.push(new Fe({configuration:t.configuration,text:n.join("")})),n.length=0,a.length=0);var U=new We({configuration:t.configuration});return U.appendNodes(r),U},e}();var qi=function(){function e(){}return e.trimSpacesInParagraph=function(t){return _a.transform(t)},e}();var Li=function(e,t,r){if(r||arguments.length===2)for(var i=0,n=t.length,a;i0&&(this._ensureLineSkipped(),this._renderNodes(s.modifierTagSet.nodes));break;case g.DeclarationReference:var u=t;this._writeContent(u.packageName),this._writeContent(u.importPath),(u.packageName!==void 0||u.importPath!==void 0)&&this._writeContent("#"),this._renderNodes(u.memberReferences);break;case g.ErrorText:var l=t;this._writeContent(l.text);break;case g.EscapedText:var h=t;this._writeContent(h.encodedText);break;case g.FencedCode:var m=t;this._ensureAtStartOfLine(),this._writeContent("```"),this._writeContent(m.language),this._writeNewline(),this._writeContent(m.code),this._writeContent("```"),this._writeNewline(),this._writeNewline();break;case g.HtmlAttribute:var _=t;this._writeContent(_.name),this._writeContent(_.spacingAfterName),this._writeContent("="),this._writeContent(_.spacingAfterEquals),this._writeContent(_.value),this._writeContent(_.spacingAfterValue);break;case g.HtmlEndTag:var T=t;this._writeContent("");break;case g.HtmlStartTag:var F=t;this._writeContent("<"),this._writeContent(F.name),this._writeContent(F.spacingAfterName);for(var O=F.spacingAfterName===void 0||F.spacingAfterName.length===0,U=0,P=F.htmlAttributes;U":">");break;case g.InheritDocTag:var xe=t;this._renderInlineTag(xe,function(){xe.declarationReference&&(r._writeContent(" "),r._renderNode(xe.declarationReference))});break;case g.InlineTag:var ye=t;this._renderInlineTag(ye,function(){ye.tagContent.length>0&&(r._writeContent(" "),r._writeContent(ye.tagContent))});break;case g.LinkTag:var re=t;this._renderInlineTag(re,function(){(re.urlDestination!==void 0||re.codeDestination!==void 0)&&(re.urlDestination!==void 0?(r._writeContent(" "),r._writeContent(re.urlDestination)):re.codeDestination!==void 0&&(r._writeContent(" "),r._renderNode(re.codeDestination))),re.linkText!==void 0&&(r._writeContent(" "),r._writeContent("|"),r._writeContent(" "),r._writeContent(re.linkText))});break;case g.MemberIdentifier:var _t=t;_t.hasQuotes?(this._writeContent('"'),this._writeContent(_t.identifier),this._writeContent('"')):this._writeContent(_t.identifier);break;case g.MemberReference:var Ne=t;Ne.hasDot&&this._writeContent("."),Ne.selector&&this._writeContent("("),Ne.memberSymbol?this._renderNode(Ne.memberSymbol):this._renderNode(Ne.memberIdentifier),Ne.selector&&(this._writeContent(":"),this._renderNode(Ne.selector),this._writeContent(")"));break;case g.MemberSelector:var bi=t;this._writeContent(bi.selector);break;case g.MemberSymbol:var br=t;this._writeContent("["),this._renderNode(br.symbolReference),this._writeContent("]");break;case g.Section:var wi=t;this._renderNodes(wi.nodes);break;case g.Paragraph:var er=qi.trimSpacesInParagraph(t);er.nodes.length>0&&(this._hangingParagraph?this._hangingParagraph=!1:this._ensureLineSkipped(),this._renderNodes(er.nodes),this._writeNewline());break;case g.ParamBlock:var x=t;this._ensureLineSkipped(),this._renderNode(x.blockTag),this._writeContent(" "),this._writeContent(x.parameterName),this._writeContent(" - "),this._hangingParagraph=!0,this._renderNode(x.content),this._hangingParagraph=!1;break;case g.ParamCollection:var I=t;this._renderNodes(I.blocks);break;case g.PlainText:var d=t;this._writeContent(d.text);break}},e.prototype._renderInlineTag=function(t,r){this._writeContent("{"),this._writeContent(t.tagName),r(),this._writeContent("}")},e.prototype._renderNodes=function(t){for(var r=0,i=t;r1){for(var i=!0,n=0,a=r;n0?this.params:void 0,this.typeParams.count>0?this.typeParams:void 0,this.returnsBlock],this.customBlocks,!0),this.seeBlocks,!0),[this.inheritDocTag],!1),this.modifierTagSet.nodes,!0)},t.prototype.emitAsTsdoc=function(){var r=new Je,i=new Qe;return i.renderComment(r,this),r.toString()},t}(k);var Fo=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),Bo=function(e,t,r){if(r||arguments.length===2)for(var i=0,n=t.length,a;i=r},e._scanTextContent=function(t,r,i){for(var n=0,a=t;n=r||(i+=e._scanTextContent(s.getChildNodes(),r,i),i>=r))break}return i},e._countNonSpaceCharacters=function(t){for(var r=0,i=t.length,n=0;nthis.buffer.length)return{line:0,column:0};for(var r=1,i=1,n=0;nthis.buffer.length)throw new Error("TextRange.pos cannot exceed the associated text buffer length");if(this.end>this.buffer.length)throw new Error("TextRange.end cannot exceed the associated text buffer length")},e.empty=new e("",0,0),e}();var lr=function(){function e(t){this.messageId=t.messageId,this.unformattedText=t.messageText,this.textRange=t.textRange,this.tokenSequence=t.tokenSequence,this.docNode=t.docNode,this._text=void 0}return e._formatMessageText=function(t,r){if(t||(t="An unknown error occurred"),r.pos!==0||r.end!==0){var i=r.getLocation(r.pos);if(i.line)return"(".concat(i.line,",").concat(i.column,"): ")+t}return t},Object.defineProperty(e.prototype,"text",{get:function(){return this._text===void 0&&(this._text=e._formatMessageText(this.unformattedText,this.textRange)),this._text},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return this.text},e}();var Ri=function(){function e(){this._messages=[]}return Object.defineProperty(e.prototype,"messages",{get:function(){return this._messages},enumerable:!1,configurable:!0}),e.prototype.addMessage=function(t){this._messages.push(t)},e.prototype.addMessageForTextRange=function(t,r,i){this.addMessage(new lr({messageId:t,messageText:r,textRange:i}))},e.prototype.addMessageForTokenSequence=function(t,r,i,n){this.addMessage(new lr({messageId:t,messageText:r,textRange:i.getContainingTextRange(),tokenSequence:i,docNode:n}))},e.prototype.addMessageForDocErrorText=function(t){var r;t.textExcerpt?r=t.textExcerpt:r=t.errorLocation,this.addMessage(new lr({messageId:t.messageId,messageText:t.errorMessage,textRange:r.getContainingTextRange(),tokenSequence:r,docNode:t}))},e}();var Vi=function(){function e(t,r){this.commentRange=Re.empty,this.lines=[],this.tokens=[],this.configuration=t,this.sourceRange=r,this.docComment=new Dr({configuration:this.configuration}),this.log=new Ri}return e}();var ut=function(){function e(t){this.parserContext=t.parserContext,this._startIndex=t.startIndex,this._endIndex=t.endIndex,this._validateBounds()}return e.createEmpty=function(t){return new e({parserContext:t,startIndex:0,endIndex:0})},Object.defineProperty(e.prototype,"startIndex",{get:function(){return this._startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endIndex",{get:function(){return this._endIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"tokens",{get:function(){return this.parserContext.tokens.slice(this._startIndex,this._endIndex)},enumerable:!1,configurable:!0}),e.prototype.getNewSequence=function(t,r){return new e({parserContext:this.parserContext,startIndex:t,endIndex:r})},e.prototype.getContainingTextRange=function(){return this.isEmpty()?Re.empty:this.parserContext.sourceRange.getNewRange(this.parserContext.tokens[this._startIndex].range.pos,this.parserContext.tokens[this._endIndex-1].range.end)},e.prototype.isEmpty=function(){return this._startIndex===this._endIndex},e.prototype.toString=function(){return this.tokens.map(function(t){return t.toString()}).join("")},e.prototype._validateBounds=function(){if(this.startIndex<0)throw new Error("TokenSequence.startIndex cannot be negative");if(this.endIndex<0)throw new Error("TokenSequence.endIndex cannot be negative");if(this.endIndexthis.parserContext.tokens.length)throw new Error("TokenSequence.startIndex cannot exceed the associated token array");if(this.endIndex>this.parserContext.tokens.length)throw new Error("TokenSequence.endIndex cannot exceed the associated token array")},e}();var ie;(function(e){e[e.BeginComment1=0]="BeginComment1",e[e.BeginComment2=1]="BeginComment2",e[e.CollectingFirstLine=2]="CollectingFirstLine",e[e.CollectingLine=3]="CollectingLine",e[e.AdvancingLine=4]="AdvancingLine",e[e.Done=5]="Done"})(ie||(ie={}));var va=function(){function e(){}return e.extract=function(t){for(var r=t.sourceRange,i=r.buffer,n=0,a=0,s=0,u=0,l=r.pos,h=ie.BeginComment1,m=[];h!==ie.Done;){if(l>=r.end)switch(h){case ie.BeginComment1:case ie.BeginComment2:return t.log.addMessageForTextRange(w.CommentNotFound,'Expecting a "/**" comment',r),!1;default:return t.log.addMessageForTextRange(w.CommentMissingClosingDelimiter,"Unexpected end of input",r),!1}var _=i[l],T=l;++l;var F=ls)&&m.push(r.getNewRange(s,u)),s=l,u=l,h=ie.AdvancingLine):_==="*"&&F==="/"?(u>s&&m.push(r.getNewRange(s,u)),s=0,u=0,++l,a=l,h=ie.Done):e._whitespaceCharacterRegExp.test(_)||(u=l);break;case ie.AdvancingLine:_==="*"?F==="/"?(s=0,u=0,++l,a=l,h=ie.Done):(F===" "&&++l,s=l,u=l,h=ie.CollectingLine):_===` `?(m.push(r.getNewRange(T,T)),s=l):e._whitespaceCharacterRegExp.test(_)||(u=l,h=ie.CollectingLine);break}}return t.commentRange=r.getNewRange(n,a),t.lines=m,!0},e._whitespaceCharacterRegExp=/^\s$/,e}();var pr=function(){function e(){}return e.readTokens=function(t){e._ensureInitialized();for(var r=[],i=void 0,n=0,a=t;n":f.GreaterThan,"=":f.Equals,"'":f.SingleQuote,'"':f.DoubleQuote,"/":f.Slash,"-":f.Hyphen,"@":f.AtSign,"{":f.LeftCurlyBracket,"}":f.RightCurlyBracket,"`":f.Backtick,".":f.Period,":":f.Colon,",":f.Comma,"[":f.LeftSquareBracket,"]":f.RightSquareBracket,"|":f.Pipe,"(":f.LeftParenthesis,")":f.RightParenthesis,"#":f.PoundSymbol,"+":f.Plus,$:f.DollarSign},a=0,s=Object.getOwnPropertyNames(n);a?@[\\]^`{|}~",e._wordCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",e}();var Hi=function(){function e(t,r){if(this._parserContext=t,this.tokens=t.tokens,r){if(r.parserContext!==this._parserContext)throw new Error("The embeddedTokenSequence must use the same parser context");this._readerStartIndex=r.startIndex,this._readerEndIndex=r.endIndex}else this._readerStartIndex=0,this._readerEndIndex=this.tokens.length;this._currentIndex=this._readerStartIndex,this._accumulatedStartIndex=this._readerStartIndex}return e.prototype.extractAccumulatedSequence=function(){if(this._accumulatedStartIndex===this._currentIndex)throw new Error("Parser assertion failed: The queue should not be empty when extractAccumulatedSequence() is called");var t=new ut({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex});return this._accumulatedStartIndex=this._currentIndex,t},e.prototype.isAccumulatedSequenceEmpty=function(){return this._accumulatedStartIndex===this._currentIndex},e.prototype.tryExtractAccumulatedSequence=function(){if(!this.isAccumulatedSequenceEmpty())return this.extractAccumulatedSequence()},e.prototype.assertAccumulatedSequenceIsEmpty=function(){if(!this.isAccumulatedSequenceEmpty()){var t=new ut({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex}),r=t.tokens.map(function(i){return i.toString()});throw new Error(`Parser assertion failed: The queue should be empty, but it contains: `+JSON.stringify(r))}},e.prototype.peekToken=function(){return this.tokens[this._currentIndex]},e.prototype.peekTokenKind=function(){return this._currentIndex>=this._readerEndIndex?f.EndOfInput:this.tokens[this._currentIndex].kind},e.prototype.peekTokenAfterKind=function(){return this._currentIndex+1>=this._readerEndIndex?f.EndOfInput:this.tokens[this._currentIndex+1].kind},e.prototype.peekTokenAfterAfterKind=function(){return this._currentIndex+2>=this._readerEndIndex?f.EndOfInput:this.tokens[this._currentIndex+2].kind},e.prototype.readToken=function(){if(this._currentIndex>=this._readerEndIndex)throw new Error("Cannot read past end of stream");var t=this.tokens[this._currentIndex];if(t.kind===f.EndOfInput)throw new Error("The EndOfInput token cannot be read");return this._currentIndex++,t},e.prototype.peekPreviousTokenKind=function(){return this._currentIndex===0?f.EndOfInput:this.tokens[this._currentIndex-1].kind},e.prototype.createMarker=function(){return this._currentIndex},e.prototype.backtrackToMarker=function(t){if(t>this._currentIndex)throw new Error("The marker has expired");this._currentIndex=t,t" character should be escaped using a backslash to avoid confusion with an HTML tag'));break;case f.Backtick:this._pushAccumulatedPlainText(t),t.peekTokenAfterKind()===f.Backtick&&t.peekTokenAfterAfterKind()===f.Backtick?this._pushNode(this._parseFencedCode(t)):this._pushNode(this._parseCodeSpan(t));break;default:t.readToken();break}this._pushAccumulatedPlainText(t),this._performValidationChecks()},e.prototype._performValidationChecks=function(){var t=this._parserContext.docComment;t.deprecatedBlock&&(Wr.hasAnyTextContent(t.deprecatedBlock)||this._parserContext.log.addMessageForTokenSequence(w.MissingDeprecationMessage,"The ".concat(t.deprecatedBlock.blockTag.tagName," block must include a deprecation message,")+" e.g. describing the recommended alternative",t.deprecatedBlock.blockTag.getTokenSequence(),t.deprecatedBlock)),t.inheritDocTag&&(t.remarksBlock&&this._parserContext.log.addMessageForTokenSequence(w.InheritDocIncompatibleTag,'A "'.concat(t.remarksBlock.blockTag.tagName,'" block must not be used, because that')+" content is provided by the @inheritDoc tag",t.remarksBlock.blockTag.getTokenSequence(),t.remarksBlock.blockTag),Wr.hasAnyTextContent(t.summarySection)&&this._parserContext.log.addMessageForTextRange(w.InheritDocIncompatibleSummary,"The summary section must not have any content, because that content is provided by the @inheritDoc tag",this._parserContext.commentRange))},e.prototype._validateTagDefinition=function(t,r,i,n,a){if(t){var s=t.syntaxKind===L.InlineTag;s!==i?i?this._parserContext.log.addMessageForTokenSequence(w.TagShouldNotHaveBraces,'The TSDoc tag "'.concat(r,'" is not an inline tag; it must not be enclosed in "{ }" braces'),n,a):this._parserContext.log.addMessageForTokenSequence(w.InlineTagMissingBraces,'The TSDoc tag "'.concat(r,'" is an inline tag; it must be enclosed in "{ }" braces'),n,a):this._parserContext.configuration.validation.reportUnsupportedTags&&(this._parserContext.configuration.isTagSupported(t)||this._parserContext.log.addMessageForTokenSequence(w.UnsupportedTag,'The TSDoc tag "'.concat(r,'" is not supported by this tool'),n,a))}else this._parserContext.configuration.validation.ignoreUndefinedTags||this._parserContext.log.addMessageForTokenSequence(w.UndefinedTag,'The TSDoc tag "'.concat(r,'" is not defined in this configuration'),n,a)},e.prototype._pushAccumulatedPlainText=function(t){t.isAccumulatedSequenceEmpty()||this._pushNode(new Fe({parsed:!0,configuration:this._configuration,textExcerpt:t.extractAccumulatedSequence()}))},e.prototype._parseAndPushBlock=function(t){var r=this._parserContext.docComment,i=this._parserContext.configuration,n=r.modifierTagSet,a=this._parseBlockTag(t);if(a.kind!==g.BlockTag){this._pushNode(a);return}var s=a,u=i.tryGetTagDefinitionWithUpperCase(s.tagNameWithUpperCase);if(this._validateTagDefinition(u,s.tagName,!1,s.getTokenSequence(),s),u)switch(u.syntaxKind){case L.BlockTag:if(s.tagNameWithUpperCase===z.param.tagNameWithUpperCase){var l=this._parseParamBlock(t,s,z.param.tagName);this._parserContext.docComment.params.add(l),this._currentSection=l.content;return}else if(s.tagNameWithUpperCase===z.typeParam.tagNameWithUpperCase){var l=this._parseParamBlock(t,s,z.typeParam.tagName);this._parserContext.docComment.typeParams.add(l),this._currentSection=l.content;return}else{var h=new Lt({configuration:this._configuration,blockTag:s});this._addBlockToDocComment(h),this._currentSection=h.content}return;case L.ModifierTag:n.addTag(s);return}this._pushNode(s)},e.prototype._addBlockToDocComment=function(t){var r=this._parserContext.docComment;switch(t.blockTag.tagNameWithUpperCase){case z.remarks.tagNameWithUpperCase:r.remarksBlock=t;break;case z.privateRemarks.tagNameWithUpperCase:r.privateRemarks=t;break;case z.deprecated.tagNameWithUpperCase:r.deprecatedBlock=t;break;case z.returns.tagNameWithUpperCase:r.returnsBlock=t;break;case z.see.tagNameWithUpperCase:r._appendSeeBlock(t);break;default:r.appendCustomBlock(t)}},e.prototype._tryParseJSDocTypeOrValueRest=function(t,r,i,n){for(var a,s=1;s>0;){var u=t.peekTokenKind();switch(u){case r:a===void 0&&s++;break;case i:a===void 0&&s--;break;case f.Backslash:a!==void 0&&(t.readToken(),u=t.peekTokenKind());break;case f.DoubleQuote:case f.SingleQuote:case f.Backtick:a===u?a=void 0:a===void 0&&(a=u);break}if(u===f.EndOfInput){t.backtrackToMarker(n);return}t.readToken()}return t.tryExtractAccumulatedSequence()},e.prototype._tryParseUnsupportedJSDocType=function(t,r,i){if(t.assertAccumulatedSequenceIsEmpty(),!(t.peekTokenKind()!==f.LeftCurlyBracket||t.peekTokenAfterKind()===f.AtSign)){var n=t.createMarker();t.readToken();var a=this._tryParseJSDocTypeOrValueRest(t,f.LeftCurlyBracket,f.RightCurlyBracket,n);if(a){this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidType,"The "+i+" block should not include a JSDoc-style '{type}'",a,r);var s=this._tryReadSpacingAndNewlines(t);s&&(a=a.getNewSequence(a.startIndex,s.endIndex))}return a}},e.prototype._tryParseJSDocOptionalNameRest=function(t){if(t.assertAccumulatedSequenceIsEmpty(),t.peekTokenKind()!==f.EndOfInput){var r=t.createMarker();return this._tryParseJSDocTypeOrValueRest(t,f.LeftSquareBracket,f.RightSquareBracket,r)}},e.prototype._parseParamBlock=function(t,r,i){var n=t.createMarker(),a=this._tryReadSpacingAndNewlines(t),s=this._tryParseUnsupportedJSDocType(t,r,i),u;t.peekTokenKind()===f.LeftSquareBracket&&(t.readToken(),u=t.extractAccumulatedSequence());for(var l="",h=!1;!h;)switch(t.peekTokenKind()){case f.AsciiWord:case f.Period:case f.DollarSign:l+=t.readToken();break;default:h=!0;break}var m=te.explainIfInvalidUnquotedIdentifier(l);if(m!==void 0){t.backtrackToMarker(n);var _=new ur({configuration:this._configuration,blockTag:r,parameterName:""}),T=l.length>0?"The "+i+" block should be followed by a valid parameter name: "+m:"The "+i+" block should be followed by a parameter name";return this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidName,T,r.getTokenSequence(),r),_}var F=t.extractAccumulatedSequence(),O;if(u){O=this._tryParseJSDocOptionalNameRest(t);var U=u;O&&(U=r.getTokenSequence().getNewSequence(u.startIndex,O.endIndex)),this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidOptionalName,"The "+i+" should not include a JSDoc-style optional name; it must not be enclosed in '[ ]' brackets.",U,r)}var P=this._tryReadSpacingAndNewlines(t),Y=this._tryParseUnsupportedJSDocType(t,r,i),xe,ye,re;return t.peekTokenKind()===f.Hyphen?(t.readToken(),xe=t.extractAccumulatedSequence(),ye=this._tryReadSpacingAndNewlines(t),re=this._tryParseUnsupportedJSDocType(t,r,i)):this._parserContext.log.addMessageForTokenSequence(w.ParamTagMissingHyphen,"The "+i+" block should be followed by a parameter name and then a hyphen",r.getTokenSequence(),r),new ur({parsed:!0,configuration:this._configuration,blockTag:r,spacingBeforeParameterNameExcerpt:a,unsupportedJsdocTypeBeforeParameterNameExcerpt:s,unsupportedJsdocOptionalNameOpenBracketExcerpt:u,parameterNameExcerpt:F,parameterName:l,unsupportedJsdocOptionalNameRestExcerpt:O,spacingAfterParameterNameExcerpt:P,unsupportedJsdocTypeAfterParameterNameExcerpt:Y,hyphenExcerpt:xe,spacingAfterHyphenExcerpt:ye,unsupportedJsdocTypeAfterHyphenExcerpt:re})},e.prototype._pushNode=function(t){this._configuration.docNodeManager.isAllowedChild(g.Paragraph,t.kind)?this._currentSection.appendNodeInParagraph(t):this._currentSection.appendNode(t)},e.prototype._parseBackslashEscape=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.readToken(),t.peekTokenKind()===f.EndOfInput)return this._backtrackAndCreateError(t,r,w.UnnecessaryBackslash,"A backslash must precede another character that is being escaped");var i=t.readToken();if(!pr.isPunctuation(i.kind))return this._backtrackAndCreateError(t,r,w.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");var n=t.extractAccumulatedSequence();return new Fr({parsed:!0,configuration:this._configuration,escapeStyle:zr.CommonMarkBackslash,encodedTextExcerpt:n,decodedText:i.toString()})},e.prototype._parseBlockTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.peekTokenKind()!==f.AtSign)return this._backtrackAndCreateError(t,r,w.MissingTag,'Expecting a TSDoc tag starting with "@"');switch(t.peekPreviousTokenKind()){case f.EndOfInput:case f.Spacing:case f.Newline:break;default:return this._backtrackAndCreateError(t,r,w.AtSignInWord,'The "@" character looks like part of a TSDoc tag; use a backslash to escape it')}var i=t.readToken().toString();if(t.peekTokenKind()!==f.AsciiWord)return this._backtrackAndCreateError(t,r,w.AtSignWithoutTagName,'Expecting a TSDoc tag name after "@"; if it is not a tag, use a backslash to escape this character');for(var n=t.createMarker();t.peekTokenKind()===f.AsciiWord;)i+=t.readToken().toString();switch(t.peekTokenKind()){case f.Spacing:case f.Newline:case f.EndOfInput:break;default:var a=t.peekToken().range.toString()[0];return this._backtrackAndCreateError(t,r,w.CharactersAfterBlockTag,'The token "'.concat(i,'" looks like a TSDoc tag but contains an invalid character')+" ".concat(JSON.stringify(a),'; if it is not a tag, use a backslash to escape the "@"'))}if(te.explainIfInvalidTSDocTagName(i)){var s=this._createFailureForTokensSince(t,w.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",n);return this._backtrackAndCreateErrorForFailure(t,r,"",s)}return new Ir({parsed:!0,configuration:this._configuration,tagName:i,tagNameExcerpt:t.extractAccumulatedSequence()})},e.prototype._parseInlineTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.peekTokenKind()!==f.LeftCurlyBracket)return this._backtrackAndCreateError(t,r,w.MissingTag,'Expecting a TSDoc tag starting with "{"');t.readToken();var i=t.extractAccumulatedSequence(),n=t.createMarker();if(t.peekTokenKind()!==f.AtSign)return this._backtrackAndCreateError(t,r,w.MalformedInlineTag,'Expecting a TSDoc tag starting with "{@"');for(var a=t.readToken().toString();t.peekTokenKind()===f.AsciiWord;)a+=t.readToken().toString();if(a==="@"){var s=this._createFailureForTokensSince(t,w.MalformedInlineTag,'Expecting a TSDoc inline tag name after the "{@" characters',n);return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}if(te.explainIfInvalidTSDocTagName(a)){var s=this._createFailureForTokensSince(t,w.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",n);return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}var u=t.extractAccumulatedSequence(),l=this._tryReadSpacingAndNewlines(t);if(l===void 0&&t.peekTokenKind()!==f.RightCurlyBracket){var h=t.peekToken().range.toString()[0],s=this._createFailureForToken(t,w.CharactersAfterInlineTag,"The character ".concat(JSON.stringify(h)," cannot appear after the TSDoc tag name; expecting a space"));return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}for(var m=!1;!m;)switch(t.peekTokenKind()){case f.EndOfInput:return this._backtrackAndCreateErrorRange(t,r,n,w.InlineTagMissingRightBrace,'The TSDoc inline tag name is missing its closing "}"');case f.Backslash:if(t.readToken(),!pr.isPunctuation(t.peekTokenKind())){var s=this._createFailureForToken(t,w.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"Error reading inline TSDoc tag: ",s)}t.readToken();break;case f.LeftCurlyBracket:{var s=this._createFailureForToken(t,w.InlineTagUnescapedBrace,'The "{" character must be escaped with a backslash when used inside a TSDoc inline tag');return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}case f.RightCurlyBracket:m=!0;break;default:t.readToken();break}var _=t.tryExtractAccumulatedSequence();t.readToken();var T=t.extractAccumulatedSequence(),F={parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,tagNameExcerpt:u,tagName:a,spacingAfterTagNameExcerpt:l,tagContentExcerpt:_,closingDelimiterExcerpt:T},O=a.toUpperCase(),U=new Hi(this._parserContext,_||ut.createEmpty(this._parserContext)),P;switch(O){case z.inheritDoc.tagNameWithUpperCase:P=this._parseInheritDocTag(F,U);break;case z.link.tagNameWithUpperCase:P=this._parseLinkTag(F,U);break;default:P=new Rt(F)}var Y=this._parserContext.configuration.tryGetTagDefinitionWithUpperCase(O);return this._validateTagDefinition(Y,a,!0,u,P),P},e.prototype._parseInheritDocTag=function(t,r){var i=new Rt(t),n=Jr({},t);if(r.peekTokenKind()!==f.EndOfInput){if(n.declarationReference=this._parseDeclarationReference(r,t.tagNameExcerpt,i),!n.declarationReference)return i;if(r.peekTokenKind()!==f.EndOfInput)return r.readToken(),this._parserContext.log.addMessageForTokenSequence(w.InheritDocTagSyntax,"Unexpected character after declaration reference",r.extractAccumulatedSequence(),i),i}return new or(n)},e.prototype._parseLinkTag=function(t,r){var i=new Rt(t),n=Jr({},t);if(!t.tagContentExcerpt)return this._parserContext.log.addMessageForTokenSequence(w.LinkTagEmpty,"The @link tag content is missing",n.tagNameExcerpt,i),i;for(var a=r.peekTokenKind()===f.Slash&&r.peekTokenAfterKind()===f.Slash,s=r.createMarker(),u=a;!u;)switch(r.peekTokenKind()){case f.AsciiWord:case f.Period:case f.Hyphen:case f.Plus:r.readToken();break;case f.Colon:r.readToken(),a=r.peekTokenKind()===f.Slash&&r.peekTokenAfterKind()===f.Slash,u=!0;break;default:u=!0}if(r.backtrackToMarker(s),a){if(!this._parseLinkTagUrlDestination(r,n,t.tagNameExcerpt,i))return i}else if(!this._parseLinkTagCodeDestination(r,n,t.tagNameExcerpt,i))return i;if(r.peekTokenKind()===f.Spacing)throw new Error("Unconsumed spacing encountered after construct");if(r.peekTokenKind()===f.Pipe){r.readToken(),n.pipeExcerpt=r.extractAccumulatedSequence(),n.spacingAfterPipeExcerpt=this._tryReadSpacingAndNewlines(r),u=!1;for(var l=void 0;!u;)switch(r.peekTokenKind()){case f.EndOfInput:u=!0;break;case f.Pipe:case f.LeftCurlyBracket:var h=r.readToken().toString();return this._parserContext.log.addMessageForTokenSequence(w.LinkTagUnescapedText,'The "'.concat(h,'" character may not be used in the link text without escaping it'),r.extractAccumulatedSequence(),i),i;case f.Spacing:case f.Newline:r.readToken();break;default:l=r.createMarker()+1,r.readToken()}var m=r.tryExtractAccumulatedSequence();m&&(l===void 0?n.spacingAfterLinkTextExcerpt=m:l>=m.endIndex?n.linkTextExcerpt=m:(n.linkTextExcerpt=m.getNewSequence(m.startIndex,l),n.spacingAfterLinkTextExcerpt=m.getNewSequence(l,m.endIndex)))}else if(r.peekTokenKind()!==f.EndOfInput)return r.readToken(),this._parserContext.log.addMessageForTokenSequence(w.LinkTagDestinationSyntax,"Unexpected character after link destination",r.extractAccumulatedSequence(),i),i;return new Rr(n)},e.prototype._parseLinkTagUrlDestination=function(t,r,i,n){for(var a="",s=!1;!s;)switch(t.peekTokenKind()){case f.Spacing:case f.Newline:case f.EndOfInput:case f.Pipe:case f.RightCurlyBracket:s=!0;break;default:a+=t.readToken();break}if(a.length===0)throw new Error("Missing URL in _parseLinkTagUrlDestination()");var u=t.extractAccumulatedSequence(),l=te.explainIfInvalidLinkUrl(a);return l?(this._parserContext.log.addMessageForTokenSequence(w.LinkTagInvalidUrl,l,u,n),!1):(r.urlDestinationExcerpt=u,r.spacingAfterDestinationExcerpt=this._tryReadSpacingAndNewlines(t),!0)},e.prototype._parseLinkTagCodeDestination=function(t,r,i,n){return r.codeDestination=this._parseDeclarationReference(t,i,n),!!r.codeDestination},e.prototype._parseDeclarationReference=function(t,r,i){t.assertAccumulatedSequenceIsEmpty();for(var n=t.createMarker(),a=!1,s=!0,u=!1,l=!1;!l;)switch(t.peekTokenKind()){case f.DoubleQuote:case f.EndOfInput:case f.LeftCurlyBracket:case f.LeftParenthesis:case f.LeftSquareBracket:case f.Newline:case f.Pipe:case f.RightCurlyBracket:case f.RightParenthesis:case f.RightSquareBracket:case f.SingleQuote:case f.Spacing:l=!0;break;case f.PoundSymbol:a=!0,l=!0;break;case f.Slash:case f.AtSign:s&&(u=!0),t.readToken();break;case f.AsciiWord:case f.Period:case f.Hyphen:t.readToken();break;default:s=!1,t.readToken()}if(!a&&u){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingHash,'The declaration reference appears to contain a package name or import path, but it is missing the "#" delimiter',t.extractAccumulatedSequence(),i);return}t.backtrackToMarker(n);var h,m,_,T;if(a){if(t.peekTokenKind()!==f.Period){var F=t.peekTokenKind()===f.AtSign,O=!1;for(l=!1;!l;)switch(t.peekTokenKind()){case f.EndOfInput:throw new Error("Expecting pound symbol");case f.Slash:F&&!O?(t.readToken(),O=!0):l=!0;break;case f.PoundSymbol:l=!0;break;default:t.readToken()}if(!t.isAccumulatedSequenceEmpty()){h=t.extractAccumulatedSequence();var U=te.explainIfInvalidPackageName(h.toString());if(U){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMalformedPackageName,U,h,i);return}}}for(l=!1;!l;)switch(t.peekTokenKind()){case f.EndOfInput:throw new Error("Expecting pound symbol");case f.PoundSymbol:l=!0;break;default:t.readToken()}if(!t.isAccumulatedSequenceEmpty()){m=t.extractAccumulatedSequence();var U=te.explainIfInvalidImportPath(m.toString(),!!h);if(U){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMalformedImportPath,U,m,i);return}}if(t.peekTokenKind()!==f.PoundSymbol)throw new Error("Expecting pound symbol");if(t.readToken(),_=t.extractAccumulatedSequence(),T=this._tryReadSpacingAndNewlines(t),h===void 0&&m===void 0){this._parserContext.log.addMessageForTokenSequence(w.ReferenceHashSyntax,"The hash character must be preceded by a package name or import path",_,i);return}}var P=[];for(l=!1;!l;)switch(t.peekTokenKind()){case f.Period:case f.LeftParenthesis:case f.AsciiWord:case f.Colon:case f.LeftSquareBracket:case f.DoubleQuote:var Y=P.length>0,xe=this._parseMemberReference(t,Y,r,i);if(!xe)return;P.push(xe);break;default:l=!0}if(h===void 0&&m===void 0&&P.length===0){this._parserContext.log.addMessageForTokenSequence(w.MissingReference,"Expecting a declaration reference",r,i);return}return new Mr({parsed:!0,configuration:this._configuration,packageNameExcerpt:h,importPathExcerpt:m,importHashExcerpt:_,spacingAfterImportHashExcerpt:T,memberReferences:P})},e.prototype._parseMemberReference=function(t,r,i,n){var a={parsed:!0,configuration:this._configuration};if(r){if(t.peekTokenKind()!==f.Period){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingDot,"Expecting a period before the next component of a declaration reference",i,n);return}t.readToken(),a.dotExcerpt=t.extractAccumulatedSequence(),a.spacingAfterDotExcerpt=this._tryReadSpacingAndNewlines(t)}if(t.peekTokenKind()===f.LeftParenthesis&&(t.readToken(),a.leftParenthesisExcerpt=t.extractAccumulatedSequence(),a.spacingAfterLeftParenthesisExcerpt=this._tryReadSpacingAndNewlines(t)),t.peekTokenKind()===f.LeftSquareBracket){if(a.memberSymbol=this._parseMemberSymbol(t,n),!a.memberSymbol)return}else if(a.memberIdentifier=this._parseMemberIdentifier(t,i,n),!a.memberIdentifier)return;if(a.spacingAfterMemberExcerpt=this._tryReadSpacingAndNewlines(t),t.peekTokenKind()===f.Colon){if(t.readToken(),a.colonExcerpt=t.extractAccumulatedSequence(),a.spacingAfterColonExcerpt=this._tryReadSpacingAndNewlines(t),!a.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSelectorMissingParens,"Syntax error in declaration reference: the member selector must be enclosed in parentheses",a.colonExcerpt,n);return}if(a.selector=this._parseMemberSelector(t,a.colonExcerpt,n),!a.selector)return;a.spacingAfterSelectorExcerpt=this._tryReadSpacingAndNewlines(t)}else if(a.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingColon,"Expecting a colon after the identifier because the expression is in parentheses",a.leftParenthesisExcerpt,n);return}if(a.leftParenthesisExcerpt){if(t.peekTokenKind()!==f.RightParenthesis){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingRightParen,"Expecting a matching right parenthesis",a.leftParenthesisExcerpt,n);return}t.readToken(),a.rightParenthesisExcerpt=t.extractAccumulatedSequence(),a.spacingAfterRightParenthesisExcerpt=this._tryReadSpacingAndNewlines(t)}return new Vr(a)},e.prototype._parseMemberSymbol=function(t,r){if(t.peekTokenKind()!==f.LeftSquareBracket)throw new Error('Expecting "["');t.readToken();var i=t.extractAccumulatedSequence(),n=this._tryReadSpacingAndNewlines(t),a=this._parseDeclarationReference(t,i,r);if(!a){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSymbolSyntax,"Missing declaration reference in symbol reference",i,r);return}if(t.peekTokenKind()!==f.RightSquareBracket){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingRightBracket,"Missing closing square bracket for symbol reference",i,r);return}t.readToken();var s=t.extractAccumulatedSequence();return new Kr({parsed:!0,configuration:this._configuration,leftBracketExcerpt:i,spacingAfterLeftBracketExcerpt:n,symbolReference:a,rightBracketExcerpt:s})},e.prototype._parseMemberIdentifier=function(t,r,i){var n=void 0,a=void 0;if(t.peekTokenKind()===f.DoubleQuote){for(t.readToken(),n=t.extractAccumulatedSequence();t.peekTokenKind()!==f.DoubleQuote;){if(t.peekTokenKind()===f.EndOfInput){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingQuote,"Unexpected end of input inside quoted member identifier",n,i);return}t.readToken()}if(t.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(w.ReferenceEmptyIdentifier,"The quoted identifier cannot be empty",n,i);return}var s=t.extractAccumulatedSequence();return t.readToken(),a=t.extractAccumulatedSequence(),new cr({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:n,identifierExcerpt:s,rightQuoteExcerpt:a})}else{for(var u=!1;!u;)switch(t.peekTokenKind()){case f.AsciiWord:case f.DollarSign:t.readToken();break;default:u=!0;break}if(t.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingIdentifier,"Syntax error in declaration reference: expecting a member identifier",r,i);return}var s=t.extractAccumulatedSequence(),l=s.toString(),h=te.explainIfInvalidUnquotedMemberIdentifier(l);if(h){this._parserContext.log.addMessageForTokenSequence(w.ReferenceUnquotedIdentifier,h,s,i);return}return new cr({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:n,identifierExcerpt:s,rightQuoteExcerpt:a})}},e.prototype._parseMemberSelector=function(t,r,i){t.peekTokenKind()!==f.AsciiWord&&this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingLabel,"Expecting a selector label after the colon",r,i);var n=t.readToken().toString(),a=t.extractAccumulatedSequence(),s=new Hr({parsed:!0,configuration:this._configuration,selectorExcerpt:a,selector:n});if(s.errorMessage){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSelectorSyntax,s.errorMessage,a,i);return}return s},e.prototype._parseHtmlStartTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker(),i=t.readToken();if(i.kind!==f.LessThan)throw new Error('Expecting an HTML tag starting with "<"');var n=t.extractAccumulatedSequence(),a=this._parseHtmlName(t);if(fr(a))return this._backtrackAndCreateErrorForFailure(t,r,"Invalid HTML element: ",a);for(var s=this._tryReadSpacingAndNewlines(t),u=[];t.peekTokenKind()===f.AsciiWord;){var l=this._parseHtmlAttribute(t);if(fr(l))return this._backtrackAndCreateErrorForFailure(t,r,"The HTML element has an invalid attribute: ",l);u.push(l)}t.assertAccumulatedSequenceIsEmpty();var h=t.createMarker(),m=!1;if(t.peekTokenKind()===f.Slash&&(t.readToken(),m=!0),t.peekTokenKind()!==f.GreaterThan){var _=this._createFailureForTokensSince(t,w.HtmlTagMissingGreaterThan,'Expecting an attribute or ">" or "/>"',h);return this._backtrackAndCreateErrorForFailure(t,r,"The HTML tag has invalid syntax: ",_)}t.readToken();var T=t.extractAccumulatedSequence();return new Lr({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:n,nameExcerpt:a,spacingAfterNameExcerpt:s,htmlAttributes:u,selfClosingTag:m,closingDelimiterExcerpt:T})},e.prototype._parseHtmlAttribute=function(t){t.assertAccumulatedSequenceIsEmpty();var r=this._parseHtmlName(t);if(fr(r))return r;var i=this._tryReadSpacingAndNewlines(t);if(t.peekTokenKind()!==f.Equals)return this._createFailureForToken(t,w.HtmlTagMissingEquals,'Expecting "=" after HTML attribute name');t.readToken();var n=t.extractAccumulatedSequence(),a=this._tryReadSpacingAndNewlines(t),s=this._parseHtmlString(t);if(fr(s))return s;var u=t.extractAccumulatedSequence(),l=this._tryReadSpacingAndNewlines(t);return new Or({parsed:!0,configuration:this._configuration,nameExcerpt:r,spacingAfterNameExcerpt:i,equalsExcerpt:n,spacingAfterEqualsExcerpt:a,valueExcerpt:u,spacingAfterValueExcerpt:l})},e.prototype._parseHtmlString=function(t){var r=t.createMarker(),i=t.peekTokenKind();if(i!==f.DoubleQuote&&i!==f.SingleQuote)return this._createFailureForToken(t,w.HtmlTagMissingString,"Expecting an HTML string starting with a single-quote or double-quote character");t.readToken();for(var n="";;){var a=t.peekTokenKind();if(a===i){t.readToken();break}if(a===f.EndOfInput||a===f.Newline)return this._createFailureForToken(t,w.HtmlStringMissingQuote,"The HTML string is missing its closing quote",r);n+=t.readToken().toString()}return t.peekTokenKind()===f.AsciiWord?this._createFailureForToken(t,w.TextAfterHtmlString,"The next character after a closing quote must be spacing or punctuation"):n},e.prototype._parseHtmlEndTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker(),i=t.peekToken();if(i.kind!==f.LessThan)return this._backtrackAndCreateError(t,r,w.MissingHtmlEndTag,'Expecting an HTML tag starting with "" for the HTML tag');return this._backtrackAndCreateErrorForFailure(t,r,"",l)}t.readToken();var h=t.extractAccumulatedSequence();return new qr({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:a,nameExcerpt:s,spacingAfterNameExcerpt:u,closingDelimiterExcerpt:h})},e.prototype._parseHtmlName=function(t){var r=t.createMarker();if(t.peekTokenKind()===f.Spacing)return this._createFailureForTokensSince(t,w.MalformedHtmlName,"A space is not allowed here",r);for(var i=!1;!i;)switch(t.peekTokenKind()){case f.Hyphen:case f.Period:case f.AsciiWord:t.readToken();break;default:i=!0;break}var n=t.tryExtractAccumulatedSequence();if(!n)return this._createFailureForToken(t,w.MalformedHtmlName,"Expecting an HTML name");var a=n.toString(),s=te.explainIfInvalidHtmlName(a);return s?this._createFailureForTokensSince(t,w.MalformedHtmlName,s,r):this._configuration.validation.reportUnsupportedHtmlElements&&!this._configuration.isHtmlElementSupported(a)?this._createFailureForToken(t,w.UnsupportedHtmlElementName,"The HTML element name ".concat(JSON.stringify(a)," is not defined by your TSDoc configuration"),r):n},e.prototype._parseFencedCode=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker(),i=r+2;switch(t.peekPreviousTokenKind()){case f.Newline:case f.EndOfInput:break;default:return this._backtrackAndCreateErrorRange(t,r,i,w.CodeFenceOpeningIndent,"The opening backtick for a code fence must appear at the start of the line")}var n="";if(n+=t.readToken(),n+=t.readToken(),n+=t.readToken(),n!=="```")throw new Error("Expecting three backticks");for(var a=t.extractAccumulatedSequence();t.peekTokenKind()===f.Spacing;)t.readToken();for(var s=t.tryExtractAccumulatedSequence(),u=!1,l=void 0;!u;)switch(t.peekTokenKind()){case f.Spacing:case f.Newline:l===void 0&&(l=t.createMarker()),t.peekTokenKind()===f.Newline&&(u=!0),t.readToken();break;case f.Backtick:var h=this._createFailureForToken(t,w.CodeFenceSpecifierSyntax,"The language specifier cannot contain backtick characters");return this._backtrackAndCreateErrorRangeForFailure(t,r,i,"Error parsing code fence: ",h);case f.EndOfInput:var m=this._createFailureForToken(t,w.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(t,r,i,"Error parsing code fence: ",m);default:l=void 0,t.readToken();break}var _=t.extractAccumulatedSequence(),T=_.getNewSequence(_.startIndex,l),F=_.getNewSequence(l,_.endIndex),O=-1,U=-1;u=!1;for(var P;!u;)switch(t.peekTokenKind()){case f.EndOfInput:var m=this._createFailureForToken(t,w.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(t,r,i,"Error parsing code fence: ",m);case f.Newline:for(P=t.readToken(),O=t.createMarker();t.peekTokenKind()===f.Spacing;)P=t.readToken();if(t.peekTokenKind()!==f.Backtick||(U=t.createMarker(),t.readToken(),t.peekTokenKind()!==f.Backtick)||(t.readToken(),t.peekTokenKind()!==f.Backtick))break;t.readToken(),u=!0;break;default:t.readToken();break}P.kind!==f.Newline&&this._parserContext.log.addMessageForTextRange(w.CodeFenceClosingIndent,"The closing delimiter for a code fence must not be indented",P.range);var Y=t.extractAccumulatedSequence(),xe=Y.getNewSequence(Y.startIndex,O),ye=Y.getNewSequence(O,U),re=Y.getNewSequence(U,Y.endIndex);for(u=!1;!u;)switch(t.peekTokenKind()){case f.Spacing:t.readToken();break;case f.Newline:u=!0,t.readToken();break;case f.EndOfInput:u=!0;break;default:this._parserContext.log.addMessageForTextRange(w.CodeFenceClosingSyntax,"Unexpected characters after closing delimiter for code fence",t.peekToken().range),u=!0;break}var _t=t.tryExtractAccumulatedSequence();return new Br({parsed:!0,configuration:this._configuration,openingFenceExcerpt:a,spacingAfterOpeningFenceExcerpt:s,languageExcerpt:T,spacingAfterLanguageExcerpt:F,codeExcerpt:xe,spacingBeforeClosingFenceExcerpt:ye,closingFenceExcerpt:re,spacingAfterClosingFenceExcerpt:_t})},e.prototype._parseCodeSpan=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.peekTokenKind()!==f.Backtick)throw new Error('Expecting a code span starting with a backtick character "`"');t.readToken();for(var i=t.extractAccumulatedSequence(),n=void 0,a=void 0;;){var s=t.peekTokenKind();if(s===f.Backtick){if(t.isAccumulatedSequenceEmpty())return this._backtrackAndCreateErrorRange(t,r,r+1,w.CodeSpanEmpty,"A code span must contain at least one character between the backticks");n=t.extractAccumulatedSequence(),t.readToken(),a=t.extractAccumulatedSequence();break}if(s===f.EndOfInput||s===f.Newline)return this._backtrackAndCreateError(t,r,w.CodeSpanMissingDelimiter,"The code span is missing its closing backtick");t.readToken()}return new Nr({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,codeExcerpt:n,closingDelimiterExcerpt:a})},e.prototype._tryReadSpacingAndNewlines=function(t){var r=!1;do switch(t.peekTokenKind()){case f.Spacing:case f.Newline:t.readToken();break;default:r=!0;break}while(!r);return t.tryExtractAccumulatedSequence()},e.prototype._createError=function(t,r,i){t.readToken();var n=t.extractAccumulatedSequence(),a=new bt({parsed:!0,configuration:this._configuration,textExcerpt:n,messageId:r,errorMessage:i,errorLocation:n});return this._parserContext.log.addMessageForDocErrorText(a),a},e.prototype._backtrackAndCreateError=function(t,r,i,n){return t.backtrackToMarker(r),this._createError(t,i,n)},e.prototype._backtrackAndCreateErrorRange=function(t,r,i,n,a){for(t.backtrackToMarker(r);t.createMarker()!==i;)t.readToken();t.peekTokenKind()!==f.EndOfInput&&t.readToken();var s=t.extractAccumulatedSequence(),u=new bt({parsed:!0,configuration:this._configuration,textExcerpt:s,messageId:n,errorMessage:a,errorLocation:s});return this._parserContext.log.addMessageForDocErrorText(u),u},e.prototype._backtrackAndCreateErrorForFailure=function(t,r,i,n){t.backtrackToMarker(r),t.readToken();var a=t.extractAccumulatedSequence(),s=new bt({parsed:!0,configuration:this._configuration,textExcerpt:a,messageId:n.failureMessageId,errorMessage:i+n.failureMessage,errorLocation:n.failureLocation});return this._parserContext.log.addMessageForDocErrorText(s),s},e.prototype._backtrackAndCreateErrorRangeForFailure=function(t,r,i,n,a){for(t.backtrackToMarker(r);t.createMarker()!==i;)t.readToken();t.peekTokenKind()!==f.EndOfInput&&t.readToken();var s=t.extractAccumulatedSequence(),u=new bt({parsed:!0,configuration:this._configuration,textExcerpt:s,messageId:a.failureMessageId,errorMessage:n+a.failureMessage,errorLocation:a.failureLocation});return this._parserContext.log.addMessageForDocErrorText(u),u},e.prototype._createFailureForToken=function(t,r,i,n){n||(n=t.createMarker());var a=new ut({parserContext:this._parserContext,startIndex:n,endIndex:n+1});return{failureMessageId:r,failureMessage:i,failureLocation:a}},e.prototype._createFailureForTokensSince=function(t,r,i,n){var a=t.createMarker();if(a{i.createEl("b",{text:"Templater error"}),i.createSpan({text:":"}),i.createEl("br"),i.createSpan({text:e.message}),e instanceof C&&e.console_msg&&(i.createEl("br"),i.createSpan({text:"Check console for more information"}),console.error("Templater Error:",e.message,` `,e.console_msg))});t.messageEl.appendChild(r)}var C=class extends Error{constructor(t,r){super(t);this.console_msg=r;this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}};async function me(e,t){try{return await e()}catch(r){return r instanceof C?le(r):le(new C(t,r instanceof Error?r.message:void 0)),null}}function he(e,t){try{return e()}catch(r){return le(new C(t,r instanceof Error?r.message:void 0)),null}}var ge=$(require("obsidian"));function lt(e){return new Promise(t=>window.setTimeout(t,e))}function ja(){return/(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g}function Gi(e,t){t=(0,ge.normalizePath)(t);let r=e.vault.getAbstractFileByPath(t);if(!r)throw new C(`Folder "${t}" doesn't exist`);if(!(r instanceof ge.TFolder))throw new C(`${t} is a file, not a folder`);return r}function Xe(e,t){t=(0,ge.normalizePath)(t);let r=e.vault.getAbstractFileByPath(t);if(!r)throw new C(`File "${t}" doesn't exist`);if(!(r instanceof ge.TFile))throw new C(`${t} is a folder, not a file`);return r}function je(e,t){let r=Gi(e,t),i=[];return ge.Vault.recurseChildren(r,n=>{n instanceof ge.TFile&&i.push(n)}),i.sort((n,a)=>n.path.localeCompare(a.path)),i}async function Ta(e,t){return await Promise.all(t.map(async i=>{let n=await e.vault.cachedRead(i);return ec(i,n)}))}function ec(e,t){let r=Yi(t),i=new Ui(e);return i.description=r.description,i.returns=r.returns,i.arguments=r.arguments,i}function Yi(e){let r=new Ki().parseString(e);return{description:tc(r.docComment.summarySection),returns:rc(r.docComment.returnsBlock),arguments:ic(r.docComment.params)}}function tc(e){try{return e.nodes.map(r=>r.getChildNodes().filter(i=>i instanceof Fe).map(i=>i.text).join(` `)).join(` `)}catch{return console.error("Failed to parse summary section"),""}}function rc(e){if(!e)return"";try{let t=e.content.nodes[0]?.getChildNodes()[0];return t instanceof Fe?t.text.trim():""}catch{return""}}function ic(e){try{return e.blocks.map(i=>{let n=i.parameterName,a=i.content.getChildNodes()[0].getChildNodes().filter(s=>s instanceof Fe).map(s=>s.text).join(" ");return new $i(n,a)})}catch{return[]}}function zi(e,t,r){if(r<0||r===e.length)return;let i=e.splice(t,1)[0];e.splice(r,0,i)}function pt(e){return e.workspace.activeEditor?.file??e.workspace.getActiveFile()}function Qr(e){let t=e.lastIndexOf("/");return t!==-1?e.slice(0,t):""}function ue(e){return e!==null&&typeof e=="object"}function Ea(e){let t=e.toString(),r=t.indexOf("(");return t.substring(r+1,t.indexOf(")")).replace(/ /g,"").split(",")}function Wi(e,t,r){let i=e.instanceOf(HTMLOListElement)?"li":"p",n=e.createEl(i),a=e.createEl("b",{text:t});return n.appendChild(a),n.appendChild(activeDocument.createTextNode(`: ${r}`)),n}function Xr(e,t){if(Object.keys(t).length!==0){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r))if(Object.prototype.hasOwnProperty.call(e,r)){let i=e[r],n=t[r];if(Array.isArray(i)||Array.isArray(n)){let a=Array.isArray(i)?i:[i],s=Array.isArray(n)?n:[n];e[r]=a.concat(s).unique()}else ue(i)&&ue(n)?Xr(i,n):n!=null&&n!==""&&(e[r]=n)}else e[r]=t[r]}}function hr(e){let t={},r=(0,ge.getFrontMatterInfo)(e);if(r.frontmatter)try{t=(0,ge.parseYaml)(r.frontmatter)}catch{return{frontmatter:t,content:e}}return{frontmatter:t,content:e.slice(r.contentStart)}}var Zr=$(require("obsidian")),Ji=class extends Zr.ConfirmationModal{constructor(t,r,i,n){super(t);this.setTitle(r),this.modalEl.addClass("templater-confirm-dangerous-setting-modal"),this.contentEl.createEl("p",{text:i}),this.contentEl.createEl("p",{text:"Only enable this if you trust the current and future contents of this vault, including files you may later download, copy, or sync from other people.",cls:"mod-warning"}),this.contentEl.createEl("p",{text:"This setting is stored on this device only; enable it separately on each device where you use this vault."});let a;Zr.Platform.isMobile?this.addButton(s=>{a=s,s.setButtonText("I understand the risks, enable").setCta().onClick(async()=>{await n()})}):this.addCheckbox("I understand the risks",s=>{a.setDisabled(!s)}).addButton(s=>{a=s,s.setButtonText("Enable").setCta().setDisabled(!0).onClick(async()=>{await n()})}),this.addCancelButton()}};var Kt=$(require("obsidian"));var ei=$(require("obsidian"));var Te;(function(r){r[r.TemplateFiles=0]="TemplateFiles",r[r.ScriptFiles=1]="ScriptFiles"})(Te||(Te={}));var kt=class extends ei.AbstractInputSuggest{constructor(t,r,i){super(r.app,t);this.inputEl=t;this.plugin=r;this.mode=i}get_folder(t){switch(t){case 0:return this.plugin.settings.templates_folder;case 1:return this.plugin.settings.user_scripts_folder}}get_error_msg(t){switch(t){case 0:return"Templates folder doesn't exist";case 1:return"User Scripts folder doesn't exist"}}getSuggestions(t){let r=he(()=>je(this.plugin.app,this.get_folder(this.mode)),this.get_error_msg(this.mode));if(!r)return[];let i=[],n=t.toLowerCase();return r.forEach(a=>{a instanceof ei.TFile&&a.extension==="md"&&a.path.toLowerCase().includes(n)&&i.push(a)}),i.slice(0,1e3)}renderSuggestion(t,r){r.setText(t.path)}selectSuggestion(t){this.setValue(t.path),this.inputEl.trigger("input"),this.close()}};var Qi=class extends Kt.Modal{constructor(t,r,i,n){super(t);this.plugin=r;this.onSubmit=n;this.regex=i.regex,this.template=i.template}onOpen(){this.setTitle("File regex template"),this.modalEl.addClass("templater-file-regex-template-modal");let{contentEl:t}=this,r=new Kt.Setting(t).setName("File regex").setDesc("Regex to match on. Tests against full file path relative to the root of the vault, including file extension.").addText(n=>{n.setPlaceholder("File regex").setValue(this.regex).onChange(a=>{this.regex=a})}),i=new Kt.Setting(t).setName("Template").setDesc("Template to apply on match.").addText(n=>{new kt(n.inputEl,this.plugin,Te.TemplateFiles),n.setPlaceholder("Template").setValue(this.template).onChange(a=>{this.template=a})});new Kt.Setting(t).addButton(n=>n.setButtonText("Done").setCta().onClick(async()=>{if(!this.regex){r.setErrorMessage("File regex cannot be empty");return}if(!this.template){i.setErrorMessage("Template cannot be empty");return}await this.onSubmit(this.regex,this.template),this.close()})).addButton(n=>n.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var Ut=$(require("obsidian"));var Sa=$(require("obsidian")),dr=class extends Sa.AbstractInputSuggest{constructor(t,r){super(t,r);this.inputEl=r}getSuggestions(t){let r=t.toLowerCase();return this.app.vault.getAllFolders().filter(n=>n.path.toLowerCase().includes(r)).slice(0,1e3)}renderSuggestion(t,r){r.setText(t.path)}selectSuggestion(t){this.setValue(t.path),this.inputEl.trigger("input"),this.close()}};var Xi=class extends Ut.Modal{constructor(t,r,i,n,a){super(t);this.plugin=r;this.onSubmit=n;this.validateFolder=a;this.folder=i.folder,this.template=i.template}onOpen(){this.setTitle("Folder template"),this.modalEl.addClass("templater-folder-template-modal");let{contentEl:t}=this,r=new Ut.Setting(t).setName("Folder").setDesc("Folder to match on. Includes subfolders of this folder.").addText(n=>{new dr(this.app,n.inputEl),n.setPlaceholder("Folder").setValue(this.folder).onChange(a=>{this.folder=a})}),i=new Ut.Setting(t).setName("Template").setDesc("Template to apply on match.").addText(n=>{new kt(n.inputEl,this.plugin,Te.TemplateFiles),n.setPlaceholder("Template").setValue(this.template).onChange(a=>{this.template=a})});new Ut.Setting(t).addButton(n=>n.setButtonText("Done").setCta().onClick(async()=>{if(!this.folder){r.setErrorMessage("Folder cannot be empty");return}if(!this.template){i.setErrorMessage("Template cannot be empty");return}let a=this.validateFolder(this.folder);if(a){r.setErrorMessage(a);return}await this.onSubmit(this.folder,this.template),this.close()})).addButton(n=>n.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var jt=$(require("obsidian"));var Zi=class extends jt.Modal{constructor(t,r){super(t);this.onSubmit=r;this.folder=""}onOpen(){this.setTitle("Add exclusion");let{contentEl:t}=this;this.modalEl.addClass("templater-ignore-folder-modal");let r=new jt.Setting(t).setName("Folder").setDesc("Enter a path, e.g. meta/templates").addText(n=>{new dr(this.app,n.inputEl),n.onChange(a=>{this.folder=a})}),i=t.createDiv("modal-button-container");new jt.ButtonComponent(i).setButtonText("Done").setCta().onClick(async()=>{if(!this.folder){r.setErrorMessage("Folder cannot be empty");return}await this.onSubmit(this.folder),this.close()}),new jt.ButtonComponent(i).setButtonText("Cancel").onClick(()=>this.close())}onClose(){this.contentEl.empty()}};var Tt=$(require("obsidian"));var en=class extends Tt.Modal{constructor(t,r,i){super(t);this.plugin=r;this.onSubmit=i;this.template=""}onOpen(){this.setTitle("Add startup template");let{contentEl:t}=this;this.modalEl.addClass("templater-startup-template-modal");let r=new Tt.Setting(t).setName("Template").setDesc("Enter a template path, e.g. meta/templates/daily.md").addText(n=>{new kt(n.inputEl,this.plugin,Te.TemplateFiles),n.onChange(a=>{this.template=a})}),i=t.createDiv("modal-button-container");new Tt.ButtonComponent(i).setButtonText("Done").setCta().onClick(async()=>{if(!this.template){r.setErrorMessage("Template cannot be empty");return}await this.onSubmit(this.template),this.close()}),new Tt.ButtonComponent(i).setButtonText("Cancel").onClick(()=>this.close())}onClose(){this.contentEl.empty()}};var $t=$(require("obsidian")),tn=class extends $t.Modal{constructor(t,r,i,n){super(t);this.onSubmit=i;this.validateName=n;this.name=r.name,this.command=r.command}onOpen(){this.setTitle("User function"),this.modalEl.addClass("templater-system-command-modal");let{contentEl:t}=this,r=new $t.Setting(t).setName("Function name").addText(i=>{i.setPlaceholder("Function name").setValue(this.name).onChange(n=>{this.name=n})});new $t.Setting(t).setName("System command").addTextArea(i=>{i.setPlaceholder("System command").setValue(this.command).onChange(n=>{this.command=n}),i.inputEl.setAttr("rows",4)}),new $t.Setting(t).addButton(i=>i.setButtonText("Done").setCta().onClick(async()=>{let n=this.name?this.validateName(this.name):"Function name cannot be empty";if(n){r.setErrorMessage(n);return}await this.onSubmit(this.name,this.command),this.close()})).addButton(i=>i.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var Ze;(function(a){a.Off="0",a.RenderDescriptionParameterReturn="1",a.RenderDescriptionParameterList="2",a.RenderDescriptionReturn="3",a.RenderDescriptionOnly="4"})(Ze||(Ze={}));function Ca(e){return isBoolean(e)?e:[Ze.RenderDescriptionParameterReturn,Ze.RenderDescriptionReturn].includes(e)}function Pa(e){return isBoolean(e)?e:[Ze.RenderDescriptionParameterReturn,Ze.RenderDescriptionParameterList].includes(e)}function Ia(e){return isBoolean(e)?e:e!=Ze.Off}var rn={trigger_on_file_creation:!1,enable_startup_templates:!1,enable_system_commands:!1},nn="templater-local-settings";function Ve(e){let t=e.loadLocalStorage(nn);return Object.assign({},rn,t??{})}function Na(e,t,r){let i=e.loadLocalStorage(nn)??{};e.saveLocalStorage(nn,{...i,[t]:r})}function Da(e,t,r){let i=t.split(".").map(s=>isNaN(parseInt(s,10))?s:parseInt(s,10)),n=i.length-1,a=e;for(let[s,u]of i.entries())s===n?a[u]=r:(a[u]==null&&(a[u]=typeof i[s+1]=="number"?[]:{}),a=a[u])}function Ma(e,t,r){let i=t.split(".").reduce((n,a)=>n?.[a],e);return i===void 0?r:i}var ft=$(require("obsidian"));var an=class extends ft.SettingPage{constructor(t,r){super();this.mappedTemplates=[];this.unmappedTemplates=[];this.pluginSettingTab=t,this.plugin=r}loadTemplates(){this.mappedTemplates=[],this.unmappedTemplates=[];let t=he(()=>je(this.plugin.app,this.plugin.settings.templates_folder),"Templates folder doesn't exist");Array.isArray(t)&&t.forEach(r=>{this.plugin.settings.enabled_templates_hotkeys.includes(r.path)?this.mappedTemplates.push(r):this.unmappedTemplates.push(r)})}display(){if(this.containerEl.empty(),this.loadTemplates(),!this.plugin.settings.templates_folder){new ft.Setting(this.containerEl).setName("No templates folder set. Please set the template folder location on the previous page.").setClass("mod-empty-state");return}if(this.mappedTemplates.length===0&&this.unmappedTemplates.length===0){new ft.Setting(this.containerEl).setName("No templates found in the templates folder.").setClass("mod-empty-state");return}if(this.mappedTemplates.length>0){let t=new ft.SettingGroup(this.containerEl).setHeading("Bound templates").addClass("mod-list");this.mappedTemplates.forEach(r=>{t.addSetting(i=>{i.setName(r.path).addExtraButton(n=>{n.setIcon("x").setTooltip("Delete").onClick(()=>{this.plugin.command_handler.remove_template_hotkey(r.path);let a=this.plugin.settings.enabled_templates_hotkeys.indexOf(r.path);a!==-1&&this.plugin.settings.enabled_templates_hotkeys.splice(a,1),this.plugin.save_settings(),this.display()})})})})}if(this.unmappedTemplates.length>0){let t=new ft.SettingGroup(this.containerEl).setHeading("Unbound templates").addClass("mod-list");this.unmappedTemplates.forEach(r=>{t.addSetting(i=>{i.setName(r.path).setAction?.(()=>{this.plugin.command_handler.add_template_hotkey(null,r.path),this.plugin.settings.enabled_templates_hotkeys.push(r.path),this.plugin.save_settings(),this.display()})})})}}};var et=$(require("obsidian"));var sn=class extends et.SettingPage{constructor(t,r){super();this.userScripts=[];this.pluginSettingTab=t,this.plugin=r}loadUserScripts(){let t=he(()=>je(this.plugin.app,this.plugin.settings.user_scripts_folder),"User scripts folder doesn't exist");this.userScripts=Array.isArray(t)?t.filter(r=>r.extension==="js"):[]}openUserScriptsFolderInDefaultApp(){let t=this.plugin.settings.user_scripts_folder;t&&this.plugin.app.openWithDefaultApp((0,et.normalizePath)(t))}display(){if(this.containerEl.empty(),this.loadUserScripts(),this.plugin.settings.user_scripts_folder&&new et.Setting(this.containerEl).setHeading().addExtraButton(r=>{r.setIcon("folder").setTooltip("Open user scripts folder").onClick(()=>this.openUserScriptsFolderInDefaultApp())}),this.userScripts.length===0){new et.Setting(this.containerEl).setName((()=>{let r=createFragment();return this.plugin.settings.user_scripts_folder||r.append("No user scripts folder set. Please set the user scripts folder on the previous page.",r.createEl("br"),r.createEl("br")),r.append("User scripts are JavaScript files that are loaded as CommonJS modules. You can then call these functions from your templates using ",r.createEl("code",{text:"<% tp.user.file_name() %>"})),r})()).setClass("mod-empty-state");return}let t=new et.SettingGroup(this.containerEl).addClass("mod-list");this.userScripts.forEach(r=>{t.addSetting(i=>{i.setName(`tp.user.${r.basename}`)})})}};var mr={data_version:2,command_timeout:5,templates_folder:"",templates_pairs:[],trigger_on_file_creation_mode:"none",auto_jump_to_cursor:!1,jump_to_cursor_after_file_name:!1,shell_path:"",user_scripts_folder:"",folder_templates:[],file_templates:[],syntax_highlighting:!0,syntax_highlighting_mobile:!1,enabled_templates_hotkeys:[],startup_templates:[],intellisense_render:Ze.RenderDescriptionParameterReturn,ignore_folders_on_creation:[]};var on=class extends ti.PluginSettingTab{constructor(t){super(t.app,t);this.plugin=t;this.icon="templater-icon";this.containerEl.addEventListener("click",i=>{i.target&&"href"in i.target&&i.target.href&&typeof i.target.href=="string"&&i.stopPropagation()},!0);let r=(0,ti.debounce)(()=>this.update(),200,!0);t.registerEvent(this.app.vault.on("create",r)),t.registerEvent(this.app.vault.on("delete",r)),t.registerEvent(this.app.vault.on("rename",r))}isLocalSettingsKey(t){return t in rn}getControlValue(t){return this.isLocalSettingsKey(t)?Ve(this.plugin.app)[t]:Ma(this.plugin.settings,t)}async setControlValue(t,r){let i={enable_startup_templates:{title:"Enable startup templates",warning:"This can be dangerous if you set a startup template with unknown/unsafe content. Make sure that every startup template's content is safe."},trigger_on_file_creation:{title:"Trigger Templater on new file creation",warning:"This can be dangerous if you create new files with unknown / unsafe content on creation. Make sure that every new file's content is safe on creation."},enable_system_commands:{title:"Enable user system command functions",warning:"It can be dangerous to execute arbitrary system commands from untrusted sources. Only run system commands that you understand, from trusted sources."}};if(this.isLocalSettingsKey(t)&&r===!0&&t in i){let n=i[t];new Ji(this.app,n.title,n.warning,async()=>{await this.commitControlValue(t,r)}).open(),this.update();return}await this.commitControlValue(t,r)}async commitControlValue(t,r){this.isLocalSettingsKey(t)?Na(this.plugin.app,t,r):Da(this.plugin.settings,t,r),["trigger_on_file_creation","trigger_on_file_creation_mode","enable_startup_templates","enable_system_commands"].contains(t)&&this.update(),await this.plugin.save_settings()}getSettingDefinitions(){let t=[],r=Ve(this.plugin.app);return t.push({type:"group",items:[{name:"Internal variables and functions",desc:(()=>{let i=createFragment();return i.append("Templater provides multiples predefined variables / functions that you can use.",i.createEl("br"),"Check the ",i.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," to get a list of all the available internal variables / functions."),i})()},{name:"Template folder location",desc:"Files in this folder will be available as templates.",control:{type:"folder",key:"templates_folder"}},{type:"page",name:"Template hotkeys",desc:(()=>{let i=createFragment();return i.append("Bind templates to ",i.createEl("a",{href:"https://obsidian.md/help/plugins/command-palette",text:"commands"}),". Bind commands to ",i.createEl("a",{href:"https://obsidian.md/help/hotkeys",text:"hotkeys"}),' in "Hotkeys" settings.'),i})(),page:()=>new an(this,this.plugin)},{name:"Automatic jump to cursor",desc:(()=>{let i=createFragment();return i.append("Automatically triggers ",i.createEl("code",{text:"tp.file.cursor"})," after inserting a template.",i.createEl("br"),"You can also set a hotkey to manually trigger ",i.createEl("code",{text:"tp.file.cursor"}),"."),i})(),control:{type:"toggle",key:"auto_jump_to_cursor"}},{name:"Jump to note content after creating note",desc:"When creating a new note from a template, skip the rename prompt and immediately move the cursor to the note body.",control:{type:"toggle",key:"jump_to_cursor_after_file_name"}}]}),t.push({type:"group",heading:"Syntax highlighting",items:[{name:"Syntax highlighting on desktop",desc:"Adds syntax highlighting for Templater commands in edit mode.",control:{type:"toggle",key:"syntax_highlighting"}},{name:"Syntax highlighting on mobile",desc:"Adds syntax highlighting for Templater commands in edit mode on mobile. Use with caution: this may break live preview on mobile platforms.",control:{type:"toggle",key:"syntax_highlighting_mobile"}}]}),t.push({type:"group",heading:"File creation",items:this.fileCreationGroup(r)}),t.push({type:"group",heading:"Startup templates",items:[{name:"Enable startup templates",desc:createFragment(i=>{i.append("Enables templates to run automatically when Templater starts.",createEl("br"),createEl("br"),createSpan({text:"This setting is stored on this device only and must be enabled separately on each device.",cls:"mod-warning"}))}),control:{type:"toggle",key:"enable_startup_templates"}},{type:"page",name:"Startup templates",desc:"Templates that run once when Templater starts. These output nothing and are useful for setting up event hooks.",items:[this.startupTemplatesGroup()],visible:()=>r.enable_startup_templates}]}),t.push({type:"group",heading:"User scripts",items:this.userScriptItems()}),t.push({type:"group",heading:"User system commands",items:this.systemCommandItems(r)}),t}fileCreationGroup(t){let r=createFragment();r.append("Templater will listen for the new file creation event, and, if it matches a rule you've set, replace every command it finds in the new file's content. ","This makes Templater compatible with other plugins like the Daily note core plugin, Calendar plugin, Review plugin, Note refactor plugin, etc. ",createEl("br"),createEl("br"),createSpan({text:"This setting is stored on this device only and must be enabled separately on each device.",cls:"mod-warning"}));let i=createEl("ul");i.appendChild(createEl("li",{text:"None: Do not auto apply templates. Templater will still listen for the new file creation event and replace every command it finds in the new file's content."})),i.appendChild(createEl("li",{text:"Folder templates: Apply templates based on folder structure."})),i.appendChild(createEl("li",{text:"File regex templates: Apply templates based on regex file name patterns."}));let n=createFragment();n.append("Choose the matching mode for triggering templates on file creation.",n.createEl("br"),i);let a=createFragment();a.append("If there is a match, Templater will apply the corresponding template to the new file.",a.createEl("br"),"The most specific (deepest) matching folder wins, so a rule for a subfolder takes precedence over a rule for its parent.",a.createEl("br"),"Add a rule for ",a.createEl("code",{text:"/"})," if you need a catch-all.");let s=createFragment();return s.append("File regex templates are applied based on the regex file path patterns you define.",s.createEl("br"),"File regex templates are processed in order, so if a file matches multiple regex templates, only the first match will be applied.",s.createEl("br"),"Add a rule for ",s.createEl("code",{text:".*"})," if you need a catch-all."),[{name:"Trigger Templater on new file creation",desc:r,control:{type:"toggle",key:"trigger_on_file_creation"}},{type:"page",name:"Excluded folders",desc:"New files created in these folders will never trigger Templater.",items:[this.ignoreFoldersGroup()],visible:()=>t.trigger_on_file_creation},{name:"Template matching mode",desc:n,control:{type:"dropdown",key:"trigger_on_file_creation_mode",options:{none:"None",folder:"Folder templates",regex:"File regex templates"}},visible:()=>t.trigger_on_file_creation},{type:"page",name:"Folder templates",desc:a,items:[this.folderTemplatesGroup()],visible:()=>t.trigger_on_file_creation&&this.plugin.settings.trigger_on_file_creation_mode==="folder"},{type:"page",name:"File regex templates",desc:s,items:[this.fileTemplatesGroup()],visible:()=>t.trigger_on_file_creation&&this.plugin.settings.trigger_on_file_creation_mode==="regex"}]}ignoreFoldersGroup(){return{type:"list",addItem:{name:"Add folder",action:()=>{new Zi(this.app,t=>{this.plugin.settings.ignore_folders_on_creation.push({folder:t}),this.update(),this.plugin.save_settings()}).open()}},onDelete:t=>{this.plugin.settings.ignore_folders_on_creation.splice(t,1),this.update(),this.plugin.save_settings()},emptyState:"No exclusions added.",items:this.plugin.settings.ignore_folders_on_creation.map(t=>({name:t.folder,searchable:!1}))}}folderTemplatesGroup(){let t=(r,i,n)=>{new Xi(this.app,this.plugin,r,i,a=>{if(this.plugin.settings.folder_templates.some((s,u)=>s.folder===a&&u!==n))return"This folder already has a template associated with it"}).open()};return{type:"list",addItem:{name:"Add folder template",action:()=>{t({folder:"",template:""},(r,i)=>{this.plugin.settings.folder_templates.push({folder:r,template:i}),this.update(),this.plugin.save_settings()})}},onReorder:(r,i)=>{zi(this.plugin.settings.folder_templates,r,i),this.update(),this.plugin.save_settings()},onDelete:r=>{this.plugin.settings.folder_templates.splice(r,1),this.update(),this.plugin.save_settings()},emptyState:"No folder templates added.",items:this.plugin.settings.folder_templates.map((r,i)=>({name:r.folder,desc:r.template,action:()=>{t({folder:r.folder,template:r.template},async(n,a)=>{this.plugin.settings.folder_templates[i].folder=n,this.plugin.settings.folder_templates[i].template=a,this.update(),await this.plugin.save_settings()},i)}}))}}fileTemplatesGroup(){let t=(r,i)=>{new Qi(this.app,this.plugin,r,i).open()};return{type:"list",addItem:{name:"Add file regex template",action:()=>{t({regex:"",template:""},(r,i)=>{this.plugin.settings.file_templates.push({regex:r,template:i}),this.update(),this.plugin.save_settings()})}},onReorder:(r,i)=>{zi(this.plugin.settings.file_templates,r,i),this.update(),this.plugin.save_settings()},onDelete:r=>{this.plugin.settings.file_templates.splice(r,1),this.update(),this.plugin.save_settings()},emptyState:"No file regex templates added.",items:this.plugin.settings.file_templates.map((r,i)=>({name:r.regex,desc:r.template,action:()=>{t({regex:r.regex,template:r.template},async(n,a)=>{this.plugin.settings.file_templates[i].regex=n,this.plugin.settings.file_templates[i].template=a,this.update(),await this.plugin.save_settings()})}}))}}startupTemplatesGroup(){return{type:"list",addItem:{name:"Add new startup template",action:()=>{new en(this.app,this.plugin,t=>{this.plugin.settings.startup_templates.push(t),this.update(),this.plugin.save_settings()}).open()}},onDelete:t=>{this.plugin.settings.startup_templates.splice(t,1),this.update(),this.plugin.save_settings()},emptyState:"No startup templates added.",items:this.plugin.settings.startup_templates.map(t=>({name:t,searchable:!1}))}}userScriptItems(){let t=[];return t.push({name:"User scripts folder",desc:(()=>{let r=createFragment();return r.append("All JavaScript files in this folder will be loaded as CommonJS modules, to import custom user functions.",r.createEl("br"),"The folder needs to be accessible from the vault.",r.createEl("br"),"Check the ",r.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," for more information."),r})(),control:{type:"folder",key:"user_scripts_folder"}}),t.push({name:"User script intellisense",desc:"Determine how you'd like to have user script intellisense render. Note values will not render if not in the script.",control:{type:"dropdown",key:"intellisense_render",options:{0:"Turn off intellisense",1:"Render method description, parameters list, and return",2:"Render method description and parameters list",3:"Render method description and return",4:"Render method description"}}}),t.push({type:"page",name:"User scripts",searchable:!1,page:()=>new sn(this,this.plugin)}),t}systemCommandItems(t){let r=createFragment();return r.append("Full path to the shell binary to execute the command with.",r.createEl("br"),"This setting is optional and will default to the system's default shell if not specified.",r.createEl("br"),"You can use forward slashes (",r.createEl("code",{text:"/"}),") as path separators on all platforms if in doubt."),[{name:"Enable user system command functions",desc:createFragment(i=>{i.append("Allows you to create user functions linked to system commands.",createEl("br"),createEl("br"),createSpan({text:"This setting is stored on this device only and must be enabled separately on each device.",cls:"mod-warning"}))}),control:{type:"toggle",key:"enable_system_commands"}},{name:"Timeout",desc:"Maximum timeout in seconds for a system command.",control:{type:"number",key:"command_timeout",validate:i=>{if(isNaN(i)||i<=0)return"Timeout must be a positive number"}},visible:()=>t.enable_system_commands},{name:"Shell binary location",desc:r,control:{type:"text",key:"shell_path",placeholder:"/bin/bash"},visible:()=>t.enable_system_commands},{type:"page",name:"User system command functions",items:[this.systemCommandPairsGroup()],visible:()=>t.enable_system_commands}]}systemCommandPairsGroup(){let t=(r,i,n)=>{new tn(this.app,r,i,a=>{if(this.plugin.settings.templates_pairs.some((s,u)=>s[0]===a&&u!==n))return"This function name is already in use"}).open()};return{type:"list",addItem:{name:"Add new user function",action:()=>{t({name:"",command:""},(r,i)=>{this.plugin.settings.templates_pairs.push([r,i]),this.update(),this.plugin.save_settings()})}},onDelete:r=>{this.plugin.settings.templates_pairs.splice(r,1),this.update(),this.plugin.save_settings()},emptyState:"No user functions added.",items:this.plugin.settings.templates_pairs.map((r,i)=>({name:r[0],desc:r[1]||void 0,searchable:!1,action:()=>{t({name:r[0],command:r[1]},async(n,a)=>{this.plugin.settings.templates_pairs[i][0]=n,this.plugin.settings.templates_pairs[i][1]=a,this.update(),await this.plugin.save_settings()},i)}}))}}};function Fa(e){return!!(e&&typeof e=="object"&&!("data_version"in e))}function Ba(e){return Fa(e)?nc(e):{settings:Object.assign({},mr,e),affectedSecuritySettings:[],wasMigrated:!1}}function nc(e){let t=[];e.trigger_on_file_creation===!0&&t.push("'Trigger on file creation'"),e.enable_system_commands===!0&&t.push("'Enable system commands'"),Array.isArray(e.startup_templates)&&e.startup_templates.some(n=>n!=="")&&t.push("'Enable startup templates'");let r=e.enable_folder_templates===!0?"folder":e.enable_file_templates===!0?"regex":e.trigger_on_file_creation_mode??"none",i=Object.assign({},mr,e,{data_version:2,trigger_on_file_creation_mode:r,folder_templates:(e.folder_templates??[]).filter(n=>n.folder||n.template),file_templates:(e.file_templates??[]).filter(n=>n.template!==""),templates_pairs:(e.templates_pairs??[]).filter(([n,a])=>n||a),enabled_templates_hotkeys:(e.enabled_templates_hotkeys??[]).filter(n=>n),startup_templates:(e.startup_templates??[]).filter(n=>n),ignore_folders_on_creation:(e.ignore_folders_on_creation??[]).filter(n=>n.folder)});typeof e.intellisense_render=="number"&&(i.intellisense_render=String(e.intellisense_render));for(let n of["trigger_on_file_creation","enable_system_commands","enable_folder_templates","enable_file_templates"])delete i[n];return{settings:i,affectedSecuritySettings:t,wasMigrated:!0}}var ri=$(require("obsidian"));var Gt;(function(r){r[r.InsertTemplate=0]="InsertTemplate",r[r.CreateNoteTemplate=1]="CreateNoteTemplate"})(Gt||(Gt={}));var cn=class extends ri.FuzzySuggestModal{constructor(t){super(t.app);this.plugin=t,this.setPlaceholder("Type name of a template..."),this.containerEl.addClass("templater-fuzzy-suggester-modal")}getItems(){if(!this.plugin.settings.templates_folder)return this.app.vault.getMarkdownFiles();let t=he(()=>je(this.plugin.app,this.plugin.settings.templates_folder),`Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`);return t||[]}getItemText(t){let r=t.path;if(t.path.startsWith(this.plugin.settings.templates_folder)&&(0,ri.normalizePath)(this.plugin.settings.templates_folder)!="/"){let i=this.plugin.settings.templates_folder.length,n;i===0?n=0:this.plugin.settings.templates_folder.endsWith("/")?n=i:n=i+1,r=t.path.slice(n)}return r.split(".").slice(0,-1).join(".")}onChooseItem(t){switch(this.open_mode){case 0:this.plugin.templater.append_template_to_active_file(t);break;case 1:this.plugin.templater.create_new_note_from_template(t,this.creation_folder);break}}start(){try{this.open()}catch(t){le(t instanceof Error?t:new Error(String(t)))}}insert_template(){this.open_mode=0,this.start()}create_new_note_from_template(t){this.creation_folder=t,this.open_mode=1,this.start()}};var Oa="Error_MobileUnsupportedTemplate",qa='';var X=$(require("obsidian"));var tt=$(require("obsidian"));var de=class{constructor(t){this.plugin=t;this.static_functions=new Map;this.dynamic_functions=new Map}getName(){return this.name}async init(){await this.create_static_templates(),this.static_object=Object.fromEntries(this.static_functions)}async generate_object(t){return this.config=t,await this.create_dynamic_templates(),{...this.static_object,...Object.fromEntries(this.dynamic_functions)}}};var un=class extends de{constructor(){super(...arguments);this.name="date"}async create_static_templates(){this.static_functions.set("now",this.generate_now()),this.static_functions.set("tomorrow",this.generate_tomorrow()),this.static_functions.set("weekday",this.generate_weekday()),this.static_functions.set("yesterday",this.generate_yesterday())}async create_dynamic_templates(){}async teardown(){}generate_now(){return(t="YYYY-MM-DD",r,i,n)=>{if(i&&!(0,tt.moment)(i,n).isValid())throw new C("Invalid reference date format, try specifying one with the argument 'reference_format'");let a;return typeof r=="string"?a=tt.moment.duration(r):typeof r=="number"&&(a=tt.moment.duration(r,"days")),(0,tt.moment)(i,n).add(a).format(t)}}generate_tomorrow(){return(t="YYYY-MM-DD")=>(0,tt.moment)().add(1,"days").format(t)}generate_weekday(){return(t="YYYY-MM-DD",r,i,n)=>{if(i&&!(0,tt.moment)(i,n).isValid())throw new C("Invalid reference date format, try specifying one with the argument 'reference_format'");return(0,tt.moment)(i,n).weekday(r).format(t)}}generate_yesterday(){return(t="YYYY-MM-DD")=>(0,tt.moment)().add(-1,"days").format(t)}};var ee=$(require("obsidian"));var La=10,ln=class extends de{constructor(){super(...arguments);this.name="file";this.include_depth=0;this.create_new_depth=0;this.linkpath_regex=new RegExp("^\\[\\[(.*)\\]\\]$")}async create_static_templates(){this.static_functions.set("creation_date",this.generate_creation_date()),this.static_functions.set("create_new",this.generate_create_new()),this.static_functions.set("cursor",this.generate_cursor()),this.static_functions.set("cursor_append",this.generate_cursor_append()),this.static_functions.set("exists",this.generate_exists()),this.static_functions.set("find_tfile",this.generate_find_tfile()),this.static_functions.set("folder",this.generate_folder()),this.static_functions.set("include",this.generate_include()),this.static_functions.set("last_modified_date",this.generate_last_modified_date()),this.static_functions.set("move",this.generate_move()),this.static_functions.set("path",this.generate_path()),this.static_functions.set("rename",this.generate_rename()),this.static_functions.set("selection",this.generate_selection())}async create_dynamic_templates(){this.dynamic_functions.set("content",await this.generate_content()),this.dynamic_functions.set("tags",this.generate_tags()),this.dynamic_functions.set("title",this.generate_title())}async teardown(){}async generate_content(){return await this.plugin.app.vault.read(this.config.target_file)}generate_create_new(){return async(t,r,i=!1,n)=>{if(this.create_new_depth+=1,this.create_new_depth>La)throw this.create_new_depth=0,new C("Reached create_new depth limit (max = 10)");let a=await this.plugin.templater.create_new_note_from_template(t,n,r,i);return this.create_new_depth-=1,a}}generate_creation_date(){return(t="YYYY-MM-DD HH:mm")=>(0,ee.moment)(this.config.target_file.stat.ctime).format(t)}generate_cursor(){return t=>`<% tp.file.cursor(${t??""}) %>`}generate_cursor_append(){return t=>{let r=this.plugin.app.workspace.activeEditor;if(!r||!r.editor){le(new C("No active editor, can't append to cursor."));return}return r.editor.getDoc().replaceSelection(t),""}}generate_exists(){return async t=>{let r=(0,ee.normalizePath)(t);return await this.plugin.app.vault.exists(r)}}generate_find_tfile(){return t=>{let r=(0,ee.normalizePath)(t);return this.plugin.app.metadataCache.getFirstLinkpathDest(r,"")}}generate_folder(){return(t=!1)=>{let r=this.config.target_file.parent;if(!(r instanceof ee.TFolder))return"";let i;return t?i=r.path:i=r.name,i}}generate_include(){return async t=>{if(this.include_depth+=1,this.include_depth>La)throw this.include_depth-=1,new C("Reached inclusion depth limit (max = 10)");let r;if(t instanceof ee.TFile)r=await this.plugin.app.vault.read(t);else{let i;if((i=this.linkpath_regex.exec(t))===null)throw this.include_depth-=1,new C("Invalid file format, provide an obsidian link between quotes.");let{path:n,subpath:a}=(0,ee.parseLinktext)(i[1]),s=this.plugin.app.metadataCache.getFirstLinkpathDest(n,"");if(!s)throw this.include_depth-=1,new C(`File ${t} doesn't exist`);if(r=await this.plugin.app.vault.read(s),a){let u=this.plugin.app.metadataCache.getFileCache(s);if(u){let l=(0,ee.resolveSubpath)(u,a);l&&(r=r.slice(l.start.offset,l.end?.offset))}}}try{let i=await this.plugin.templater.parser.parse_commands(r,this.plugin.templater.current_functions_object);return this.include_depth-=1,i}catch(i){throw this.include_depth-=1,i}}}generate_last_modified_date(){return(t="YYYY-MM-DD HH:mm")=>(0,ee.moment)(this.config.target_file.stat.mtime).format(t)}generate_move(){return async(t,r)=>{let i=r||this.config.target_file,n=(0,ee.normalizePath)(`${t}.${i.extension}`),a=n.replace(/\\/g,"/").split("/");if(a.pop(),a.length){let s=a.join("/");this.plugin.app.vault.getAbstractFileByPath(s)||await this.plugin.app.vault.createFolder(s)}return await this.plugin.app.fileManager.renameFile(i,n),""}}generate_path(){return(t=!1)=>{let r="";if(ee.Platform.isMobile){let i=this.plugin.app.vault.adapter.fs.uri,n=this.plugin.app.vault.adapter.basePath;r=`${i}/${n}`}else if(this.plugin.app.vault.adapter instanceof ee.FileSystemAdapter)r=this.plugin.app.vault.adapter.getBasePath();else throw new C("app.vault is not a FileSystemAdapter instance");return t?this.config.target_file.path:`${r}/${this.config.target_file.path}`}}generate_rename(){return async t=>{if(t.match(/[\\/:]+/g))throw new C("File name cannot contain any of these characters: \\ / :");let r=this.config.target_file.parent;if(!(r instanceof ee.TFolder))return"";let i=(0,ee.normalizePath)(`${r.path}/${t}.${this.config.target_file.extension}`);return await this.plugin.app.fileManager.renameFile(this.config.target_file,i),""}}generate_selection(){return()=>{let t=this.plugin.app.workspace.activeEditor;if(!t||!t.editor)throw new C("Active editor is null, can't read selection.");return t.editor.getSelection()}}generate_tags(){let t=this.plugin.app.metadataCache.getFileCache(this.config.target_file);return t?(0,ee.getAllTags)(t):null}generate_title(){return this.config.target_file.basename}};var ii=$(require("obsidian"));var Ra="en",Va={en:"https://raw.githubusercontent.com/Zachatoo/quotes-database/refs/heads/main/quotes.json",es:"https://raw.githubusercontent.com/wulflo/frases-inventario/refs/heads/main/quotes.json"},pn=class extends de{constructor(){super(...arguments);this.name="web"}async create_static_templates(){this.static_functions.set("daily_quote",this.generate_daily_quote()),this.static_functions.set("request",this.generate_request()),this.static_functions.set("random_picture",this.generate_random_picture())}async create_dynamic_templates(){}async teardown(){}async getRequest(t){try{let r=await(0,ii.requestUrl)(t);if(r.status<200&&r.status>=300)throw new C("Error performing GET request");return r}catch{throw new C("Error performing GET request")}}generate_daily_quote(){return async t=>{try{let r=(t||(0,ii.getLanguage)()||Ra).toLowerCase(),i=Va[r]??Va[Ra],a=(await this.getRequest(i)).json,s=a[Math.floor(Math.random()*a.length)],{quote:u,author:l}=s;return`> [!quote] ${u} > \u2014 ${l}`}catch{return new C("Error generating daily quote"),"Error generating daily quote"}}}generate_random_picture(){return async(t,r,i=!1)=>{try{let n=await this.getRequest(`https://templater-unsplash-2.fly.dev/${r?"?q="+r:""}`).then(s=>s.json),a=n.full;if(t&&!i)if(t.includes("x")){let[s,u]=t.split("x");a=a.concat(`&w=${s}&h=${u}`)}else a=a.concat(`&w=${t}`);return i?`![photo by ${n.photog}(${n.photogUrl}) on Unsplash|${t}](${a})`:`![photo by ${n.photog}(${n.photogUrl}) on Unsplash](${a})`}catch{return new C("Error generating random picture"),"Error generating random picture"}}}generate_request(){return async(t,r)=>{try{let n=(await this.getRequest(t)).json;return r&&n?r.split(".").reduce((a,s)=>{if(Object.prototype.hasOwnProperty.call(a,s))return a[s];throw new Error(`Path ${r} not found in the JSON response`)},n):n}catch(i){throw console.error(i),new C("Error fetching and extracting value")}}}};var fn=class extends de{constructor(){super(...arguments);this.name="hooks";this.event_refs=[]}async create_static_templates(){this.static_functions.set("on_all_templates_executed",this.generate_on_all_templates_executed())}async create_dynamic_templates(){}async teardown(){this.event_refs.forEach(t=>{t.e.offref(t)}),this.event_refs=[]}generate_on_all_templates_executed(){return t=>{let r=this.plugin.app.workspace.on("templater:all-templates-executed",async()=>{await lt(1),t()});r&&this.event_refs.push(r)}}};var hn=class extends de{constructor(){super(...arguments);this.name="frontmatter"}async create_static_templates(){}async create_dynamic_templates(){let t=this.plugin.app.metadataCache.getFileCache(this.config.target_file);this.dynamic_functions=new Map(Object.entries(t?.frontmatter||{}))}async teardown(){}};var He=$(require("obsidian"));var dn=class extends He.Modal{constructor(t,r,i,n,a){super(t);this.prompt_text=r;this.default_value=i;this.multi_line=n;this.select_default_value=a;this.submitted=!1}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty(),this.submitted||this.reject(new C("Cancelled prompt"))}createForm(){let t=this.contentEl.createDiv();t.addClass("templater-prompt-div");let r;this.multi_line?r=new He.TextAreaComponent(t):r=new He.TextComponent(t);let i=this.contentEl.createDiv();i.addClass("templater-button-div");let n=new He.ButtonComponent(i);n.buttonEl.addClass("mod-cta"),n.setButtonText("Submit").onClick(a=>{this.resolveAndClose(a)}),this.value=this.default_value??"",r.inputEl.addClass("templater-prompt-input"),r.setPlaceholder("Type text here"),r.setValue(this.value),r.onChange(a=>this.value=a),r.inputEl.focus(),this.select_default_value&&r.inputEl.select(),r.inputEl.addEventListener("keydown",a=>this.enterCallback(a))}enterCallback(t){t.isComposing||t.keyCode===229||(this.multi_line?He.Platform.isDesktop&&t.key==="Enter"&&!t.shiftKey&&this.resolveAndClose(t):t.key==="Enter"&&this.resolveAndClose(t))}resolveAndClose(t){this.submitted=!0,t.preventDefault(),this.resolve(this.value),this.close()}async openAndGetValue(t,r){this.resolve=t,this.reject=r,this.open()}};var Ha=$(require("obsidian")),mn=class extends Ha.FuzzySuggestModal{constructor(t,r,i,n,a,s){super(t);this.text_items=r;this.items=i;this.default_value=s;this.submitted=!1;this.containerEl.addClass("templater-suggester-modal"),this.setPlaceholder(n),a&&(this.limit=a)}getItems(){return this.items}onOpen(){super.onOpen(),this.default_value!==void 0&&(this.inputEl.value=this.getItemText(this.default_value),this.inputEl.dispatchEvent(new InputEvent("input")))}onClose(){this.submitted||this.reject(new C("Cancelled prompt"))}selectSuggestion(t,r){this.submitted=!0,this.close(),this.onChooseSuggestion(t,r)}getItemText(t){return this.text_items instanceof Function?this.text_items(t):this.text_items[this.items.indexOf(t)]||"Undefined Text Item"}onChooseItem(t){this.resolve(t)}async openAndGetValue(t,r){this.resolve=t,this.reject=r,this.open()}};var be=$(require("obsidian")),gn=class extends be.Modal{constructor(t,r,i,n,a,s){super(t);this.text_items=r;this.items=i;this.submitted=!1;this.selectedItems=[];this.setTitle(n),this.listEl=this.contentEl.createDiv("templater-multisuggester-list");let u=this.contentEl.createDiv("templater-multisuggester-div"),l=new be.TextComponent(u);l.inputEl.addClass("templater-multisuggester-input"),this.suggester=new Ka(t,l.inputEl,m=>this.getItemText(m),i,a).onSelect(m=>this.onChooseItem(m));let h=this.contentEl.createDiv("modal-button-container");new be.ButtonComponent(h).setButtonText("Save").setCta().onClick(()=>this.save()),new be.ButtonComponent(h).setButtonText("Cancel").onClick(()=>this.close()),s&&(this.selectedItems=s)}onOpen(){this.processSelectedItems()}display(){this.listEl.empty(),this.selectedItems.forEach(t=>{let r=this.listEl.createDiv("mobile-option-setting-item");r.createSpan("mobile-option-setting-item-name").setText(this.getItemText(t)),r.createDiv("clickable-icon mobile-option-setting-item-option-icon",i=>{(0,be.setIcon)(i,"lucide-x"),i.addEventListener("click",()=>{this.onRemoveItem(t)})})})}getItemText(t){return this.text_items instanceof Function?this.text_items(t):this.text_items[this.items.indexOf(t)]||"Undefined Text Item"}onChooseItem(t){this.selectedItems.push(t),this.processSelectedItems()}processSelectedItems(){let t=this.items.filter(r=>!this.selectedItems.some(i=>i===r));this.suggester.setItems(t),this.display()}onRemoveItem(t){this.selectedItems=this.selectedItems.filter(i=>i!==t);let r=this.items.filter(i=>!this.selectedItems.some(n=>n===i));this.suggester.setItems(r),this.display()}save(){this.submitted=!0,this.close(),this.resolve(this.selectedItems)}onClose(){this.submitted||this.reject(new C("Cancelled prompt"))}async openAndGetValue(t,r){this.resolve=t,this.reject=r,this.open()}},Ka=class extends be.AbstractInputSuggest{constructor(t,r,i,n,a){super(t,r);this.getItemText=i;this.items=n;a&&(this.limit=a)}getSuggestions(t){let r=(0,be.prepareFuzzySearch)(t);return this.items.reduce((i,n)=>{let a=this.getItemText(n);return r(a)&&i.push(n),i},[])}renderSuggestion(t,r){r.createDiv("suggestion-content").setText(this.getItemText(t))}setItems(t){this.items=t}selectSuggestion(t,r){this.setValue(""),this.close(),super.selectSuggestion(t,r)}};var An=class extends de{constructor(){super(...arguments);this.name="system"}async create_static_templates(){this.static_functions.set("clipboard",this.generate_clipboard()),this.static_functions.set("prompt",this.generate_prompt()),this.static_functions.set("suggester",this.generate_suggester()),this.static_functions.set("multi_suggester",this.generate_multi_suggester())}async create_dynamic_templates(){}async teardown(){}generate_clipboard(){return async()=>await navigator.clipboard.readText()}generate_prompt(){return async(t,r,i=!1,n=!1,a=!1)=>{let s=new dn(this.plugin.app,t,r,n,a),u=new Promise((l,h)=>{s.openAndGetValue(l,h)});try{return await u}catch(l){if(i)throw l;return null}}}generate_suggester(){return async(t,r,i=!1,n="",a,s)=>{let u=new mn(this.plugin.app,t,r,n,a,s),l=new Promise((h,m)=>{u.openAndGetValue(h,m)});try{return await l}catch(h){if(i)throw h;return null}}}generate_multi_suggester(){return async(t,r,i=!1,n="",a,s)=>{let u=new gn(this.plugin.app,t,r,n,a,s),l=new Promise((h,m)=>{u.openAndGetValue(h,m)});try{return await l}catch(h){if(i)throw h;return[]}}}};var _n=class extends de{constructor(){super(...arguments);this.name="config"}async create_static_templates(){}async create_dynamic_templates(){}async teardown(){}async generate_object(t){return t}};var xn=class{constructor(t){this.plugin=t;this.modules_array=[];this.modules_array.push(new un(this.plugin)),this.modules_array.push(new ln(this.plugin)),this.modules_array.push(new pn(this.plugin)),this.modules_array.push(new hn(this.plugin)),this.modules_array.push(new fn(this.plugin)),this.modules_array.push(new An(this.plugin)),this.modules_array.push(new _n(this.plugin))}async init(){for(let t of this.modules_array)await t.init()}async teardown(){for(let t of this.modules_array)await t.teardown()}async generate_object(t){let r={};for(let i of this.modules_array)r[i.getName()]=await i.generate_object(t);return r}};var gr=$(require("obsidian"));var yn=class{constructor(t){this.plugin=t;if(gr.Platform.isMobile||!(this.plugin.app.vault.adapter instanceof gr.FileSystemAdapter))this.cwd="";else{this.cwd=this.plugin.app.vault.adapter.getBasePath();let{promisify:r}=require("util"),{exec:i}=require("child_process");this.exec_promise=r(i)}}async generate_system_functions(t){let r=new Map,i=await this.plugin.templater.functions_generator.generate_object(t,Ke.INTERNAL);for(let n of this.plugin.settings.templates_pairs){let a=n[0],s=n[1];!a||!s||(gr.Platform.isMobile?r.set(a,()=>new Promise(u=>u(Oa))):(s=await this.plugin.templater.parser.parse_commands(s,i),r.set(a,async u=>{if(!this.exec_promise)return"";let l={...process.env,...u},h={timeout:this.plugin.settings.command_timeout*1e3,cwd:this.cwd,env:l,...this.plugin.settings.shell_path&&{shell:this.plugin.settings.shell_path}};try{let{stdout:m}=await this.exec_promise(s,h);return m.trimRight()}catch(m){throw new C(`Error with User Template ${a}`,m instanceof Error?m.message:String(m))}})))}return r}async generate_object(t){let r=await this.generate_system_functions(t);return Object.fromEntries(r)}};var vn=class{constructor(t){this.plugin=t}async generate_user_script_functions(){let t=new Map,r=he(()=>je(this.plugin.app,this.plugin.settings.user_scripts_folder),`Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`);if(!r)return new Map;for(let i of r)i.extension.toLowerCase()==="js"&&await this.load_user_script_function(i,t);return t}async load_user_script_function(t,r){let i=l=>window.require&&window.require(l),n={},a={exports:n},s=await this.plugin.app.vault.read(t);try{window.eval("(function anonymous(require, module, exports){"+s+` })`)(i,a,n)}catch(l){throw new C(`Failed to load user script at "${t.path}".`,l instanceof Error?l.message:String(l))}let u=n.default??a.exports;if(!u)throw new C(`Failed to load user script at "${t.path}". No exports detected.`);if(typeof u=="function")r.set(t.basename,u);else if(typeof u=="object"&&u!==null){if(!Object.values(u).every(h=>typeof h=="function"))throw new C(`Exported object in "${t.path}" must contain only functions.`);r.set(t.basename,u)}else throw new C(`Invalid export in "${t.path}". Must be a function or object of functions.`)}async generate_object(){let t=await this.generate_user_script_functions();return Object.fromEntries(t)}};var bn=class{constructor(t){this.plugin=t;this.user_system_functions=new yn(t),this.user_script_functions=new vn(t)}async generate_object(t){let r={},i={};return Ve(this.plugin.app).enable_system_commands&&(r=await this.user_system_functions.generate_object(t)),this.plugin.settings.user_scripts_folder&&(i=await this.user_script_functions.generate_object()),{...r,...i}}};var ac=$(require("obsidian")),Ke;(function(r){r[r.INTERNAL=0]="INTERNAL",r[r.USER_INTERNAL=1]="USER_INTERNAL"})(Ke||(Ke={}));var wn=class{constructor(t){this.plugin=t;this.internal_functions=new xn(this.plugin),this.user_functions=new bn(this.plugin)}async init(){await this.internal_functions.init()}async teardown(){await this.internal_functions.teardown()}additional_functions(){return{app:this.plugin.app,obsidian:ac}}async generate_object(t,r=1){let i={},n=this.additional_functions(),a=await this.internal_functions.generate_object(t),s={};switch(Object.assign(i,n),r){case 0:Object.assign(i,a);break;case 1:s=await this.user_functions.generate_object(t),Object.assign(i,{...a,user:s});break}return i}};var mc={},S,Be=new Array(32).fill(void 0);Be.push(void 0,null,!0,!1);function we(e){return Be[e]}var Ar=Be.length;function sc(e){e<36||(Be[e]=Ar,Ar=e)}function kn(e){let t=we(e);return sc(e),t}var Ua=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Ua.decode();var ni=new Uint8Array;function ai(){return ni.byteLength===0&&(ni=new Uint8Array(S.memory.buffer)),ni}function ht(e,t){return Ua.decode(ai().subarray(e,e+t))}function dt(e){Ar===Be.length&&Be.push(Be.length+1);let t=Ar;return Ar=Be[t],Be[t]=e,t}var Oe=0,si=new TextEncoder("utf-8"),oc=typeof si.encodeInto=="function"?function(e,t){return si.encodeInto(e,t)}:function(e,t){let r=si.encode(e);return t.set(r),{read:e.length,written:r.length}};function rt(e,t,r){if(r===void 0){let u=si.encode(e),l=t(u.length);return ai().subarray(l,l+u.length).set(u),Oe=u.length,l}let i=e.length,n=t(i),a=ai(),s=0;for(;s127)break;a[n+s]=u}if(s!==i){s!==0&&(e=e.slice(s)),n=r(n,i,i=s+e.length*3);let u=ai().subarray(n+s,n+i);s+=oc(e,u).written}return Oe=s,n}function cc(e){return e==null}var oi=new Int32Array;function ke(){return oi.byteLength===0&&(oi=new Int32Array(S.memory.buffer)),oi}function jn(e){let t=typeof e;if(t=="number"||t=="boolean"||e==null)return`${e}`;if(t=="string")return`"${e}"`;if(t=="symbol"){let n=e.description;return n==null?"Symbol":`Symbol(${n})`}if(t=="function"){let n=e.name;return typeof n=="string"&&n.length>0?`Function(${n})`:"Function"}if(Array.isArray(e)){let n=e.length,a="[";n>0&&(a+=jn(e[0]));for(let s=1;s1)i=r[1];else return toString.call(e);if(i=="Object")try{return"Object("+JSON.stringify(e)+")"}catch{return"Object"}return e instanceof Error?`${e.name}: ${e.message} ${e.stack}`:i}function uc(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}var ci=32;function lc(e){if(ci==1)throw new Error("out of js stack");return Be[--ci]=e,ci}function Tn(e,t){try{return e.apply(this,t)}catch(r){S.__wbindgen_exn_store(dt(r))}}var Et=class{static __wrap(t){let r=Object.create(Et.prototype);return r.ptr=t,r}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();S.__wbg_parserconfig_free(t)}get interpolate(){let t=S.__wbg_get_parserconfig_interpolate(this.ptr);return String.fromCodePoint(t)}set interpolate(t){S.__wbg_set_parserconfig_interpolate(this.ptr,t.codePointAt(0))}get execution(){let t=S.__wbg_get_parserconfig_execution(this.ptr);return String.fromCodePoint(t)}set execution(t){S.__wbg_set_parserconfig_execution(this.ptr,t.codePointAt(0))}get single_whitespace(){let t=S.__wbg_get_parserconfig_single_whitespace(this.ptr);return String.fromCodePoint(t)}set single_whitespace(t){S.__wbg_set_parserconfig_single_whitespace(this.ptr,t.codePointAt(0))}get multiple_whitespace(){let t=S.__wbg_get_parserconfig_multiple_whitespace(this.ptr);return String.fromCodePoint(t)}set multiple_whitespace(t){S.__wbg_set_parserconfig_multiple_whitespace(this.ptr,t.codePointAt(0))}constructor(t,r,i,n,a,s,u){let l=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),h=Oe,m=rt(r,S.__wbindgen_malloc,S.__wbindgen_realloc),_=Oe,T=rt(u,S.__wbindgen_malloc,S.__wbindgen_realloc),F=Oe,O=S.parserconfig_new(l,h,m,_,i.codePointAt(0),n.codePointAt(0),a.codePointAt(0),s.codePointAt(0),T,F);return Et.__wrap(O)}get opening_tag(){try{let i=S.__wbindgen_add_to_stack_pointer(-16);S.parserconfig_opening_tag(i,this.ptr);var t=ke()[i/4+0],r=ke()[i/4+1];return ht(t,r)}finally{S.__wbindgen_add_to_stack_pointer(16),S.__wbindgen_free(t,r)}}set opening_tag(t){let r=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),i=Oe;S.parserconfig_set_opening_tag(this.ptr,r,i)}get closing_tag(){try{let i=S.__wbindgen_add_to_stack_pointer(-16);S.parserconfig_closing_tag(i,this.ptr);var t=ke()[i/4+0],r=ke()[i/4+1];return ht(t,r)}finally{S.__wbindgen_add_to_stack_pointer(16),S.__wbindgen_free(t,r)}}set closing_tag(t){let r=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),i=Oe;S.parserconfig_set_closing_tag(this.ptr,r,i)}get global_var(){try{let i=S.__wbindgen_add_to_stack_pointer(-16);S.parserconfig_global_var(i,this.ptr);var t=ke()[i/4+0],r=ke()[i/4+1];return ht(t,r)}finally{S.__wbindgen_add_to_stack_pointer(16),S.__wbindgen_free(t,r)}}set global_var(t){let r=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),i=Oe;S.parserconfig_set_global_var(this.ptr,r,i)}},Yt=class{static __wrap(t){let r=Object.create(Yt.prototype);return r.ptr=t,r}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();S.__wbg_renderer_free(t)}constructor(t){uc(t,Et);var r=t.ptr;t.ptr=0;let i=S.renderer_new(r);return Yt.__wrap(i)}render_content(t,r){try{let s=S.__wbindgen_add_to_stack_pointer(-16),u=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),l=Oe;S.renderer_render_content(s,this.ptr,u,l,lc(r));var i=ke()[s/4+0],n=ke()[s/4+1],a=ke()[s/4+2];if(a)throw kn(n);return kn(i)}finally{S.__wbindgen_add_to_stack_pointer(16),Be[ci++]=void 0}}};async function pc(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function fc(){let e={};return e.wbg={},e.wbg.__wbindgen_object_drop_ref=function(t){kn(t)},e.wbg.__wbindgen_string_new=function(t,r){let i=ht(t,r);return dt(i)},e.wbg.__wbindgen_string_get=function(t,r){let i=we(r),n=typeof i=="string"?i:void 0;var a=cc(n)?0:rt(n,S.__wbindgen_malloc,S.__wbindgen_realloc),s=Oe;ke()[t/4+1]=s,ke()[t/4+0]=a},e.wbg.__wbg_call_97ae9d8645dc388b=function(){return Tn(function(t,r){let i=we(t).call(we(r));return dt(i)},arguments)},e.wbg.__wbg_new_8d2af00bc1e329ee=function(t,r){let i=new Error(ht(t,r));return dt(i)},e.wbg.__wbg_message_fe2af63ccc8985bc=function(t){let r=we(t).message;return dt(r)},e.wbg.__wbg_newwithargs_8fe23e3842840c8e=function(t,r,i,n){let a=new Function(ht(t,r),ht(i,n));return dt(a)},e.wbg.__wbg_call_168da88779e35f61=function(){return Tn(function(t,r,i){let n=we(t).call(we(r),we(i));return dt(n)},arguments)},e.wbg.__wbg_call_3999bee59e9f7719=function(){return Tn(function(t,r,i,n){let a=we(t).call(we(r),we(i),we(n));return dt(a)},arguments)},e.wbg.__wbindgen_debug_string=function(t,r){let i=jn(we(r)),n=rt(i,S.__wbindgen_malloc,S.__wbindgen_realloc),a=Oe;ke()[t/4+1]=a,ke()[t/4+0]=n},e.wbg.__wbindgen_throw=function(t,r){throw new Error(ht(t,r))},e}function hc(e,t){}function dc(e,t){return S=e.exports,$a.__wbindgen_wasm_module=t,oi=new Int32Array,ni=new Uint8Array,S}async function $a(e){typeof e=="undefined"&&(e=new URL("rusty_engine_bg.wasm",mc.url));let t=fc();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e)),hc(t);let{instance:r,module:i}=await pc(await e,t);return dc(r,i)}var Ga=$a;var Ya=ma("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4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EBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQA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ASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGot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AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiAC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AiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQML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AX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEg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BAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAA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");var En=class{async init(){await Ga(Ya);let t=new Et("<%","%>","\0","*","-","_","tR");this.renderer=new Yt(t)}async parse_commands(t,r){return this.renderer.render_content(t,r)}};var Ue;(function(s){s[s.CreateNewFromTemplate=0]="CreateNewFromTemplate",s[s.AppendActiveFile=1]="AppendActiveFile",s[s.OverwriteFile=2]="OverwriteFile",s[s.OverwriteActiveFile=3]="OverwriteActiveFile",s[s.DynamicProcessor=4]="DynamicProcessor",s[s.StartupTemplate=5]="StartupTemplate"})(Ue||(Ue={}));var zt=class{constructor(t){this.plugin=t;this.functions_generator=new wn(this.plugin),this.parser=new En}async setup(){this.files_with_pending_templates=new Set,await this.parser.init(),await this.functions_generator.init(),this.plugin.registerMarkdownPostProcessor((t,r)=>this.process_dynamic_templates(t,r))}create_running_config(t,r,i){let n=pt(this.plugin.app);return{template_file:t,target_file:r,run_mode:i,active_file:n}}async read_and_parse_template(t){if(!(t.template_file instanceof X.TFile))throw new C("Template file is not a TFile");let r=await this.plugin.app.vault.read(t.template_file);return this.parse_template(t,r)}async parse_template(t,r){let i=await this.functions_generator.generate_object(t,Ke.USER_INTERNAL);return this.current_functions_object=i,await this.parser.parse_commands(r,i)}start_templater_task(t){this.files_with_pending_templates.add(t)}async end_templater_task(t){this.files_with_pending_templates.delete(t),this.files_with_pending_templates.size===0&&(this.plugin.app.workspace.trigger("templater:all-templates-executed"),await this.functions_generator.teardown())}async create_new_note_from_template(t,r,i,n=!0){if(!r)switch(this.plugin.app.vault.getConfig("newFileLocation")){case"current":{let _=pt(this.plugin.app);_&&(r=_.parent instanceof X.TFolder?_.parent:void 0);break}case"folder":r=this.plugin.app.fileManager.getNewFileParent("");break;case"root":r=this.plugin.app.vault.getRoot();break;default:break}let a=t instanceof X.TFile&&t.extension||"md",s=await me(async()=>{let m=r instanceof X.TFolder?r.path:r,_=this.plugin.app.vault.getAvailablePath((0,X.normalizePath)(`${m??""}/${i||"Untitled"}`),a),T=Qr(_);return T&&!this.plugin.app.vault.getAbstractFileByPathInsensitive(T)&&await this.plugin.app.vault.createFolder(T),this.plugin.app.vault.create(_,"")},`Couldn't create ${a} file.`);if(s==null)return;let{path:u}=s;this.start_templater_task(u);let l,h;if(t instanceof X.TFile?(l=this.create_running_config(t,s,0),h=await me(async()=>this.read_and_parse_template(l),"Template parsing error, aborting.")):(l=this.create_running_config(void 0,s,0),h=await me(async()=>this.parse_template(l,t),"Template parsing error, aborting.")),h==null){await this.plugin.app.vault.delete(s),await this.end_templater_task(u);return}if(await this.plugin.app.vault.modify(s,h),this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:s,content:h}),n){let m=this.plugin.app.workspace.getLeaf(!1);if(!m){le(new C("No active leaf"));return}await m.openFile(s,{state:{mode:"source"}}),await this.plugin.editor_handler.jump_to_next_cursor_location(s,!0),this.plugin.settings.jump_to_cursor_after_file_name||m.setEphemeralState({rename:"all"})}return await this.end_templater_task(u),s}async append_template_to_active_file(t){let r=this.plugin.app.workspace.getActiveViewOfType(X.MarkdownView),i=this.plugin.app.workspace.activeEditor;if(!i||!i.file||!i.editor){le(new C("No active editor, can't append templates."));return}let{path:n}=i.file;this.start_templater_task(n);let a=this.create_running_config(t,i.file,1),s=await me(async()=>this.read_and_parse_template(a),"Template parsing error, aborting.");if(s==null){await this.end_templater_task(n);return}let{content:u,frontmatter:l}=hr(s),m=i.editor.getDoc(),_=m.listSelections();m.replaceSelection(u),r&&(Object.keys(l).length>0&&r instanceof X.MarkdownView&&typeof r.metadataEditor?.insertProperties=="function"&&r.metadataEditor.insertProperties(l),await lt(100),await r.save()),this.plugin.app.workspace.trigger("templater:template-appended",{view:r,editor:i,content:s,oldSelections:_,newSelections:m.listSelections()}),await this.plugin.editor_handler.jump_to_next_cursor_location(i.file,!0),await this.end_templater_task(n)}async write_template_to_file(t,r){let{path:i}=r;this.start_templater_task(i);let n=this.plugin.app.workspace.getActiveViewOfType(X.MarkdownView),a=this.plugin.app.workspace.activeEditor,s=pt(this.plugin.app),u=this.create_running_config(t,r,2),l=await me(async()=>this.read_and_parse_template(u),"Template parsing error, aborting.");if(l==null){await this.end_templater_task(i);return}let{content:h,frontmatter:m}=hr(l);if(s?.path===r.path&&a&&a.editor&&n){let _="",{content:T,frontmatter:F}=hr(a.editor.getValue());Xr(F,m),Object.keys(F).length>0&&(_+=`--- ${(0,X.stringifyYaml)(F)}--- `),_+=T+h,a.editor.setValue(_),a.editor.setSelection({line:0,ch:0},{line:0,ch:0}),await lt(100),await n.save()}else await this.plugin.app.vault.process(r,_=>{let T="",{content:F,frontmatter:O}=hr(_);return Xr(O,m),Object.keys(O).length>0&&(T+=`--- ${(0,X.stringifyYaml)(O)}--- `),T+=F+h,l=T,T});this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:r,content:l}),await this.plugin.editor_handler.jump_to_next_cursor_location(r,!0),this.plugin.settings.jump_to_cursor_after_file_name&&a?.editor&&a.editor.focus(),await this.end_templater_task(i)}async overwrite_active_file_commands(){let t=this.plugin.app.workspace.activeEditor;if(!t||!t.file){le(new C("Active editor is null, can't overwrite content"));return}await this.overwrite_file_commands(t.file,!0)}async overwrite_file_commands(t,r=!1){let{path:i}=t;this.start_templater_task(i);let n=this.create_running_config(t,t,r?3:2),a=await me(async()=>this.read_and_parse_template(n),"Template parsing error, aborting.");if(a==null){await this.end_templater_task(i);return}await this.plugin.app.vault.modify(t,a),this.plugin.app.workspace.trigger("templater:overwrite-file",{file:t,content:a}),await this.plugin.editor_handler.jump_to_next_cursor_location(t,!0),await this.end_templater_task(i)}async process_dynamic_templates(t,r){let i=ja(),n=activeDocument.createNodeIterator(t,NodeFilter.SHOW_TEXT),a,s=!1,u;for(;a=n.nextNode();){let l=a.nodeValue;if(l!==null){let h=i.exec(l);if(h!==null){let m=this.plugin.app.metadataCache.getFirstLinkpathDest("",r.sourcePath);if(!m||!(m instanceof X.TFile))return;if(!s){s=!0;let _=this.create_running_config(m,m,4);u=await this.functions_generator.generate_object(_,Ke.USER_INTERNAL),this.current_functions_object=u}}for(;h!=null;){let m=h[1]+h[2],_=await me(async()=>await this.parser.parse_commands(m,u),`Command Parsing error in dynamic command '${m}'`);if(_==null)return;let T=i.lastIndex-h[0].length,F=i.lastIndex;l=l.substring(0,T)+_+l.substring(F),i.lastIndex+=_.length-h[0].length,h=i.exec(l)}a.nodeValue=l}}}get_new_file_template_for_folder(t){let r=t;for(;r instanceof X.TFolder;){let i=r,n=this.plugin.settings.folder_templates.find(a=>a.folder==i.path);if(n&&n.template)return n.template;r=r.parent}}get_new_file_template_for_file(t){let r=this.plugin.settings.file_templates.find(i=>new RegExp(i.regex).test(t.path));if(r&&r.template)return r.template}static async on_file_creation(t,r,i){if(!Ve(r).trigger_on_file_creation||!(i instanceof X.TFile)||i.extension!=="md")return;let n=(0,X.normalizePath)(t.plugin.settings.templates_folder);if(i.path.includes(n)&&n!=="/")return;for(let l of t.plugin.settings.ignore_folders_on_creation){let h=(0,X.normalizePath)(l.folder);if(i.path.startsWith(h)&&h!=="")return}if(await lt(300),t.files_with_pending_templates.has(i.path))return;let a=await r.vault.read(i),s=(0,X.getFrontMatterInfo)(a),u=a.length-s.contentStart;if(u==0&&t.plugin.settings.trigger_on_file_creation_mode==="folder"){if(!(i.parent instanceof X.TFolder))return;let l=t.get_new_file_template_for_folder(i.parent);if(!l)return;let h=await me(async()=>Xe(r,l),`Couldn't find template ${l}`);if(h==null)return;await t.write_template_to_file(h,i)}else if(u==0&&t.plugin.settings.trigger_on_file_creation_mode==="regex"){let l=t.get_new_file_template_for_file(i);if(!l)return;let h=await me(async()=>Xe(r,l),`Couldn't find template ${l}`);if(h==null)return;await t.write_template_to_file(h,i)}else{let l=1e5;i.stat.size<=l?await t.overwrite_file_commands(i):console.debug(`Templater skipped parsing ${i.path} because file size exceeds ${l}`)}}async execute_startup_scripts(){if(!!Ve(this.plugin.app).enable_startup_templates)for(let t of this.plugin.settings.startup_templates){if(!t)continue;let r=he(()=>Xe(this.plugin.app,t),`Couldn't find startup template "${t}"`);if(!r)continue;let{path:i}=r;this.start_templater_task(i);let n=this.create_running_config(r,r,5);await me(async()=>this.read_and_parse_template(n),"Startup Template parsing error, aborting."),await this.end_templater_task(i)}}};var Wt=$(require("obsidian"));var ui=class{constructor(t,r){this.plugin=t;this.templater=r}async setup(){this.plugin.app.workspace.onLayoutReady(async()=>{if(Ve(this.plugin.app).trigger_on_file_creation&&this.plugin.app.vault.getConfig("openBehavior")==="daily"){let r=this.plugin.app.internalPlugins.getEnabledPluginById("daily-notes");if(r){let{folder:i,format:n}=r.options,a=(0,Wt.normalizePath)(`${i}/${(0,Wt.moment)().format(n)}.md`),s=pt(this.plugin.app);s?.path===a&&await zt.on_file_creation(this.templater,this.plugin.app,s)}}this.plugin.registerEvent(this.plugin.app.vault.on("create",t=>zt.on_file_creation(this.templater,this.plugin.app,t)))}),await this.update_syntax_highlighting(),this.update_file_menu()}async update_syntax_highlighting(){let t=this.plugin.editor_handler.desktopShouldHighlight(),r=this.plugin.editor_handler.mobileShouldHighlight();t||r?await this.plugin.editor_handler.enable_highlighter():await this.plugin.editor_handler.disable_highlighter()}update_file_menu(){this.plugin.registerEvent(this.plugin.app.workspace.on("file-menu",(t,r)=>{r instanceof Wt.TFolder&&t.addItem(i=>{i.setTitle("Create new note from template").setIcon("templater-icon").onClick(()=>{this.plugin.fuzzy_suggester.create_new_note_from_template(r)})})}))}};var St=$(require("obsidian"));var Sn=class{constructor(t){this.plugin=t}setup(){this.plugin.addCommand({id:"insert-templater",name:"Open insert template modal",icon:"templater-icon",hotkeys:St.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"e"}],callback:()=>{this.plugin.fuzzy_suggester.insert_template()}}),this.plugin.addCommand({id:"replace-in-file-templater",name:"Replace templates in the active file",icon:"templater-icon",hotkeys:St.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"r"}],callback:async()=>{await this.plugin.templater.overwrite_active_file_commands()}}),this.plugin.addCommand({id:"jump-to-next-cursor-location",name:"Jump to next cursor location",icon:"text-cursor",hotkeys:[{modifiers:["Alt"],key:"Tab"}],callback:async()=>{await this.plugin.editor_handler.jump_to_next_cursor_location()}}),this.plugin.addCommand({id:"create-new-note-from-template",name:"Create new note from template",icon:"templater-icon",hotkeys:St.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"n"}],callback:()=>{this.plugin.fuzzy_suggester.create_new_note_from_template()}}),this.register_templates_hotkeys(),this.register_cli_handler()}register_templates_hotkeys(){this.plugin.settings.enabled_templates_hotkeys.forEach(t=>{t&&this.add_template_hotkey(null,t)})}add_template_hotkey(t,r){if(this.remove_template_hotkey(t),r){let i=this.plugin.settings.templates_folder?this.plugin.settings.templates_folder.length+1:0,n=r.slice(i,-3);this.plugin.addCommand({id:r,name:`Insert ${n}`,icon:"templater-icon",callback:async()=>{let a=he(()=>Xe(this.plugin.app,r),"Couldn't find the template file associated with this hotkey");!a||await this.plugin.templater.append_template_to_active_file(a)}}),this.plugin.addCommand({id:`create-${r}`,name:`Create ${n}`,icon:"templater-icon",callback:async()=>{let a=he(()=>Xe(this.plugin.app,r),"Couldn't find the template file associated with this hotkey");!a||await this.plugin.templater.create_new_note_from_template(a)}})}}remove_template_hotkey(t){t&&(this.plugin.removeCommand(`${t}`),this.plugin.removeCommand(`create-${t}`))}register_cli_handler(){this.plugin.registerCliHandler("templater:create-from-template","Create a new note from a Templater template",{template:{value:"",description:"Template file path (relative to vault root or templates folder)",required:!0},file:{value:"",description:"Output file path (relative to vault root)",required:!0},open:{description:"Open the created file in the UI",required:!1}},async t=>this.handle_create_from_template(t))}resolve_template_file(t){let r=t;r.endsWith(".md")||(r=`${r}.md`);try{return Xe(this.plugin.app,r)}catch{let i=this.plugin.settings.templates_folder;if(i){let n=(0,St.normalizePath)(`${i}/${r}`);return Xe(this.plugin.app,n)}throw new Error(`Template "${t}" not found`)}}async handle_create_from_template(t){let{template:r,file:i,open:n}=t;if(!r)return"Error: template parameter is required";if(!i)return"Error: file parameter is required";try{let a=this.resolve_template_file(r),s=(0,St.normalizePath)(i),u=Qr(s),l=s.slice(u.length+1).replace(/\.md$/,""),h;if(u)try{h=Gi(this.plugin.app,u)}catch{}let m=n==="true",_=await this.plugin.templater.create_new_note_from_template(a,h??u,l,m);return _?_.path:"Error: Failed to create note from template"}catch(a){return`Error: ${a instanceof Error?a.message:String(a)}`}}};var Wn=$(require("obsidian"));var Cn=$(require("obsidian"));var Pn=class{constructor(t){this.app=t}async jump_to_next_cursor_location(){let t=this.app.workspace.activeEditor;if(!t?.editor)return;let r=t.editor.getValue(),{cursor_matches:i,positions:n}=this.get_cursor_matches_and_positions(r);if(!n||!i)return;let a=t instanceof Cn.MarkdownView?t.currentMode.getFoldInfo():null,s=[];for(let u=i.length-1;u>=0;u--){let l=i[u],h=this.get_editor_position_from_index(r,l.index),m=this.get_editor_position_from_index(r,l.index+l[0].length);s.push({from:h,to:m,text:""})}t.editor.transaction({changes:s,selections:n.map(u=>({from:u}))}),a&&Array.isArray(a.folds)&&(n.forEach(u=>{a.folds=a.folds.filter(l=>l.from>u.line||l.to[0-9]*)\)\s*%>/g,i=[],n;for(;(n=r.exec(t))!==null;)i.push(n);if(i.length===0)return{};i.sort((m,_)=>Number(m.groups?.order||0)-Number(_.groups?.order||0));let a=i[0][0],s=i.filter(m=>m[0]===a),u=s[0][1]===""?[s[0]]:s,l=[],h=0;for(let m of u){let _=m.index-h;l.push(this.get_editor_position_from_index(t,_)),t=t.slice(0,_)+t.slice(_+m[0].length),h+=m[0].length}return{cursor_matches:u,positions:l}}};var Vs=$(require("obsidian"));var Ac=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239],za=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489],_c="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",Wa="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",In={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},Nn="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",xc={5:Nn,"5module":Nn+" export import",6:Nn+" const class extends export import super"},Ja=/^in(stanceof)?$/,yc=new RegExp("["+Wa+"]"),vc=new RegExp("["+Wa+_c+"]");function Dn(e,t){for(var r=65536,i=0;ie)return!1;if(r+=t[i+1],r>=e)return!0}return!1}function $e(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&yc.test(String.fromCharCode(e)):t===!1?!1:Dn(e,za)}function mt(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&vc.test(String.fromCharCode(e)):t===!1?!1:Dn(e,za)||Dn(e,Ac)}var K=function(t,r){r===void 0&&(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function Ee(e,t){return new K(e,{beforeExpr:!0,binop:t})}var Se={beforeExpr:!0},Ae={startsExpr:!0},Mn={};function R(e,t){return t===void 0&&(t={}),t.keyword=e,Mn[e]=new K(e,t)}var c={num:new K("num",Ae),regexp:new K("regexp",Ae),string:new K("string",Ae),name:new K("name",Ae),privateId:new K("privateId",Ae),eof:new K("eof"),bracketL:new K("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new K("]"),braceL:new K("{",{beforeExpr:!0,startsExpr:!0}),braceR:new K("}"),parenL:new K("(",{beforeExpr:!0,startsExpr:!0}),parenR:new K(")"),comma:new K(",",Se),semi:new K(";",Se),colon:new K(":",Se),dot:new K("."),question:new K("?",Se),questionDot:new K("?."),arrow:new K("=>",Se),template:new K("template"),invalidTemplate:new K("invalidTemplate"),ellipsis:new K("...",Se),backQuote:new K("`",Ae),dollarBraceL:new K("${",{beforeExpr:!0,startsExpr:!0}),eq:new K("=",{beforeExpr:!0,isAssign:!0}),assign:new K("_=",{beforeExpr:!0,isAssign:!0}),incDec:new K("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new K("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ee("||",1),logicalAND:Ee("&&",2),bitwiseOR:Ee("|",3),bitwiseXOR:Ee("^",4),bitwiseAND:Ee("&",5),equality:Ee("==/!=/===/!==",6),relational:Ee("/<=/>=",7),bitShift:Ee("<>/>>>",8),plusMin:new K("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ee("%",10),star:Ee("*",10),slash:Ee("/",10),starstar:new K("**",{beforeExpr:!0}),coalesce:Ee("??",1),_break:R("break"),_case:R("case",Se),_catch:R("catch"),_continue:R("continue"),_debugger:R("debugger"),_default:R("default",Se),_do:R("do",{isLoop:!0,beforeExpr:!0}),_else:R("else",Se),_finally:R("finally"),_for:R("for",{isLoop:!0}),_function:R("function",Ae),_if:R("if"),_return:R("return",Se),_switch:R("switch"),_throw:R("throw",Se),_try:R("try"),_var:R("var"),_const:R("const"),_while:R("while",{isLoop:!0}),_with:R("with"),_new:R("new",{beforeExpr:!0,startsExpr:!0}),_this:R("this",Ae),_super:R("super",Ae),_class:R("class",Ae),_extends:R("extends",Se),_export:R("export"),_import:R("import",Ae),_null:R("null",Ae),_true:R("true",Ae),_false:R("false",Ae),_in:R("in",{beforeExpr:!0,binop:7}),_instanceof:R("instanceof",{beforeExpr:!0,binop:7}),_typeof:R("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:R("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:R("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_e=/\r\n?|\n|\u2028|\u2029/,bc=new RegExp(_e.source,"g");function Jt(e){return e===10||e===13||e===8232||e===8233}function Qa(e,t,r){r===void 0&&(r=e.length);for(var i=t;i>10)+55296,(e&1023)+56320))}var jc=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,_r=function(t,r){this.line=t,this.column=r};_r.prototype.offset=function(t){return new _r(this.line,this.column+t)};var li=function(t,r,i){this.start=r,this.end=i,t.sourceFile!==null&&(this.source=t.sourceFile)};function rs(e,t){for(var r=1,i=0;;){var n=Qa(e,i,t);if(n<0)return new _r(r,t-i);++r,i=n}}var Fn={ecmaVersion:null,sourceType:"script",strict:!1,onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},is=!1;function Tc(e){var t={};for(var r in Fn)t[r]=e&&Qt(e,r)?e[r]:Fn[r];if(t.ecmaVersion==="latest"?t.ecmaVersion=1e8:t.ecmaVersion==null?(!is&&typeof console=="object"&&console.warn&&(is=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required. Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),(!e||e.allowHashBang==null)&&(t.allowHashBang=t.ecmaVersion>=14),es(t.onToken)){var i=t.onToken;t.onToken=function(n){return i.push(n)}}if(es(t.onComment)&&(t.onComment=Ec(t,t.onComment)),t.sourceType==="commonjs"&&t.allowAwaitOutsideFunction)throw new Error("Cannot use allowAwaitOutsideFunction with sourceType: commonjs");return t}function Ec(e,t){return function(r,i,n,a,s,u){var l={type:r?"Block":"Line",value:i,start:n,end:a};e.locations&&(l.loc=new li(this,s,u)),e.ranges&&(l.range=[n,a]),t.push(l)}}var Ct=1,Pt=2,Bn=4,ns=8,On=16,as=32,pi=64,ss=128,It=256,xr=512,os=1024,fi=Ct|Pt|It;function qn(e,t){return Pt|(e?Bn:0)|(t?ns:0)}var hi=0,Ln=1,nt=2,cs=3,us=4,ls=5,ne=function(t,r,i){this.options=t=Tc(t),this.sourceFile=t.sourceFile,this.keywords=gt(xc[t.ecmaVersion>=6?6:t.sourceType==="module"?"5module":5]);var n="";t.allowReserved!==!0&&(n=In[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType==="module"&&(n+=" await")),this.reservedWords=gt(n);var a=(n?n+" ":"")+In.strict;this.reservedWordsStrict=gt(a),this.reservedWordsStrictBind=gt(a+" "+In.strictBind),this.input=String(r),this.containsEsc=!1,i?(this.pos=i,this.lineStart=this.input.lastIndexOf(` `,i-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_e).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=c.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType==="module",this.strict=this.inModule||t.strict===!0||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(this.options.sourceType==="commonjs"?Pt:Ct),this.regexpState=null,this.privateNameStack=[]},Ce={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowReturn:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},allowUsing:{configurable:!0},inClassStaticBlock:{configurable:!0}};ne.prototype.parse=function(){var t=this,r=this.options.program||this.startNode();return this.nextToken(),this.catchStackOverflow(function(){return t.parseTopLevel(r)})};Ce.inFunction.get=function(){return(this.currentVarScope().flags&Pt)>0};Ce.inGenerator.get=function(){return(this.currentVarScope().flags&ns)>0};Ce.inAsync.get=function(){return(this.currentVarScope().flags&Bn)>0};Ce.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e],r=t.flags;if(r&(It|xr))return!1;if(r&Pt)return(r&Bn)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};Ce.allowReturn.get=function(){return!!(this.inFunction||this.options.allowReturnOutsideFunction&&this.currentVarScope().flags&Ct)};Ce.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags;return(t&pi)>0||this.options.allowSuperOutsideMethod};Ce.allowDirectSuper.get=function(){return(this.currentThisScope().flags&ss)>0};Ce.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};Ce.allowNewDotTarget.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e],r=t.flags;if(r&(It|xr)||r&Pt&&!(r&On))return!0}return!1};Ce.allowUsing.get=function(){var e=this.currentScope(),t=e.flags;return!(t&os||!this.inModule&&t&Ct)};Ce.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&It)>0};ne.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var i=this,n=0;n=,?^&]/.test(n)||n==="!"&&this.input.charAt(i+1)==="=")}e+=t[0].length,se.lastIndex=e,e+=se.exec(this.input)[0].length,this.input[e]===";"&&e++}};pe.eat=function(e){return this.type===e?(this.next(),!0):!1};pe.isContextual=function(e){return this.type===c.name&&this.value===e&&!this.containsEsc};pe.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1};pe.catchStackOverflow=function(e){try{return e()}catch(t){if(t instanceof Error&&(/\bstack\b.*\b(exceeded|overflow)\b/i.test(t.message)||/\btoo much recursion\b/i.test(t.message)))this.raise(this.start,"Not enough stack space to parse input");else throw t}};pe.expectContextual=function(e){this.eatContextual(e)||this.unexpected()};pe.canInsertSemicolon=function(){return this.type===c.eof||this.type===c.braceR||_e.test(this.input.slice(this.lastTokEnd,this.start))};pe.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};pe.semicolon=function(){!this.eat(c.semi)&&!this.insertSemicolon()&&this.unexpected()};pe.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0};pe.expect=function(e){this.eat(e)||this.unexpected()};pe.unexpected=function(e){this.raise(e??this.start,"Unexpected token")};var di=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};pe.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,t?"Assigning to rvalue":"Parenthesized pattern")}};pe.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,i=e.doubleProto;if(!t)return r>=0||i>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")};pe.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&this.unexpected(),this.parseFunctionStatement(n,!1,!e);case c._class:return e&&this.unexpected(),this.parseClass(n,!0);case c._if:return this.parseIfStatement(n);case c._return:return this.parseReturnStatement(n);case c._switch:return this.parseSwitchStatement(n);case c._throw:return this.parseThrowStatement(n);case c._try:return this.parseTryStatement(n);case c._const:case c._var:return a=a||this.value,e&&a!=="var"&&this.unexpected(),this.parseVarStatement(n,a);case c._while:return this.parseWhileStatement(n);case c._with:return this.parseWithStatement(n);case c.braceL:return this.parseBlock(!0,n);case c.semi:return this.parseEmptyStatement(n);case c._export:case c._import:if(this.options.ecmaVersion>10&&i===c._import){se.lastIndex=this.pos;var s=se.exec(this.input),u=this.pos+s[0].length,l=this.input.charCodeAt(u);if(l===40||l===46)return this.parseExpressionStatement(n,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===c._import?this.parseImport(n):this.parseExport(n,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(n,!0,!e);var h=this.isAwaitUsing(!1)?"await using":this.isUsing(!1)?"using":null;if(h)return this.allowUsing||this.raise(this.start,"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement"),e&&this.raise(this.start,"Using declaration is not allowed in single-statement positions"),h==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.next(),this.parseVar(n,!1,h),this.semicolon(),this.finishNode(n,"VariableDeclaration");var m=this.value,_=this.parseExpression();return i===c.name&&_.type==="Identifier"&&this.eat(c.colon)?this.parseLabeledStatement(n,m,_,e):this.parseExpressionStatement(n,_)}};E.parseBreakContinueStatement=function(e,t){var r=t==="break";this.next(),this.eat(c.semi)||this.insertSemicolon()?e.label=null:this.type!==c.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i=6?this.eat(c.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")};E.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(Rn),this.enterScope(0),this.expect(c.parenL),this.type===c.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===c._var||this.type===c._const||r){var i=this.startNode(),n=r?"let":this.value;return this.next(),this.parseVar(i,!0,n),this.finishNode(i,"VariableDeclaration"),this.parseForAfterInit(e,i,t)}var a=this.isContextual("let"),s=!1,u=this.isUsing(!0)?"using":this.isAwaitUsing(!0)?"await using":null;if(u){var l=this.startNode();return this.next(),u==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.parseVar(l,!0,u),this.finishNode(l,"VariableDeclaration"),this.parseForAfterInit(e,l,t)}var h=this.containsEsc,m=new di,_=this.start,T=t>-1?this.parseExprSubscripts(m,"await"):this.parseExpression(!0,m);return this.type===c._in||(s=this.options.ecmaVersion>=6&&this.isContextual("of"))?(t>-1?(this.type===c._in&&this.unexpected(t),e.await=!0):s&&this.options.ecmaVersion>=8&&(T.start===_&&!h&&T.type==="Identifier"&&T.name==="async"?this.unexpected():this.options.ecmaVersion>=9&&(e.await=!1)),a&&s&&this.raise(T.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(T,!1,m),this.checkLValPattern(T),this.parseForIn(e,T)):(this.checkExpressionErrors(m,!0),t>-1&&this.unexpected(t),this.parseFor(e,T))};E.parseForAfterInit=function(e,t,r){return(this.type===c._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&t.declarations.length===1?(this.type===c._in?((t.kind==="using"||t.kind==="await using")&&!t.declarations[0].init&&this.raise(this.start,"Using declaration is not allowed in for-in loops"),this.options.ecmaVersion>=9&&r>-1&&this.unexpected(r)):this.options.ecmaVersion>=9&&(e.await=r>-1),this.parseForIn(e,t)):(r>-1&&this.unexpected(r),this.parseFor(e,t))};E.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,yr|(r?0:Vn),!1,t)};E.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(c._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")};E.parseReturnStatement=function(e){return this.allowReturn||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(c.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")};E.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(c.braceL),this.labels.push(Cc),this.enterScope(os);for(var t,r=!1;this.type!==c.braceR;)if(this.type===c._case||this.type===c._default){var i=this.type===c._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(c.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")};E.parseThrowStatement=function(e){return this.next(),_e.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Pc=[];E.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t=e.type==="Identifier";return this.enterScope(t?as:0),this.checkLValPattern(e,t?us:nt),this.expect(c.parenR),e};E.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===c._catch){var t=this.startNode();this.next(),this.eat(c.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(c._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")};E.parseVarStatement=function(e,t,r){return this.next(),this.parseVar(e,!1,t,r),this.semicolon(),this.finishNode(e,"VariableDeclaration")};E.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Rn),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")};E.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")};E.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")};E.parseLabeledStatement=function(e,t,r,i){for(var n=0,a=this.labels;n=0;l--){var h=this.labels[l];if(h.statementStart===e.start)h.statementStart=this.start,h.kind=u;else break}return this.labels.push({name:t,kind:u,statementStart:this.start}),e.body=this.parseStatement(i?i.indexOf("label")===-1?i+"label":i:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")};E.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")};E.parseBlock=function(e,t,r){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(c.braceL),e&&this.enterScope(0);this.type!==c.braceR;){var i=this.parseStatement(null);t.body.push(i)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")};E.parseFor=function(e,t){return e.init=t,this.expect(c.semi),e.test=this.type===c.semi?null:this.parseExpression(),this.expect(c.semi),e.update=this.type===c.parenR?null:this.parseExpression(),this.expect(c.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")};E.parseForIn=function(e,t){var r=this.type===c._in;return this.next(),t.type==="VariableDeclaration"&&t.declarations[0].init!=null&&(!r||this.options.ecmaVersion<8||this.strict||t.kind!=="var"||t.declarations[0].id.type!=="Identifier")&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(c.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")};E.parseVar=function(e,t,r,i){for(e.declarations=[],e.kind=r;;){var n=this.startNode();if(this.parseVarId(n,r),this.eat(c.eq)?n.init=this.parseMaybeAssign(t):!i&&r==="const"&&!(this.type===c._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():!i&&(r==="using"||r==="await using")&&this.options.ecmaVersion>=17&&this.type!==c._in&&!this.isContextual("of")?this.raise(this.lastTokEnd,"Missing initializer in "+r+" declaration"):!i&&n.id.type!=="Identifier"&&!(t&&(this.type===c._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):n.init=null,e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(c.comma))break}return e};E.parseVarId=function(e,t){e.id=t==="using"||t==="await using"?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(e.id,t==="var"?Ln:nt,!1)};var yr=1,Vn=2,ps=4;E.parseFunction=function(e,t,r,i,n){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===c.star&&t&Vn&&this.unexpected(),e.generator=this.eat(c.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&yr&&(e.id=t&ps&&this.type!==c.name?null:this.parseIdent(),e.id&&!(t&Vn)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?Ln:nt:cs));var a=this.yieldPos,s=this.awaitPos,u=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(qn(e.async,e.generator)),t&yr||(e.id=this.type===c.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,n),this.yieldPos=a,this.awaitPos=s,this.awaitIdentPos=u,this.finishNode(e,t&yr?"FunctionDeclaration":"FunctionExpression")};E.parseFunctionParams=function(e){this.expect(c.parenL),e.params=this.parseBindingList(c.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};E.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.enterClassBody(),n=this.startNode(),a=!1;for(n.body=[],this.expect(c.braceL);this.type!==c.braceR;){var s=this.parseClassElement(e.superClass!==null);s&&(n.body.push(s),s.type==="MethodDefinition"&&s.kind==="constructor"?(a&&this.raiseRecoverable(s.start,"Duplicate constructor in the same class"),a=!0):s.key&&s.key.type==="PrivateIdentifier"&&Ic(i,s)&&this.raiseRecoverable(s.key.start,"Identifier '#"+s.key.name+"' has already been declared"))}return this.strict=r,this.next(),e.body=this.finishNode(n,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")};E.parseClassElement=function(e){if(this.eat(c.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),i="",n=!1,a=!1,s="method",u=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(c.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===c.star?u=!0:i="static"}if(r.static=u,!i&&t>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===c.star)&&!this.canInsertSemicolon()?a=!0:i="async"),!i&&(t>=9||!a)&&this.eat(c.star)&&(n=!0),!i&&!a&&!n){var l=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?s=l:i=l)}if(i?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=i,this.finishNode(r.key,"Identifier")):this.parseClassElementName(r),t<13||this.type===c.parenL||s!=="method"||n||a){var h=!r.static&&mi(r,"constructor"),m=h&&e;h&&s!=="method"&&this.raise(r.key.start,"Constructor can't have get/set modifier"),r.kind=h?"constructor":s,this.parseClassMethod(r,n,a,m)}else this.parseClassField(r);return r};E.isClassElementNameStart=function(){return this.type===c.name||this.type===c.privateId||this.type===c.num||this.type===c.string||this.type===c.bracketL||this.type.keyword};E.parseClassElementName=function(e){this.type===c.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)};E.parseClassMethod=function(e,t,r,i){var n=e.key;e.kind==="constructor"?(t&&this.raise(n.start,"Constructor can't be a generator"),r&&this.raise(n.start,"Constructor can't be an async method")):e.static&&mi(e,"prototype")&&this.raise(n.start,"Classes may not have a static property named prototype");var a=e.value=this.parseMethod(t,r,i);return e.kind==="get"&&a.params.length!==0&&this.raiseRecoverable(a.start,"getter should have no params"),e.kind==="set"&&a.params.length!==1&&this.raiseRecoverable(a.start,"setter should have exactly one param"),e.kind==="set"&&a.params[0].type==="RestElement"&&this.raiseRecoverable(a.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")};E.parseClassField=function(e){return mi(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&mi(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(c.eq)?(this.enterScope(xr|pi),e.value=this.parseMaybeAssign(),this.exitScope()):e.value=null,this.semicolon(),this.finishNode(e,"PropertyDefinition")};E.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(It|pi);this.type!==c.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")};E.parseClassId=function(e,t){this.type===c.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,nt,!1)):(t===!0&&this.unexpected(),e.id=null)};E.parseClassSuper=function(e){e.superClass=this.eat(c._extends)?this.parseExprSubscripts(null,!1):null};E.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared};E.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,r=e.used;if(!!this.options.checkPrivateFields)for(var i=this.privateNameStack.length,n=i===0?null:this.privateNameStack[i-1],a=0;a=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==c.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,"ExportAllDeclaration")};E.parseExport=function(e,t){if(this.next(),this.eat(c.star))return this.parseExportAllDeclaration(e,t);if(this.eat(c._default))return this.checkExport(t,"default",this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),e.declaration.type==="VariableDeclaration"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[]);else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==c.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var r=0,i=e.specifiers;r=16&&(e.attributes=[])}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")};E.parseExportDeclaration=function(e){return this.parseStatement(null)};E.parseExportDefaultDeclaration=function(){var e;if(this.type===c._function||(e=this.isAsyncFunction())){var t=this.startNode();return this.next(),e&&this.next(),this.parseFunction(t,yr|ps,!1,e)}else if(this.type===c._class){var r=this.startNode();return this.parseClass(r,"nullableID")}else{var i=this.parseMaybeAssign();return this.semicolon(),i}};E.checkExport=function(e,t,r){!e||(typeof t!="string"&&(t=t.type==="Identifier"?t.name:t.value),Qt(e,t)&&this.raiseRecoverable(r,"Duplicate export '"+t+"'"),e[t]=!0)};E.checkPatternExport=function(e,t){var r=t.type;if(r==="Identifier")this.checkExport(e,t,t.start);else if(r==="ObjectPattern")for(var i=0,n=t.properties;i=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,"ImportDeclaration")};E.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual("as")?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,nt),this.finishNode(e,"ImportSpecifier")};E.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,nt),this.finishNode(e,"ImportDefaultSpecifier")};E.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual("as"),e.local=this.parseIdent(),this.checkLValSimple(e.local,nt),this.finishNode(e,"ImportNamespaceSpecifier")};E.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===c.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(c.comma)))return e;if(this.type===c.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(c.braceL);!this.eat(c.braceR);){if(t)t=!1;else if(this.expect(c.comma),this.afterTrailingComma(c.braceR))break;e.push(this.parseImportSpecifier())}return e};E.parseWithClause=function(){var e=[];if(!this.eat(c._with))return e;this.expect(c.braceL);for(var t={},r=!0;!this.eat(c.braceR);){if(r)r=!1;else if(this.expect(c.comma),this.afterTrailingComma(c.braceR))break;var i=this.parseImportAttribute(),n=i.key.type==="Identifier"?i.key.name:i.key.value;Qt(t,n)&&this.raiseRecoverable(i.key.start,"Duplicate attribute key '"+n+"'"),t[n]=!0,e.push(i)}return e};E.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===c.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never"),this.expect(c.colon),this.type!==c.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,"ImportAttribute")};E.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===c.string){var e=this.parseLiteral(this.value);return jc.test(e.value)&&this.raise(e.start,"An export name cannot include a lone surrogate."),e}return this.parseIdent(!0)};E.adaptDirectivePrologue=function(e){for(var t=0;t=5&&e.type==="ExpressionStatement"&&e.expression.type==="Literal"&&typeof e.expression.value=="string"&&(this.input[e.start]==='"'||this.input[e.start]==="'")};var Pe=ne.prototype;Pe.toAssignable=function(e,t,r){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&e.name==="await"&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var i=0,n=e.properties;i=8&&!u&&l.name==="async"&&!this.canInsertSemicolon()&&this.eat(c._function))return this.overrideContext(Z.f_expr),this.parseFunction(this.startNodeAt(a,s),0,!1,!0,t);if(n&&!this.canInsertSemicolon()){if(this.eat(c.arrow))return this.parseArrowExpression(this.startNodeAt(a,s),[l],!1,t);if(this.options.ecmaVersion>=8&&l.name==="async"&&this.type===c.name&&!u&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return l=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(c.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,s),[l],!0,t)}return l;case c.regexp:var h=this.value;return i=this.parseLiteral(h.value),i.regex={pattern:h.pattern,flags:h.flags},i;case c.num:case c.string:return this.parseLiteral(this.value);case c._null:case c._true:case c._false:return i=this.startNode(),i.value=this.type===c._null?null:this.type===c._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case c.parenL:var m=this.start,_=this.parseParenAndDistinguishExpression(n,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(_)&&(e.parenthesizedAssign=m),e.parenthesizedBind<0&&(e.parenthesizedBind=m)),_;case c.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(c.bracketR,!0,!0,e),this.finishNode(i,"ArrayExpression");case c.braceL:return this.overrideContext(Z.b_expr),this.parseObj(!1,e);case c._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case c._class:return this.parseClass(this.startNode(),!1);case c._new:return this.parseNew();case c.backQuote:return this.parseTemplate();case c._import:return this.options.ecmaVersion>=11?this.parseExprImport(r):this.unexpected();default:return this.parseExprAtomDefault()}};N.parseExprAtomDefault=function(){this.unexpected()};N.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import"),this.next(),this.type===c.parenL&&!e)return this.parseDynamicImport(t);if(this.type===c.dot){var r=this.startNodeAt(t.start,t.loc&&t.loc.start);return r.name="import",t.meta=this.finishNode(r,"Identifier"),this.parseImportMeta(t)}else this.unexpected()};N.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(c.parenR)?e.options=null:(this.expect(c.comma),this.afterTrailingComma(c.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(c.parenR)||(this.expect(c.comma),this.afterTrailingComma(c.parenR)||this.unexpected())));else if(!this.eat(c.parenR)){var t=this.start;this.eat(c.comma)&&this.eat(c.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")};N.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="meta"&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")};N.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.value!=null?t.value.toString():t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")};N.parseParenExpression=function(){this.expect(c.parenL);var e=this.parseExpression();return this.expect(c.parenR),e};N.shouldParseArrow=function(e){return!this.canInsertSemicolon()};N.parseParenAndDistinguishExpression=function(e,t){var r=this.start,i=this.startLoc,n,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var s=this.start,u=this.startLoc,l=[],h=!0,m=!1,_=new di,T=this.yieldPos,F=this.awaitPos,O;for(this.yieldPos=0,this.awaitPos=0;this.type!==c.parenR;)if(h?h=!1:this.expect(c.comma),a&&this.afterTrailingComma(c.parenR,!0)){m=!0;break}else if(this.type===c.ellipsis){O=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===c.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}else l.push(this.parseMaybeAssign(!1,_,this.parseParenItem));var U=this.lastTokEnd,P=this.lastTokEndLoc;if(this.expect(c.parenR),e&&this.shouldParseArrow(l)&&this.eat(c.arrow))return this.checkPatternErrors(_,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=T,this.awaitPos=F,this.parseParenArrowList(r,i,l,t);(!l.length||m)&&this.unexpected(this.lastTokStart),O&&this.unexpected(O),this.checkExpressionErrors(_,!0),this.yieldPos=T||this.yieldPos,this.awaitPos=F||this.awaitPos,l.length>1?(n=this.startNodeAt(s,u),n.expressions=l,this.finishNodeAt(n,"SequenceExpression",U,P)):n=l[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var Y=this.startNodeAt(r,i);return Y.expression=n,this.finishNode(Y,"ParenthesizedExpression")}else return n};N.parseParenItem=function(e){return e};N.parseParenArrowList=function(e,t,r,i){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,i)};var Nc=[];N.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===c.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name="new",e.meta=this.finishNode(t,"Identifier"),this.next();var r=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="target"&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(e.start,"'new.target' can only be used in functions and class static block"),this.finishNode(e,"MetaProperty")}var i=this.start,n=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),i,n,!0,!1),e.callee.type==="Super"&&this.raiseRecoverable(i,"Invalid use of 'super'"),this.eat(c.parenL)?e.arguments=this.parseExprList(c.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Nc,this.finishNode(e,"NewExpression")};N.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===c.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value.replace(/\r\n?/g,` `),cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,` `),cooked:this.value},this.next(),r.tail=this.type===c.backQuote,this.finishNode(r,"TemplateElement")};N.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(r.quasis=[i];!i.tail;)this.type===c.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(c.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(c.braceR),r.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")};N.isAsyncProp=function(e){return!e.computed&&e.key.type==="Identifier"&&e.key.name==="async"&&(this.type===c.name||this.type===c.num||this.type===c.string||this.type===c.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===c.star)&&!_e.test(this.input.slice(this.lastTokEnd,this.start))};N.parseObj=function(e,t){var r=this.startNode(),i=!0,n={};for(r.properties=[],this.next();!this.eat(c.braceR);){if(i)i=!1;else if(this.expect(c.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(c.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,n,t),r.properties.push(a)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")};N.parseProperty=function(e,t){var r=this.startNode(),i,n,a,s;if(this.options.ecmaVersion>=9&&this.eat(c.ellipsis))return e?(r.argument=this.parseIdent(!1),this.type===c.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(r,"RestElement")):(r.argument=this.parseMaybeAssign(!1,t),this.type===c.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(r,"SpreadElement"));this.options.ecmaVersion>=6&&(r.method=!1,r.shorthand=!1,(e||t)&&(a=this.start,s=this.startLoc),e||(i=this.eat(c.star)));var u=this.containsEsc;return this.parsePropertyName(r),!e&&!u&&this.options.ecmaVersion>=8&&!i&&this.isAsyncProp(r)?(n=!0,i=this.options.ecmaVersion>=9&&this.eat(c.star),this.parsePropertyName(r)):n=!1,this.parsePropertyValue(r,e,i,n,a,s,t,u),this.finishNode(r,"Property")};N.parseGetterSetter=function(e){var t=e.key.name;this.parsePropertyName(e),e.value=this.parseMethod(!1),e.kind=t;var r=e.kind==="get"?0:1;if(e.value.params.length!==r){var i=e.value.start;e.kind==="get"?this.raiseRecoverable(i,"getter should have no params"):this.raiseRecoverable(i,"setter should have exactly one param")}else e.kind==="set"&&e.value.params[0].type==="RestElement"&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")};N.parsePropertyValue=function(e,t,r,i,n,a,s,u){(r||i)&&this.type===c.colon&&this.unexpected(),this.eat(c.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,s),e.kind="init"):this.options.ecmaVersion>=6&&this.type===c.parenL?(t&&this.unexpected(),e.method=!0,e.value=this.parseMethod(r,i),e.kind="init"):!t&&!u&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.type!==c.comma&&this.type!==c.braceR&&this.type!==c.eq?((r||i)&&this.unexpected(),this.parseGetterSetter(e)):this.options.ecmaVersion>=6&&!e.computed&&e.key.type==="Identifier"?((r||i)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=n),t?e.value=this.parseMaybeDefault(n,a,this.copyNode(e.key)):this.type===c.eq&&s?(s.shorthandAssign<0&&(s.shorthandAssign=this.start),e.value=this.parseMaybeDefault(n,a,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.kind="init",e.shorthand=!0):this.unexpected()};N.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(c.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(c.bracketR),e.key;e.computed=!1}return e.key=this.type===c.num||this.type===c.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")};N.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)};N.parseMethod=function(e,t,r){var i=this.startNode(),n=this.yieldPos,a=this.awaitPos,s=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(qn(t,i.generator)|pi|(r?ss:0)),this.expect(c.parenL),i.params=this.parseBindingList(c.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0,!1),this.yieldPos=n,this.awaitPos=a,this.awaitIdentPos=s,this.finishNode(i,"FunctionExpression")};N.parseArrowExpression=function(e,t,r,i){var n=this.yieldPos,a=this.awaitPos,s=this.awaitIdentPos;return this.enterScope(qn(r,!1)|On),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,i),this.yieldPos=n,this.awaitPos=a,this.awaitIdentPos=s,this.finishNode(e,"ArrowFunctionExpression")};N.parseFunctionBody=function(e,t,r,i){var n=t&&this.type!==c.braceL,a=this.strict,s=!1;if(n)e.body=this.parseMaybeAssign(i),e.expression=!0,this.checkParams(e,!1);else{var u=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!a||u)&&(s=this.strictDirective(this.end),s&&u&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var l=this.labels;this.labels=[],s&&(this.strict=!0),this.checkParams(e,!a&&!s&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,ls),e.body=this.parseBlock(!1,void 0,s&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=l}this.exitScope()};N.isSimpleParamList=function(e){for(var t=0,r=e;t-1||n.functions.indexOf(e)>-1||n.var.indexOf(e)>-1,n.lexical.push(e),this.inModule&&n.flags&Ct&&delete this.undefinedExports[e]}else if(t===us){var a=this.currentScope();a.lexical.push(e)}else if(t===cs){var s=this.currentScope();this.treatFunctionsAsVar?i=s.lexical.indexOf(e)>-1:i=s.lexical.indexOf(e)>-1||s.var.indexOf(e)>-1,s.functions.push(e)}else for(var u=this.scopeStack.length-1;u>=0;--u){var l=this.scopeStack[u];if(l.lexical.indexOf(e)>-1&&!(l.flags&as&&l.lexical[0]===e)||!this.treatFunctionsAsVarInScope(l)&&l.functions.indexOf(e)>-1){i=!0;break}if(l.var.push(e),this.inModule&&l.flags&Ct&&delete this.undefinedExports[e],l.flags&fi)break}i&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")};At.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)};At.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};At.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(fi|xr|It))return t}};At.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(fi|xr|It)&&!(t.flags&On))return t}};var Ai=function(t,r,i){this.type="",this.start=r,this.end=0,t.options.locations&&(this.loc=new li(t,i)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[r,0])},vr=ne.prototype;vr.startNode=function(){return new Ai(this,this.start,this.startLoc)};vr.startNodeAt=function(e,t){return new Ai(this,e,t)};function hs(e,t,r,i){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=r),e}vr.finishNode=function(e,t){return hs.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)};vr.finishNodeAt=function(e,t,r,i){return hs.call(this,e,t,r,i)};vr.copyNode=function(e){var t=new Ai(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var Mc="Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz",ds="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",ms=ds+" Extended_Pictographic",gs=ms,As=gs+" EBase EComp EMod EPres ExtPict",_s=As,Fc=_s,Bc={9:ds,10:ms,11:gs,12:As,13:_s,14:Fc},Oc="Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji",qc={9:"",10:"",11:"",12:"",13:"",14:Oc},xs="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ys="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",vs=ys+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",bs=vs+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",ws=bs+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",ks=ws+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Lc=ks+" "+Mc,Rc={9:ys,10:vs,11:bs,12:ws,13:ks,14:Lc},js={};function Vc(e){var t=js[e]={binary:gt(Bc[e]+" "+xs),binaryOfStrings:gt(qc[e]),nonBinary:{General_Category:gt(xs),Script:gt(Rc[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(_i=0,Kn=[9,10,11,12,13,14];_i=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":"")+(t.options.ecmaVersion>=15?"v":""),this.unicodeProperties=js[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};Ge.prototype.reset=function(t,r,i){var n=i.indexOf("v")!==-1,a=i.indexOf("u")!==-1;this.start=t|0,this.source=r+"",this.flags=i,n&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)};Ge.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)};Ge.prototype.at=function(t,r){r===void 0&&(r=!1);var i=this.source,n=i.length;if(t>=n)return-1;var a=i.charCodeAt(t);if(!(r||this.switchU)||a<=55295||a>=57344||t+1>=n)return a;var s=i.charCodeAt(t+1);return s>=56320&&s<=57343?(a<<10)+s-56613888:a};Ge.prototype.nextIndex=function(t,r){r===void 0&&(r=!1);var i=this.source,n=i.length;if(t>=n)return n;var a=i.charCodeAt(t),s;return!(r||this.switchU)||a<=55295||a>=57344||t+1>=n||(s=i.charCodeAt(t+1))<56320||s>57343?t+1:t+2};Ge.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)};Ge.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)};Ge.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)};Ge.prototype.eat=function(t,r){return r===void 0&&(r=!1),this.current(r)===t?(this.advance(r),!0):!1};Ge.prototype.eatChars=function(t,r){r===void 0&&(r=!1);for(var i=this.pos,n=0,a=t;n-1&&this.raise(e.start,"Duplicate regular expression flag"),s==="u"&&(i=!0),s==="v"&&(n=!0)}this.options.ecmaVersion>=15&&i&&n&&this.raise(e.start,"Invalid regular expression flag")};function Hc(e){for(var t in e)return!0;return!1}j.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&Hc(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))};j.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t=16;for(t&&(e.branchID=new xi(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")};j.regexp_alternative=function(e){for(;e.pos=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1};j.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1};j.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)};j.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var i=0,n=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue),e.eat(125)))return n!==-1&&n=16){var r=this.regexp_eatModifiers(e),i=e.eat(45);if(r||i){for(var n=0;n-1&&e.raise("Duplicate regular expression modifiers")}if(i){var s=this.regexp_eatModifiers(e);!r&&!s&&e.current()===58&&e.raise("Invalid regular expression modifiers");for(var u=0;u-1||r.indexOf(l)>-1)&&e.raise("Duplicate regular expression modifiers")}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}}e.pos=t}return!1};j.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1};j.regexp_eatModifiers=function(e){for(var t="",r=0;(r=e.current())!==-1&&Kc(r);)t+=it(r),e.advance();return t};function Kc(e){return e===105||e===109||e===115}j.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)};j.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1};j.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Es(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Es(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}j.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;(r=e.current())!==-1&&!Es(r);)e.advance();return e.pos!==t};j.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1};j.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise("Invalid group");var t=this.options.ecmaVersion>=16,r=e.groupNames[e.lastStringValue];if(r)if(t)for(var i=0,n=r;i=11,i=e.current(r);return e.advance(r),i===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(i=e.lastIntValue),Uc(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)};function Uc(e){return $e(e,!0)||e===36||e===95}j.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,i=e.current(r);return e.advance(r),i===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(i=e.lastIntValue),$c(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)};function $c(e){return mt(e,!0)||e===36||e===95||e===8204||e===8205}j.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)};j.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1};j.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1};j.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)};j.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1};j.regexp_eatZero=function(e){return e.current()===48&&!yi(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1};j.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1};j.regexp_eatControlLetter=function(e){var t=e.current();return Ss(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Ss(e){return e>=65&&e<=90||e>=97&&e<=122}j.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var r=e.pos,i=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var n=e.lastIntValue;if(i&&n>=55296&&n<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var s=e.lastIntValue;if(s>=56320&&s<=57343)return e.lastIntValue=(n-55296)*1024+(s-56320)+65536,!0}e.pos=a,e.lastIntValue=n}return!0}if(i&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Gc(e.lastIntValue))return!0;i&&e.raise("Invalid unicode escape"),e.pos=r}return!1};function Gc(e){return e>=0&&e<=1114111}j.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1};j.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1};var Cs=0,at=1,Ie=2;j.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Yc(t))return e.lastIntValue=-1,e.advance(),at;var r=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((r=t===80)||t===112)){e.lastIntValue=-1,e.advance();var i;if(e.eat(123)&&(i=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return r&&i===Ie&&e.raise("Invalid property name"),i;e.raise("Invalid property name")}return Cs};function Yc(e){return e===100||e===68||e===115||e===83||e===119||e===87}j.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,i),at}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,n)}return Cs};j.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){Qt(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")};j.regexp_validateUnicodePropertyNameOrValue=function(e,t){if(e.unicodeProperties.binary.test(t))return at;if(e.switchV&&e.unicodeProperties.binaryOfStrings.test(t))return Ie;e.raise("Invalid property name")};j.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Ps(t=e.current());)e.lastStringValue+=it(t),e.advance();return e.lastStringValue!==""};function Ps(e){return Ss(e)||e===95}j.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";zc(t=e.current());)e.lastStringValue+=it(t),e.advance();return e.lastStringValue!==""};function zc(e){return Ps(e)||yi(e)}j.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)};j.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),r=this.regexp_classContents(e);return e.eat(93)||e.raise("Unterminated character class"),t&&r===Ie&&e.raise("Negated character class may contain strings"),!0}return!1};j.regexp_classContents=function(e){return e.current()===93?at:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),at)};j.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;e.switchU&&(t===-1||r===-1)&&e.raise("Invalid character class"),t!==-1&&r!==-1&&t>r&&e.raise("Range out of order in character class")}}};j.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(r===99||Ds(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return i!==93?(e.lastIntValue=i,e.advance(),!0):!1};j.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)};j.regexp_classSetExpression=function(e){var t=at,r;if(!this.regexp_eatClassSetRange(e))if(r=this.regexp_eatClassSetOperand(e)){r===Ie&&(t=Ie);for(var i=e.pos;e.eatChars([38,38]);){if(e.current()!==38&&(r=this.regexp_eatClassSetOperand(e))){r!==Ie&&(t=at);continue}e.raise("Invalid character in character class")}if(i!==e.pos)return t;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise("Invalid character in character class");if(i!==e.pos)return t}else e.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(e)){if(r=this.regexp_eatClassSetOperand(e),!r)return t;r===Ie&&(t=Ie)}};j.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var r=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var i=e.lastIntValue;return r!==-1&&i!==-1&&r>i&&e.raise("Range out of order in character class"),!0}e.pos=t}return!1};j.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?at:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)};j.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var r=e.eat(94),i=this.regexp_classContents(e);if(e.eat(93))return r&&i===Ie&&e.raise("Negated character class may contain strings"),i;e.pos=t}if(e.eat(92)){var n=this.regexp_eatCharacterClassEscape(e);if(n)return n;e.pos=t}return null};j.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var r=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return r}else e.raise("Invalid escape");e.pos=t}return null};j.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===Ie&&(t=Ie);return t};j.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return t===1?at:Ie};j.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return this.regexp_eatCharacterEscape(e)||this.regexp_eatClassSetReservedPunctuator(e)?!0:e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1);var r=e.current();return r<0||r===e.lookahead()&&Wc(r)||Jc(r)?!1:(e.advance(),e.lastIntValue=r,!0)};function Wc(e){return e===33||e>=35&&e<=38||e>=42&&e<=44||e===46||e>=58&&e<=64||e===94||e===96||e===126}function Jc(e){return e===40||e===41||e===45||e===47||e>=91&&e<=93||e>=123&&e<=125}j.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return Qc(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Qc(e){return e===33||e===35||e===37||e===38||e===44||e===45||e>=58&&e<=62||e===64||e===96||e===126}j.regexp_eatClassControlLetter=function(e){var t=e.current();return yi(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1};j.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1};j.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;yi(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t};function yi(e){return e>=48&&e<=57}j.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Is(r=e.current());)e.lastIntValue=16*e.lastIntValue+Ns(r),e.advance();return e.pos!==t};function Is(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ns(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}j.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+r*8+e.lastIntValue:e.lastIntValue=t*8+r}else e.lastIntValue=t;return!0}return!1};j.regexp_eatOctalDigit=function(e){var t=e.current();return Ds(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Ds(e){return e>=48&&e<=55}j.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var i=0;i=this.input.length)return this.finishToken(c.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())};q.readToken=function(e){return $e(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)};q.fullCharCodeAt=function(e){var t=this.input.charCodeAt(e);if(t<=55295||t>=56320)return t;var r=this.input.charCodeAt(e+1);return r<=56319||r>=57344?t:(t<<10)+r-56613888};q.fullCharCodeAtPos=function(){return this.fullCharCodeAt(this.pos)};q.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(r===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations)for(var i=void 0,n=t;(i=Qa(this.input,n,this.pos))>-1;)++this.curLine,n=this.lineStart=i;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())};q.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&Xa.test(String.fromCharCode(e)))++this.pos;else break e}}};q.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)};q.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(c.ellipsis)):(++this.pos,this.finishToken(c.dot))};q.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(c.assign,2):this.finishOp(c.slash,1)};q.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,i=e===42?c.star:c.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++r,i=c.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(c.assign,r+1):this.finishOp(i,r)};q.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(c.assign,3)}return this.finishOp(e===124?c.logicalOR:c.logicalAND,2)}return t===61?this.finishOp(c.assign,2):this.finishOp(e===124?c.bitwiseOR:c.bitwiseAND,1)};q.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(c.assign,2):this.finishOp(c.bitwiseXOR,1)};q.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||_e.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(c.incDec,2):t===61?this.finishOp(c.assign,2):this.finishOp(c.plusMin,1)};q.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(c.assign,r+1):this.finishOp(c.bitShift,r)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(r=2),this.finishOp(c.relational,r))};q.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(c.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(c.arrow)):this.finishOp(e===61?c.eq:c.prefix,1)};q.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(c.questionDot,2)}if(t===63){if(e>=12){var i=this.input.charCodeAt(this.pos+2);if(i===61)return this.finishOp(c.assign,3)}return this.finishOp(c.coalesce,2)}}return this.finishOp(c.question,1)};q.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),$e(t,!0)||t===92))return this.finishToken(c.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+it(t)+"'")};q.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(c.parenL);case 41:return++this.pos,this.finishToken(c.parenR);case 59:return++this.pos,this.finishToken(c.semi);case 44:return++this.pos,this.finishToken(c.comma);case 91:return++this.pos,this.finishToken(c.bracketL);case 93:return++this.pos,this.finishToken(c.bracketR);case 123:return++this.pos,this.finishToken(c.braceL);case 125:return++this.pos,this.finishToken(c.braceR);case 58:return++this.pos,this.finishToken(c.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(c.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(c.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+it(e)+"'")};q.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)};q.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(_e.test(i)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if(i==="[")t=!0;else if(i==="]"&&t)t=!1;else if(i==="/"&&!t)break;e=i==="\\"}++this.pos}var n=this.input.slice(r,this.pos);++this.pos;var a=this.pos,s=this.readWord1();this.containsEsc&&this.unexpected(a);var u=this.regexpState||(this.regexpState=new Ge(this));u.reset(r,n,s),this.validateRegExpFlags(u),this.validateRegExpPattern(u);var l=null;try{l=new RegExp(n,s)}catch{}return this.finishToken(c.regexp,{pattern:n,flags:s,value:l})};q.readInt=function(e,t,r){for(var i=this.options.ecmaVersion>=12&&t===void 0,n=r&&this.input.charCodeAt(this.pos)===48,a=this.pos,s=0,u=0,l=0,h=t??1/0;l=97?_=m-97+10:m>=65?_=m-65+10:m>=48&&m<=57?_=m-48:_=1/0,_>=e)break;u=m,s=s*e+_}return i&&u===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===a||t!=null&&this.pos-a!==t?null:s};function Xc(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,""))}function Ms(e){return typeof BigInt!="function"?null:BigInt(e.replace(/_/g,""))}q.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return r==null&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(r=Ms(this.input.slice(t,this.pos)),++this.pos):$e(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(c.num,r)};q.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,"Invalid number");var r=this.pos-t>=2&&this.input.charCodeAt(t)===48;r&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&i===110){var n=Ms(this.input.slice(t,this.pos));return++this.pos,$e(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(c.num,n)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),i===46&&!r&&(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),(i===69||i===101)&&!r&&(i=this.input.charCodeAt(++this.pos),(i===43||i===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,"Invalid number")),$e(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=Xc(this.input.slice(t,this.pos),r);return this.finishToken(c.num,a)};q.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(r,"Code point out of bounds")}else t=this.readHexChar(4);return t};q.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;i===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):i===8232||i===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Jt(i)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(c.string,t)};var Fs={};q.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Fs)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1};q.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Fs;this.raise(e,t)};q.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(r===96||r===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===c.template||this.type===c.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(c.dollarBraceL)):(++this.pos,this.finishToken(c.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(c.template,e));if(r===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Jt(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=` `;break;default:e+=String.fromCharCode(r);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}};q.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],n=parseInt(i,8);return n>255&&(i=i.slice(0,-1),n=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),(i!=="0"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(n)}return Jt(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),""):String.fromCharCode(t)}};q.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return r===null&&this.invalidStringToken(t,"Bad character escape sequence"),r};q.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,i=this.options.ecmaVersion>=6;this.pos"},{name:"Date now with format",example:'<% tp.date.now("Do MMMM YYYY") %>'},{name:"Last week",example:'<% tp.date.now("YYYY-MM-DD", -7) %>'},{name:"Next week",example:'<% tp.date.now("YYYY-MM-DD", 7) %>'},{name:"Last month",example:'<% tp.date.now("YYYY-MM-DD", "P-1M") %>'},{name:"Next year",example:'<% tp.date.now("YYYY-MM-DD", "P1Y") %>'},{name:"File's title date + 1 day (tomorrow)",example:'<% tp.date.now("YYYY-MM-DD", 1, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title date - 1 day (yesterday)",example:'<% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD") %>'}]},tomorrow:{name:"tomorrow",description:"Retrieves tomorrow's date.",definition:'tp.date.tomorrow(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date tomorrow",example:"<% tp.date.tomorrow() %>"},{name:"Date tomorrow with format",example:'<% tp.date.tomorrow("Do MMMM YYYY") %>'}]},yesterday:{name:"yesterday",description:"Retrieves yesterday's date.",definition:'tp.date.yesterday(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date yesterday",example:"<% tp.date.yesterday() %>"},{name:"Date yesterday with format",example:'<% tp.date.yesterday("Do MMMM YYYY") %>'}]},weekday:{name:"weekday",description:"",definition:'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"weekday",description:"Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day."},{name:"reference",description:"The reference date to use instead of today, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"This week's Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0) %>'},{name:"Next Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 7) %>'},{name:"File's title Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title previous Monday",example:'<% tp.date.weekday("YYYY-MM-DD", -7, tp.file.title, "YYYY-MM-DD") %>'}]}},momentjs:{examples:[{name:"Date now",example:'<% moment(tp.file.title, "YYYY-MM-DD").format("YYYY-MM-DD") %>'},{name:"Get start of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").startOf("month").format("YYYY-MM-DD") %>'},{name:"Get end of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").endOf("month").format("YYYY-MM-DD") %>'}]}},file:{name:"file",description:"This module contains every internal function related to files.",functions:{content:{name:"content",description:"The string contents of the file at the time that Templater was executed. Manipulating this string will *not* update the current file.",definition:"tp.file.content",examples:[{name:"Retrieve file content",example:"<% tp.file.content %>"}]},create_new:{name:"create_new",description:"Creates a new file using a specified template or with a specified content.",definition:"tp.file.create_new(template: TFile | string, filename: string = 'Untitled', open_new: boolean = false, folder?: TFolder | string)",args:[{name:"template",description:"Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`."},{name:"filename",description:'The filename of the new file, defaults to "Untitled".'},{name:"open_new",description:"Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file."},{name:"folder",description:'The folder to put the new file in, defaults to Obsidian\'s default location. If you want the file to appear in a different folder, specify it with `"PATH/TO/FOLDERNAME"` or `tp.app.vault.getAbstractFileByPath("PATH/TO/FOLDERNAME")`.'}],examples:[{name:"File creation",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename") %>'},{name:"File creation with template",example:'<%* await tp.file.create_new(tp.file.find_tfile("MyTemplate"), "MyFilename") %>'},{name:"File creation and open created note",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", true) %>'},{name:"File creation in current folder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.file.folder(true)) %>'},{name:"File creation in specified folder with string path",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, "Path/To/MyFolder") %>'},{name:"File creation in specified folder with TFolder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.app.vault.getAbstractFileByPath("MyFolder")) %>'},{name:"File creation and append link to current note",example:'[[<% (await tp.file.create_new("MyFileContent", "MyFilename")).basename %>]]'}]},creation_date:{name:"creation_date",description:"Retrieves the current file's creation date.",definition:'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File creation date",example:"<% tp.file.creation_date() %>"},{name:"File creation date with format",example:'<% tp.file.creation_date("dddd Do MMMM YYYY HH:mm") %>'}]},cursor:{name:"cursor",description:`Sets the cursor to this location after the template has been inserted. You can navigate between the different cursors using the configured hotkey in Obsidian settings. `,definition:"tp.file.cursor(order?: number)",args:[{name:"order",description:`The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on. If you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor. `}],examples:[{name:"File cursor",example:"<% tp.file.cursor() %>"},{name:"File multi-cursor",example:"<% tp.file.cursor(1) %>Content<% tp.file.cursor(1) %>"}]},cursor_append:{name:"cursor_append",description:"Appends some content after the active cursor in the file.",definition:"tp.file.cursor_append(content: string)",args:[{name:"content",description:"The content to append after the active cursor."}],examples:[{name:"File cursor append",example:'<% tp.file.cursor_append("Some text") %>'}]},exists:{name:"exists",description:"Check to see if a file exists by it's file path. The full path to the file, relative to the Vault and containing the extension, must be provided.",definition:"tp.file.exists(filepath: string)",args:[{name:"filepath",description:"The full file path of the file we want to check existence for."}],examples:[{name:"File existence",example:'<% await tp.file.exists("MyFolder/MyFile.md") %>'},{name:"File existence of current file",example:'<% await tp.file.exists(tp.file.folder(true) + "/" + tp.file.title + ".md") %>'}]},find_tfile:{name:"find_tfile",description:"Search for a file and returns its `TFile` instance.",definition:"tp.file.find_tfile(filename: string)",args:[{name:"filename",description:"The filename we want to search and resolve as a `TFile`."}],examples:[{name:"File find TFile",example:'<% tp.file.find_tfile("MyFile").basename %>'}]},folder:{name:"folder",description:"Retrieves the file's folder name.",definition:"tp.file.folder(absolute: boolean = false)",args:[{name:"absolute",description:"If set to `true`, returns the vault-absolute path of the folder. If `false`, only returns the basename of the folder (the last part). Defaults to `false`."}],examples:[{name:"File folder (Folder)",example:"<% tp.file.folder() %>"},{name:"File folder with vault-absolute path (Path/To/Folder)",example:"<% tp.file.folder(true) %>"}]},include:{name:"include",description:"Includes the file's link content. Templates in the included content will be resolved.",definition:"tp.file.include(include_link: string | TFile)",args:[{name:"include_link",description:'The link to the file to include, e.g. `"[[MyFile]]"`, or a TFile object. Also supports sections or blocks inclusions.'}],examples:[{name:"File include",example:'<% await tp.file.include("[[Template1]]") %>'},{name:"File include TFile",example:'<% await tp.file.include(tp.file.find_tfile("MyFile")) %>'},{name:"File include section",example:'<% await tp.file.include("[[MyFile#Section1]]") %>'},{name:"File include block",example:'<% await tp.file.include("[[MyFile#^block1]]") %>'}]},last_modified_date:{name:"last_modified_date",description:"Retrieves the file's last modification date.",definition:'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File last modified date",example:"<% tp.file.last_modified_date() %>"},{name:"File last modified date with format",example:'<% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm") %>'}]},move:{name:"move",description:"Moves the file to the desired vault location.",definition:"tp.file.move(new_path: string, file_to_move?: TFile)",args:[{name:"new_path",description:'The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. `"/Notes/MyNote"`.'},{name:"file_to_move",description:"The file to move, defaults to the current file."}],examples:[{name:"File move",example:'<%* await tp.file.move("/A/B/" + tp.file.title) %>'},{name:"File move and rename",example:'<%* await tp.file.move("/A/B/NewTitle") %>'}]},path:{name:"path",description:"Retrieves the file's absolute path on the system.",definition:"tp.file.path(relative: boolean = false)",args:[{name:"relative",description:"If set to `true`, only retrieves the vault's relative path."}],examples:[{name:"File path",example:"<% tp.file.path() %>"},{name:"File relative path (relative to vault root)",example:"<% tp.file.path(true) %>"}]},rename:{name:"rename",description:"Renames the file (keeps the same file extension).",definition:"tp.file.rename(new_title: string)",args:[{name:"new_title",description:"The new file title."}],examples:[{name:"File rename",example:'<%* await tp.file.rename("MyNewName") %>'},{name:"File append a 2 to the file name",example:'<%* await tp.file.rename(tp.file.title + "2") %>'}]},selection:{name:"selection",description:"Retrieves the active file's text selection.",definition:"tp.file.selection()",examples:[{name:"File selection",example:"<% tp.file.selection() %>"}]},tags:{name:"tags",description:"Retrieves the file's tags (array of string).",definition:"tp.file.tags",examples:[{name:"File tags",example:"<% tp.file.tags %>"}]},title:{name:"title",definition:"tp.file.title",description:"Retrieves the file's title.",examples:[{name:"File title",example:"<% tp.file.title %>"},{name:"Strip the Zettelkasten ID of title (if space separated)",example:'<% tp.file.title.split(" ")[1] %>'}]}}},frontmatter:{name:"frontmatter",description:"This modules exposes all the frontmatter variables of a file as variables."},hooks:{name:"hooks",description:"This module exposes hooks that allow you to execute code when a Templater event occurs.",functions:{on_all_templates_executed:{name:"on_all_templates_executed",description:"Hooks into when all actively running templates have finished executing. Most of the time this will be a single template, unless you are using `tp.file.include` or `tp.file.create_new`.\n\nMultiple invokations of this method will have their callback functions run in parallel.",definition:"tp.hooks.on_all_templates_executed(callback_function: () => any)",args:[{name:"callback_function",description:"Callback function that will be executed when all actively running templates have finished executing."}]}}},obsidian:{name:"obsidian",description:"This module exposes all the functions and classes from the Obsidian API."},system:{name:"system",description:"This module contains system related functions.",functions:{clipboard:{name:"clipboard",description:"Retrieves the clipboard's content.",definition:"tp.system.clipboard()",examples:[{name:"Clipboard",example:"<% tp.system.clipboard() %>"}]},prompt:{name:"prompt",description:"Spawns a prompt modal and returns the user's input.",definition:"tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false, select_default_value?: boolean = false)",args:[{name:"prompt_text",description:"Text placed above the input field."},{name:"default_value",description:"A default value for the input field."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"multiline",description:"If set to `true`, the input field will be a multiline textarea. Defaults to `false`."},{name:"select_default_value",description:"If set to `true`, the default value shown when the modal opens is selected, so typing replaces it. Defaults to `false`."}],examples:[{name:"Prompt",example:'<% await tp.system.prompt("Please enter a value") %>'},{name:"Prompt with default value",example:'<% await tp.system.prompt("What is your mood today?", "happy") %>'},{name:"Multiline prompt",example:'<% await tp.system.prompt("What is your mood today?", null, false, true) %>'},{name:"Prompt with pre-selected default value",example:'<% await tp.system.prompt("What is your mood today?", "Input a mood...", false, false, true) %>'},{name:"Reuse output from prompt",example:`<%* let value = await tp.system.prompt("Please enter a value"); %> # <% value %> selected value: <% value %>`}]},suggester:{name:"suggester",description:"Spawns a suggester prompt and returns the user's chosen item.",definition:'tp.system.suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined, default_value?: T = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"placeholder",description:"Placeholder string of the prompt."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."},{name:"default_value",description:"Default value to initialize the suggester with."}],examples:[{name:"Suggester",example:'<% await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester with mapping function (same as above example)",example:'<% await tp.system.suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester for files",example:"[[<% (await tp.system.suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).basename %>]]"},{name:"Suggester for tags",example:'<% await tp.system.suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from suggester",example:`<%* let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); %> # <% selectedValue %> selected value: <% selectedValue %>`},{name:"Default value for the suggester",example:`<%* let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"], false, "", undefined, "Confused"); %> # <% selectedValue %> selected value: <% selectedValue %>`}]},multi_suggester:{name:"multi_suggester",description:"Spawns a suggester prompt that supports selecting multiple items and returns the user's chosen items.",definition:'tp.system.multi_suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, title: string = "", limit?: number = undefined, default_values?: T[] = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"title",description:"Text placed at the top of the modal."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."},{name:"default_values",description:"Default values to initialize the suggester with."}],examples:[{name:"Multi-suggester",example:'<% await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester with mapping function (same as above example)",example:'<% await tp.system.multi_suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester for files",example:"<% (await tp.system.multi_suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).map(f => `[[${f.basename}]]`) %>"},{name:"Multi-suggester for tags",example:'<% await tp.system.multi_suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from multi-suggester",example:`<%* let selectedValues = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); %> # <% selectedValues %> selected values: <% selectedValues %>`},{name:"Default value for the suggester",example:`<%* let selectedValue = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"], false, "", undefined, ["Happy", "Confused"]); %> # <% selectedValue %> selected value: <% selectedValue %>`}]}}},web:{name:"web",description:"This modules contains every internal function related to the web (making web requests).",functions:{daily_quote:{name:"daily_quote",description:"Retrieves and parses a daily quote as a callout. Without arguments it uses the language configured in Obsidian (via `getLanguage()`), falling back to English. English quotes come from `https://github.com/Zachatoo/quotes-database` and Spanish quotes from `https://github.com/wulflo/frases-inventario`.",definition:"tp.web.daily_quote(language?: string)",args:[{name:"language",description:'Optional language code (e.g. `"en"`, `"es"`) selecting the quotes database. Defaults to Obsidian\'s display language, falling back to English when no database is registered for that language.'}],examples:[{name:"Daily quote",example:"<% await tp.web.daily_quote() %>"},{name:"Daily quote in Spanish",example:'<% await tp.web.daily_quote("es") %>'}]},random_picture:{name:"random_picture",description:"Gets a random image from `https://unsplash.com/`.",definition:"tp.web.random_picture(size?: string, query?: string, include_size?: boolean)",args:[{name:"size",description:"Image size in the format `x`."},{name:"query",description:"Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma."},{name:"include_size",description:"Optional argument to include the specified size in the image link markdown. Defaults to false."}],examples:[{name:"Random picture",example:"<% await tp.web.random_picture() %>"},{name:"Random picture with size",example:'<% await tp.web.random_picture("200x200") %>'},{name:"Random picture with size and query",example:'<% await tp.web.random_picture("200x200", "landscape,water") %>'}]},request:{name:"request",description:"Makes a HTTP request to the specified URL. Optionally, you can specify a path to extract specific data from the response.",definition:"tp.web.request(url: string, path?: string)",args:[{name:"url",description:"The URL to which the HTTP request will be made."},{name:"path",description:"A path within the response JSON to extract specific data."}],examples:[{name:"Simple request",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos/1") %>'},{name:"Request with path",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos", "0.title") %>'}]}}}},Os={tp:eu};var tu=["app","config","date","file","frontmatter","hooks","obsidian","system","user","web"],ru=new Set(tu);function Gn(e){return typeof e=="string"&&ru.has(e)}function qs(e){return!!(e.definition||e.returns||e.args)}var Yn=class{constructor(t){this.plugin=t;this.documentation=Os}get_all_modules_documentation(){let t=this.documentation.tp,r=Object.values(t);return(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)&&(r=r.filter(i=>i.name!=="user")),r.map(i=>(i.queryKey=i.name,i))}async get_all_functions_documentation(t,r){if(t==="app")return this.get_app_functions_documentation(this.plugin.app,r);if(t==="user"){if(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)return;let i=await me(()=>Promise.resolve(je(this.plugin.app,this.plugin.settings.user_scripts_folder).filter(s=>s.extension==="js")),"User Scripts folder doesn't exist");if(!i||i.length===0)return;let n=iu(r);if(n){let s=i.find(u=>u.basename===n.scriptName);return s?nu(this.plugin,s,n.scriptName):[]}let a=await me(()=>Ta(this.plugin.app,i),"Failed to parse user script documentation");return!a||a.length===0?void 0:a.reduce((s,u)=>[...s,{name:u.basename,queryKey:u.basename,definition:"",description:u.description??"",returns:u.returns??"",args:Rs(u.arguments??[]),example:""}],[])}if(!!this.documentation.tp[t].functions)return Object.values(this.documentation.tp[t].functions).map(i=>(i.queryKey=i.name,i))}get_app_functions_documentation(t,r){if(!ue(t))return[];let i=r.split(".");if(i.length===0)return[];let n=t;for(let l=0;l{let u=n.get(s),l=u?.args?Object.keys(u.args):[];return{name:s,queryKey:`${r}.${s}`,definition:`tp.user.${r}.${s}(${l.join(", ")})`,description:u?.description??"",returns:u?.returns??"",args:u?.args,example:""}})}function au(e){let t;try{t=$n(e,{ecmaVersion:"latest",sourceType:"module"})}catch{try{t=$n(e,{ecmaVersion:"latest",sourceType:"script",allowReturnOutsideFunction:!0})}catch{return[]}}if(!ue(t)||!Array.isArray(t.body))return[];let r=new Set;for(let i of t.body)ou(i,r);return[...r]}function vi(e,t,r){if(!ue(e)||e.type!=="MemberExpression"||e.computed)return!1;let i=e.object,n=e.property;return ue(i)&&i.type==="Identifier"&&i.name===t&&ue(n)&&n.type==="Identifier"&&n.name===r}function Ls(e,t){if(!(!ue(e)||e.type!=="ObjectExpression"||!Array.isArray(e.properties)))for(let r of e.properties){if(!ue(r)||r.type!=="Property"||r.computed)continue;let i=r.key;!ue(i)||(i.type==="Identifier"&&typeof i.name=="string"?t.add(i.name):i.type==="Literal"&&typeof i.value=="string"&&t.add(i.value))}}function su(e){if(e.computed)return null;let t=e.property;if(!ue(t)||t.type!=="Identifier"||typeof t.name!="string")return null;let r=e.object;return vi(r,"module","exports")||vi(r,"exports","default")||ue(r)&&r.type==="Identifier"&&r.name==="exports"?t.name:null}function ou(e,t){if(!ue(e))return;if(e.type==="ExportDefaultDeclaration"){Ls(e.declaration,t);return}if(e.type!=="ExpressionStatement")return;let r=e.expression;if(!ue(r)||r.type!=="AssignmentExpression"||r.operator!=="=")return;let i=r.left;if(!ue(i)||i.type!=="MemberExpression")return;if(vi(i,"module","exports")||vi(i,"exports","default")){Ls(r.right,t);return}let n=su(i);n&&t.add(n)}function cu(e){let t=new Map,r="\\/\\*\\*[\\s\\S]*?\\*\\/",i="[$A-Z_a-z][$\\w]*",n=[new RegExp(`(${r})\\s*(?:async\\s+)?function\\s+(${i})\\s*\\(`,"g"),new RegExp(`(${r})\\s*(?:const|let|var)\\s+(${i})\\s*=`,"g"),new RegExp(`(${r})\\s*(${i})\\s*:`,"g"),new RegExp(`(${r})\\s*["'](${i})["']\\s*:`,"g"),new RegExp(`(${r})\\s*(?:async\\s+)?(${i})\\s*\\([^)]*\\)\\s*{`,"g"),new RegExp(`(${r})\\s*(${i})\\s*(?=,|})`,"g")];for(let a of n)for(let s of e.matchAll(a)){let u=Yi(s[1]);t.set(s[2],{description:u.description,returns:u.returns,args:Rs(u.arguments)})}return t}function Rs(e){if(e.length!==0)return e.reduce((t,r)=>(t[r.name]={name:r.name,description:r.description},t),{})}var zn=class extends Vs.EditorSuggest{constructor(t){super(t.app);this.tp_keyword_regex=/tp\.(?[a-z]*)?(?\.(?[a-zA-Z_.]*)?)?$/;this.module_name="";this.function_trigger=!1;this.function_name="";this.documentation=new Yn(t),this.intellisense_render_setting=t.settings.intellisense_render}onTrigger(t,r,i){let n=r.getRange({line:t.line,ch:0},{line:t.line,ch:t.ch}),a=this.tp_keyword_regex.exec(n);if(!a)return null;let s,u=a.groups&&a.groups.module||"";if(Gn(u)&&(this.module_name=u),a.groups&&a.groups.fn_trigger){if(u==""||!Gn(u))return null;this.function_trigger=!0,this.function_name=a.groups.fn||"",s=this.function_name}else this.function_trigger=!1,s=this.module_name;let l={start:{line:t.line,ch:t.ch-s.length},end:{line:t.line,ch:t.ch},query:s};return this.latest_trigger_info=l,l}async getSuggestions(t){let r;return this.module_name&&this.function_trigger?r=await this.documentation.get_all_functions_documentation(this.module_name,this.function_name):r=this.documentation.get_all_modules_documentation(),r?r.filter(i=>i.queryKey.toLowerCase().startsWith(t.query.toLowerCase())):[]}renderSuggestion(t,r){let i=qs(t),n=i&&t.args&&this.getNumberOfArguments(t.args)>0&&Pa(this.intellisense_render_setting),a=i&&t.returns&&Ca(this.intellisense_render_setting),s=i&&this.function_trigger&&t.definition,u=t.description&&Ia(this.intellisense_render_setting),l=n||a||s||u;if(r.createEl("b",{text:t.name}),l&&r.createEl("br"),i){if(n){r.createEl("p",{text:"Parameter list:"});let h=r.createEl("ol");for(let[m,_]of Object.entries(t.args??{}))Wi(h,m,_.description)}a&&Wi(r,"Returns",t.returns)}s&&r.createEl("code",{text:t.definition}),u&&r.createDiv({text:t.description})}selectSuggestion(t,r){let i=this.app.workspace.activeEditor;if(!(!i||!i.editor)&&!!this.latest_trigger_info&&(i.editor.replaceRange(t.queryKey,this.latest_trigger_info.start,this.latest_trigger_info.end),this.latest_trigger_info.start.ch==this.latest_trigger_info.end.ch)){let n=this.latest_trigger_info.end;n.ch+=t.queryKey.length,i.editor.setCursor(n)}}getNumberOfArguments(t){try{return new Map(Object.entries(t)).size}catch{return 0}}updateAutocompleteIntellisenseSetting(t){this.intellisense_render_setting=t}};(function(e){e(window.CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(t,r){var i=t.indentUnit,n=r.statementIndent,a=r.jsonld,s=r.json||a,u=r.trackScope!==!1,l=r.typescript,h=r.wordCharacters||/[\w$\xa1-\uffff]/,m=function(){function o(fe){return{type:fe,style:"keyword"}}var p=o("keyword a"),A=o("keyword b"),y=o("keyword c"),M=o("keyword d"),H=o("operator"),J={type:"atom",style:"atom"};return{if:o("if"),while:p,with:p,else:A,do:A,try:A,finally:A,return:M,break:M,continue:M,new:o("new"),delete:y,void:y,throw:y,debugger:o("debugger"),var:o("var"),const:o("var"),let:o("var"),function:o("function"),catch:o("catch"),for:o("for"),switch:o("switch"),case:o("case"),default:o("default"),in:H,typeof:H,instanceof:H,true:J,false:J,null:J,undefined:J,NaN:J,Infinity:J,this:o("this"),class:o("class"),super:o("atom"),yield:y,export:o("export"),import:o("import"),extends:y,await:y}}(),_=/[+\-*&%=<>!?|~^@]/,T=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function F(o){for(var p=!1,A,y=!1;(A=o.next())!=null;){if(!p){if(A=="/"&&!y)return;A=="["?y=!0:y&&A=="]"&&(y=!1)}p=!p&&A=="\\"}}var O,U;function P(o,p,A){return O=o,U=A,p}function Y(o,p){var A=o.next();if(A=='"'||A=="'")return p.tokenize=xe(A),p.tokenize(o,p);if(A=="."&&o.match(/^\d[\d_]*(?:[eE][+-]?[\d_]+)?/))return P("number","number");if(A=="."&&o.match(".."))return P("spread","meta");if(/[[\]{}(),;:.]/.test(A))return P(A);if(A=="="&&o.eat(">"))return P("=>","operator");if(A=="0"&&o.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return P("number","number");if(/\d/.test(A))return o.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?/),P("number","number");if(A=="/")return o.eat("*")?(p.tokenize=ye,ye(o,p)):o.eat("/")?(o.skipToEnd(),P("comment","comment")):ha(o,p,1)?(F(o),o.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),P("regexp","string-2")):(o.eat("="),P("operator","operator",o.current()));if(A=="`")return p.tokenize=re,re(o,p);if(A=="#"&&o.peek()=="!")return o.skipToEnd(),P("meta","meta");if(A=="#"&&o.eatWhile(h))return P("variable","property");if(A=="<"&&o.match("!--")||A=="-"&&o.match("->")&&!/\S/.test(o.string.slice(0,o.start)))return o.skipToEnd(),P("comment","comment");if(_.test(A))return(A!=">"||!p.lexical||p.lexical.type!=">")&&(o.eat("=")?(A=="!"||A=="=")&&o.eat("="):/[<>*+\-|&?]/.test(A)&&(o.eat(A),A==">"&&o.eat(A))),A=="?"&&o.eat(".")?P("."):P("operator","operator",o.current());if(h.test(A)){o.eatWhile(h);var y=o.current();if(p.lastType!="."){if(Object.prototype.propertyIsEnumerable.call(m,y)){var M=m[y];return P(M.type,M.style,y)}if(y=="async"&&o.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[[(\w]/,!1))return P("async","keyword",y)}return P("variable","variable",y)}}function xe(o){return function(p,A){var y=!1,M;if(a&&p.peek()=="@"&&p.match(T))return A.tokenize=Y,P("jsonld-keyword","meta");for(;(M=p.next())!=null&&!(M==o&&!y);)y=!y&&M=="\\";return y||(A.tokenize=Y),P("string","string")}}function ye(o,p){for(var A=!1,y;y=o.next();){if(y=="/"&&A){p.tokenize=Y;break}A=y=="*"}return P("comment","comment")}function re(o,p){for(var A=!1,y;(y=o.next())!=null;){if(!A&&(y=="`"||y=="$"&&o.eat("{"))){p.tokenize=Y;break}A=!A&&y=="\\"}return P("quasi","string-2",o.current())}var _t="([{}])";function Ne(o,p){p.fatArrowAt&&(p.fatArrowAt=null);var A=o.string.indexOf("=>",o.start);if(!(A<0)){if(l){var y=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(o.string.slice(o.start,A));y&&(A=y.index)}for(var M=0,H=!1,J=A-1;J>=0;--J){var fe=o.string.charAt(J),Le=_t.indexOf(fe);if(Le>=0&&Le<3){if(!M){++J;break}if(--M==0){fe=="("&&(H=!0);break}}else if(Le>=3&&Le<6)++M;else if(h.test(fe))H=!0;else if(/["'/`]/.test(fe))for(;;--J){if(J==0)return;var Ao=o.string.charAt(J-1);if(Ao==fe&&o.string.charAt(J-2)!="\\"){J--;break}}else if(H&&!M){++J;break}}H&&!M&&(p.fatArrowAt=J)}}var bi={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function br(o,p,A,y,M,H){this.indented=o,this.column=p,this.type=A,this.prev=M,this.info=H,y!=null&&(this.align=y)}function wi(o,p){if(!u)return!1;for(var A=o.localVars;A;A=A.next)if(A.name==p)return!0;for(var y=o.context;y;y=y.prev)for(A=y.vars;A;A=A.next)if(A.name==p)return!0}function er(o,p,A,y,M){var H=o.cc;for(x.state=o,x.stream=M,x.marked=null,x.cc=H,x.style=p,Object.prototype.hasOwnProperty.call(o.lexical,"align")||(o.lexical.align=!0);;){var J=H.length?H.pop():s?Q:ae;if(J(A,y)){for(;H.length&&H[H.length-1].lex;)H.pop()();return x.marked?x.marked:A=="variable"&&wi(o,y)?"variable-2":p}}}var x={state:null,column:null,marked:null,cc:null};function I(){for(var o=arguments.length-1;o>=0;o--)x.cc.push(arguments[o])}function d(){return I.apply(null,arguments),!0}function ki(o,p){for(var A=p;A;A=A.next)if(A.name==o)return!0;return!1}function Nt(o){var p=x.state;if(x.marked="def",!!u){if(p.context){if(p.lexical.info=="var"&&p.context&&p.context.block){var A=ea(o,p.context);if(A!=null){p.context=A;return}}else if(!ki(o,p.localVars)){p.localVars=new rr(o,p.localVars);return}}r.globalVars&&!ki(o,p.globalVars)&&(p.globalVars=new rr(o,p.globalVars))}}function ea(o,p){if(p)if(p.block){var A=ea(o,p.prev);return A?A==p.prev?p:new tr(A,p.vars,!0):null}else return ki(o,p.vars)?p:new tr(p.prev,new rr(o,p.vars),!1);else return null}function wr(o){return o=="public"||o=="private"||o=="protected"||o=="abstract"||o=="readonly"}function tr(o,p,A){this.prev=o,this.vars=p,this.block=A}function rr(o,p){this.name=o,this.next=p}var $s=new rr("this",new rr("arguments",null));function Dt(){x.state.context=new tr(x.state.context,x.state.localVars,!1),x.state.localVars=$s}function ji(){x.state.context=new tr(x.state.context,x.state.localVars,!0),x.state.localVars=null}function De(){x.state.localVars=x.state.context.vars,x.state.context=x.state.context.prev}De.lex=!0;function B(o,p){var A=function(){var y=x.state,M=y.indented;if(y.lexical.type=="stat")M=y.lexical.indented;else for(var H=y.lexical;H&&H.type==")"&&H.align;H=H.prev)M=H.indented;y.lexical=new br(M,x.stream.column(),o,null,y.lexical,p)};return A.lex=!0,A}function D(){var o=x.state;o.lexical.prev&&(o.lexical.type==")"&&(o.indented=o.lexical.indented),o.lexical=o.lexical.prev)}D.lex=!0;function V(o){function p(A){return A==o?d():o==";"||A=="}"||A==")"||A=="]"?I():d(p)}return p}function ae(o,p){return o=="var"?d(B("vardef",p),Pi,V(";"),D):o=="keyword a"?d(B("form"),Ti,ae,D):o=="keyword b"?d(B("form"),ae,D):o=="keyword d"?x.stream.match(/^\s*$/,!1)?d():d(B("stat"),Mt,V(";"),D):o=="debugger"?d(V(";")):o=="{"?d(B("}"),ji,Tr,D,De):o==";"?d():o=="if"?(x.state.lexical.info=="else"&&x.state.cc[x.state.cc.length-1]==D&&x.state.cc.pop()(),d(B("form"),Ti,ae,D,sa)):o=="function"?d(ot):o=="for"?d(B("form"),ji,oa,ae,De,D):o=="class"||l&&p=="interface"?(x.marked="keyword",d(B("form",o=="class"?o:p),ua,D)):o=="variable"?l&&p=="declare"?(x.marked="keyword",d(ae)):l&&(p=="module"||p=="enum"||p=="type")&&x.stream.match(/^\s*\w/,!1)?(x.marked="keyword",p=="enum"?d(fa):p=="type"?d(ca,V("operator"),W,V(";")):d(B("form"),Me,V("{"),B("}"),Tr,D,D)):l&&p=="namespace"?(x.marked="keyword",d(B("form"),Q,ae,D)):l&&p=="abstract"?(x.marked="keyword",d(ae)):d(B("stat"),Qs):o=="switch"?d(B("form"),Ti,V("{"),B("}","switch"),ji,Tr,D,D,De):o=="case"?d(Q,V(":")):o=="default"?d(V(":")):o=="catch"?d(B("form"),Dt,Gs,ae,D,De):o=="export"?d(B("stat"),lo,D):o=="import"?d(B("stat"),po,D):o=="async"?d(ae):p=="@"?d(Q,ae):I(B("stat"),Q,V(";"),D)}function Gs(o){if(o=="(")return d(vt,V(")"))}function Q(o,p){return ta(o,p,!1)}function ve(o,p){return ta(o,p,!0)}function Ti(o){return o!="("?I():d(B(")"),Mt,V(")"),D)}function ta(o,p,A){if(x.state.fatArrowAt==x.stream.start){var y=A?ia:ra;if(o=="(")return d(Dt,B(")"),oe(vt,")"),D,V("=>"),y,De);if(o=="variable")return I(Dt,Me,V("=>"),y,De)}var M=A?Ft:xt;return Object.prototype.hasOwnProperty.call(bi,o)?d(M):o=="function"?d(ot,M):o=="class"||l&&p=="interface"?(x.marked="keyword",d(B("form"),uo,D)):o=="keyword c"||o=="async"?d(A?ve:Q):o=="("?d(B(")"),Mt,V(")"),D,M):o=="operator"||o=="spread"?d(A?ve:Q):o=="["?d(B("]"),ho,D,M):o=="{"?ir(jr,"}",null,M):o=="quasi"?I(kr,M):o=="new"?d(zs(A)):d()}function Mt(o){return o.match(/[;})\],]/)?I():I(Q)}function xt(o,p){return o==","?d(Mt):Ft(o,p,!1)}function Ft(o,p,A){var y=A==!1?xt:Ft,M=A==!1?Q:ve;if(o=="=>")return d(Dt,A?ia:ra,De);if(o=="operator")return/\+\+|--/.test(p)||l&&p=="!"?d(y):l&&p=="<"&&x.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?d(B(">"),oe(W,">"),D,y):p=="?"?d(Q,V(":"),M):d(M);if(o=="quasi")return I(kr,y);if(o!=";"){if(o=="(")return ir(ve,")","call",y);if(o==".")return d(Xs,y);if(o=="[")return d(B("]"),Mt,V("]"),D,y);if(l&&p=="as")return x.marked="keyword",d(W,y);if(o=="regexp")return x.state.lastType=x.marked="operator",x.stream.backUp(x.stream.pos-x.stream.start-1),d(M)}}function kr(o,p){return o!="quasi"?I():p.slice(p.length-2)!="${"?d(kr):d(Mt,Ys)}function Ys(o){if(o=="}")return x.marked="string-2",x.state.tokenize=re,d(kr)}function ra(o){return Ne(x.stream,x.state),I(o=="{"?ae:Q)}function ia(o){return Ne(x.stream,x.state),I(o=="{"?ae:ve)}function zs(o){return function(p){return p=="."?d(o?Js:Ws):p=="variable"&&l?d(no,o?Ft:xt):I(o?ve:Q)}}function Ws(o,p){if(p=="target")return x.marked="keyword",d(xt)}function Js(o,p){if(p=="target")return x.marked="keyword",d(Ft)}function Qs(o){return o==":"?d(D,ae):I(xt,V(";"),D)}function Xs(o){if(o=="variable")return x.marked="property",d()}function jr(o,p){if(o=="async")return x.marked="property",d(jr);if(o=="variable"||x.style=="keyword"){if(x.marked="property",p=="get"||p=="set")return d(Zs);var A;return l&&x.state.fatArrowAt==x.stream.start&&(A=x.stream.match(/^\s*:\s*/,!1))&&(x.state.fatArrowAt=x.stream.pos+A[0].length),d(yt)}else{if(o=="number"||o=="string")return x.marked=a?"property":x.style+" property",d(yt);if(o=="jsonld-keyword")return d(yt);if(l&&wr(p))return x.marked="keyword",d(jr);if(o=="[")return d(Q,Bt,V("]"),yt);if(o=="spread")return d(ve,yt);if(p=="*")return x.marked="keyword",d(jr);if(o==":")return I(yt)}}function Zs(o){return o!="variable"?I(yt):(x.marked="property",d(ot))}function yt(o){if(o==":")return d(ve);if(o=="(")return I(ot)}function oe(o,p,A){function y(M,H){if(A?A.indexOf(M)>-1:M==","){var J=x.state.lexical;return J.info=="call"&&(J.pos=(J.pos||0)+1),d(function(fe,Le){return fe==p||Le==p?I():I(o)},y)}return M==p||H==p?d():A&&A.indexOf(";")>-1?I(o):d(V(p))}return function(M,H){return M==p||H==p?d():I(o,y)}}function ir(o,p,A){for(var y=3;y"),W);if(o=="quasi")return I(Si,Ye)}function ro(o){if(o=="=>")return d(W)}function Ei(o){return o.match(/[})\]]/)?d():o==","||o==";"?d(Ei):I(nr,Ei)}function nr(o,p){if(o=="variable"||x.style=="keyword")return x.marked="property",d(nr);if(p=="?"||o=="number"||o=="string")return d(nr);if(o==":")return d(W);if(o=="[")return d(V("variable"),eo,V("]"),nr);if(o=="(")return I(qt,nr);if(!o.match(/[;})\],]/))return d()}function Si(o,p){return o!="quasi"?I():p.slice(p.length-2)!="${"?d(Si):d(W,io)}function io(o){if(o=="}")return x.marked="string-2",x.state.tokenize=re,d(Si)}function Ci(o,p){return o=="variable"&&x.stream.match(/^\s*[?:]/,!1)||p=="?"?d(Ci):o==":"?d(W):o=="spread"?d(Ci):I(W)}function Ye(o,p){if(p=="<")return d(B(">"),oe(W,">"),D,Ye);if(p=="|"||o=="."||p=="&")return d(W);if(o=="[")return d(W,V("]"),Ye);if(p=="extends"||p=="implements")return x.marked="keyword",d(W);if(p=="?")return d(W,V(":"),W)}function no(o,p){if(p=="<")return d(B(">"),oe(W,">"),D,Ye)}function Er(){return I(W,ao)}function ao(o,p){if(p=="=")return d(W)}function Pi(o,p){return p=="enum"?(x.marked="keyword",d(fa)):I(Me,Bt,st,oo)}function Me(o,p){if(l&&wr(p))return x.marked="keyword",d(Me);if(o=="variable")return Nt(p),d();if(o=="spread")return d(Me);if(o=="[")return ir(so,"]");if(o=="{")return ir(aa,"}")}function aa(o,p){return o=="variable"&&!x.stream.match(/^\s*:/,!1)?(Nt(p),d(st)):(o=="variable"&&(x.marked="property"),o=="spread"?d(Me):o=="}"?I():o=="["?d(Q,V("]"),V(":"),aa):d(V(":"),Me,st))}function so(){return I(Me,st)}function st(o,p){if(p=="=")return d(ve)}function oo(o){if(o==",")return d(Pi)}function sa(o,p){if(o=="keyword b"&&p=="else")return d(B("form","else"),ae,D)}function oa(o,p){if(p=="await")return d(oa);if(o=="(")return d(B(")"),co,D)}function co(o){return o=="var"?d(Pi,Ot):o=="variable"?d(Ot):I(Ot)}function Ot(o,p){return o==")"?d():o==";"?d(Ot):p=="in"||p=="of"?(x.marked="keyword",d(Q,Ot)):I(Q,Ot)}function ot(o,p){if(p=="*")return x.marked="keyword",d(ot);if(o=="variable")return Nt(p),d(ot);if(o=="(")return d(Dt,B(")"),oe(vt,")"),D,na,ae,De);if(l&&p=="<")return d(B(">"),oe(Er,">"),D,ot)}function qt(o,p){if(p=="*")return x.marked="keyword",d(qt);if(o=="variable")return Nt(p),d(qt);if(o=="(")return d(Dt,B(")"),oe(vt,")"),D,na,De);if(l&&p=="<")return d(B(">"),oe(Er,">"),D,qt)}function ca(o,p){if(o=="keyword"||o=="variable")return x.marked="type",d(ca);if(p=="<")return d(B(">"),oe(Er,">"),D)}function vt(o,p){return p=="@"&&d(Q,vt),o=="spread"?d(vt):l&&wr(p)?(x.marked="keyword",d(vt)):l&&o=="this"?d(Bt,st):I(Me,Bt,st)}function uo(o,p){return o=="variable"?ua(o,p):Sr(o,p)}function ua(o,p){if(o=="variable")return Nt(p),d(Sr)}function Sr(o,p){if(p=="<")return d(B(">"),oe(Er,">"),D,Sr);if(p=="extends"||p=="implements"||l&&o==",")return p=="implements"&&(x.marked="keyword"),d(l?W:Q,Sr);if(o=="{")return d(B("}"),ze,D)}function ze(o,p){if(o=="async"||o=="variable"&&(p=="static"||p=="get"||p=="set"||l&&wr(p))&&x.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return x.marked="keyword",d(ze);if(o=="variable"||x.style=="keyword")return x.marked="property",d(ar,ze);if(o=="number"||o=="string")return d(ar,ze);if(o=="[")return d(Q,Bt,V("]"),ar,ze);if(p=="*")return x.marked="keyword",d(ze);if(l&&o=="(")return I(qt,ze);if(o==";"||o==",")return d(ze);if(o=="}")return d();if(p=="@")return d(Q,ze)}function ar(o,p){if(p=="!"||p=="?")return d(ar);if(o==":")return d(W,st);if(p=="=")return d(ve);var A=x.state.lexical.prev,y=A&&A.info=="interface";return I(y?qt:ot)}function lo(o,p){return p=="*"?(x.marked="keyword",d(Ii,V(";"))):p=="default"?(x.marked="keyword",d(Q,V(";"))):o=="{"?d(oe(la,"}"),Ii,V(";")):I(ae)}function la(o,p){if(p=="as")return x.marked="keyword",d(V("variable"));if(o=="variable")return I(ve,la)}function po(o){return o=="string"?d():o=="("?I(Q):o=="."?I(xt):I(Cr,pa,Ii)}function Cr(o,p){return o=="{"?ir(Cr,"}"):(o=="variable"&&Nt(p),p=="*"&&(x.marked="keyword"),d(fo))}function pa(o){if(o==",")return d(Cr,pa)}function fo(o,p){if(p=="as")return x.marked="keyword",d(Cr)}function Ii(o,p){if(p=="from")return x.marked="keyword",d(Q)}function ho(o){return o=="]"?d():I(oe(ve,"]"))}function fa(){return I(B("form"),Me,V("{"),B("}"),oe(mo,"}"),D,D)}function mo(){return I(Me,st)}function go(o,p){return o.lastType=="operator"||o.lastType==","||_.test(p.charAt(0))||/[,.]/.test(p.charAt(0))}function ha(o,p,A){return p.tokenize==Y&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[[{}(,;:]|=>)$/.test(p.lastType)||p.lastType=="quasi"&&/\{\s*$/.test(o.string.slice(0,o.pos-(A||0)))}return{startState:function(o){var p={tokenize:Y,lastType:"sof",cc:[],lexical:new br((o||0)-i,0,"block",!1),localVars:r.localVars,context:r.localVars&&new tr(null,null,!1),indented:o||0};return r.globalVars&&typeof r.globalVars=="object"&&(p.globalVars=r.globalVars),p},token:function(o,p){if(o.sol()&&(Object.prototype.hasOwnProperty.call(p.lexical,"align")||(p.lexical.align=!1),p.indented=o.indentation(),Ne(o,p)),p.tokenize!=ye&&o.eatSpace())return null;var A=p.tokenize(o,p);return O=="comment"?A:(p.lastType=O=="operator"&&(U=="++"||U=="--")?"incdec":O,er(p,A,O,U,o))},indent:function(o,p){if(o.tokenize==ye||o.tokenize==re)return e.Pass;if(o.tokenize!=Y)return 0;var A=p&&p.charAt(0),y=o.lexical,M;if(!/^\s*else\b/.test(p))for(var H=o.cc.length-1;H>=0;--H){var J=o.cc[H];if(J==D)y=y.prev;else if(J!=sa&&J!=De)break}for(;(y.type=="stat"||y.type=="form")&&(A=="}"||(M=o.cc[o.cc.length-1])&&(M==xt||M==Ft)&&!/^[,.=+\-*:?[(]/.test(p));)y=y.prev;n&&y.type==")"&&y.prev.type=="stat"&&(y=y.prev);var fe=y.type,Le=A==fe;return fe=="vardef"?y.indented+(o.lastType=="operator"||o.lastType==","?y.info.length+1:0):fe=="form"&&A=="{"?y.indented:fe=="form"?y.indented+i:fe=="stat"?y.indented+(go(o,p)?n||i:0):y.info=="switch"&&!Le&&r.doubleIndentSwitch!=!1?y.indented+(/^(?:case|default)\b/.test(p)?i:2*i):y.align?y.column+(Le?0:1):y.indented+(Le?0:i)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:a,jsonMode:s,expressionAllowed:ha,skipExpression:function(o){er(o,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})});(function(e){e(window.CodeMirror)})(function(e){"use strict";e.customOverlayMode=function(t,r,i){return{startState:function(){return{base:e.startState(t),overlay:e.startState(r),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(n){return{base:e.copyState(t,n.base),overlay:e.copyState(r,n.overlay),basePos:n.basePos,baseCur:null,overlayPos:n.overlayPos,overlayCur:null}},token:function(n,a){return(n!=a.streamSeen||Math.min(a.basePos,a.overlayPos)0&&(this.activeEditorExtensions.pop(),this.plugin.app.workspace.updateOptions())}async jump_to_next_cursor_location(t=null,r=!1){r&&!this.plugin.settings.auto_jump_to_cursor||t&&pt(this.plugin.app)!==t||await this.cursor_jumper.jump_to_next_cursor_location()}async registerCodeMirrorMode(){if(!this.desktopShouldHighlight()&&!this.mobileShouldHighlight())return;let t=window.CodeMirror.getMode({},"javascript");if(t.name==="null"){le(new C("Javascript syntax mode couldn't be found, can't enable syntax highlighting."));return}let r=window.CodeMirror.customOverlayMode;if(r==null){le(new C("Couldn't find customOverlayMode, can't enable syntax highlighting."));return}window.CodeMirror.defineMode(Us,function(i){let n={startState:function(){return{...window.CodeMirror.startState(t),inCommand:!1,tag_class:"",freeLine:!1}},copyState:function(a){let s=window.CodeMirror.startState(t),u=a;return{...s,inCommand:u.inCommand,tag_class:u.tag_class,freeLine:u.freeLine}},blankLine:function(a){return a.inCommand?"line-background-templater-command-bg":null},token:function(a,s){let u=s;if(a.sol()&&u.inCommand&&(u.freeLine=!0),u.inCommand){let h="";if(a.match(/[-_]{0,1}%>/,!0)){u.inCommand=!1,u.freeLine=!1;let _=u.tag_class;return u.tag_class="",`line-${Qn} ${Jn} ${lu} ${_}`}let m=t.token&&t.token(a,u);return a.peek()==null&&u.freeLine&&(h+=" line-background-templater-command-bg"),u.freeLine||(h+=` line-${Qn}`),`${h} ${Jn} ${m}`}let l=a.match(/<%[-_]{0,1}\s*([*+]{0,1})/,!0);if(l){switch(l[1]){case"*":u.tag_class=fu;break;default:u.tag_class=pu;break}return u.inCommand=!0,`line-${Qn} ${Jn} ${uu} ${u.tag_class}`}for(;a.next()!=null&&!a.match(/<%/,!1););return null}};return r(window.CodeMirror.getMode(i,"hypermd"),n)})}updateEditorIntellisenseSetting(t){this.autocomplete.updateAutocompleteIntellisenseSetting(t)}};var Zn=class extends Zt.Plugin{constructor(){super(...arguments);this.settings={...mr}}async onload(){await this.load_settings(),this.templater=new zt(this),await this.templater.setup(),this.editor_handler=new Xn(this),await this.editor_handler.setup(),this.fuzzy_suggester=new cn(this),this.event_handler=new ui(this,this.templater),await this.event_handler.setup(),this.command_handler=new Sn(this),this.command_handler.setup(),(0,Zt.addIcon)("templater-icon",qa),this.addRibbonIcon("templater-icon","Templater",()=>{this.fuzzy_suggester.insert_template()}).setAttribute("id","rb-templater-icon"),this.addSettingTab(new on(this)),this.app.workspace.onLayoutReady(async()=>{await this.templater.execute_startup_scripts()})}async onExternalSettingsChange(){await this.load_settings()}onunload(){this.templater.functions_generator.teardown()}async save_settings(){await this.saveData(this.settings),this.editor_handler.updateEditorIntellisenseSetting(this.settings.intellisense_render),await this.event_handler.update_syntax_highlighting()}async load_settings(){let t=await this.loadData(),{settings:r,affectedSecuritySettings:i,wasMigrated:n}=Ba(t);this.settings=r,i.length>0&&new Zt.Notice("Templater: The following settings were reset because they are now device-local: "+i.join(", ")+". Re-enable them in Templater settings if you trust this vault.",0),n&&await this.saveData(this.settings)}}; /* nosourcemap */