"+e+"\n"},a.prototype.table=function(e,t){return t&&(t=""+t+""),"

\n\n"+e+"\n"+t+"\n"},a.prototype.tablerow=function(e){return"\n"+e+"\n"},a.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},a.prototype.strong=function(e){return""+e+""},a.prototype.em=function(e){return""+e+""},a.prototype.codespan=function(e){return""+e+""},a.prototype.br=function(){return this.options.xhtml?"
":"
"},a.prototype.del=function(e){return""+e+""},a.prototype.link=function(e,t,n){if(null===(e=d(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"+n+""},a.prototype.image=function(e,t,n){if(null===(e=d(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">")},a.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return""+n},s.prototype.br=function(){return""},l.parse=function(e,t){return new l(t).parse(e)},l.prototype.parse=function(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,g({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},l.prototype.next=function(){return this.token=this.tokens.pop(),this.token},l.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},l.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},l.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,f(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,o="",i="";for(n="",e=0;e?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},u.escapeTest=/[&<>"']/,u.escapeReplace=/[&<>"']/g,u.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},u.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,u.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var h={},m=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function v(){}function g(e){for(var t,n,r=1;r=0&&"\\"===n[o];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length

An error occurred:

"+u(e.message+"",!0)+"";throw e}}v.exec=v,k.options=k.setOptions=function(e){return g(k.defaults,e),k},k.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new a,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},k.defaults=k.getDefaults(),k.Parser=l,k.parser=l.parse,k.Renderer=a,k.TextRenderer=s,k.Lexer=r,k.lexer=r.lex,k.InlineLexer=i,k.inlineLexer=i.output,k.Slugger=c,k.parse=k,e.exports=k}(this||("undefined"!=typeof window?window:n.g))},1171:function(e,t,n){e.exports=p,p.Minimatch=d;var r={sep:"/"};try{r=n(6470)}catch(e){}var o=p.GLOBSTAR=d.GLOBSTAR={},i=n(3644),a={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},s="[^/]",l="[^/]*?",c="().*{}+?[]^$\\!".split("").reduce((function(e,t){return e[t]=!0,e}),{}),u=/\/+/;function f(e,t){e=e||{},t=t||{};var n={};return Object.keys(t).forEach((function(e){n[e]=t[e]})),Object.keys(e).forEach((function(t){n[t]=e[t]})),n}function p(e,t,n){if("string"!=typeof t)throw new TypeError("glob pattern string required");return n||(n={}),!(!n.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new d(t,n).match(e))}function d(e,t){if(!(this instanceof d))return new d(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==r.sep&&(e=e.split(r.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function h(e,t){if(t||(t=this instanceof d?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:i(e)}p.filter=function(e,t){return t=t||{},function(n,r,o){return p(n,e,t)}},p.defaults=function(e){if(!e||!Object.keys(e).length)return p;var t=p,n=function(n,r,o){return t.minimatch(n,r,f(e,o))};return n.Minimatch=function(n,r){return new t.Minimatch(n,f(e,r))},n},d.defaults=function(e){return e&&Object.keys(e).length?p.defaults(e).Minimatch:d},d.prototype.debug=function(){},d.prototype.make=function(){if(!this._made){var e=this.pattern,t=this.options;if(t.nocomment||"#"!==e.charAt(0))if(e){this.parseNegate();var n=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,n),n=this.globParts=n.map((function(e){return e.split(u)})),this.debug(this.pattern,n),n=n.map((function(e,t,n){return e.map(this.parse,this)}),this),this.debug(this.pattern,n),n=n.filter((function(e){return-1===e.indexOf(!1)})),this.debug(this.pattern,n),this.set=n}else this.empty=!0;else this.comment=!0}},d.prototype.parseNegate=function(){var e=this.pattern,t=!1,n=0;if(!this.options.nonegate){for(var r=0,o=e.length;r65536)throw new TypeError("pattern is too long");var n=this.options;if(!n.noglobstar&&"**"===e)return o;if(""===e)return"";var r,i="",u=!!n.nocase,f=!1,p=[],d=[],h=!1,v=-1,g=-1,y="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",b=this;function x(){if(r){switch(r){case"*":i+=l,u=!0;break;case"?":i+=s,u=!0;break;default:i+="\\"+r}b.debug("clearStateChar %j %j",r,i),r=!1}}for(var w,k=0,E=e.length;k-1;T--){var R=d[T],P=i.slice(0,R.reStart),j=i.slice(R.reStart,R.reEnd-8),L=i.slice(R.reEnd-8,R.reEnd),N=i.slice(R.reEnd);L+=N;var M=P.split("(").length-1,D=N;for(k=0;k=0&&!(o=e[i]);i--);for(i=0;i>> no match, partial?",e,p,t,d),p!==s))}if("string"==typeof u?(c=r.nocase?f.toLowerCase()===u.toLowerCase():f===u,this.debug("string match",u,f,c)):(c=f.match(u),this.debug("pattern match",u,f,c)),!c)return!1}if(i===s&&a===l)return!0;if(i===s)return n;if(a===l)return i===s-1&&""===e[i];throw new Error("wtf?")}},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,i){for(var a,s,l=o(e),c=1;c2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",o=0):o=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),i=s,a=0;continue}}else if(2===r.length||1===r.length){r="",o=0,i=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",o=2)}else r.length>0?r+="/"+e.slice(i+1,s):r=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,o=47===a.charCodeAt(0))}return r=n(r,!o),o?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&o&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=o:e+="/"+o)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var o=1;oc){if(47===n.charCodeAt(s+f))return n.slice(s+f+1);if(0===f)return n.slice(s+f)}else a>c&&(47===e.charCodeAt(o+f)?u=f:0===f&&(u=0));break}var p=e.charCodeAt(o+f);if(p!==n.charCodeAt(s+f))break;47===p&&(u=f)}var d="";for(f=o+u+1;f<=i;++f)f!==i&&47!==e.charCodeAt(f)||(0===d.length?d+="..":d+="/..");return d.length>0?d+n.slice(s+u):(s+=u,47===n.charCodeAt(s)&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?r?"/":".":r&&1===o?"//":e.slice(0,o)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,o=0,i=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var s=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){o=r+1;break}}else-1===l&&(a=!1,l=r+1),s>=0&&(c===n.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=l))}return o===i?i=l:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){t(e);for(var n=-1,r=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===o&&(i=!1,o=s+1),46===l?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1);else if(!i){r=s+1;break}}return-1===n||-1===o||0===a||1===a&&n===o-1&&n===r+1?"":e.slice(n,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,o=e.charCodeAt(0),i=47===o;i?(n.root="/",r=1):r=0;for(var a=-1,s=0,l=-1,c=!0,u=e.length-1,f=0;u>=r;--u)if(47!==(o=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===o?-1===a?a=u:1!==f&&(f=1):-1!==a&&(f=-1);else if(!c){s=u+1;break}return-1===a||-1===l||0===f||1===f&&a===l-1&&a===s+1?-1!==l&&(n.base=n.name=0===s&&i?e.slice(1,l):e.slice(s,l)):(0===s&&i?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(s,a),n.base=e.slice(s,l)),n.ext=e.slice(a,l)),s>0?n.dir=e.slice(0,s-1):i&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},7874:function(){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|(?!\2)[^\\`$])*\2/,lookbehind:!0,greedy:!0,inside:r}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,a=0;a>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c.boolean},5433:function(){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},6213:function(){!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(Prism)},2731:function(){!function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/;e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),e.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","operator",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(Prism)},9016:function(){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,(function(){return"(?:"+e+")"}));return e.replace(/<>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface struct",a="add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(i),u=RegExp(l(o+" "+"class enum interface struct "+a+" "+s)),f=l("class enum interface struct "+a+" "+s),p=l(o+" "+"class enum interface struct "+s),d=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),h=r(/\((?:[^()]|<>)*\)/.source,2),m=/@?\b[A-Za-z_]\w*\b/.source,v=t(/<<0>>(?:\s*<<1>>)?/.source,[m,d]),g=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[f,v]),y=/\[\s*(?:,\s*)*\]/.source,b=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[g,y]),x=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[d,h,y]),w=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[x]),k=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[w,g,y]),E={keyword:u,punctuation:/[<>()?,.:[\]]/},S=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,O=/"(?:\\.|[^\\"\r\n])*"/.source,_=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[O]),lookbehind:!0,greedy:!0},{pattern:RegExp(S),greedy:!0,alias:"character"}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[g]),lookbehind:!0,inside:E},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[m,k]),lookbehind:!0,inside:E},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[m]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,v]),lookbehind:!0,inside:E},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[g]),lookbehind:!0,inside:E},{pattern:n(/(\bwhere\s+)<<0>>/.source,[m]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[b]),lookbehind:!0,inside:E},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[k,p,m]),inside:E}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[m]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[m]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|typeof|sizeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[h]),lookbehind:!0,alias:"class-name",inside:E},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[k,g]),inside:E,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[k]),lookbehind:!0,inside:E,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[m,d]),inside:{function:n(/^<<0>>/.source,[m]),generic:{pattern:RegExp(d),alias:"class-name",inside:E}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,v,m,k,u.source]),lookbehind:!0,inside:{keyword:u,"class-name":{pattern:RegExp(k),greedy:!0,inside:E},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var A=O+"|"+S,I=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[A]),C=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[I]),2),T=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,R=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[g,C]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[T,R]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[T]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[C]),inside:e.languages.csharp},"class-name":{pattern:RegExp(g),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var P=/:[^}\r\n]+/.source,j=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[I]),2),L=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[j,P]),N=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[A]),2),M=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[N,P]);function D(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,P]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[L]),lookbehind:!0,greedy:!0,inside:D(L,j)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[M]),lookbehind:!0,greedy:!0,inside:D(M,N)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},7046:function(){Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete Prism.languages.go["class-name"]},57:function(){!function(e){e.languages.http={"request-line":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var t,n=e.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},o={"application/json":!0,"application/xml":!0};function i(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-]))"}for(var a in r)if(r[a]){t=t||{};var s=o[a]?i(a):a;t[a.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+s+".*)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[a]}}t&&e.languages.insertBefore("http","header-name",t)}(Prism)},2503:function(){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{"class-name":[r,{pattern:RegExp(n+/[A-Z]\w*(?=\s+\w+\s*[;,=())])/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},6841:function(){Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}},6854:function(){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,s=a.length;-1!==n.code.indexOf(o=t(r,s));)++s;return a[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function a(s){for(var l=0;l=i.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=i[o],f=n.tokenStack[u],p="string"==typeof c?c:c.content,d=t(r,u),h=p.indexOf(d);if(h>-1){++o;var m=p.substring(0,h),v=new e.Token(r,e.tokenize(f,n.grammar),"language-"+r,f),g=p.substring(h+d.length),y=[];m&&y.push.apply(y,a([m])),y.push(v),g&&y.push.apply(y,a([g])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&a(c.content)}return s}(n.tokens)}}}})}(Prism)},4335:function(){Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",o)}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml},1426:function(){Prism.languages.objectivec=Prism.languages.extend("c",{string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete Prism.languages.objectivec["class-name"],Prism.languages.objc=Prism.languages.objectivec},8246:function(){Prism.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/}},9945:function(){!function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/,/\b(?:null)\b/i],r=/\b0b[01]+\b|\b0x[\da-f]+\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+)(?:e[+-]?\d+)?/i,o=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,i=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[a-z0-9_|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[a-z0-9_|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i],"argument-name":/\b[a-z_]\w*(?=\s*:(?!:))/i,"class-name":[{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:/\w+\s*(?=\()/,property:{pattern:/(->)[\w]+/,lookbehind:!0},number:r,operator:o,punctuation:i};var a={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:a}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:a}}];e.languages.insertBefore("php","variable",{string:s}),e.languages.insertBefore("php","variable",{attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:o,punctuation:i}},delimiter:{pattern:/^#\[|]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){/<\?/.test(t.code)&&e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},366:function(){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},9385:function(){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby.function,e.languages.insertBefore("ruby","keyword",{regex:[{pattern:RegExp(/%r/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/.source,/\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/.source,/\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/.source,/\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/.source,/<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/.source].join("|")+")"),greedy:!0,inside:{interpolation:t}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:RegExp(/%[qQiIwWxs]?/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S])*\)/.source,/\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S])*\]/.source,/<(?:[^<>\\]|\\[\s\S])*>/.source].join("|")+")"),greedy:!0,inside:{interpolation:t}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t}}],e.languages.rb=e.languages.ruby}(Prism)},2886:function(){Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},5266:function(){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},874:function(){Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[^(])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift},5660:function(e,t,n){var r=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,r={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=f.reach);E+=k.value.length,k=k.next){var S=k.value;if(t.length>e.length)return;if(!(S instanceof o)){var O,_=1;if(y){if(!(O=i(w,E,e,g)))break;var A=O.index,I=O.index+O[0].length,C=E;for(C+=k.value.length;A>=C;)C+=(k=k.next).value.length;if(E=C-=k.value.length,k.value instanceof o)continue;for(var T=k;T!==t.tail&&(Cf.reach&&(f.reach=L);var N=k.prev;P&&(N=l(t,N,P),E+=P.length),c(t,N,_),k=l(t,N,new o(p,v?r.tokenize(R,v):R,b,R)),j&&l(t,k,j),_>1&&a(e,t,n,k.prev,E,{cause:p+","+h,reach:L})}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o"+i.content+""},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),o=n.language,i=n.code,a=n.immediateClose;e.postMessage(r.highlight(i,r.languages[o],o)),a&&e.close()}),!1),r):r;var u=r.util.currentScript();function f(){r.manual||r.highlightAll()}if(u&&(r.filename=u.src,u.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var p=document.readyState;"loading"===p||"interactive"===p&&u&&u.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),void 0!==n.g&&(n.g.Prism=r),r.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:n}};o["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:o},r.languages.insertBefore("markup","cdata",i)}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,lookbehind:!0,inside:{"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{style:{pattern:/(["'])[\s\S]+(?=["']$)/,lookbehind:!0,alias:"language-css",inside:e.languages.css},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},"attr-name":/^style/i}}},n.tag))}(r),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}}}),r.languages.markup&&r.languages.markup.tag.addInlined("script","javascript"),r.languages.js=r.languages.javascript,function(){if("undefined"!=typeof self&&self.Prism&&self.document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e=window.Prism,t={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},n="data-src-status",r='pre[data-src]:not([data-src-status="loaded"]):not([data-src-status="loading"])',o=/\blang(?:uage)?-([\w-]+)\b/i;e.hooks.add("before-highlightall",(function(e){e.selector+=", "+r})),e.hooks.add("before-sanity-check",(function(o){var i=o.element;if(i.matches(r)){o.code="",i.setAttribute(n,"loading");var s=i.appendChild(document.createElement("CODE"));s.textContent="Loading…";var l=i.getAttribute("data-src"),c=o.language;if("none"===c){var u=(/\.(\w+)$/.exec(l)||[,"none"])[1];c=t[u]||u}a(s,c),a(i,c);var f=e.plugins.autoloader;f&&f.loadLanguages(c);var p=new XMLHttpRequest;p.open("GET",l,!0),p.onreadystatechange=function(){4==p.readyState&&(p.status<400&&p.responseText?(i.setAttribute(n,"loaded"),s.textContent=p.responseText,e.highlightElement(s)):(i.setAttribute(n,"failed"),p.status>=400?s.textContent="✖ Error "+p.status+" while fetching file: "+p.statusText:s.textContent="✖ Error: File does not exist or is empty"))},p.send(null)}})),e.plugins.fileHighlight={highlight:function(t){for(var n,o=(t||document).querySelectorAll(r),i=0;n=o[i++];)e.highlightElement(n)}};var i=!1;e.fileHighlight=function(){i||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),i=!0),e.plugins.fileHighlight.highlight.apply(this,arguments)}}function a(e,t){var n=e.className;n=n.replace(o," ")+" language-"+t,e.className=n.replace(/\s+/g," ").trim()}}()},2703:function(e,t,n){"use strict";var r=n(414);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2587:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,o){n=n||"&",r=r||"=";var i={};if("string"!=typeof e||0===e.length)return i;var a=/\+/g;e=e.split(n);var s=1e3;o&&"number"==typeof o.maxKeys&&(s=o.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c=0?(u=h.substr(0,m),f=h.substr(m+1)):(u=h,f=""),p=decodeURIComponent(u),d=decodeURIComponent(f),t(i,p)?Array.isArray(i[p])?i[p].push(d):i[p]=[i[p],d]:i[p]=d}return i}},2361:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,o){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(o){var i=encodeURIComponent(t(o))+r;return Array.isArray(e[o])?e[o].map((function(e){return i+encodeURIComponent(t(e))})).join(n):i+encodeURIComponent(t(e[o]))})).join(n):o?encodeURIComponent(t(o))+r+encodeURIComponent(t(e)):""}},7673:function(e,t,n){"use strict";t.decode=t.parse=n(2587),t.encode=t.stringify=n(2361)},4448:function(e,t,n){"use strict";var r=n(7294),o=n(7418),i=n(3840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
',n+="",n+=wd(e,t),(n+="")+""}function gd(e){return void 0!==e?e.toString().replace(/&/g,"&").replace(/"/g,""").replace(//g,">"):""}function yd(e){return JSON.stringify(e).slice(1,-1)}function bd(e,t){return''+gd(e)+""}function xd(e){return''+e+""}function wd(e,t){var n=typeof e,r="";return null==e?r+=bd("null","token keyword"):e&&e.constructor===Array?(md++,r+=function(e,t){for(var n=md>t?"collapsed":"",r='
Code Description
10 requested method not found
11 requested invalid user id
12 requested invalid user key
13 invalid request signature
14 invalid data format
15 not enough data
17 invalid http method
20 order not found
21 pay url not found
22 order is alredy completed
23 order not updated
24 amount less than allowed
25 not enough balance
26 wallet not found
27 error while order creation
28 service not found
29 service payment form unavailable
30 service unavailable
31 amount greater than_allowed
32 order already exists
33 Host-to-Host is disabled for merchant
34 Payin is disabled for this merchant
35 Payout is disabled for this merchant
36 Exchange is disabled for this merchant
101 invalid card number
102 invalid cvv
103 validation failed
104 3ds failed
105 card doesnt support 3ds
106 amount exceeds personal limit
107 insufficient funds
108 rejected by issuer
109 rejected by antifraud
110 technical error
111 third party unavailable
112 rejected by third party
113 invalid card status
114 invalid card data
115 card not allowed in this region
116 card authorization error
117 Card does not support 3ds
118 GooglePay token decrypt error
119 ApplePay token decrypt error
120 operation time exceeded
121 status not changed 30 minutes
122 request does not match allowed sources
123 referer request does not match allowed sources
202 Client address not found

Order statuses

Status Description
new Order has been created and is awaiting processing
processing Order is being processed
completed Order successfully completed
overpaid Order is successful with extra payment
underpaid Payment received is less than the total order amount
rejected Order rejected by Third party
canceled Order canceled (by user or by timer)

Final statuses

When order gets final statuses, processing stops. Theses statuses are:

  • rejected
  • completed
  • overpaid
  • underpaid
  • canceled

Important:

You must consider status of your transaction only based on a valid response structure which contains the transaction and its status (see /api/v2/order/status).

Any other responses can't guarantee that your expectation and real state of the transaction match each other.

If you can't receive the expected status, please contact our support.

Underpaid / Overpaid:

This feature addresses situations where the payer sends an amount that differs from the expected in the order.

Use Case:

  1. Detection of discrepancies: The system automatically analyzes "payin" transactions and identifies underpayment or overpayment.
  2. Display in the interface: Discrepancies are displayed in the system interface with a corresponding status ("underpaid", "overpaid") indicating underpayment or overpayment.

Important:

Please note that the parameters "amount_from", "amount_to", "amount_fee" are recalculated according to the authorized payer's amount.

Example:

Overpaid: In the case of overpayment, imagine the order was initially created for $100, but the customer sent $110. This means the customer has exceeded the specified order amount. The system recognizes this overpayment and reflects it, indicating that the customer has sent more funds than required.

Overpaid response example:

{
  "status": "success",
  "data": [
      {
          "order_id": "payin_uah-1706700562-uah_hosted_form",
          "order_uuid": "d3ca8b43-983a-465c-83f6-70a70172788d",
          "order_type": "payin",
          "payway": "card",
          "card_system": "",
          "currency_from": "uah",
          "wallet_from": "",
          "currency_to": "uah",
          "wallet_to": "346eb501-d50c-11ec-834c-06677a2a1e0e",
          "currency_fee": "uah",
          "status": "overpaid",
          "message": "",
          "error_code": "0",
          "created": "2024-01-31 13:29:23",
          "updated": "2024-01-31 13:29:54",
          "is_test": "0",
          "trusted_user": "0",
          "card_mask": null,
          "attributes": {
              "payment_form_locale": "en"
          },
          "method": "unknown",
          "wallet_from_type": "ecom",
          "wallet_to_type": "ecom",
          "client_payments": "0",
          "client_id": "1369",
          "amount_from": "110.00",
          "amount_to": "110.00",
          "amount_fee": "0",
          "exchange_rate": "1"
      }
  ]
}

Underpaid: For underpayment, consider a scenario where the order was created for $100, but the customer only sent $90. This signifies that the customer fell short of the expected payment. The system recognizes this overpayment and reflects it, indicating that the customer has sent fewer funds than required.

Underpaid response example:

{
  "status": "success",
  "data": [
    {
      "order_id": "payin_uah-1706700539-uah_hosted_form",
      "order_uuid": "322e7d8f-25fd-4e21-bbde-3f921f87391d",
      "order_type": "payin",
      "payway": "card",
      "card_system": "",
      "currency_from": "uah",
      "wallet_from": "",
      "currency_to": "uah",
      "wallet_to": "346eb501-d50c-11ec-834c-06677a2a1e0e",
      "currency_fee": "uah",
      "status": "underpaid",
      "message": "",
      "error_code": "0",
      "created": "2024-01-31 13:29:00",
      "updated": "2024-01-31 13:29:33",
      "is_test": "0",
      "trusted_user": "0",
      "card_mask": null,
      "attributes": {
        "payment_form_locale": "en"
      },
      "method": "unknown",
      "wallet_from_type": "ecom",
      "wallet_to_type": "ecom",
      "client_payments": "0",
      "client_id": "1369",
      "amount_from": "90.00",
      "amount_to": "90.00",
      "amount_fee": "0",
      "exchange_rate": "1"
    }
  ]
}

Order

Payin (Hosted)

Returns url of page with payment form

Request Body schema: application/json

Payin items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency
required
string (currency)

A currency indicate lowercase

wallet_type
required
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
amount
required
number (amount_number)

10.99 - this is 10 uah 99 kopecks

payway
required
string (payway)
Value: "card"
object (schemas)
description
string (description) [ 1 .. 2048 ]

Some payment description, doesn’t affect the processing

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

success_url
string

Client will be redirected to this url after successfull payment

fail_url
string

Client will be redirected to this url after unsuccessfull payment

pending_url
string

Client will be redirected to this url to wait for the final status

return_url
string
client_user_agent
string
client_email
string
client_id
string (client_id) [ 1 .. 255 ]

Unique identifier of client in merchants system. Cannot contain only empty characters (spaces, tabs, etc.).

object (client)

Responses

Request samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "uah",
  • "wallet_type": "ecom",
  • "amount": 10.99,
  • "payway": "card",
  • "attributes": {
    },
  • "description": "Text",
  • "success_url": "https://success_url.com",
  • "fail_url": "https://fail_url.com",
  • "pending_url": "https://pending_url.com",
  • "client_user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36",
  • "client_email": "[email protected]",
  • "client_id": "123",
  • "client": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Payin (Host to host)

Returns url of page with 3ds. This format of work provides for compliance with PCI DSS and in case of interest in such integration, please contact our support.

Request Body schema: application/json

Payin items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency
required
string (currency)

A currency indicate lowercase

wallet_type
required
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
amount
required
number (amount_number)

10.99 - this is 10 uah 99 kopecks

payway
required
string (payway)
Value: "card"
object
description
string (description) [ 1 .. 2048 ]

Some payment description, doesn’t affect the processing

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

success_url
string

Client will be redirected to this url after successfull payment

fail_url
string

Client will be redirected to this url after unsuccessfull payment

pending_url
string

Client will be redirected to this url to wait for the final status

return_url
string
client_user_agent
string
client_email
string
client_id
string (client_id) [ 1 .. 255 ]

Unique identifier of client in merchants system. Cannot contain only empty characters (spaces, tabs, etc.).

object (client)
client_ip
required
string
counterparty_card (object) or counterparty_google_pay (object) or counterparty_apple_pay (object)
required
object

Responses

Request samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "uah",
  • "wallet_type": "ecom",
  • "amount": 10.99,
  • "payway": "card",
  • "attributes": {
    },
  • "description": "Text",
  • "success_url": "https://success_url.com",
  • "fail_url": "https://fail_url.com",
  • "pending_url": "https://pending_url.com",
  • "client_user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36",
  • "client_email": "[email protected]",
  • "client_id": "123",
  • "client": {
    },
  • "client_ip": "127.0.0.1",
  • "counterparty": {
    },
  • "browser_info": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Exchange payin (Hosted)

The same as regular hosted payin (additional parameters can be found there)

Request Body schema: application/json
One of
amount_from
number (amount_number)

10.99 - this is 10 uah 99 kopecks

order_id
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency_to
string (currency)

A currency indicate lowercase

currency_from
string (currency)

A currency indicate lowercase

wallet_type
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

client_id
string (client_id) [ 1 .. 255 ]

Unique identifier of client in merchants system. Cannot contain only empty characters (spaces, tabs, etc.).

object (client)
payway
required
string
Value: "card"
object (schemas)

Responses

Request samples

Content type
application/json
{
  • "amount_to": 10.99,
  • "order_id": "Order-123",
  • "currency_to": "uah",
  • "currency_from": "uah",
  • "wallet_type": "ecom",
  • "client_id": "123",
  • "client": {
    },
  • "payway": "card",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "uah",
  • "wallet_type": "ecom",
  • "amount": 10.99,
  • "payway": "card",
  • "attributes": {
    },
  • "description": "Text",
  • "success_url": "https://success_url.com",
  • "fail_url": "https://fail_url.com",
  • "pending_url": "https://pending_url.com",
  • "client_user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36",
  • "client_email": "[email protected]",
  • "client_id": "123",
  • "client": {
    }
}

Exchange payin (Host to host)

The same as regular host to host payin (additional parameters can be found there)

Request Body schema: application/json
One of
amount_from
number (amount_number)

10.99 - this is 10 uah 99 kopecks

order_id
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency_to
string (currency)

A currency indicate lowercase

currency_from
string (currency)

A currency indicate lowercase

wallet_type
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
client_id
string (client_id) [ 1 .. 255 ]

Unique identifier of client in merchants system. Cannot contain only empty characters (spaces, tabs, etc.).

object (client)
payway
required
string
Value: "card"
client_ip
required
string
required
counterparty_card (object)
required
object
object (schemas)

Responses

Request samples

Content type
application/json
{
  • "amount_to": 10.99,
  • "order_id": "Order-123",
  • "currency_to": "uah",
  • "currency_from": "uah",
  • "wallet_type": "ecom",
  • "client_id": "123",
  • "client": {
    },
  • "payway": "card",
  • "client_ip": "127.0.0.1",
  • "counterparty": {
    },
  • "browser_info": {
    },
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Payout

This method creates a payout.

Important:

If you receive any non-200 http status code, you should consider that transaction was created and in progress. In this case, in order to understand real status of the transaction, you have to check whether the transaction was really created or not.

To do this, you have to use the method /api/v2/order/status and request your transaction status by order_id.

If the response on /api/v2/order/status returns an error_code equal to 20 (http status is 403) it indicates that the transaction was not created and the transaction hasn't been processed.

Request Body schema: application/json

Payout items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency
required
string (currency)

A currency indicate lowercase

wallet_type
required
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet
string (wallet)
Deprecated

Must have a valid card number

required
counterparty_card_number (object) or counterparty_crypto (object) or counterparty_clabe (object) or counterparty_pix_key (object) or counterparty_net_banking (object) or counterparty_binance_pay (object) or counterparty_mobile (object) or counterparty_upi_token (object)
amount
required
number (amount_number)

10.99 - this is 10 uah 99 kopecks

payway
required
string

Only card

description
string (description) [ 1 .. 2048 ]

Some payment description, doesn’t affect the processing

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

object (client)
object (schemas)

Responses

Request samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "uah",
  • "wallet_type": "ecom",
  • "wallet": "4000000000000010",
  • "counterparty": {
    },
  • "amount": 10.99,
  • "payway": "card",
  • "description": "Text",
  • "client": {
    },
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Payout with fragmentation

Сreates a payment request. Payout with fragmentation occurs when the maximum amount to be paid out in one payment is exceeded. Contact technical support to find out the applicable limits.

In this case, there will be more than one transaction in the response to this request. All transactions will have the same order_id and different order_uuid.

Each created transaction can be either successful or rejected. If there is at least one unsuccessful payment, the payment is considered partially completed.

Request Body schema: application/json

Payout items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency
required
string (currency)

A currency indicate lowercase

wallet_type
required
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet
string (wallet)
Deprecated

Must have a valid card number

required
counterparty_card_number (object) or counterparty_crypto (object) or counterparty_clabe (object) or counterparty_pix_key (object) or counterparty_net_banking (object) or counterparty_binance_pay (object) or counterparty_mobile (object) or counterparty_upi_token (object)
amount
required
number (amount_number)

10.99 - this is 10 uah 99 kopecks

payway
required
string

Only card

description
string (description) [ 1 .. 2048 ]

Some payment description, doesn’t affect the processing

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

object (client)
object (schemas)

Responses

Request samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "uah",
  • "wallet_type": "ecom",
  • "wallet": "4000000000000010",
  • "counterparty": {
    },
  • "amount": 10.99,
  • "payway": "card",
  • "description": "Text",
  • "client": {
    },
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Payout with card_token Deprecated

Сreates a payment request

Request Body schema: application/json

Payout items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency
required
string (currency)

A currency indicate lowercase

amount
required
number (amount_number)

10.99 - this is 10 uah 99 kopecks

payway
required
string

Only card

description
string (description) [ 1 .. 2048 ]

Some payment description, doesn’t affect the processing

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

object (client)
object (schemas)

Responses

Request samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "uah",
  • "amount": 10.99,
  • "payway": "card",
  • "description": "Text",
  • "client": {
    },
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Exchange payout

This method creates exchange payout.

Important:

If you receive any non-200 http status code, you should consider that transaction was created and in progress. In this case, in order to understand real status of the transaction, you have to check whether the transaction was really created or not.

To do this, you have to use the method /api/v2/order/status and request your transaction status by order_id.

If the response on /api/v2/order/status returns an error_code equal to 20 (http status is 403) it indicates that the transaction was not created and the transaction hasn't been processed.

Request Body schema: application/json

Payout items to add

One of
amount_from
number (amount_number)

10.99 - this is 10 uah 99 kopecks

order_id
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency_to
string (currency)

A currency indicate lowercase

currency_from
string (currency)

A currency indicate lowercase

wallet_from_type
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet_to_type
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet
string (wallet)
Deprecated

Must have a valid card number

payway
string (payway)
Value: "card"
callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

counterparty_card_number (object) or counterparty_crypto (object) or counterparty_clabe (object) or counterparty_pix_key (object) or counterparty_net_banking (object) or counterparty_binance_pay (object) or counterparty_mobile (object) or counterparty_upi_token (object)
object (client)
object (schemas)

Responses

Request samples

Content type
application/json
{
  • "amount_to": 10.99,
  • "order_id": "Order-123",
  • "currency_to": "uah",
  • "currency_from": "uah",
  • "wallet_from_type": "ecom",
  • "wallet_to_type": "ecom",
  • "wallet": "4000000000000010",
  • "payway": "card",
  • "counterparty": {
    },
  • "client": {
    },
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Status

Gets the status of order

Request Body schema: application/json

Gets the status of order

One of
order_uuid
string <uuid> (order_uuid)

Responses

Request samples

Content type
application/json
Example
{
  • "order_uuid": "3d1dee42-4ae1-3012-8681-7b62ac7fb240"
}

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": [
    ]
}

Get transactions list

Gets a list of transactions for the specified parameters

Request Body schema: application/json

The list of orders for the specified parameters

One of
order_id
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

order_uuid
string <uuid> (order_uuid)
order_type
string (order_type)
Enum: "payin" "payout" "exchange_payout"
date_from
string <YYYY-MM-DD HH:MM:SS> (date_from)
date_to
string <YYYY-MM-DD HH:MM:SS> (date_to)
payway
string (payway)
Value: "card"
card_mask
string <NNNNNN******NNNN> (card_mask)

It is card mask

limit
integer (limit) [ 0 .. 10000 ]
Default: 10

Amount of items in the response

Responses

Request samples

Content type
application/json
{
  • "order_ids": [
    ],
  • "order_uuid": "3d1dee42-4ae1-3012-8681-7b62ac7fb240",
  • "order_type": "payin",
  • "date_from": "2021-06-17 10:19:43",
  • "date_to": "2021-06-17 10:19:43",
  • "payway": "card",
  • "card_mask": "400000******0010",
  • "limit": 10
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "count": 150,
  • "data": [
    ]
}

Get orders list

Gets a list of orders for the specified parameters

Request Body schema: application/json

The list of orders for the specified parameters

order_ids
Array of strings (order_ids)

Array order ids in merchant’s system

order_uuid
string <uuid> (order_uuid)
order_type
string
Default: "exchange"
date_from
string <YYYY-MM-DD HH:MM:SS> (date_from)
date_to
string <YYYY-MM-DD HH:MM:SS> (date_to)
limit
required
integer (limit_orders) [ 0 .. 100 ]
Default: 10

Amount of orders in the response

offset
required
integer (offset)
Default: 0

Offset of items in the response

Responses

Request samples

Content type
application/json
{
  • "order_ids": [
    ],
  • "order_uuid": "3d1dee42-4ae1-3012-8681-7b62ac7fb240",
  • "order_type": "exchange",
  • "date_from": "2021-06-17 10:19:43",
  • "date_to": "2021-06-17 10:19:43",
  • "limit": 10,
  • "offset": 4
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "limit": 10,
  • "offset": 4,
  • "orders": [
    ]
}

Crypto

We provide possibility of accepting cryptocurrency payments by following scheme:

  1. First of all, you need need to make /api/v2/client_address call in order to get unique address for each client. This address is assosiated only with this client. You can have multiple addresses for one client - they should be in different currencies. E.g. for client '1' you can have address in BTC and address in ETH.
  2. After you get address for required currency, every transfer to that address will create order in Crosspay.
  3. Also, Crosspay will generate callback for each order (as described in Callback section) to the url provided during /api/v2/client_address call.

At this point we are working on methods to deactivate address and list all orders for specified address or client, feel free to contact our support for proposals or improvements.

Payin

Payin description:

  • Generate a new unique address for the customer and provide it to send the transfer;
  • Customer makes the transfer to the address the merchant generated for this customer;
  • Transfer confirmed on the blockchain;
  • Crosspay creates the transaction;
  • Crosspay will send the callback by the transaction was created that the merchant needs to handle and create the transaction on the merchant side. The callback will be sent on the callback_url that was provided on the address creating step «get_client_address» request.

Get client_address

Method get_client_address using to generate the new crypto address. Each address is unique and needs to be associated to the customer from the merchant's side. Such structure makes it possible to identify which customer the income transaction (deposit) relates to. There are two possible types of the crypto address:

  • short_term - it’s the one-time address that will be active during the limited timeframe or till the first income transaction (deposit), after that the address with the type «short_term» automatically deactivates;
  • long_term - it’s the address for the regular income transactions (deposits) from the one customer.
Request Body schema: application/json

An address for the client

type
required
string
Default: "long_term"
Enum: "long_term" "short_term"

In case of "short_term" type, the address will be valid for six hours. In case of "long_term" type, the address will be valid for six month. In case of a change of address (payout, payin, get of address), the validity period of the address will be extended for the same period. If you need to change the validity period of the address, then you need to contact the technical support of the company.

client_id
required
string (client_id) [ 1 .. 255 ]

Unique identifier of client in merchants system. Cannot contain only empty characters (spaces, tabs, etc.).

currency
required
string (crypto_currency)
Enum: "eth" "xlm" "bch" "btc" "ltc" "trx" "xrp" "usdt" "xmr" "bnb"

A currency indicate lowercase

conversion_currency
string
Default: "usdt"
Value: "usdt"

All coins recieved to client_address will be automatically converted to this currency, if this field wass passed. You should have wallet in this currency

callback_url
required
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

order_id_prefix
string (prefix) [ 1 .. 100 ]

Prefix for generation order id

object (client_address_attributes)

Only used for "usdt" currency

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "status": "success",
  • "address": "0xa700aa00f4a16ab9b1110fcd456e11111dfa0e0e",
  • "tag": "2360586837985899911",
  • "expires_at": "2022-06-01 00:00:00",
  • "min_amount": 10.99
}

Get merchant's crypto addresses list

Method get_client_addresses using to get the list of crypto addresses.

Request Body schema: application/json

The list og client addresses with specified parameters

client_id
string (client_id) [ 1 .. 255 ]

Unique identifier of client in merchants system. Cannot contain only empty characters (spaces, tabs, etc.).

currency
required
string (crypto_currency)
Enum: "eth" "xlm" "bch" "btc" "ltc" "trx" "xrp" "usdt" "xmr" "bnb"

A currency indicate lowercase

limit
integer (limit) [ 0 .. 10000 ]
Default: 10

Amount of items in the response

offset
integer (offset)
Default: 0

Offset of items in the response

Responses

Request samples

Content type
application/json
{
  • "client_id": "123",
  • "currency": "eth",
  • "limit": 10,
  • "offset": 4
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Deactivate client_address

Deactivate an address for the client.

Request Body schema: application/json

An address for the client

address
required
string (address) [ 42 .. 42 ]
tag
string (tag)

Optional. Tag or memo (some cryptocurrency like XLM or XRP require additional data)

currency
required
string (crypto_currency)
Enum: "eth" "xlm" "bch" "btc" "ltc" "trx" "xrp" "usdt" "xmr" "bnb"

A currency indicate lowercase

Responses

Request samples

Content type
application/json
{
  • "address": "0xa700aa00f4a16ab9b1110fcd456e11111dfa0e0e",
  • "tag": "2360586837985899911",
  • "currency": "eth"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Get transactions list by client address

Gets a list of orders for the specified parameters

Request Body schema: application/json

The list of orders for the specified parameters

client_address
required
string (client_address)

It is client address

tag
string (tag)

Optional. Tag or memo (some cryptocurrency like XLM or XRP require additional data)

date_from
string <YYYY-MM-DD HH:MM:SS> (date_from)
date_to
string <YYYY-MM-DD HH:MM:SS> (date_to)
limit
integer (limit) [ 0 .. 10000 ]
Default: 10

Amount of items in the response

offset
integer (offset)
Default: 0

Offset of items in the response

Responses

Request samples

Content type
application/json
{
  • "client_address": "0x1dE1E11111B87F6296d634246D55A7DAb99a1111",
  • "tag": "2360586837985899911",
  • "date_from": "2021-06-17 10:19:43",
  • "date_to": "2021-06-17 10:19:43",
  • "limit": 10,
  • "offset": 4
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "count": "150",
  • "data": [
    ]
}

Payout

Сreates a payment request

Request Body schema: application/json

Payout items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency
required
string (crypto_currency)
Enum: "eth" "xlm" "bch" "btc" "ltc" "trx" "xrp" "usdt" "xmr" "bnb"

A currency indicate lowercase

wallet_type
required
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet
string (crypto_wallet)
Deprecated

Must have a valid crypto wallet

amount
required
number (crypto_amount_number)
required
counterparty_crypto (object) or counterparty_binance_pay (object)
payway
required
string

Only crypto

tag
string (tag)

Optional. Tag or memo (some cryptocurrency like XLM or XRP require additional data)

description
string (description) [ 1 .. 2048 ]

Some payment description, doesn’t affect the processing

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

object (client_address_attributes)

Only used for "usdt" currency

Responses

Request samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "currency": "eth",
  • "wallet_type": "ecom",
  • "wallet": "0xcdd0b1360f12f98f1afed8d5343ee465061d7262",
  • "amount": 0.001,
  • "counterparty": {
    },
  • "payway": "crypto",
  • "tag": "2360586837985899911",
  • "description": "Text",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "data": [
    ]
}

Exchange payout

Сreates a payment request

Request Body schema: application/json

Payout items to add

One of
amount_from
string (crypto_amount_string)
order_id
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

currency_to
string (crypto_currency_to)
Enum: "eth" "xlm" "bch" "btc" "ltc" "trx" "xrp" "usdt" "xmr" "bnb"

A currency indicate lowercase. If currency "usdt" - used field "attributes", it's required.

currency_from
string (crypto_currency)
Enum: "eth" "xlm" "bch" "btc" "ltc" "trx" "xrp" "usdt" "xmr" "bnb"

A currency indicate lowercase

wallet_from_type
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet_to_type
string (wallet_type)
Enum: "ecom" "p2p" "a2c"
wallet
string (crypto_wallet)
Deprecated

Must have a valid crypto wallet

payway
string

Only crypto

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

object (client_address_attributes)

Only used for "usdt" currency

counterparty_crypto (object) or counterparty_binance_pay (object)

Responses

Request samples

Content type
application/json
{
  • "amount_to": "0.015",
  • "order_id": "Order-123",
  • "currency_to": "usdt",
  • "currency_from": "eth",
  • "wallet_from_type": "ecom",
  • "wallet_to_type": "ecom",
  • "wallet": "0xcdd0b1360f12f98f1afed8d5343ee465061d7262",
  • "payway": "crypto",
  • "attributes": {
    },
  • "counterparty": {
    }
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "data": [
    ]
}

Google Pay™

Introduction

The Google Pay™ enables fast, simple checkout on your website.

We support it in both variants:

  • Hosted - we provide this payment method on our checkout page.
  • Host to host - you're able to place google pay button on your own checkout page.

Requirements

  • In case you want to use Google Pay™, please contact our support. We'll provide you gatewayMerchantId.
  • Accept Google Pay Terms of Service.

Getting started

It allows you to integrate Google Pay™ without redirecting to the CrossPay payment form and accept payments directly from your site.

  1. Google Pay's web brand guidelines.
  2. Google Pay Web developer documentation.
  3. Google Pay Web integration checklist.

How it works?

You configure Google Pay™ using following configuration:

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": [
          "PAN_ONLY",
          "CRYPTOGRAM_3DS"
        ],
        "allowedCardNetworks": [
          "VISA",
          "MASTERCARD"
        ]
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "crosspay",
          "gatewayMerchantId": "<provided `gatewayMerchantId` value>"
        }
      }
    }
  ],

  # https://developers.google.com/pay/api/web/reference/request-objects#BillingAddressParameters
  "billingAddressRequired": true
  "billingAddressParameters": {
    # ...
  }

  "transactionInfo": {
    "totalPrice": "100",
    "currencyCode": "UAH"
    "totalPriceStatus": "FINAL",
  }
}

In response you receive PaymentData, after that you'll use property paymentData in order to communicate our api.

Request

You should create POST /order/payin host to host request:

{
  "order_id":"...",
  "currency":"uah",
  "amount":100,
  // ...
  "counterparty":{
    "type":"google-pay",
    "token":{
      "apiVersionMinor":0,
      "apiVersion":2,
      "paymentMethodData":{
        "description":"Mastercard •••• 1780",
        "tokenizationData":{
          "type":"PAYMENT_GATEWAY",
          "token":"{\"signature\":\"...\"}"
        },
        "type":"CARD",
        "info":{
          "cardNetwork":"MASTERCARD",
          "cardDetails":"1780"
        }
      }
    }
  },
  "browser_info":{
    // ...
  }
}

Response

In case of 3ds verification is required (method PAN_ONLY), you will be given pay_url in response where the payer needs to be redirected in order to complete 3ds verification.

{
    "status": "success",
    "data": [
        {
            "order_id": "...",
            "order_uuid": "60369ab2-...9c51",
            # ...
            "pay_url": "..."
        }
    ]
}

References:

Exchange

Exchange Error Codes

Code Description
1010 Wallet not found
1011 Wallet inactive
1012 Exchange supplier not set
1013 Pair['currency_code':'currency_code'] for exchange not found
1021 Exchange amount lass min amount

Exchange

Creates an exchange request

Request Body schema: application/json

Exchange items to add

order_id
required
string (order_id) [ 1 .. 191 ] ^[a-zA-Z0-9-_+/=]+$

Order id in merchant’s system, this value should be unique for each order

required
currency (string) or crypto_currency (string)
required
currency (string) or crypto_currency (string)
amount_from
required
number (amount_number_all)

10.99 - this is 10 uah 99 kopecks OR 10.99 - usdt

callback
string (callback) <= 255

Url of you system, which is used to notify your system about order processing result

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "order_id": "Order-123",
  • "order_uuid": "3d1dee42-4ae1-3012-8681-7b62ac7fb240",
  • "order_type": "exchange",
  • "status": "new",
  • "transaction_uuid": "3d1dee42-4ae1-3012-8681-7b62ac7fb240",
  • "currency_from": "uah",
  • "wallet_from": "3d1dee42-4ae1-3012-8681-7b62ac7fb240",
  • "amount_from": "10.00000000",
  • "currency_to": "uah",
  • "wallet_to": "3d1dee42-4ae1-3012-8681-7b62ac7fb240",
  • "created": "2021-06-17 10:19:43",
  • "updated": "2021-06-17 10:19:43",
}

Get allowed exchange pair

Gets list pair and rate for exchange

Request Body schema: application/json

Gets Exchange pair list

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Reports

Create

Creates a report for the specified parameters

Request Body schema: application/json

The report for the specified parameters

Any of
date_from
string <YYYY-MM-DD HH:MM:SS> (date_from)

Responses

Request samples

Content type
application/json
Example
{
  • "date_from": "2021-06-17 10:19:43"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Get report status

Gets the status of report

Request Body schema: application/json

The status of report

report_uuid
string <uuid> (report_uuid)

Responses

Request samples

Content type
application/json
{
  • "report_uuid": "3d1dee42-4ae1-3012-8681-7b62ac7fb240"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Balance

Get

Gets the balances

Example for response with code 200:

{
    "status": "success",
    "data": {
        "eur": {
            "p2p": {
                "wallet": "10659df6-2581-4b62-a211-fdfc34c48c94",
                "amount": "0.00000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "0.00000000"
            },
            "ecom": {
                "wallet": "289510b1-6237-4f59-ab2a-edf6dd96f9a5",
                "amount": "0.00000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "0.00000000"
            }
        },
        "uah": {
            "ecom": {
                "wallet": "3d9dee11-2ae1-4022-8682-9b62ac7fb215",
                "amount": "143.77000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "1.44000000"
            },
            "p2p": {
                "wallet": "43c6b044-db70-4186-abe8-5a99c9034845",
                "amount": "90.00000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "0.90000000"
            },
            "a2c": {
                "wallet": "c589642c-0778-487f-83da-8ff01a1e6d34",
                "amount": "0.00000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "0.00000000"
            }
        },
        "usd": {
            "ecom": {
                "wallet": "eacb679e-8609-4d79-acff-711893b26e23",
                "amount": "1948.62000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "1.95000000"
            },
            "a2c": {
                "wallet": "77cc0406-d8a2-45ef-9a82-b89f940b7223",
                "amount": "0.00000000",
                "amount_locked": "0.00000000",
                "overdraft": "0.00000000",
                "reserve": "0.00000000"
            }
        }
    }
}
Request Body schema: application/json

Gets the balances

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}