/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/ace-mode-solidity@0.1.1/build/remix-ide/mode-solidity.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
ace.define("ace/mode/solidity_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("../lib/lang").deepCopy,i=e("./text_highlight_rules").TextHighlightRules,a=function(e){for(var t="byte|int|uint",n=8;n<=256;n+=8)t+="|bytes"+n/8+"|uint"+n+"|int"+n;var r={"variable.language":"this|super",keyword:"as|emit|from|import|returns","keyword.control":"break|continue|do|else|for|if|return|while","keyword.control.deprecated":"throw","keyword.operator":"delete|new","keyword.other.reserved":"abstract|after|alias|apply|auto|case|catch|copyof|default|define|final|immutable|implements|in|inline|let|macro|match|mutable|null|of|override|partial|promise|reference|relocatable|sealed|sizeof|static|supports|switch|try|type|typedef|typeof|unchecked","storage.type":"contract|library|interface|function|constructor|event|modifier|struct|mapping|enum|var|bool|address|"+t,"storage.type.array.dynamic":"bytes|string","storage.modifier.inheritance":"is","storage.modifier.storagelocation":"storage|memory|calldata","storage.modifier.statemutability":"constant|payable|pure|view","storage.modifier.visibility":"private|public|external|internal","storage.modifier.event":"anonymous|indexed","support.function":"addmod|assert|blockhash|ecrecover|gasleft|keccak256|mulmod|require|revert|ripemd160|selfdestruct|sha256","support.function.deprecated":"sha3|suicide","support.variable":"now","constant.language.boolean":"true|false","constant.numeric.other.unit.currency":"wei|szabo|finney|ether","constant.numeric.other.unit.time":"seconds|minutes|hours|days|weeks","constant.numeric.other.unit.time.deprecated":"years"},i=this.createKeywordMapper(r,"identifier"),a=!1,s=function(e){var t=i(e);return a&&"identifier"==t&&(t="variable.parameter"),a=!0,t},c="[a-zA-Z_$][a-zA-Z_$0-9]*\\b|\\$",u="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|.)",l=function(e){return{token:"comment."+e+".doc.documentation.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},d=function(e){return{token:"comment."+e+".doc.documentation.tag",regex:"\\B@(?:author|dev|notice|param|return|title)\\b"}},g=function(e,t){return("start"!=e||t.length)&&t.unshift("function_arguments",e),a=!1,"function_arguments"};this.$rules={start:[{token:"comment.block.doc.documentation",regex:"\\/\\*(?=\\*)",push:"doc_comment"},{token:"comment.line.triple-slash.double-slash.doc.documentation",regex:"\\/\\/\\/",push:"doc_line_comment"},{token:"comment.block",regex:"\\/\\*",push:"comment"},{token:"comment.line.double-slash",regex:"\\/\\/",push:"line_comment"},{token:"text",regex:"\\s+|^$"},{token:"string.quoted.single",regex:"'(?=.)",push:"qstring"},{token:"string.quoted.double",regex:'"(?=.)',push:"qqstring"},{token:"storage.type.reserved",regex:"u?fixed(?:8x[0-8]|16x(?:1[0-6]|[0-9])|24x(?:2[0-4]|1[0-9]|[0-9])|32x(?:3[0-2]|[1-2][0-9]|[0-9])|40x(?:40|[1-3][0-9]|[0-9])|48x(?:4[0-8]|[1-3][0-9]|[0-9])|56x(?:5[0-6]|[1-4][0-9]|[0-9])|64x(?:6[0-4]|[1-5][0-9]|[0-9])|72x(?:7[0-2]|[1-6][0-9]|[0-9])|(?:80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)x(?:80|[1-7][0-9]|[0-9]))?",inheritingStateRuleId:"fixedNumberType"},{token:"keyword.control",regex:/\b_\b/},{token:["string.other.hex","string.other.hex","string.other.hex","string.other.hex","string.other.hex"],regex:/(\b)(hex)(['"])((?:[0-9a-fA-F]{2})*)(\3)/},{token:"constant.numeric.hex",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["keyword","text","keyword","text","constant.other"],regex:"(pragma)(\\s+)(solidity|experimental)(\\s+)([^;]+)"},{token:["keyword","text","identifier","text","keyword","text","identifier"],regex:"(using)(\\s+)("+c+")(\\s+)(for)(\\s+)("+c+"|\\*)"},{token:"support.function.deprecated",regex:/block\s*\.\s*blockhash|\.\s*callcode/},{token:"support.function",regex:/abi\s*\.\s*(?:encodeWithSignature|encodeWithSelector|encodePacked|encode)|\.\s*(?:delegatecall|transfer|call|send)/},{token:"support.variable",regex:/block\s*\.\s*(?:difficulty|timestamp|coinbase|gaslimit|number)|msg\s*\.\s*(?:sender|value|data)|tx\s*\.\s*(?:gasprice|origin)|\.\s*balance/},{token:"support.variable.deprecated",regex:/msg\s*\.\s*gas/},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+c+")(\\s*)(\\()",next:g},{token:["storage.type","text","paren.lparen"],regex:"(function)(\\s*)(\\()",next:g},{token:["keyword","text","paren.lparen"],regex:"(returns)(\\s*)(\\()",next:g},{token:i,regex:c,inheritingStateRuleId:"keywordMapper"},{token:"keyword.operator",regex:/--|\*\*|\+\+|=>|<<|>>|<<=|>>=|&&|\|\||[!&|+\-*\/%~^<>=]=?/},{token:"punctuation.operator",regex:/[?:;]/},{token:"punctuation.operator",regex:/[.,]/,inheritingStateRuleId:"punctuation"},{token:"paren.lparen",regex:/[\[{]/},{token:"paren.lparen",regex:/[(]/,inheritingStateRuleId:"lparen"},{token:"paren.rparen",regex:/[\]}]/},{token:"paren.rparen",regex:/[)]/,inheritingStateRuleId:"rparen"}],comment:[l("block"),{token:"comment.block",regex:"\\*\\/",next:"pop"},{defaultToken:"comment.block",caseInsensitive:!0}],line_comment:[l("line"),{token:"comment.line.double-slash",regex:"$|^",next:"pop"},{defaultToken:"comment.line.double-slash",caseInsensitive:!0}],doc_comment:[l("block"),d("block"),{token:"comment.block.doc.documentation",regex:"\\*\\/",next:"pop"},{defaultToken:"comment.block.doc.documentation",caseInsensitive:!0}],doc_line_comment:[l("line"),d("line"),{token:"comment.line.triple-slash.double-slash.doc.documentation",regex:"$|^",next:"pop"},{defaultToken:"comment.line.triple-slash.double-slash.doc.documentation",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:u},{token:"string.quoted.double",regex:"\\\\$",next:"qqstring"},{token:"string.quoted.double",regex:'"|$',next:"pop"},{defaultToken:"string.quoted.double"}],qstring:[{token:"constant.language.escape",regex:u},{token:"string.quoted.single",regex:"\\\\$",next:"qstring"},{token:"string.quoted.single",regex:"'|$",next:"pop"},{defaultToken:"string.quoted.single"}]};var m=o(this.$rules.start);m.forEach((function(e,t){if(e.inheritingStateRuleId){switch(e.inheritingStateRuleId){case"keywordMapper":e.token=s;break;case"punctuation":e.onMatch=function(t,n,r){return a=!1,e.token};break;case"lparen":e.next=g;break;case"rparen":e.next="pop";break;case"fixedNumberType":e.onMatch=function(t,n,r){return a=!0,e.token}}delete e.inheritingStateRuleId,delete this.$rules.start[t].inheritingStateRuleId,m[t]=e}}),this),this.$rules.function_arguments=m,this.normalizeRules()};r.inherits(a,i),t.SolidityHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var r=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var o=n[1].length,i=e.findMatchingBracket({row:t,column:o});if(!i||i.row==t)return 0;var a=this.$getIndent(e.getLine(i.row));e.replace(new r(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var r,o=e("../../lib/oop"),i=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),c=["text","paren.rparen","punctuation.operator"],u=["text","paren.rparen","punctuation.operator","comment"],l={},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount})),l[t])return r=l[t];r=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},g=function(){this.add("braces","insertion",(function(e,t,n,o,i){var a=n.getCursorPosition(),c=o.doc.getLine(a.row);if("{"==i){d(n);var u=n.getSelectionRange(),l=o.doc.getTextRange(u);if(""!==l&&"{"!==l&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(g.isSaneInsertion(n,o))return/[\]\}\)]/.test(c[a.column])||n.inMultiSelectMode?(g.recordAutoInsert(n,o,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(n,o,"{"),{text:"{",selection:[1,1]})}else if("}"==i){if(d(n),"}"==c.substring(a.column,a.column+1))if(null!==o.$findOpeningBracket("}",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,c,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==i||"\r\n"==i){d(n);var m="";if(g.isMaybeInsertedClosing(a,c)&&(m=s.stringRepeat("}",r.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(a.column,a.column+1)){var h=o.findMatchingBracket({row:a.row,column:a.column+1},"}");if(!h)return null;var f=this.$getIndent(o.getLine(h.row))}else{if(!m)return void g.clearMaybeInsertedClosing();f=this.$getIndent(c)}var p=f+o.getTabString();return{text:"\n"+p+"\n"+f+m,selection:[1,p.length,1,p.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,o,i){var a=o.doc.getTextRange(i);if(!i.isMultiLine()&&"{"==a){if(d(n),"}"==o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i;r.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,r,o){if("("==o){d(n);var i=n.getSelectionRange(),a=r.doc.getTextRange(i);if(""!==a&&n.getWrapBehavioursEnabled())return{text:"("+a+")",selection:!1};if(g.isSaneInsertion(n,r))return g.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(")"==o){d(n);var s=n.getCursorPosition(),c=r.doc.getLine(s.row);if(")"==c.substring(s.column,s.column+1))if(null!==r.$findOpeningBracket(")",{column:s.column+1,row:s.row})&&g.isAutoInsertedClosing(s,c,o))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,r,o){var i=r.doc.getTextRange(o);if(!o.isMultiLine()&&"("==i&&(d(n),")"==r.doc.getLine(o.start.row).substring(o.start.column+1,o.start.column+2)))return o.end.column++,o})),this.add("brackets","insertion",(function(e,t,n,r,o){if("["==o){d(n);var i=n.getSelectionRange(),a=r.doc.getTextRange(i);if(""!==a&&n.getWrapBehavioursEnabled())return{text:"["+a+"]",selection:!1};if(g.isSaneInsertion(n,r))return g.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if("]"==o){d(n);var s=n.getCursorPosition(),c=r.doc.getLine(s.row);if("]"==c.substring(s.column,s.column+1))if(null!==r.$findOpeningBracket("]",{column:s.column+1,row:s.row})&&g.isAutoInsertedClosing(s,c,o))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,r,o){var i=r.doc.getTextRange(o);if(!o.isMultiLine()&&"["==i&&(d(n),"]"==r.doc.getLine(o.start.row).substring(o.start.column+1,o.start.column+2)))return o.end.column++,o})),this.add("string_dquotes","insertion",(function(e,t,n,r,o){if('"'==o||"'"==o){d(n);var i=o,a=n.getSelectionRange(),s=r.doc.getTextRange(a);if(""!==s&&"'"!==s&&'"'!=s&&n.getWrapBehavioursEnabled())return{text:i+s+i,selection:!1};var c=n.getCursorPosition(),u=r.doc.getLine(c.row);if("\\"==u.substring(c.column-1,c.column))return null;for(var l,m=r.getTokens(a.start.row),h=0,f=-1,p=0;p<m.length&&("string"==(l=m[p]).type?f=-1:f<0&&(f=l.value.indexOf(i)),!(l.value.length+h>a.start.column));p++)h+=m[p].value.length;if(!l||f<0&&"comment"!==l.type&&("string"!==l.type||a.start.column!==l.value.length+h-1&&l.value.lastIndexOf(i)===l.value.length-1)){if(!g.isSaneInsertion(n,r))return;return{text:i+i,selection:[1,1]}}if(l&&"string"===l.type&&u.substring(c.column,c.column+1)==i)return{text:"",selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,r,o){var i=r.doc.getTextRange(o);if(!o.isMultiLine()&&('"'==i||"'"==i)&&(d(n),r.doc.getLine(o.start.row).substring(o.start.column+1,o.start.column+2)==i))return o.end.column++,o}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new a(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",c)){var o=new a(t,n.row,n.column+1);if(!this.$matchTokenType(o.getCurrentToken()||"text",c))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",u)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var o=e.getCursorPosition(),i=t.doc.getLine(o.row);this.isAutoInsertedClosing(o,i,r.autoInsertedLineEnd[0])||(r.autoInsertedBrackets=0),r.autoInsertedRow=o.row,r.autoInsertedLineEnd=n+i.substr(o.column),r.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var o=e.getCursorPosition(),i=t.doc.getLine(o.row);this.isMaybeInsertedClosing(o,i)||(r.maybeInsertedBrackets=0),r.maybeInsertedRow=o.row,r.maybeInsertedLineStart=i.substr(0,o.column)+n,r.maybeInsertedLineEnd=i.substr(o.column),r.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return r.autoInsertedBrackets>0&&e.row===r.autoInsertedRow&&n===r.autoInsertedLineEnd[0]&&t.substr(e.column)===r.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return r.maybeInsertedBrackets>0&&e.row===r.maybeInsertedRow&&t.substr(e.column)===r.maybeInsertedLineEnd&&t.substr(0,e.column)==r.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){r.autoInsertedLineEnd=r.autoInsertedLineEnd.substr(1),r.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){r&&(r.maybeInsertedBrackets=0,r.maybeInsertedRow=-1)},o.inherits(g,i),t.CstyleBehaviour=g})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var r=e("../../lib/oop"),o=e("../../range").Range,i=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(a,i),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n,r){var o,i=e.getLine(n);if(o=i.match(this.foldingStartMarker)){var a=o.index;if(o[1])return this.openingBracketBlock(e,o[1],n,a);var s=e.getCommentFoldRange(n,a+o[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t&&(o=i.match(this.foldingStopMarker))){a=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],n,a):e.getCommentFoldRange(n,a,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),r=n.search(/\S/),i=t,a=n.length,s=t+=1,c=e.getLength();++t<c;){var u=(n=e.getLine(t)).search(/\S/);if(-1!==u){if(r>u)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=i)break;if(l.isMultiLine())t=l.end.row;else if(r==u)break}s=t}}return new o(i,a,s,e.getLine(s).length)}}.call(a.prototype)})),ace.define("ace/mode/solidity",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/solidity_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,i=e("./solidity_highlight_rules").SolidityHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=(e("../range").Range,e("../worker/worker_client").WorkerClient,e("./behaviour/cstyle").CstyleBehaviour),c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=i,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new c};r.inherits(u,o),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),o=this.getTokenizer().getLineTokens(t,e),i=o.tokens,a=o.state;if(i.length&&"comment"==i[i.length-1].type)return r;if("start"==e)(s=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/))&&(r+=n);else if("doc_comment"==e){if("start"==a)return"";var s;(s=t.match(/^\s*(\/?)\*/))&&(s[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/solidity"}.call(u.prototype),t.Mode=u}));
//# sourceMappingURL=/sm/e4eac0809f36af68cf8f7a39453cc52f98a5dfd84b958cfe79b38248c3bdbead.map