/* Minification failed. Returning unminified contents.
(11,6735-6742): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: Promise
 */
/*!
  * https://github.com/paulmillr/es6-shim
  * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)
  *   and contributors,  MIT License
  * es6-shim: v0.35.1
  * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE
  * Details and documentation:
  * https://github.com/paulmillr/es6-shim/
  */
(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=Object.keys;var o=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var i=function(e){try{e();return false}catch(e){return true}};var a=function valueOrFalseIfThrows(e){try{return e()}catch(e){return false}};var u=o(i);var f=function(){return!i(function(){Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&f();var c=function foo(){}.name==="foo";var l=Function.call.bind(Array.prototype.forEach);var p=Function.call.bind(Array.prototype.reduce);var v=Function.call.bind(Array.prototype.filter);var y=Function.call.bind(Array.prototype.some);var h=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t,r){l(n(t),function(n){var o=t[n];h(e,n,o,!!r)})};var g=Function.call.bind(Object.prototype.toString);var d=typeof/abc/==="function"?function IsCallableSlow(e){return typeof e==="function"&&g(e)==="[object Function]"}:function IsCallableFast(e){return typeof e==="function"};var m={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&d(t.toString)){h(e,"toString",t.toString.bind(t),true)}}};var O=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var o=new r;if(typeof t!=="undefined"){n(t).forEach(function(e){m.defineByDescriptor(o,e,t[e])})}return o};var w=function(e,t){if(!Object.setPrototypeOf){return false}return a(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=O(e.prototype,{constructor:{value:r}});return t(r)})};var j=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var S=j();var T=S.isFinite;var I=Function.call.bind(String.prototype.indexOf);var E=Function.apply.bind(Array.prototype.indexOf);var P=Function.call.bind(Array.prototype.concat);var C=Function.call.bind(String.prototype.slice);var M=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.shift);var A=Math.max;var R=Math.min;var _=Math.floor;var k=Math.abs;var F=Math.exp;var L=Math.log;var D=Math.sqrt;var z=Function.call.bind(Object.prototype.hasOwnProperty);var q;var W=function(){};var G=S.Map;var H=G&&G.prototype["delete"];var V=G&&G.prototype.get;var B=G&&G.prototype.has;var U=G&&G.prototype.set;var $=S.Symbol||{};var J=$.species||"@@species";var X=Number.isNaN||function isNaN(e){return e!==e};var K=Number.isFinite||function isFinite(e){return typeof e==="number"&&T(e)};var Z=d(Math.sign)?Math.sign:function sign(e){var t=Number(e);if(t===0){return t}if(X(t)){return t}return t<0?-1:1};var Y=function isArguments(e){return g(e)==="[object Arguments]"};var Q=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var ee=Y(arguments)?Y:Q;var te={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var re=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);m.preserveToString(e[t],n)};var ne=typeof $==="function"&&typeof $["for"]==="function"&&te.symbol($());var oe=te.symbol($.iterator)?$.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){oe="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ie=S.Reflect;var ae=String;var ue=typeof document==="undefined"||!document?null:document.all;var fe=ue==null?function isNullOrUndefined(e){return e==null}:function isNullOrUndefinedAndNotDocumentAll(e){return e==null&&e!==ue};var se={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!se.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(fe(e)){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"||e===ue},ToObject:function(e,t){return Object(se.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return se.IsCallable(e)},ToInt32:function(e){return se.ToNumber(e)>>0},ToUint32:function(e){return se.ToNumber(e)>>>0},ToNumber:function(e){if(g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=se.ToNumber(e);if(X(t)){return 0}if(t===0||!K(t)){return t}return(t>0?1:-1)*_(k(t))},ToLength:function(e){var t=se.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return X(e)&&X(t)},SameValueZero:function(e,t){return e===t||X(e)&&X(t)},IsIterable:function(e){return se.TypeIsObject(e)&&(typeof e[oe]!=="undefined"||ee(e))},GetIterator:function(e){if(ee(e)){return new q(e,"value")}var t=se.GetMethod(e,oe);if(!se.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=se.Call(t,e);if(!se.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=se.ToObject(e)[t];if(fe(r)){return void 0}if(!se.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=se.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=se.Call(r,e)}catch(e){o=e}if(t){return}if(o){throw o}if(!se.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!se.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=se.IteratorNext(e);var r=se.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ie.construct){return ie.construct(e,t,o)}var i=o.prototype;if(!se.TypeIsObject(i)){i=Object.prototype}var a=O(i);var u=se.Call(e,a,t);return se.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!se.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[J];if(fe(n)){return t}if(!se.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=se.ToString(e);var i="<"+t;if(r!==""){var a=se.ToString(n);var u=a.replace(/"/g,"&quot;");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+"</"+t+">"},IsRegExp:function IsRegExp(e){if(!se.TypeIsObject(e)){return false}var t=e[$.match];if(typeof t!=="undefined"){return!!t}return te.regex(e)},ToString:function ToString(e){return ae(e)}};if(s&&ne){var ce=function defineWellKnownSymbol(e){if(te.symbol($[e])){return $[e]}var t=$["for"]("Symbol."+e);Object.defineProperty($,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!te.symbol($.search)){var le=ce("search");var pe=String.prototype.search;h(RegExp.prototype,le,function search(e){return se.Call(pe,e,[this])});var ve=function search(e){var t=se.RequireObjectCoercible(this);if(!fe(e)){var r=se.GetMethod(e,le);if(typeof r!=="undefined"){return se.Call(r,e,[t])}}return se.Call(pe,t,[se.ToString(e)])};re(String.prototype,"search",ve)}if(!te.symbol($.replace)){var ye=ce("replace");var he=String.prototype.replace;h(RegExp.prototype,ye,function replace(e,t){return se.Call(he,e,[this,t])});var be=function replace(e,t){var r=se.RequireObjectCoercible(this);if(!fe(e)){var n=se.GetMethod(e,ye);if(typeof n!=="undefined"){return se.Call(n,e,[r,t])}}return se.Call(he,r,[se.ToString(e),t])};re(String.prototype,"replace",be)}if(!te.symbol($.split)){var ge=ce("split");var de=String.prototype.split;h(RegExp.prototype,ge,function split(e,t){return se.Call(de,e,[this,t])});var me=function split(e,t){var r=se.RequireObjectCoercible(this);if(!fe(e)){var n=se.GetMethod(e,ge);if(typeof n!=="undefined"){return se.Call(n,e,[r,t])}}return se.Call(de,r,[se.ToString(e),t])};re(String.prototype,"split",me)}var Oe=te.symbol($.match);var we=Oe&&function(){var e={};e[$.match]=function(){return 42};return"a".match(e)!==42}();if(!Oe||we){var je=ce("match");var Se=String.prototype.match;h(RegExp.prototype,je,function match(e){return se.Call(Se,e,[this])});var Te=function match(e){var t=se.RequireObjectCoercible(this);if(!fe(e)){var r=se.GetMethod(e,je);if(typeof r!=="undefined"){return se.Call(r,e,[t])}}return se.Call(Se,t,[se.ToString(e)])};re(String.prototype,"match",Te)}}var Ie=function wrapConstructor(e,t,r){m.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in W||r[n]){return}m.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in W||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;m.redefine(e.prototype,"constructor",t)};var Ee=function(){return this};var Pe=function(e){if(s&&!z(e,J)){m.getter(e,J,Ee)}};var Ce=function(e,t){var r=t||function iterator(){return this};h(e,oe,r);if(!e[oe]&&te.symbol(oe)){e[oe]=r}};var Me=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var xe=function createDataPropertyOrThrow(e,t,r){Me(e,t,r);if(!se.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var Ne=function(e,t,r,n){if(!se.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!se.TypeIsObject(o)){o=r}var i=O(o);for(var a in n){if(z(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Ae=String.fromCodePoint;re(String,"fromCodePoint",function fromCodePoint(e){return se.Call(Ae,this,arguments)})}var Re={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n<o;n++){r=Number(arguments[n]);if(!se.SameValue(r,se.ToInteger(r))||r<0||r>1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=se.ToObject(e,"bad callSite");var r=se.ToObject(t.raw,"bad raw value");var n=r.length;var o=se.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a<o){u=se.ToString(a);s=se.ToString(r[u]);M(i,s);if(a+1>=o){break}f=a+1<arguments.length?arguments[a+1]:"";c=se.ToString(f);M(i,c);a+=1}return i.join("")}};if(String.raw&&String.raw({raw:{0:"x",1:"y",length:2}})!=="xy"){re(String,"raw",Re.raw)}b(String,Re);var _e=function repeat(e,t){if(t<1){return""}if(t%2){return repeat(e,t-1)+e}var r=repeat(e,t/2);return r+r};var ke=Infinity;var Fe={repeat:function repeat(e){var t=se.ToString(se.RequireObjectCoercible(this));var r=se.ToInteger(e);if(r<0||r>=ke){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return _e(t,r)},startsWith:function startsWith(e){var t=se.ToString(se.RequireObjectCoercible(this));if(se.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=se.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=A(se.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=se.ToString(se.RequireObjectCoercible(this));if(se.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=se.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:se.ToInteger(o);var a=R(A(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(se.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=se.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=se.ToString(se.RequireObjectCoercible(this));var r=se.ToInteger(e);var n=t.length;if(r>=0&&r<n){var o=t.charCodeAt(r);var i=r+1===n;if(o<55296||o>56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){re(String.prototype,"includes",Fe.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var Le=i(function(){"/a/".startsWith(/a/)});var De=a(function(){return"abc".startsWith("a",Infinity)===false});if(!Le||!De){re(String.prototype,"startsWith",Fe.startsWith);re(String.prototype,"endsWith",Fe.endsWith)}}if(ne){var ze=a(function(){var e=/a/;e[$.match]=false;return"/a/".startsWith(e)});if(!ze){re(String.prototype,"startsWith",Fe.startsWith)}var qe=a(function(){var e=/a/;e[$.match]=false;return"/a/".endsWith(e)});if(!qe){re(String.prototype,"endsWith",Fe.endsWith)}var We=a(function(){var e=/a/;e[$.match]=false;return"/a/".includes(e)});if(!We){re(String.prototype,"includes",Fe.includes)}}b(String.prototype,Fe);var Ge=["\t\n\v\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var He=new RegExp("(^["+Ge+"]+)|(["+Ge+"]+$)","g");var Ve=function trim(){return se.ToString(se.RequireObjectCoercible(this)).replace(He,"")};var Be=["\x85","\u200b","\ufffe"].join("");var Ue=new RegExp("["+Be+"]","g");var $e=/^[-+]0x[0-9a-f]+$/i;var Je=Be.trim().length!==Be.length;h(String.prototype,"trim",Ve,Je);var Xe=function(e){return{value:e,done:arguments.length===0}};var Ke=function(e){se.RequireObjectCoercible(e);this._s=se.ToString(e);this._i=0};Ke.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Xe()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Xe(e.substr(t,o))};Ce(Ke.prototype);Ce(String.prototype,function(){return new Ke(this)});var Ze={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!se.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(ee(e)||se.GetMethod(e,oe))!=="undefined";var u,f,s;if(a){f=se.IsConstructor(r)?Object(new r):[];var c=se.GetIterator(e);var l,p;s=0;while(true){l=se.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(e){se.IteratorClose(c,true);throw e}s+=1}u=s}else{var v=se.ToObject(e);u=se.ToLength(v.length);f=se.IsConstructor(r)?Object(new r(u)):new Array(u);var y;for(s=0;s<u;++s){y=v[s];if(o){y=typeof i==="undefined"?n(y,s):t(n,i,y,s)}xe(f,s,y)}}f.length=u;return f},of:function of(){var e=arguments.length;var t=this;var n=r(t)||!se.IsCallable(t)?new Array(e):se.Construct(t,[e]);for(var o=0;o<e;++o){xe(n,o,arguments[o])}n.length=e;return n}};b(Array,Ze);Pe(Array);q=function(e,t){this.i=0;this.array=e;this.kind=t};b(q.prototype,{next:function(){var e=this.i;var t=this.array;if(!(this instanceof q)){throw new TypeError("Not an ArrayIterator")}if(typeof t!=="undefined"){var r=se.ToLength(t.length);for(;e<r;e++){var n=this.kind;var o;if(n==="key"){o=e}else if(n==="value"){o=t[e]}else if(n==="entry"){o=[e,t[e]]}this.i=e+1;return Xe(o)}}this.array=void 0;return Xe()}});Ce(q.prototype);var Ye=Array.of===Ze.of||function(){var e=function Foo(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&t.length===2}();if(!Ye){re(Array,"of",Ze.of)}var Qe={copyWithin:function copyWithin(e,t){var r=se.ToObject(this);var n=se.ToLength(r.length);var o=se.ToInteger(e);var i=se.ToInteger(t);var a=o<0?A(n+o,0):R(o,n);var u=i<0?A(n+i,0):R(i,n);var f;if(arguments.length>2){f=arguments[2]}var s=typeof f==="undefined"?n:se.ToInteger(f);var c=s<0?A(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u<a&&a<u+l){p=-1;u+=l-1;a+=l-1}while(l>0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=se.ToObject(this);var o=se.ToLength(n.length);t=se.ToInteger(typeof t==="undefined"?0:t);r=se.ToInteger(typeof r==="undefined"?o:r);var i=t<0?A(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u<o&&u<a;++u){n[u]=e}return n},find:function find(e){var r=se.ToObject(this);var n=se.ToLength(r.length);if(!se.IsCallable(e)){throw new TypeError("Array#find: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0,a;i<n;i++){a=r[i];if(o){if(t(e,o,a,i,r)){return a}}else if(e(a,i,r)){return a}}},findIndex:function findIndex(e){var r=se.ToObject(this);var n=se.ToLength(r.length);if(!se.IsCallable(e)){throw new TypeError("Array#findIndex: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0;i<n;i++){if(o){if(t(e,o,r[i],i,r)){return i}}else if(e(r[i],i,r)){return i}}return-1},keys:function keys(){return new q(this,"key")},values:function values(){return new q(this,"value")},entries:function entries(){return new q(this,"entry")}};if(Array.prototype.keys&&!se.IsCallable([1].keys().next)){delete Array.prototype.keys}if(Array.prototype.entries&&!se.IsCallable([1].entries().next)){delete Array.prototype.entries}if(Array.prototype.keys&&Array.prototype.entries&&!Array.prototype.values&&Array.prototype[oe]){b(Array.prototype,{values:Array.prototype[oe]});if(te.symbol($.unscopables)){Array.prototype[$.unscopables].values=true}}if(c&&Array.prototype.values&&Array.prototype.values.name!=="values"){var et=Array.prototype.values;re(Array.prototype,"values",function values(){return se.Call(et,this,arguments)});h(Array.prototype,oe,Array.prototype.values,true)}b(Array.prototype,Qe);if(1/[true].indexOf(true,-0)<0){h(Array.prototype,"indexOf",function indexOf(e){var t=E(this,arguments);if(t===0&&1/t<0){return 0}return t},true)}Ce(Array.prototype,function(){return this.values()});if(Object.getPrototypeOf){Ce(Object.getPrototypeOf([].values()))}var tt=function(){return a(function(){return Array.from({length:-1}).length===0})}();var rt=function(){var e=Array.from([0].entries());return e.length===1&&r(e[0])&&e[0][0]===0&&e[0][1]===0}();if(!tt||!rt){re(Array,"from",Ze.from)}var nt=function(){return a(function(){return Array.from([0],void 0)})}();if(!nt){var ot=Array.from;re(Array,"from",function from(e){if(arguments.length>1&&typeof arguments[1]!=="undefined"){return se.Call(ot,this,arguments)}else{return t(ot,this,e)}})}var it=-(Math.pow(2,32)-1);var at=function(e,r){var n={length:it};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!at(Array.prototype.forEach)){var ut=Array.prototype.forEach;re(Array.prototype,"forEach",function forEach(e){return se.Call(ut,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.map)){var ft=Array.prototype.map;re(Array.prototype,"map",function map(e){return se.Call(ft,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.filter)){var st=Array.prototype.filter;re(Array.prototype,"filter",function filter(e){return se.Call(st,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.some)){var ct=Array.prototype.some;re(Array.prototype,"some",function some(e){return se.Call(ct,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.every)){var lt=Array.prototype.every;re(Array.prototype,"every",function every(e){return se.Call(lt,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.reduce)){var pt=Array.prototype.reduce;re(Array.prototype,"reduce",function reduce(e){return se.Call(pt,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.reduceRight,true)){var vt=Array.prototype.reduceRight;re(Array.prototype,"reduceRight",function reduceRight(e){return se.Call(vt,this.length>=0?this:[],arguments)},true)}var yt=Number("0o10")!==8;var ht=Number("0b10")!==2;var bt=y(Be,function(e){return Number(e+0+e)===0});if(yt||ht||bt){var gt=Number;var dt=/^0b[01]+$/i;var mt=/^0o[0-7]+$/i;var Ot=dt.test.bind(dt);var wt=mt.test.bind(mt);var jt=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if(te.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if(te.primitive(t)){return t}}throw new TypeError("No default value")};var St=Ue.test.bind(Ue);var Tt=$e.test.bind($e);var It=function(){var e=function Number(t){var r;if(arguments.length>0){r=te.primitive(t)?t:jt(t,"number")}else{r=0}if(typeof r==="string"){r=se.Call(Ve,r);if(Ot(r)){r=parseInt(C(r,2),2)}else if(wt(r)){r=parseInt(C(r,2),8)}else if(St(r)||Tt(r)){r=NaN}}var n=this;var o=a(function(){gt.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new gt(r)}return gt(r)};return e}();Ie(gt,It,{});b(It,{NaN:gt.NaN,MAX_VALUE:gt.MAX_VALUE,MIN_VALUE:gt.MIN_VALUE,NEGATIVE_INFINITY:gt.NEGATIVE_INFINITY,POSITIVE_INFINITY:gt.POSITIVE_INFINITY});Number=It;m.redefine(S,"Number",It)}var Et=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Et,MIN_SAFE_INTEGER:-Et,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:K,isInteger:function isInteger(e){return K(e)&&se.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&k(e)<=Number.MAX_SAFE_INTEGER},isNaN:X});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if([,1].find(function(){return true})===1){re(Array.prototype,"find",Qe.find)}if([,1].findIndex(function(){return true})!==0){re(Array.prototype,"findIndex",Qe.findIndex)}var Pt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var Ct=function ensureEnumerable(e,t){if(s&&Pt(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var Mt=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o<t;++o){n[o-e]=arguments[o]}return n};var xt=function assignTo(e){return function assignToSource(t,r){t[r]=e[r];return t}};var Nt=function(e,t){var r=n(Object(t));var o;if(se.IsCallable(Object.getOwnPropertySymbols)){o=v(Object.getOwnPropertySymbols(Object(t)),Pt(t))}return p(P(r,o||[]),xt(t),e)};var At={assign:function(e,t){var r=se.ToObject(e,"Cannot convert undefined or null to object");return p(se.Call(Mt,1,arguments),Nt,r)},is:function is(e,t){return se.SameValue(e,t)}};var Rt=Object.assign&&Object.preventExtensions&&function(){var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return e[1]==="y"}}();if(Rt){re(Object,"assign",At.assign)}b(Object,At);if(s){var _t={setPrototypeOf:function(e,r){var n;var o=function(e,t){if(!se.TypeIsObject(e)){throw new TypeError("cannot set prototype on a non-object")}if(!(t===null||se.TypeIsObject(t))){throw new TypeError("can only set prototype to an object or null"+t)}};var i=function(e,r){o(e,r);t(n,e,r);return e};try{n=e.getOwnPropertyDescriptor(e.prototype,r).set;t(n,{},null)}catch(t){if(e.prototype!=={}[r]){return}n=function(e){this[r]=e};i.polyfill=i(i({},null),e.prototype)instanceof e}return i}(Object,"__proto__")};b(Object,_t)}if(Object.setPrototypeOf&&Object.getPrototypeOf&&Object.getPrototypeOf(Object.setPrototypeOf({},null))!==null&&Object.getPrototypeOf(Object.create(null))===null){(function(){var e=Object.create(null);var t=Object.getPrototypeOf;var r=Object.setPrototypeOf;Object.getPrototypeOf=function(r){var n=t(r);return n===e?null:n};Object.setPrototypeOf=function(t,n){var o=n===null?e:n;return r(t,o)};Object.setPrototypeOf.polyfill=false})()}var kt=!i(function(){Object.keys("foo")});if(!kt){var Ft=Object.keys;re(Object,"keys",function keys(e){return Ft(se.ToObject(e))});n=Object.keys}var Lt=i(function(){Object.keys(/a/g)});if(Lt){var Dt=Object.keys;re(Object,"keys",function keys(e){if(te.regex(e)){var t=[];for(var r in e){if(z(e,r)){M(t,r)}}return t}return Dt(e)});n=Object.keys}if(Object.getOwnPropertyNames){var zt=!i(function(){Object.getOwnPropertyNames("foo")});if(!zt){var qt=typeof window==="object"?Object.getOwnPropertyNames(window):[];var Wt=Object.getOwnPropertyNames;re(Object,"getOwnPropertyNames",function getOwnPropertyNames(e){var t=se.ToObject(e);if(g(t)==="[object Window]"){try{return Wt(t)}catch(e){return P([],qt)}}return Wt(t)})}}if(Object.getOwnPropertyDescriptor){var Gt=!i(function(){Object.getOwnPropertyDescriptor("foo","bar")});if(!Gt){var Ht=Object.getOwnPropertyDescriptor;re(Object,"getOwnPropertyDescriptor",function getOwnPropertyDescriptor(e,t){return Ht(se.ToObject(e),t)})}}if(Object.seal){var Vt=!i(function(){Object.seal("foo")});if(!Vt){var Bt=Object.seal;re(Object,"seal",function seal(e){if(!se.TypeIsObject(e)){return e}return Bt(e)})}}if(Object.isSealed){var Ut=!i(function(){Object.isSealed("foo")});if(!Ut){var $t=Object.isSealed;re(Object,"isSealed",function isSealed(e){if(!se.TypeIsObject(e)){return true}return $t(e)})}}if(Object.freeze){var Jt=!i(function(){Object.freeze("foo")});if(!Jt){var Xt=Object.freeze;re(Object,"freeze",function freeze(e){if(!se.TypeIsObject(e)){return e}return Xt(e)})}}if(Object.isFrozen){var Kt=!i(function(){Object.isFrozen("foo")});if(!Kt){var Zt=Object.isFrozen;re(Object,"isFrozen",function isFrozen(e){if(!se.TypeIsObject(e)){return true}return Zt(e)})}}if(Object.preventExtensions){var Yt=!i(function(){Object.preventExtensions("foo")});if(!Yt){var Qt=Object.preventExtensions;re(Object,"preventExtensions",function preventExtensions(e){if(!se.TypeIsObject(e)){return e}return Qt(e)})}}if(Object.isExtensible){var er=!i(function(){Object.isExtensible("foo")});if(!er){var tr=Object.isExtensible;re(Object,"isExtensible",function isExtensible(e){if(!se.TypeIsObject(e)){return false}return tr(e)})}}if(Object.getPrototypeOf){var rr=!i(function(){Object.getPrototypeOf("foo")});if(!rr){var nr=Object.getPrototypeOf;re(Object,"getPrototypeOf",function getPrototypeOf(e){return nr(se.ToObject(e))})}}var or=s&&function(){var e=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags");return e&&se.IsCallable(e.get)}();if(s&&!or){var ir=function flags(){if(!se.TypeIsObject(this)){throw new TypeError("Method called on incompatible type: must be an object.")}var e="";if(this.global){e+="g"}if(this.ignoreCase){e+="i"}if(this.multiline){e+="m"}if(this.unicode){e+="u"}if(this.sticky){e+="y"}return e};m.getter(RegExp.prototype,"flags",ir)}var ar=s&&a(function(){return String(new RegExp(/a/g,"i"))==="/a/i"});var ur=ne&&s&&function(){var e=/./;e[$.match]=false;return RegExp(e)===e}();var fr=a(function(){return RegExp.prototype.toString.call({source:"abc"})==="/abc/"});var sr=fr&&a(function(){return RegExp.prototype.toString.call({source:"a",flags:"b"})==="/a/b"});if(!fr||!sr){var cr=RegExp.prototype.toString;h(RegExp.prototype,"toString",function toString(){var e=se.RequireObjectCoercible(this);if(te.regex(e)){return t(cr,e)}var r=ae(e.source);var n=ae(e.flags);return"/"+r+"/"+n},true);m.preserveToString(RegExp.prototype.toString,cr)}if(s&&(!ar||ur)){var lr=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get;var pr=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")||{};var vr=function(){return this.source};var yr=se.IsCallable(pr.get)?pr.get:vr;var hr=RegExp;var br=function(){return function RegExp(e,t){var r=se.IsRegExp(e);var n=this instanceof RegExp;if(!n&&r&&typeof t==="undefined"&&e.constructor===RegExp){return e}var o=e;var i=t;if(te.regex(e)){o=se.Call(yr,e);i=typeof t==="undefined"?se.Call(lr,e):t;return new RegExp(o,i)}else if(r){o=e.source;i=typeof t==="undefined"?e.flags:t}return new hr(e,t)}}();Ie(hr,br,{$input:true});RegExp=br;m.redefine(S,"RegExp",br)}if(s){var gr={input:"$_",lastMatch:"$&",lastParen:"$+",leftContext:"$`",rightContext:"$'"};l(n(gr),function(e){if(e in RegExp&&!(gr[e]in RegExp)){m.getter(RegExp,gr[e],function get(){return RegExp[e]})}})}Pe(RegExp);var dr=1/Number.EPSILON;var mr=function roundTiesToEven(e){return e+dr-dr};var Or=Math.pow(2,-23);var wr=Math.pow(2,127)*(2-Or);var jr=Math.pow(2,-126);var Sr=Math.E;var Tr=Math.LOG2E;var Ir=Math.LOG10E;var Er=Number.prototype.clz;delete Number.prototype.clz;var Pr={acosh:function acosh(e){var t=Number(e);if(X(t)||e<1){return NaN}if(t===1){return 0}if(t===Infinity){return t}return L(t/Sr+D(t+1)*D(t-1)/Sr)+1},asinh:function asinh(e){var t=Number(e);if(t===0||!T(t)){return t}return t<0?-asinh(-t):L(t+D(t*t+1))},atanh:function atanh(e){var t=Number(e);if(X(t)||t<-1||t>1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*L((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=F(L(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=se.ToUint32(t);if(r===0){return 32}return Er?se.Call(Er,r):31-_(L(r+.5)*Tr)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(X(t)){return NaN}if(!T(t)){return Infinity}if(t<0){t=-t}if(t>21){return F(t)/2}return(F(t)+F(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(k(t)>.5){return F(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o<arguments.length;++o){var i=k(Number(arguments[o]));if(n<i){r*=n/i*(n/i);r+=1;n=i}else{r+=i>0?i/n*(i/n):i}}return n===Infinity?Infinity:n*D(r)},log2:function log2(e){return L(e)*Tr},log10:function log10(e){return L(e)*Ir},log1p:function log1p(e){var t=Number(e);if(t<-1||X(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(L(1+t)/(1+t-1))},sign:Z,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}if(k(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(F(t-1)-F(-t-1))*Sr/2},tanh:function tanh(e){var t=Number(e);if(X(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-_(-t):_(t)},imul:function imul(e,t){var r=se.ToUint32(e);var n=se.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||X(t)){return t}var r=Z(t);var n=k(t);if(n<jr){return r*mr(n/jr/Or)*jr*Or}var o=(1+Or/Number.EPSILON)*n;var i=o-(o-n);if(i>wr||X(i)){return r*Infinity}return r*i}};b(Math,Pr);h(Math,"log1p",Pr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",Pr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));h(Math,"tanh",Pr.tanh,Math.tanh(-2e-17)!==-2e-17);h(Math,"acosh",Pr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"cbrt",Pr.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);h(Math,"sinh",Pr.sinh,Math.sinh(-2e-17)!==-2e-17);var Cr=Math.expm1(10);h(Math,"expm1",Pr.expm1,Cr>22025.465794806718||Cr<22025.465794806718);var Mr=Math.round;var xr=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Nr=dr+1;var Ar=2*dr-1;var Rr=[Nr,Ar].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=_(e);var r=t===-1?-0:t+1;
return e-t<.5?t:r},!xr||!Rr);m.preserveToString(Math.round,Mr);var _r=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=Pr.imul;m.preserveToString(Math.imul,_r)}if(Math.imul.length!==2){re(Math,"imul",function imul(e,t){return se.Call(_r,Math,arguments)})}var kr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}se.IsPromise=function(e){if(!se.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!se.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(se.IsCallable(t.resolve)&&se.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&se.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=se.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(se.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(e){n=e;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+l],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=s;r.reactionLength=0};var m=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+p],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=c;r.reactionLength=0};var O=function(e){var t=false;var r=function(r){var n;if(t){return}t=true;if(r===e){return m(e,new TypeError("Self resolution"))}if(!se.TypeIsObject(r)){return d(e,r)}try{n=r.then}catch(t){return m(e,t)}if(!se.IsCallable(n)){return d(e,r)}i(function(){j(e,r,n)})};var n=function(r){if(t){return}t=true;return m(e,r)};return{resolve:r,reject:n}};var w=function(e,r,n,o){if(e===I){t(e,r,n,o,y)}else{t(e,r,n,o)}};var j=function(e,t,r){var n=O(e);var o=n.resolve;var i=n.reject;try{w(r,t,o,i)}catch(e){i(e)}};var T,I;var E=function(){var e=function Promise(t){if(!(this instanceof e)){throw new TypeError('Constructor Promise requires "new"')}if(this&&this._promise){throw new TypeError("Bad construction")}if(!se.IsCallable(t)){throw new TypeError("not a valid resolver")}var r=Ne(this,e,T,{_promise:{result:void 0,state:f,reactionLength:0,fulfillReactionHandler0:void 0,rejectReactionHandler0:void 0,reactionCapability0:void 0}});var n=O(r);var o=n.reject;try{t(n.resolve,o)}catch(e){o(e)}return r};return e}();T=E.prototype;var P=function(e,t,r,n){var o=false;return function(i){if(o){return}o=true;t[e]=i;if(--n.count===0){var a=r.resolve;a(t)}}};var C=function(e,t,r){var n=e.iterator;var o=[];var i={count:1};var a,u;var f=0;while(true){try{a=se.IteratorStep(n);if(a===false){e.done=true;break}u=a.value}catch(t){e.done=true;throw t}o[f]=void 0;var s=t.resolve(u);var c=P(f,o,r,i);i.count+=1;w(s.then,s,c,r.reject);f+=1}if(--i.count===0){var l=r.resolve;l(o)}return r.promise};var x=function(e,t,r){var n=e.iterator;var o,i,a;while(true){try{o=se.IteratorStep(n);if(o===false){e.done=true;break}i=o.value}catch(t){e.done=true;throw t}a=t.resolve(i);w(a.then,a,r.resolve,r.reject)}return r.promise};b(E,{all:function all(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=se.GetIterator(e);i={iterator:o,done:false};return C(i,t,n)}catch(e){var a=e;if(i&&!i.done){try{se.IteratorClose(o,true)}catch(e){a=e}}var u=n.reject;u(a);return n.promise}},race:function race(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=se.GetIterator(e);i={iterator:o,done:false};return x(i,t,n)}catch(e){var a=e;if(i&&!i.done){try{se.IteratorClose(o,true)}catch(e){a=e}}var u=n.reject;u(a);return n.promise}},reject:function reject(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}var n=new r(t);var o=n.reject;o(e);return n.promise},resolve:function resolve(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}if(se.IsPromise(e)){var n=e.constructor;if(n===t){return e}}var o=new r(t);var i=o.resolve;i(e);return o.promise}});b(T,{catch:function(e){return this.then(null,e)},then:function then(e,t){var n=this;if(!se.IsPromise(n)){throw new TypeError("not a promise")}var o=se.SpeciesConstructor(n,E);var i;var b=arguments.length>2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=se.IsCallable(e)?e:a;var d=se.IsCallable(t)?t:u;var m=n._promise;var O;if(m.state===f){if(m.reactionLength===0){m.fulfillReactionHandler0=g;m.rejectReactionHandler0=d;m.reactionCapability0=i}else{var w=3*(m.reactionLength-1);m[w+l]=g;m[w+p]=d;m[w+v]=i}m.reactionLength+=1}else if(m.state===s){O=m.result;h(g,i,O)}else if(m.state===c){O=m.result;h(d,i,O)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof kr==="function"){b(S,{Promise:kr});var Fr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var Lr=!i(function(){S.Promise.reject(42).then(null,5).then(null,W)});var Dr=i(function(){S.Promise.call(3,W)});var zr=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(e){return true}return t===r}(S.Promise);var qr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var Wr=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};Wr.prototype=Promise.prototype;Wr.all=Promise.all;var Gr=a(function(){return!!Wr.all([1,2])});if(!Fr||!Lr||!Dr||zr||!qr||Gr){Promise=kr;re(S,"Promise",kr)}if(Promise.all.length!==1){var Hr=Promise.all;re(Promise,"all",function all(e){return se.Call(Hr,this,arguments)})}if(Promise.race.length!==1){var Vr=Promise.race;re(Promise,"race",function race(e){return se.Call(Vr,this,arguments)})}if(Promise.resolve.length!==1){var Br=Promise.resolve;re(Promise,"resolve",function resolve(e){return se.Call(Br,this,arguments)})}if(Promise.reject.length!==1){var Ur=Promise.reject;re(Promise,"reject",function reject(e){return se.Call(Ur,this,arguments)})}Ct(Promise,"all");Ct(Promise,"race");Ct(Promise,"resolve");Ct(Promise,"reject");Pe(Promise)}var $r=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Jr=$r(["z","a","bb"]);var Xr=$r(["z",1,"a","3",2]);if(s){var Kr=function fastkey(e,t){if(!t&&!Jr){return null}if(fe(e)){return"^"+se.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Xr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Zr=function emptyObject(){return Object.create?Object.create(null):{}};var Yr=function addIterableToMap(e,n,o){if(r(o)||te.string(o)){l(o,function(e){if(!se.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(!fe(o)){a=n.set;if(!se.IsCallable(a)){throw new TypeError("bad map")}i=se.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=se.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!se.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(e){se.IteratorClose(i,true);throw e}}}}};var Qr=function addIterableToSet(e,n,o){if(r(o)||te.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(!fe(o)){a=n.add;if(!se.IsCallable(a)){throw new TypeError("bad set")}i=se.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=se.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(e){se.IteratorClose(i,true);throw e}}}}};var en={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!se.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+se.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Xe()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Xe(n)}}this.i=void 0;return Xe()}};Ce(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Ne(this,Map,a,{_es6map:true,_head:null,_map:G?new G:null,_size:0,_storage:Zr()});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Yr(Map,e,arguments[0])}return e};a=u.prototype;m.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t;var r=Kr(e,true);if(r!==null){t=this._storage[r];if(t){return t.value}else{return}}if(this._map){t=V.call(this._map,e);if(t){return t.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(se.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Kr(e,true);if(t!==null){return typeof this._storage[t]!=="undefined"}if(this._map){return B.call(this._map,e)}var r=this._head;var n=r;while((n=n.next)!==r){if(se.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Kr(e,true);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}else if(this._map){if(B.call(this._map,e)){V.call(this._map,e).value=t}else{a=new r(e,t);U.call(this._map,e,a);i=n.prev}}while((i=i.next)!==n){if(se.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(se.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},delete:function(t){o(this,"delete");var r=this._head;var n=r;var i=Kr(t,true);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}else if(this._map){if(!B.call(this._map,t)){return false}n=V.call(this._map,t).prev;H.call(this._map,t)}while((n=n.next)!==r){if(se.SameValueZero(n.key,t)){n.key=e;n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._map=G?new G:null;this._size=0;this._storage=Zr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=e;r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});Ce(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!se.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+se.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Ne(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Zr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){Qr(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=new en.Map;e["[[SetData]]"]=t;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};m.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Kr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Kr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},delete:function(e){r(this,"delete");var t;if(this._storage&&(t=Kr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Zr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");u(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);Ce(i.prototype,i.prototype.values);return i}()};if(S.Map||S.Set){var tn=a(function(){return new Map([[1,2]]).get(1)===2});if(!tn){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new G;if(arguments.length>0){Yr(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=O(G.prototype);h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,G)}var rn=new Map;var nn=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var on=rn.set(1,2)===rn;if(!nn||!on){re(Map.prototype,"set",function set(e,r){t(U,this,e===0?0:e,r);return this})}if(!nn){b(Map.prototype,{get:function get(e){return t(V,this,e===0?0:e)},has:function has(e){return t(B,this,e===0?0:e)}},true);m.preserveToString(Map.prototype.get,V);m.preserveToString(Map.prototype.has,B)}var an=new Set;var un=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(an);var fn=an.add(1)===an;if(!un||!fn){var sn=Set.prototype.add;Set.prototype.add=function add(e){t(sn,this,e===0?0:e);return this};m.preserveToString(Set.prototype.add,sn)}if(!un){var cn=Set.prototype.has;Set.prototype.has=function has(e){return t(cn,this,e===0?0:e)};m.preserveToString(Set.prototype.has,cn);var ln=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(ln,this,e===0?0:e)};m.preserveToString(Set.prototype["delete"],ln)}var pn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var vn=Object.setPrototypeOf&&!pn;var yn=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||vn||!yn){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new G;if(arguments.length>0){Yr(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=G.prototype;h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,G)}var hn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var bn=Object.setPrototypeOf&&!hn;var gn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||bn||!gn){var dn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new dn;if(arguments.length>0){Qr(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=dn.prototype;h(S.Set.prototype,"constructor",S.Set,true);m.preserveToString(S.Set,dn)}var mn=new S.Map;var On=!a(function(){return mn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||mn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof mn.keys().next!=="function"||On||!pn){b(S,{Map:en.Map,Set:en.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}Ce(Object.getPrototypeOf((new S.Map).keys()));Ce(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var wn=S.Set.prototype.has;re(S.Set.prototype,"has",function has(e){return t(wn,this,e)})}}b(S,en);Pe(S.Map);Pe(S.Set)}var jn=function throwUnlessTargetIsObject(e){if(!se.TypeIsObject(e)){throw new TypeError("target must be an object")}};var Sn={apply:function apply(){return se.Call(se.Call,null,arguments)},construct:function construct(e,t){if(!se.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!se.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return se.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){jn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){jn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(Sn,{ownKeys:function ownKeys(e){jn(e);var t=Object.getOwnPropertyNames(e);if(se.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var Tn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(Sn,{isExtensible:function isExtensible(e){jn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){jn(e);return Tn(function(){Object.preventExtensions(e)})}})}if(s){var In=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return In(o,t,r)}if("value"in n){return n.value}if(n.get){return se.Call(n.get,r)}return void 0};var En=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return En(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!se.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ie.defineProperty(o,r,{value:n})}else{return ie.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(Sn,{defineProperty:function defineProperty(e,t,r){jn(e);return Tn(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){jn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){jn(e);var r=arguments.length>2?arguments[2]:e;return In(e,t,r)},set:function set(e,t,r){jn(e);var n=arguments.length>3?arguments[3]:e;return En(e,t,r,n)}})}if(Object.getPrototypeOf){var Pn=Object.getPrototypeOf;Sn.getPrototypeOf=function getPrototypeOf(e){jn(e);return Pn(e)}}if(Object.setPrototypeOf&&Sn.getPrototypeOf){var Cn=function(e,t){var r=t;while(r){if(e===r){return true}r=Sn.getPrototypeOf(r)}return false};Object.assign(Sn,{setPrototypeOf:function setPrototypeOf(e,t){jn(e);if(t!==null&&!se.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ie.getPrototypeOf(e)){return true}if(ie.isExtensible&&!ie.isExtensible(e)){return false}if(Cn(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Mn=function(e,t){if(!se.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){re(S.Reflect,e,t)}}};Object.keys(Sn).forEach(function(e){Mn(e,Sn[e])});var xn=S.Reflect.getPrototypeOf;if(c&&xn&&xn.name!=="getPrototypeOf"){re(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(xn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){re(S.Reflect,"setPrototypeOf",Sn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){re(S.Reflect,"defineProperty",Sn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){re(S.Reflect,"construct",Sn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Nn=Date.prototype.toString;var An=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return se.Call(Nn,this)};re(Date.prototype,"toString",An)}var Rn={anchor:function anchor(e){return se.CreateHTML(this,"a","name",e)},big:function big(){return se.CreateHTML(this,"big","","")},blink:function blink(){return se.CreateHTML(this,"blink","","")},bold:function bold(){return se.CreateHTML(this,"b","","")},fixed:function fixed(){return se.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return se.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return se.CreateHTML(this,"font","size",e)},italics:function italics(){return se.CreateHTML(this,"i","","")},link:function link(e){return se.CreateHTML(this,"a","href",e)},small:function small(){return se.CreateHTML(this,"small","","")},strike:function strike(){return se.CreateHTML(this,"strike","","")},sub:function sub(){return se.CreateHTML(this,"sub","","")},sup:function sub(){return se.CreateHTML(this,"sup","","")}};l(Object.keys(Rn),function(e){var r=String.prototype[e];var n=false;if(se.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){re(String.prototype,e,Rn[e])}});var _n=function(){if(!ne){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e($())!=="undefined"){return true}if(e([$()])!=="[null]"){return true}var t={a:$()};t[$()]=true;if(e(t)!=="{}"){return true}return false}();var kn=a(function(){if(!ne){return true}return JSON.stringify(Object($()))==="{}"&&JSON.stringify([Object($())])==="[{}]"});if(_n||!kn){var Fn=JSON.stringify;re(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=se.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(te.symbol(n)){return xt({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return Fn.apply(this,o)})}return S});
//# sourceMappingURL=es6-shim.map
;
!function (e) { "undefined" != typeof exports ? e(exports) : (window.hljs = e({}), "function" == typeof define && define.amd && define("hljs", [], function () { return window.hljs })) }(function (e) { function n(e) { return e.replace(/&/gm, "&amp;").replace(/</gm, "&lt;").replace(/>/gm, "&gt;") } function t(e) { return e.nodeName.toLowerCase() } function r(e, n) { var t = e && e.exec(n); return t && 0 == t.index } function a(e) { return /no-?highlight|plain|text/.test(e) } function i(e) { var n, t, r, i = e.className + " "; if (i += e.parentNode ? e.parentNode.className : "", t = /\blang(?:uage)?-([\w-]+)\b/.exec(i)) return E(t[1]) ? t[1] : "no-highlight"; for (i = i.split(/\s+/), n = 0, r = i.length; r > n; n++) if (E(i[n]) || a(i[n])) return i[n] } function o(e, n) { var t, r = {}; for (t in e) r[t] = e[t]; if (n) for (t in n) r[t] = n[t]; return r } function u(e) { var n = []; return function r(e, a) { for (var i = e.firstChild; i; i = i.nextSibling) 3 == i.nodeType ? a += i.nodeValue.length : 1 == i.nodeType && (n.push({ event: "start", offset: a, node: i }), a = r(i, a), t(i).match(/br|hr|img|input/) || n.push({ event: "stop", offset: a, node: i })); return a }(e, 0), n } function c(e, r, a) { function i() { return e.length && r.length ? e[0].offset != r[0].offset ? e[0].offset < r[0].offset ? e : r : "start" == r[0].event ? e : r : e.length ? e : r } function o(e) { function r(e) { return " " + e.nodeName + '="' + n(e.value) + '"' } f += "<" + t(e) + Array.prototype.map.call(e.attributes, r).join("") + ">" } function u(e) { f += "</" + t(e) + ">" } function c(e) { ("start" == e.event ? o : u)(e.node) } for (var s = 0, f = "", l = []; e.length || r.length;) { var g = i(); if (f += n(a.substr(s, g[0].offset - s)), s = g[0].offset, g == e) { l.reverse().forEach(u); do c(g.splice(0, 1)[0]), g = i(); while (g == e && g.length && g[0].offset == s); l.reverse().forEach(o) } else "start" == g[0].event ? l.push(g[0].node) : l.pop(), c(g.splice(0, 1)[0]) } return f + n(a.substr(s)) } function s(e) { function n(e) { return e && e.source || e } function t(t, r) { return new RegExp(n(t), "m" + (e.cI ? "i" : "") + (r ? "g" : "")) } function r(a, i) { if (!a.compiled) { if (a.compiled = !0, a.k = a.k || a.bK, a.k) { var u = {}, c = function (n, t) { e.cI && (t = t.toLowerCase()), t.split(" ").forEach(function (e) { var t = e.split("|"); u[t[0]] = [n, t[1] ? Number(t[1]) : 1] }) }; "string" == typeof a.k ? c("keyword", a.k) : Object.keys(a.k).forEach(function (e) { c(e, a.k[e]) }), a.k = u } a.lR = t(a.l || /\b\w+\b/, !0), i && (a.bK && (a.b = "\\b(" + a.bK.split(" ").join("|") + ")\\b"), a.b || (a.b = /\B|\b/), a.bR = t(a.b), a.e || a.eW || (a.e = /\B|\b/), a.e && (a.eR = t(a.e)), a.tE = n(a.e) || "", a.eW && i.tE && (a.tE += (a.e ? "|" : "") + i.tE)), a.i && (a.iR = t(a.i)), void 0 === a.r && (a.r = 1), a.c || (a.c = []); var s = []; a.c.forEach(function (e) { e.v ? e.v.forEach(function (n) { s.push(o(e, n)) }) : s.push("self" == e ? a : e) }), a.c = s, a.c.forEach(function (e) { r(e, a) }), a.starts && r(a.starts, i); var f = a.c.map(function (e) { return e.bK ? "\\.?(" + e.b + ")\\.?" : e.b }).concat([a.tE, a.i]).map(n).filter(Boolean); a.t = f.length ? t(f.join("|"), !0) : { exec: function () { return null } } } } r(e) } function f(e, t, a, i) { function o(e, n) { for (var t = 0; t < n.c.length; t++) if (r(n.c[t].bR, e)) return n.c[t] } function u(e, n) { if (r(e.eR, n)) { for (; e.endsParent && e.parent;) e = e.parent; return e } return e.eW ? u(e.parent, n) : void 0 } function c(e, n) { return !a && r(n.iR, e) } function g(e, n) { var t = N.cI ? n[0].toLowerCase() : n[0]; return e.k.hasOwnProperty(t) && e.k[t] } function h(e, n, t, r) { var a = r ? "" : w.classPrefix, i = '<span class="' + a, o = t ? "" : "</span>"; return i += e + '">', i + n + o } function p() { if (!L.k) return n(B); var e = "", t = 0; L.lR.lastIndex = 0; for (var r = L.lR.exec(B) ; r;) { e += n(B.substr(t, r.index - t)); var a = g(L, r); a ? (y += a[1], e += h(a[0], n(r[0]))) : e += n(r[0]), t = L.lR.lastIndex, r = L.lR.exec(B) } return e + n(B.substr(t)) } function d() { if (L.sL && !x[L.sL]) return n(B); var e = L.sL ? f(L.sL, B, !0, M[L.sL]) : l(B); return L.r > 0 && (y += e.r), "continuous" == L.subLanguageMode && (M[L.sL] = e.top), h(e.language, e.value, !1, !0) } function b() { return void 0 !== L.sL ? d() : p() } function v(e, t) { var r = e.cN ? h(e.cN, "", !0) : ""; e.rB ? (k += r, B = "") : e.eB ? (k += n(t) + r, B = "") : (k += r, B = t), L = Object.create(e, { parent: { value: L } }) } function m(e, t) { if (B += e, void 0 === t) return k += b(), 0; var r = o(t, L); if (r) return k += b(), v(r, t), r.rB ? 0 : t.length; var a = u(L, t); if (a) { var i = L; i.rE || i.eE || (B += t), k += b(); do L.cN && (k += "</span>"), y += L.r, L = L.parent; while (L != a.parent); return i.eE && (k += n(t)), B = "", a.starts && v(a.starts, ""), i.rE ? 0 : t.length } if (c(t, L)) throw new Error('Illegal lexeme "' + t + '" for mode "' + (L.cN || "<unnamed>") + '"'); return B += t, t.length || 1 } var N = E(e); if (!N) throw new Error('Unknown language: "' + e + '"'); s(N); var R, L = i || N, M = {}, k = ""; for (R = L; R != N; R = R.parent) R.cN && (k = h(R.cN, "", !0) + k); var B = "", y = 0; try { for (var C, j, I = 0; ;) { if (L.t.lastIndex = I, C = L.t.exec(t), !C) break; j = m(t.substr(I, C.index - I), C[0]), I = C.index + j } for (m(t.substr(I)), R = L; R.parent; R = R.parent) R.cN && (k += "</span>"); return { r: y, value: k, language: e, top: L } } catch (O) { if (-1 != O.message.indexOf("Illegal")) return { r: 0, value: n(t) }; throw O } } function l(e, t) { t = t || w.languages || Object.keys(x); var r = { r: 0, value: n(e) }, a = r; return t.forEach(function (n) { if (E(n)) { var t = f(n, e, !1); t.language = n, t.r > a.r && (a = t), t.r > r.r && (a = r, r = t) } }), a.language && (r.second_best = a), r } function g(e) { return w.tabReplace && (e = e.replace(/^((<[^>]+>|\t)+)/gm, function (e, n) { return n.replace(/\t/g, w.tabReplace) })), w.useBR && (e = e.replace(/\n/g, "<br>")), e } function h(e, n, t) { var r = n ? R[n] : t, a = [e.trim()]; return e.match(/\bhljs\b/) || a.push("hljs"), -1 === e.indexOf(r) && a.push(r), a.join(" ").trim() } function p(e) { var n = i(e); if (!a(n)) { var t; w.useBR ? (t = document.createElementNS("http://www.w3.org/1999/xhtml", "div"), t.innerHTML = e.innerHTML.replace(/\n/g, "").replace(/<br[ \/]*>/g, "\n")) : t = e; var r = t.textContent, o = n ? f(n, r, !0) : l(r), s = u(t); if (s.length) { var p = document.createElementNS("http://www.w3.org/1999/xhtml", "div"); p.innerHTML = o.value, o.value = c(s, u(p), r) } o.value = g(o.value), e.innerHTML = o.value, e.className = h(e.className, n, o.language), e.result = { language: o.language, re: o.r }, o.second_best && (e.second_best = { language: o.second_best.language, re: o.second_best.r }) } } function d(e) { w = o(w, e) } function b() { if (!b.called) { b.called = !0; var e = document.querySelectorAll("pre code"); Array.prototype.forEach.call(e, p) } } function v() { addEventListener("DOMContentLoaded", b, !1), addEventListener("load", b, !1) } function m(n, t) { var r = x[n] = t(e); r.aliases && r.aliases.forEach(function (e) { R[e] = n }) } function N() { return Object.keys(x) } function E(e) { return x[e] || x[R[e]] } var w = { classPrefix: "hljs-", tabReplace: null, useBR: !1, languages: void 0 }, x = {}, R = {}; return e.highlight = f, e.highlightAuto = l, e.fixMarkup = g, e.highlightBlock = p, e.configure = d, e.initHighlighting = b, e.initHighlightingOnLoad = v, e.registerLanguage = m, e.listLanguages = N, e.getLanguage = E, e.inherit = o, e.IR = "[a-zA-Z]\\w*", e.UIR = "[a-zA-Z_]\\w*", e.NR = "\\b\\d+(\\.\\d+)?", e.CNR = "\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", e.BNR = "\\b(0b[01]+)", e.RSR = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", e.BE = { b: "\\\\[\\s\\S]", r: 0 }, e.ASM = { cN: "string", b: "'", e: "'", i: "\\n", c: [e.BE] }, e.QSM = { cN: "string", b: '"', e: '"', i: "\\n", c: [e.BE] }, e.PWM = { b: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/ }, e.C = function (n, t, r) { var a = e.inherit({ cN: "comment", b: n, e: t, c: [] }, r || {}); return a.c.push(e.PWM), a.c.push({ cN: "doctag", bK: "TODO FIXME NOTE BUG XXX", r: 0 }), a }, e.CLCM = e.C("//", "$"), e.CBCM = e.C("/\\*", "\\*/"), e.HCM = e.C("#", "$"), e.NM = { cN: "number", b: e.NR, r: 0 }, e.CNM = { cN: "number", b: e.CNR, r: 0 }, e.BNM = { cN: "number", b: e.BNR, r: 0 }, e.CSSNM = { cN: "number", b: e.NR + "(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", r: 0 }, e.RM = { cN: "regexp", b: /\//, e: /\/[gimuy]*/, i: /\n/, c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }] }, e.TM = { cN: "title", b: e.IR, r: 0 }, e.UTM = { cN: "title", b: e.UIR, r: 0 }, e }); hljs.registerLanguage("coffeescript", function (e) { var c = { keyword: "in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not", literal: "true false null undefined yes no on off", reserved: "case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf", built_in: "npm require console print module global window document" }, n = "[A-Za-z$_][0-9A-Za-z$_]*", t = { cN: "subst", b: /#\{/, e: /}/, k: c }, r = [e.BNM, e.inherit(e.CNM, { starts: { e: "(\\s*/)?", r: 0 } }), { cN: "string", v: [{ b: /'''/, e: /'''/, c: [e.BE] }, { b: /'/, e: /'/, c: [e.BE] }, { b: /"""/, e: /"""/, c: [e.BE, t] }, { b: /"/, e: /"/, c: [e.BE, t] }] }, { cN: "regexp", v: [{ b: "///", e: "///", c: [t, e.HCM] }, { b: "//[gim]*", r: 0 }, { b: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/ }] }, { cN: "property", b: "@" + n }, { b: "`", e: "`", eB: !0, eE: !0, sL: "javascript" }]; t.c = r; var i = e.inherit(e.TM, { b: n }), s = "(\\(.*\\))?\\s*\\B[-=]>", o = { cN: "params", b: "\\([^\\(]", rB: !0, c: [{ b: /\(/, e: /\)/, k: c, c: ["self"].concat(r) }] }; return { aliases: ["coffee", "cson", "iced"], k: c, i: /\/\*/, c: r.concat([e.C("###", "###"), e.HCM, { cN: "function", b: "^\\s*" + n + "\\s*=\\s*" + s, e: "[-=]>", rB: !0, c: [i, o] }, { b: /[:\(,=]\s*/, r: 0, c: [{ cN: "function", b: s, e: "[-=]>", rB: !0, c: [o] }] }, { cN: "class", bK: "class", e: "$", i: /[:="\[\]]/, c: [{ bK: "extends", eW: !0, i: /[:="\[\]]/, c: [i] }, i] }, { cN: "attribute", b: n + ":", e: ":", rB: !0, rE: !0, r: 0 }]) } }); hljs.registerLanguage("cpp", function (t) { var e = { cN: "keyword", b: "[a-z\\d_]*_t" }, r = { keyword: "false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong", built_in: "std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf" }; return { aliases: ["c", "cc", "h", "c++", "h++", "hpp"], k: r, i: "</", c: [e, t.CLCM, t.CBCM, { cN: "string", v: [t.inherit(t.QSM, { b: '((u8?|U)|L)?"' }), { b: '(u8?|U)?R"', e: '"', c: [t.BE] }, { b: "'\\\\?.", e: "'", i: "." }] }, { cN: "number", b: "\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)" }, t.CNM, { cN: "preprocessor", b: "#", e: "$", k: "if else elif endif define undef warning error line pragma", c: [{ b: /\\\n/, r: 0 }, { b: 'include\\s*[<"]', e: '[>"]', k: "include", i: "\\n" }, t.CLCM] }, { b: "\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<", e: ">", k: r, c: ["self", e] }, { b: t.IR + "::", k: r }, { bK: "new throw return else", r: 0 }, { cN: "function", b: "(" + t.IR + "\\s+)+" + t.IR + "\\s*\\(", rB: !0, e: /[{;=]/, eE: !0, k: r, c: [{ b: t.IR + "\\s*\\(", rB: !0, c: [t.TM], r: 0 }, { cN: "params", b: /\(/, e: /\)/, k: r, r: 0, c: [t.CBCM] }, t.CLCM, t.CBCM] }] } }); hljs.registerLanguage("python", function (e) { var r = { cN: "prompt", b: /^(>>>|\.\.\.) / }, b = { cN: "string", c: [e.BE], v: [{ b: /(u|b)?r?'''/, e: /'''/, c: [r], r: 10 }, { b: /(u|b)?r?"""/, e: /"""/, c: [r], r: 10 }, { b: /(u|r|ur)'/, e: /'/, r: 10 }, { b: /(u|r|ur)"/, e: /"/, r: 10 }, { b: /(b|br)'/, e: /'/ }, { b: /(b|br)"/, e: /"/ }, e.ASM, e.QSM] }, l = { cN: "number", r: 0, v: [{ b: e.BNR + "[lLjJ]?" }, { b: "\\b(0o[0-7]+)[lLjJ]?" }, { b: e.CNR + "[lLjJ]?" }] }, c = { cN: "params", b: /\(/, e: /\)/, c: ["self", r, l, b] }; return { aliases: ["py", "gyp"], k: { keyword: "and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False", built_in: "Ellipsis NotImplemented" }, i: /(<\/|->|\?)/, c: [r, l, b, e.HCM, { v: [{ cN: "function", bK: "def", r: 10 }, { cN: "class", bK: "class" }], e: /:/, i: /[${=;\n,]/, c: [e.UTM, c] }, { cN: "decorator", b: /@/, e: /$/ }, { b: /\b(print|exec)\(/ }] } }); hljs.registerLanguage("sql", function (e) { var t = e.C("--", "$"); return { cI: !0, i: /[<>]/, c: [{ cN: "operator", bK: "begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate savepoint release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke", e: /;/, eW: !0, k: { keyword: "abs absolute acos action add adddate addtime aes_decrypt aes_encrypt after aggregate all allocate alter analyze and any are as asc ascii asin assertion at atan atan2 atn2 authorization authors avg backup before begin benchmark between bin binlog bit_and bit_count bit_length bit_or bit_xor both by cache call cascade cascaded case cast catalog ceil ceiling chain change changed char_length character_length charindex charset check checksum checksum_agg choose close coalesce coercibility collate collation collationproperty column columns columns_updated commit compress concat concat_ws concurrent connect connection connection_id consistent constraint constraints continue contributors conv convert convert_tz corresponding cos cot count count_big crc32 create cross cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime data database databases datalength date_add date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts datetimeoffsetfromparts day dayname dayofmonth dayofweek dayofyear deallocate declare decode default deferrable deferred degrees delayed delete des_decrypt des_encrypt des_key_file desc describe descriptor diagnostics difference disconnect distinct distinctrow div do domain double drop dumpfile each else elt enclosed encode encrypt end end-exec engine engines eomonth errors escape escaped event eventdata events except exception exec execute exists exp explain export_set extended external extract fast fetch field fields find_in_set first first_value floor flush for force foreign format found found_rows from from_base64 from_days from_unixtime full function get get_format get_lock getdate getutcdate global go goto grant grants greatest group group_concat grouping grouping_id gtid_subset gtid_subtract handler having help hex high_priority hosts hour ident_current ident_incr ident_seed identified identity if ifnull ignore iif ilike immediate in index indicator inet6_aton inet6_ntoa inet_aton inet_ntoa infile initially inner innodb input insert install instr intersect into is is_free_lock is_ipv4 is_ipv4_compat is_ipv4_mapped is_not is_not_null is_used_lock isdate isnull isolation join key kill language last last_day last_insert_id last_value lcase lead leading least leaves left len lenght level like limit lines ln load load_file local localtime localtimestamp locate lock log log10 log2 logfile logs low_priority lower lpad ltrim make_set makedate maketime master master_pos_wait match matched max md5 medium merge microsecond mid min minute mod mode module month monthname mutex name_const names national natural nchar next no no_write_to_binlog not now nullif nvarchar oct octet_length of old_password on only open optimize option optionally or ord order outer outfile output pad parse partial partition password patindex percent_rank percentile_cont percentile_disc period_add period_diff pi plugin position pow power pragma precision prepare preserve primary prior privileges procedure procedure_analyze processlist profile profiles public publishingservername purge quarter query quick quote quotename radians rand read references regexp relative relaylog release release_lock rename repair repeat replace replicate reset restore restrict return returns reverse revoke right rlike rollback rollup round row row_count rows rpad rtrim savepoint schema scroll sec_to_time second section select serializable server session session_user set sha sha1 sha2 share show sign sin size slave sleep smalldatetimefromparts snapshot some soname soundex sounds_like space sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sql_variant_property sqlstate sqrt square start starting status std stddev stddev_pop stddev_samp stdev stdevp stop str str_to_date straight_join strcmp string stuff subdate substr substring subtime subtring_index sum switchoffset sysdate sysdatetime sysdatetimeoffset system_user sysutcdatetime table tables tablespace tan temporary terminated tertiary_weights then time time_format time_to_sec timediff timefromparts timestamp timestampadd timestampdiff timezone_hour timezone_minute to to_base64 to_days to_seconds todatetimeoffset trailing transaction translation trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse ucase uncompress uncompressed_length unhex unicode uninstall union unique unix_timestamp unknown unlock update upgrade upped upper usage use user user_resources using utc_date utc_time utc_timestamp uuid uuid_short validate_password_strength value values var var_pop var_samp variables variance varp version view warnings week weekday weekofyear weight_string when whenever where with work write xml xor year yearweek zon", literal: "true false null", built_in: "array bigint binary bit blob boolean char character date dec decimal float int integer interval number numeric real serial smallint varchar varying int8 serial8 text" }, c: [{ cN: "string", b: "'", e: "'", c: [e.BE, { b: "''" }] }, { cN: "string", b: '"', e: '"', c: [e.BE, { b: '""' }] }, { cN: "string", b: "`", e: "`", c: [e.BE] }, e.CNM, e.CBCM, t] }, e.CBCM, t] } }); hljs.registerLanguage("java", function (e) { var a = e.UIR + "(<" + e.UIR + ">)?", t = "false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private", c = "\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?", r = { cN: "number", b: c, r: 0 }; return { aliases: ["jsp"], k: t, i: /<\//, c: [e.C("/\\*\\*", "\\*/", { r: 0, c: [{ cN: "doctag", b: "@[A-Za-z]+" }] }), e.CLCM, e.CBCM, e.ASM, e.QSM, { cN: "class", bK: "class interface", e: /[{;=]/, eE: !0, k: "class interface", i: /[:"\[\]]/, c: [{ bK: "extends implements" }, e.UTM] }, { bK: "new throw return else", r: 0 }, { cN: "function", b: "(" + a + "\\s+)+" + e.UIR + "\\s*\\(", rB: !0, e: /[{;=]/, eE: !0, k: t, c: [{ b: e.UIR + "\\s*\\(", rB: !0, r: 0, c: [e.UTM] }, { cN: "params", b: /\(/, e: /\)/, k: t, r: 0, c: [e.ASM, e.QSM, e.CNM, e.CBCM] }, e.CLCM, e.CBCM] }, r, { cN: "annotation", b: "@[A-Za-z]+" }] } }); hljs.registerLanguage("ruby", function (e) { var c = "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?", r = "and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor", b = { cN: "doctag", b: "@[A-Za-z]+" }, a = { cN: "value", b: "#<", e: ">" }, n = [e.C("#", "$", { c: [b] }), e.C("^\\=begin", "^\\=end", { c: [b], r: 10 }), e.C("^__END__", "\\n$")], s = { cN: "subst", b: "#\\{", e: "}", k: r }, t = { cN: "string", c: [e.BE, s], v: [{ b: /'/, e: /'/ }, { b: /"/, e: /"/ }, { b: /`/, e: /`/ }, { b: "%[qQwWx]?\\(", e: "\\)" }, { b: "%[qQwWx]?\\[", e: "\\]" }, { b: "%[qQwWx]?{", e: "}" }, { b: "%[qQwWx]?<", e: ">" }, { b: "%[qQwWx]?/", e: "/" }, { b: "%[qQwWx]?%", e: "%" }, { b: "%[qQwWx]?-", e: "-" }, { b: "%[qQwWx]?\\|", e: "\\|" }, { b: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/ }] }, i = { cN: "params", b: "\\(", e: "\\)", k: r }, d = [t, a, { cN: "class", bK: "class module", e: "$|;", i: /=/, c: [e.inherit(e.TM, { b: "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?" }), { cN: "inheritance", b: "<\\s*", c: [{ cN: "parent", b: "(" + e.IR + "::)?" + e.IR }] }].concat(n) }, { cN: "function", bK: "def", e: " |$|;", r: 0, c: [e.inherit(e.TM, { b: c }), i].concat(n) }, { cN: "constant", b: "(::)?(\\b[A-Z]\\w*(::)?)+", r: 0 }, { cN: "symbol", b: e.UIR + "(\\!|\\?)?:", r: 0 }, { cN: "symbol", b: ":", c: [t, { b: c }], r: 0 }, { cN: "number", b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", r: 0 }, { cN: "variable", b: "(\\$\\W)|((\\$|\\@\\@?)(\\w+))" }, { b: "(" + e.RSR + ")\\s*", c: [a, { cN: "regexp", c: [e.BE, s], i: /\n/, v: [{ b: "/", e: "/[a-z]*" }, { b: "%r{", e: "}[a-z]*" }, { b: "%r\\(", e: "\\)[a-z]*" }, { b: "%r!", e: "![a-z]*" }, { b: "%r\\[", e: "\\][a-z]*" }] }].concat(n), r: 0 }].concat(n); s.c = d, i.c = d; var o = "[>?]>", l = "[\\w#]+\\(\\w+\\):\\d+:\\d+>", u = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>", N = [{ b: /^\s*=>/, cN: "status", starts: { e: "$", c: d } }, { cN: "prompt", b: "^(" + o + "|" + l + "|" + u + ")", starts: { e: "$", c: d } }]; return { aliases: ["rb", "gemspec", "podspec", "thor", "irb"], k: r, c: n.concat(N).concat(d) } }); hljs.registerLanguage("objectivec", function (e) { var t = { cN: "built_in", b: "(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\w+" }, i = { keyword: "int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required", literal: "false true FALSE TRUE nil YES NO NULL", built_in: "BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once" }, o = /[a-zA-Z@][a-zA-Z0-9_]*/, n = "@interface @class @protocol @implementation"; return { aliases: ["mm", "objc", "obj-c"], k: i, l: o, i: "</", c: [t, e.CLCM, e.CBCM, e.CNM, e.QSM, { cN: "string", v: [{ b: '@"', e: '"', i: "\\n", c: [e.BE] }, { b: "'", e: "[^\\\\]'", i: "[^\\\\][^']" }] }, { cN: "preprocessor", b: "#", e: "$", c: [{ cN: "title", v: [{ b: '"', e: '"' }, { b: "<", e: ">" }] }] }, { cN: "class", b: "(" + n.split(" ").join("|") + ")\\b", e: "({|$)", eE: !0, k: n, l: o, c: [e.UTM] }, { cN: "variable", b: "\\." + e.UIR, r: 0 }] } }); hljs.registerLanguage("javascript", function (e) { return { aliases: ["js"], k: { keyword: "in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await", literal: "true false null undefined NaN Infinity", built_in: "eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise" }, c: [{ cN: "pi", r: 10, b: /^\s*['"]use (strict|asm)['"]/ }, e.ASM, e.QSM, { cN: "string", b: "`", e: "`", c: [e.BE, { cN: "subst", b: "\\$\\{", e: "\\}" }] }, e.CLCM, e.CBCM, { cN: "number", v: [{ b: "\\b(0[bB][01]+)" }, { b: "\\b(0[oO][0-7]+)" }, { b: e.CNR }], r: 0 }, { b: "(" + e.RSR + "|\\b(case|return|throw)\\b)\\s*", k: "return throw case", c: [e.CLCM, e.CBCM, e.RM, { b: /</, e: />\s*[);\]]/, r: 0, sL: "xml" }], r: 0 }, { cN: "function", bK: "function", e: /\{/, eE: !0, c: [e.inherit(e.TM, { b: /[A-Za-z$_][0-9A-Za-z$_]*/ }), { cN: "params", b: /\(/, e: /\)/, eB: !0, eE: !0, c: [e.CLCM, e.CBCM], i: /["'\(]/ }], i: /\[|%/ }, { b: /\$[(.]/ }, { b: "\\." + e.IR, r: 0 }, { bK: "import", e: "[;$]", k: "import from as", c: [e.ASM, e.QSM] }, { cN: "class", bK: "class", e: /[{;=]/, eE: !0, i: /[:"\[\]]/, c: [{ bK: "extends" }, e.UTM] }] } }); hljs.registerLanguage("nginx", function (e) { var r = { cN: "variable", v: [{ b: /\$\d+/ }, { b: /\$\{/, e: /}/ }, { b: "[\\$\\@]" + e.UIR }] }, b = { eW: !0, l: "[a-z/_]+", k: { built_in: "on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll" }, r: 0, i: "=>", c: [e.HCM, { cN: "string", c: [e.BE, r], v: [{ b: /"/, e: /"/ }, { b: /'/, e: /'/ }] }, { cN: "url", b: "([a-z]+):/", e: "\\s", eW: !0, eE: !0, c: [r] }, { cN: "regexp", c: [e.BE, r], v: [{ b: "\\s\\^", e: "\\s|{|;", rE: !0 }, { b: "~\\*?\\s+", e: "\\s|{|;", rE: !0 }, { b: "\\*(\\.[a-z\\-]+)+" }, { b: "([a-z\\-]+\\.)+\\*" }] }, { cN: "number", b: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b" }, { cN: "number", b: "\\b\\d+[kKmMgGdshdwy]*\\b", r: 0 }, r] }; return { aliases: ["nginxconf"], c: [e.HCM, { b: e.UIR + "\\s", e: ";|{", rB: !0, c: [{ cN: "title", b: e.UIR, starts: b }], r: 0 }], i: "[^\\s\\}]" } }); hljs.registerLanguage("markdown", function (e) { return { aliases: ["md", "mkdown", "mkd"], c: [{ cN: "header", v: [{ b: "^#{1,6}", e: "$" }, { b: "^.+?\\n[=-]{2,}$" }] }, { b: "<", e: ">", sL: "xml", r: 0 }, { cN: "bullet", b: "^([*+-]|(\\d+\\.))\\s+" }, { cN: "strong", b: "[*_]{2}.+?[*_]{2}" }, { cN: "emphasis", v: [{ b: "\\*.+?\\*" }, { b: "_.+?_", r: 0 }] }, { cN: "blockquote", b: "^>\\s+", e: "$" }, { cN: "code", v: [{ b: "`.+?`" }, { b: "^( {4}|	)", e: "$", r: 0 }] }, { cN: "horizontal_rule", b: "^[-\\*]{3,}", e: "$" }, { b: "\\[.+?\\][\\(\\[].*?[\\)\\]]", rB: !0, c: [{ cN: "link_label", b: "\\[", e: "\\]", eB: !0, rE: !0, r: 0 }, { cN: "link_url", b: "\\]\\(", e: "\\)", eB: !0, eE: !0 }, { cN: "link_reference", b: "\\]\\[", e: "\\]", eB: !0, eE: !0 }], r: 10 }, { b: "^\\[.+\\]:", rB: !0, c: [{ cN: "link_reference", b: "\\[", e: "\\]:", eB: !0, eE: !0, starts: { cN: "link_url", e: "$" } }] }] } }); hljs.registerLanguage("json", function (e) { var t = { literal: "true false null" }, i = [e.QSM, e.CNM], l = { cN: "value", e: ",", eW: !0, eE: !0, c: i, k: t }, c = { b: "{", e: "}", c: [{ cN: "attribute", b: '\\s*"', e: '"\\s*:\\s*', eB: !0, eE: !0, c: [e.BE], i: "\\n", starts: l }], i: "\\S" }, n = { b: "\\[", e: "\\]", c: [e.inherit(l, { cN: null })], i: "\\S" }; return i.splice(i.length, 0, c, n), { c: i, k: t, i: "\\S" } }); hljs.registerLanguage("php", function (e) { var c = { cN: "variable", b: "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*" }, a = { cN: "preprocessor", b: /<\?(php)?|\?>/ }, i = { cN: "string", c: [e.BE, a], v: [{ b: 'b"', e: '"' }, { b: "b'", e: "'" }, e.inherit(e.ASM, { i: null }), e.inherit(e.QSM, { i: null })] }, n = { v: [e.BNM, e.CNM] }; return { aliases: ["php3", "php4", "php5", "php6"], cI: !0, k: "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally", c: [e.CLCM, e.HCM, e.C("/\\*", "\\*/", { c: [{ cN: "doctag", b: "@[A-Za-z]+" }, a] }), e.C("__halt_compiler.+?;", !1, { eW: !0, k: "__halt_compiler", l: e.UIR }), { cN: "string", b: "<<<['\"]?\\w+['\"]?$", e: "^\\w+;", c: [e.BE] }, a, c, { b: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ }, { cN: "function", bK: "function", e: /[;{]/, eE: !0, i: "\\$|\\[|%", c: [e.UTM, { cN: "params", b: "\\(", e: "\\)", c: ["self", c, e.CBCM, i, n] }] }, { cN: "class", bK: "class interface", e: "{", eE: !0, i: /[:\(\$"]/, c: [{ bK: "extends implements" }, e.UTM] }, { bK: "namespace", e: ";", i: /[\.']/, c: [e.UTM] }, { bK: "use", e: ";", c: [e.UTM] }, { b: "=>" }, i, n] } }); hljs.registerLanguage("diff", function (e) { return { aliases: ["patch"], c: [{ cN: "chunk", r: 10, v: [{ b: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/ }, { b: /^\*\*\* +\d+,\d+ +\*\*\*\*$/ }, { b: /^\-\-\- +\d+,\d+ +\-\-\-\-$/ }] }, { cN: "header", v: [{ b: /Index: /, e: /$/ }, { b: /=====/, e: /=====$/ }, { b: /^\-\-\-/, e: /$/ }, { b: /^\*{3} /, e: /$/ }, { b: /^\+\+\+/, e: /$/ }, { b: /\*{5}/, e: /\*{5}$/ }] }, { cN: "addition", b: "^\\+", e: "$" }, { cN: "deletion", b: "^\\-", e: "$" }, { cN: "change", b: "^\\!", e: "$" }] } }); hljs.registerLanguage("apache", function (e) { var r = { cN: "number", b: "[\\$%]\\d+" }; return { aliases: ["apacheconf"], cI: !0, c: [e.HCM, { cN: "tag", b: "</?", e: ">" }, { cN: "keyword", b: /\w+/, r: 0, k: { common: "order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername" }, starts: { e: /$/, r: 0, k: { literal: "on off all" }, c: [{ cN: "sqbracket", b: "\\s\\[", e: "\\]$" }, { cN: "cbracket", b: "[\\$%]\\{", e: "\\}", c: ["self", r] }, r, e.QSM] } }], i: /\S/ } }); hljs.registerLanguage("http", function (t) { return { aliases: ["https"], i: "\\S", c: [{ cN: "status", b: "^HTTP/[0-9\\.]+", e: "$", c: [{ cN: "number", b: "\\b\\d{3}\\b" }] }, { cN: "request", b: "^[A-Z]+ (.*?) HTTP/[0-9\\.]+$", rB: !0, e: "$", c: [{ cN: "string", b: " ", e: " ", eB: !0, eE: !0 }] }, { cN: "attribute", b: "^\\w", e: ": ", eE: !0, i: "\\n|\\s|=", starts: { cN: "string", e: "$" } }, { b: "\\n\\n", starts: { sL: "", eW: !0 } }] } }); hljs.registerLanguage("less", function (e) { var r = "[\\w-]+", t = "(" + r + "|@{" + r + "})", a = [], c = [], n = function (e) { return { cN: "string", b: "~?" + e + ".*?" + e } }, i = function (e, r, t) { return { cN: e, b: r, r: t } }, s = function (r, t, a) { return e.inherit({ cN: r, b: t + "\\(", e: "\\(", rB: !0, eE: !0, r: 0 }, a) }, b = { b: "\\(", e: "\\)", c: c, r: 0 }; c.push(e.CLCM, e.CBCM, n("'"), n('"'), e.CSSNM, i("hexcolor", "#[0-9A-Fa-f]+\\b"), s("function", "(url|data-uri)", { starts: { cN: "string", e: "[\\)\\n]", eE: !0 } }), s("function", r), b, i("variable", "@@?" + r, 10), i("variable", "@{" + r + "}"), i("built_in", "~?`[^`]*?`"), { cN: "attribute", b: r + "\\s*:", e: ":", rB: !0, eE: !0 }); var o = c.concat({ b: "{", e: "}", c: a }), u = { bK: "when", eW: !0, c: [{ bK: "and not" }].concat(c) }, C = { cN: "attribute", b: t, e: ":", eE: !0, c: [e.CLCM, e.CBCM], i: /\S/, starts: { e: "[;}]", rE: !0, c: c, i: "[<=$]" } }, l = { cN: "at_rule", b: "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", starts: { e: "[;{}]", rE: !0, c: c, r: 0 } }, d = { cN: "variable", v: [{ b: "@" + r + "\\s*:", r: 15 }, { b: "@" + r }], starts: { e: "[;}]", rE: !0, c: o } }, p = { v: [{ b: "[\\.#:&\\[]", e: "[;{}]" }, { b: t + "[^;]*{", e: "{" }], rB: !0, rE: !0, i: "[<='$\"]", c: [e.CLCM, e.CBCM, u, i("keyword", "all\\b"), i("variable", "@{" + r + "}"), i("tag", t + "%?", 0), i("id", "#" + t), i("class", "\\." + t, 0), i("keyword", "&", 0), s("pseudo", ":not"), s("keyword", ":extend"), i("pseudo", "::?" + t), { cN: "attr_selector", b: "\\[", e: "\\]" }, { b: "\\(", e: "\\)", c: o }, { b: "!important" }] }; return a.push(e.CLCM, e.CBCM, l, d, p, C), { cI: !0, i: "[=>'/<($\"]", c: a } }); hljs.registerLanguage("css", function (e) { var c = "[a-zA-Z-][a-zA-Z0-9_-]*", a = { cN: "function", b: c + "\\(", rB: !0, eE: !0, e: "\\(" }, r = { cN: "rule", b: /[A-Z\_\.\-]+\s*:/, rB: !0, e: ";", eW: !0, c: [{ cN: "attribute", b: /\S/, e: ":", eE: !0, starts: { cN: "value", eW: !0, eE: !0, c: [a, e.CSSNM, e.QSM, e.ASM, e.CBCM, { cN: "hexcolor", b: "#[0-9A-Fa-f]+" }, { cN: "important", b: "!important" }] } }] }; return { cI: !0, i: /[=\/|'\$]/, c: [e.CBCM, r, { cN: "id", b: /\#[A-Za-z0-9_-]+/ }, { cN: "class", b: /\.[A-Za-z0-9_-]+/ }, { cN: "attr_selector", b: /\[/, e: /\]/, i: "$" }, { cN: "pseudo", b: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/ }, { cN: "at_rule", b: "@(font-face|page)", l: "[a-z-]+", k: "font-face page" }, { cN: "at_rule", b: "@", e: "[{;]", c: [{ cN: "keyword", b: /\S+/ }, { b: /\s/, eW: !0, eE: !0, r: 0, c: [a, e.ASM, e.QSM, e.CSSNM] }] }, { cN: "tag", b: c, r: 0 }, { cN: "rules", b: "{", e: "}", i: /\S/, c: [e.CBCM, r] }] } }); hljs.registerLanguage("cs", function (e) { var r = "abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield", t = e.IR + "(<" + e.IR + ">)?"; return { aliases: ["csharp"], k: r, i: /::/, c: [e.C("///", "$", { rB: !0, c: [{ cN: "xmlDocTag", v: [{ b: "///", r: 0 }, { b: "<!--|-->" }, { b: "</?", e: ">" }] }] }), e.CLCM, e.CBCM, { cN: "preprocessor", b: "#", e: "$", k: "if else elif endif define undef warning error line region endregion pragma checksum" }, { cN: "string", b: '@"', e: '"', c: [{ b: '""' }] }, e.ASM, e.QSM, e.CNM, { bK: "class interface", e: /[{;=]/, i: /[^\s:]/, c: [e.TM, e.CLCM, e.CBCM] }, { bK: "namespace", e: /[{;=]/, i: /[^\s:]/, c: [{ cN: "title", b: "[a-zA-Z](\\.?\\w)*", r: 0 }, e.CLCM, e.CBCM] }, { bK: "new return throw await", r: 0 }, { cN: "function", b: "(" + t + "\\s+)+" + e.IR + "\\s*\\(", rB: !0, e: /[{;=]/, eE: !0, k: r, c: [{ b: e.IR + "\\s*\\(", rB: !0, c: [e.TM], r: 0 }, { cN: "params", b: /\(/, e: /\)/, eB: !0, eE: !0, k: r, r: 0, c: [e.ASM, e.QSM, e.CNM, e.CBCM] }, e.CLCM, e.CBCM] }] } }); hljs.registerLanguage("xml", function (t) { var e = "[A-Za-z0-9\\._:-]+", s = { b: /<\?(php)?(?!\w)/, e: /\?>/, sL: "php", subLanguageMode: "continuous" }, c = { eW: !0, i: /</, r: 0, c: [s, { cN: "attribute", b: e, r: 0 }, { b: "=", r: 0, c: [{ cN: "value", c: [s], v: [{ b: /"/, e: /"/ }, { b: /'/, e: /'/ }, { b: /[^\s\/>]+/ }] }] }] }; return { aliases: ["html", "xhtml", "rss", "atom", "xsl", "plist"], cI: !0, c: [{ cN: "doctype", b: "<!DOCTYPE", e: ">", r: 10, c: [{ b: "\\[", e: "\\]" }] }, t.C("<!--", "-->", { r: 10 }), { cN: "cdata", b: "<\\!\\[CDATA\\[", e: "\\]\\]>", r: 10 }, { cN: "tag", b: "<style(?=\\s|>|$)", e: ">", k: { title: "style" }, c: [c], starts: { e: "</style>", rE: !0, sL: "css" } }, { cN: "tag", b: "<script(?=\\s|>|$)", e: ">", k: { title: "script" }, c: [c], starts: { e: "</script>", rE: !0, sL: "" } }, s, { cN: "pi", b: /<\?\w+/, e: /\?>/, r: 10 }, { cN: "tag", b: "</?", e: "/?>", c: [{ cN: "title", b: /[^ \/><\n\t]+/, r: 0 }, c] }] } }); hljs.registerLanguage("makefile", function (e) { var a = { cN: "variable", b: /\$\(/, e: /\)/, c: [e.BE] }; return { aliases: ["mk", "mak"], c: [e.HCM, { b: /^\w+\s*\W*=/, rB: !0, r: 0, starts: { cN: "constant", e: /\s*\W*=/, eE: !0, starts: { e: /$/, r: 0, c: [a] } } }, { cN: "title", b: /^[\w]+:\s*$/ }, { cN: "phony", b: /^\.PHONY:/, e: /$/, k: ".PHONY", l: /[\.\w]+/ }, { b: /^\t+/, e: /$/, r: 0, c: [e.QSM, a] }] } }); hljs.registerLanguage("ini", function (e) { return { cI: !0, i: /\S/, c: [e.C(";", "$"), { cN: "title", b: "^\\[", e: "\\]" }, { cN: "setting", b: "^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*", e: "$", c: [{ cN: "value", eW: !0, k: "on off true false yes no", c: [e.QSM, e.NM], r: 0 }] }] } }); hljs.registerLanguage("bash", function (e) { var t = { cN: "variable", v: [{ b: /\$[\w\d#@][\w\d_]*/ }, { b: /\$\{(.*?)}/ }] }, s = { cN: "string", b: /"/, e: /"/, c: [e.BE, t, { cN: "variable", b: /\$\(/, e: /\)/, c: [e.BE] }] }, a = { cN: "string", b: /'/, e: /'/ }; return { aliases: ["sh", "zsh"], l: /-?[a-z\.]+/, k: { keyword: "if then else elif fi for while in do done case esac function", literal: "true false", built_in: "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 autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp", operator: "-ne -eq -lt -gt -f -d -e -s -l -a" }, c: [{ cN: "shebang", b: /^#![^\n]+sh\s*$/, r: 10 }, { cN: "function", b: /\w[\w\d_]*\s*\(\s*\)\s*\{/, rB: !0, c: [e.inherit(e.TM, { b: /\w[\w\d_]*/ })], r: 0 }, e.HCM, e.NM, s, a, t] } }); hljs.registerLanguage("perl", function (e) { var t = "getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when", r = { cN: "subst", b: "[$@]\\{", e: "\\}", k: t }, s = { b: "->{", e: "}" }, n = { cN: "variable", v: [{ b: /\$\d/ }, { b: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/ }, { b: /[\$%@][^\s\w{]/, r: 0 }] }, i = e.C("^(__END__|__DATA__)", "\\n$", { r: 5 }), o = [e.BE, r, n], a = [n, e.HCM, i, e.C("^\\=\\w", "\\=cut", { eW: !0 }), s, { cN: "string", c: o, v: [{ b: "q[qwxr]?\\s*\\(", e: "\\)", r: 5 }, { b: "q[qwxr]?\\s*\\[", e: "\\]", r: 5 }, { b: "q[qwxr]?\\s*\\{", e: "\\}", r: 5 }, { b: "q[qwxr]?\\s*\\|", e: "\\|", r: 5 }, { b: "q[qwxr]?\\s*\\<", e: "\\>", r: 5 }, { b: "qw\\s+q", e: "q", r: 5 }, { b: "'", e: "'", c: [e.BE] }, { b: '"', e: '"' }, { b: "`", e: "`", c: [e.BE] }, { b: "{\\w+}", c: [], r: 0 }, { b: "-?\\w+\\s*\\=\\>", c: [], r: 0 }] }, { cN: "number", b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", r: 0 }, { b: "(\\/\\/|" + e.RSR + "|\\b(split|return|print|reverse|grep)\\b)\\s*", k: "split return print reverse grep", r: 0, c: [e.HCM, i, { cN: "regexp", b: "(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*", r: 10 }, { cN: "regexp", b: "(m|qr)?/", e: "/[a-z]*", c: [e.BE], r: 0 }] }, { cN: "sub", bK: "sub", e: "(\\s*\\(.*?\\))?[;{]", r: 5 }, { cN: "operator", b: "-\\w\\b", r: 0 }]; return r.c = a, s.c = a, { aliases: ["pl"], k: t, c: a } });;
!function(){var e=function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=6)}([function(e,t){var n="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ",i=new RegExp("["+n+"]"),r=new RegExp("["+n+"̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ؚؠ-ىٲ-ۓۧ-ۨۻ-ۼܰ-݊ࠀ-ࠔࠛ-ࠣࠥ-ࠧࠩ-࠭ࡀ-ࡗࣤ-ࣾऀ-ःऺ-़ा-ॏ॑-ॗॢ-ॣ०-९ঁ-ঃ়া-ৄেৈৗয়-ৠਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢ-ૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୟ-ୠ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఁ-ఃె-ైొ-్ౕౖౢ-ౣ౦-౯ಂಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢ-ೣ೦-೯ംഃെ-ൈൗൢ-ൣ൦-൯ංඃ්ා-ුූෘ-ෟෲෳิ-ฺเ-ๅ๐-๙ິ-ູ່-ໍ໐-໙༘༙༠-༩༹༵༷ཁ-ཇཱ-྄྆-྇ྍ-ྗྙ-ྼ࿆က-ဩ၀-၉ၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟ᜎ-ᜐᜠ-ᜰᝀ-ᝐᝲᝳក-ឲ៝០-៩᠋-᠍᠐-᠙ᤠ-ᤫᤰ-᤻ᥑ-ᥭᦰ-ᧀᧈ-ᧉ᧐-᧙ᨀ-ᨕᨠ-ᩓ᩠-᩿᩼-᪉᪐-᪙ᭆ-ᭋ᭐-᭙᭫-᭳᮰-᮹᯦-᯳ᰀ-ᰢ᱀-᱉ᱛ-ᱽ᳐-᳒ᴀ-ᶾḁ-ἕ‌‍‿⁀⁔⃐-⃥⃜⃡-⃰ⶁ-ⶖⷠ-ⷿ〡-〨゙゚Ꙁ-ꙭꙴ-꙽ꚟ꛰-꛱ꟸ-ꠀ꠆ꠋꠣ-ꠧꢀ-ꢁꢴ-꣄꣐-꣙ꣳ-ꣷ꤀-꤉ꤦ-꤭ꤰ-ꥅꦀ-ꦃ꦳-꧀ꨀ-ꨧꩀ-ꩁꩌ-ꩍ꩐-꩙ꩻꫠ-ꫩꫲ-ꫳꯀ-ꯡ꯬꯭꯰-꯹ﬠ-ﬨ︀-️︠-︦︳︴﹍-﹏０-９＿]");t.newline=/[\n\r\u2028\u2029]/,t.lineBreak=new RegExp("\r\n|"+t.newline.source),t.allLineBreaks=new RegExp(t.lineBreak.source,"g"),t.isIdentifierStart=function(e){return e<65?36===e||64===e:e<91||(e<97?95===e:e<123||e>=170&&i.test(String.fromCharCode(e)))},t.isIdentifierChar=function(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||e>=170&&r.test(String.fromCharCode(e))))}},function(e,t,n){function i(e,t){if(!t.multiline_frame&&t.mode!==h.ForInitializer&&t.mode!==h.Conditional){var n=t.start_line_index;e.remove_indent(n)}}function r(e,t){for(var n=0;n<t.length;n+=1)if(t[n]===e)return!0;return!1}function _(e){return e.replace(/^\s+|\s+$/g,"")}function a(e){return e.replace(/^\s+/g,"")}function o(e){if(e=e||u.before_newline,!r(e,f))throw new Error("Invalid Option Value: The option 'operator_position' must be one of the following values\n"+f+"\nYou passed in: '"+e+"'");return e}var s=n(3).mergeOpts,l=n(0),c=n(4).Output,p=n(7).Tokenizer,f=["before-newline","after-newline","preserve-newline"],u=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].replace(/-/g,"_")]=e[n];return t}(f),d=[u.before_newline,u.preserve_newline],h={BlockStatement:"BlockStatement",Statement:"Statement",ObjectLiteral:"ObjectLiteral",ArrayLiteral:"ArrayLiteral",ForInitializer:"ForInitializer",Conditional:"Conditional",Expression:"Expression"};e.exports.Beautifier=function(e,t){"use strict";function n(e,t){var n=0;return e&&(n=e.indentation_level,!L.just_added_newline()&&e.line_indent_level>n&&(n=e.line_indent_level)),{mode:t,parent:e,last_text:e?e.last_text:"",last_word:e?e.last_word:"",declaration_statement:!1,declaration_assignment:!1,multiline_frame:!1,inline_frame:!1,if_block:!1,else_block:!1,do_block:!1,do_while:!1,import_block:!1,in_case_statement:!1,in_case:!1,case_body:!1,indentation_level:n,line_indent_level:e?e.line_indent_level:n,start_line_index:L.get_line_number(),ternary_depth:0}}function f(e,t){for(var n=e.newlines,i=Q.keep_array_indentation&&k(W.mode),r=B,_=0;_<e.comments_before.length;_++)f(B=e.comments_before[_],t),U[B.type](t);if(B=r,i)for(var a=0;a<n;a+=1)x(a>0,t);else if(Q.max_preserve_newlines&&n>Q.max_preserve_newlines&&(n=Q.max_preserve_newlines),Q.preserve_newlines&&e.newlines>1){x(!1,t);for(var o=1;o<n;o+=1)x(!0,t)}}function T(e){for(var t=[],n=(e=e.replace(l.allLineBreaks,"\n")).indexOf("\n");-1!==n;)t.push(e.substring(0,n)),n=(e=e.substring(n+1)).indexOf("\n");return e.length&&t.push(e),t}function E(e){if(e=void 0!==e&&e,!L.just_added_newline()){var t=Q.preserve_newlines&&B.wanted_newline||e;if(r(W.last_text,P.positionable_operators)||r(B.text,P.positionable_operators)){var n=r(W.last_text,P.positionable_operators)&&r(Q.operator_position,d)||r(B.text,P.positionable_operators);t=t&&n}if(t)x(!1,!0);else if(Q.wrap_line_length){if("TK_RESERVED"===M&&r(W.last_text,q))return;L.current_line.get_character_count()+B.text.length+(L.space_before_token?1:0)>=Q.wrap_line_length&&x(!1,!0)}}}function x(e,t){if(!t&&";"!==W.last_text&&","!==W.last_text&&"="!==W.last_text&&"TK_OPERATOR"!==M)for(var n=C(1);!(W.mode!==h.Statement||W.if_block&&n&&"TK_RESERVED"===n.type&&"else"===n.text||W.do_block);)O();L.add_new_line(e)&&(W.multiline_frame=!0)}function R(){L.just_added_newline()&&(Q.keep_array_indentation&&k(W.mode)&&B.wanted_newline?(L.current_line.push(B.whitespace_before),L.space_before_token=!1):L.set_indent(W.indentation_level)&&(W.line_indent_level=W.indentation_level))}function K(e){if(L.raw)L.add_raw_token(B);else{if(Q.comma_first&&"TK_COMMA"===M&&L.just_added_newline()&&","===L.previous_line.last()){var t=L.previous_line.pop();L.previous_line.is_empty()&&(L.previous_line.push(t),L.trim(!0),L.current_line.pop(),L.trim()),R(),L.add_token(","),L.space_before_token=!0}e=e||B.text,R(),L.add_token(e)}}function m(){W.indentation_level+=1}function b(){W.indentation_level>0&&(!W.parent||W.indentation_level>W.parent.indentation_level)&&(W.indentation_level-=1)}function v(e){W?(z.push(W),X=W):X=n(null,e),W=n(X,e)}function k(e){return e===h.ArrayLiteral}function w(e){return r(e,[h.Expression,h.ForInitializer,h.Conditional])}function O(){z.length>0&&(X=W,W=z.pop(),X.mode!==h.Statement||Q.unindent_chained_methods||i(L,X))}function S(){return W.parent.mode===h.ObjectLiteral&&W.mode===h.Statement&&(":"===W.last_text&&0===W.ternary_depth||"TK_RESERVED"===M&&r(W.last_text,["get","set"]))}function y(){return!!("TK_RESERVED"===M&&r(W.last_text,["var","let","const"])&&"TK_WORD"===B.type||"TK_RESERVED"===M&&"do"===W.last_text||"TK_RESERVED"===M&&r(W.last_text,q)&&!B.wanted_newline||"TK_RESERVED"===M&&"else"===W.last_text&&("TK_RESERVED"!==B.type||"if"!==B.text||B.comments_before.length)||"TK_END_EXPR"===M&&(X.mode===h.ForInitializer||X.mode===h.Conditional)||"TK_WORD"===M&&W.mode===h.BlockStatement&&!W.in_case&&"--"!==B.text&&"++"!==B.text&&"function"!==I&&"TK_WORD"!==B.type&&"TK_RESERVED"!==B.type||W.mode===h.ObjectLiteral&&(":"===W.last_text&&0===W.ternary_depth||"TK_RESERVED"===M&&r(W.last_text,["get","set"])))&&(v(h.Statement),Q.unindent_chained_methods||m(),f(B,!0),S()||E("TK_RESERVED"===B.type&&r(B.text,["do","for","if","while"])),!0)}function g(e,t){for(var n=0;n<e.length;n++)if(_(e[n]).charAt(0)!==t)return!1;return!0}function D(e,t){for(var n,i=0,r=e.length;i<r;i++)if((n=e[i])&&0!==n.indexOf(t))return!1;return!0}function A(e){return r(e,["case","return","do","if","throw","else"])}function C(e){var t=V+(e||0);return t<0||t>=$.length?null:$[t]}function N(){if("TK_RESERVED"===B.type&&(r(B.text,["set","get"])&&W.mode!==h.ObjectLiteral?B.type="TK_WORD":r(B.text,["as","from"])&&!W.import_block?B.type="TK_WORD":W.mode===h.ObjectLiteral&&":"===C(1).text&&(B.type="TK_WORD")),y()?"TK_RESERVED"===M&&r(W.last_text,["var","let","const"])&&"TK_WORD"===B.type&&(W.declaration_statement=!0):!B.wanted_newline||w(W.mode)||"TK_OPERATOR"===M&&"--"!==W.last_text&&"++"!==W.last_text||"TK_EQUALS"===M||!Q.preserve_newlines&&"TK_RESERVED"===M&&r(W.last_text,["var","let","const","set","get"])?f(B):(f(B),x()),W.do_block&&!W.do_while){if("TK_RESERVED"===B.type&&"while"===B.text)return L.space_before_token=!0,K(),L.space_before_token=!0,void(W.do_while=!0);x(),W.do_block=!1}if(W.if_block)if(W.else_block||"TK_RESERVED"!==B.type||"else"!==B.text){for(;W.mode===h.Statement;)O();W.if_block=!1,W.else_block=!1}else W.else_block=!0;return"TK_RESERVED"===B.type&&("case"===B.text||"default"===B.text&&W.in_case_statement)?(x(),(W.case_body||Q.jslint_happy)&&(b(),W.case_body=!1),K(),W.in_case=!0,void(W.in_case_statement=!0)):("TK_COMMA"!==M&&"TK_START_EXPR"!==M&&"TK_EQUALS"!==M&&"TK_OPERATOR"!==M||S()||E(),"TK_RESERVED"===B.type&&"function"===B.text?((r(W.last_text,["}",";"])||L.just_added_newline()&&!r(W.last_text,["(","[","{",":","=",","])&&"TK_OPERATOR"!==M)&&(L.just_added_blankline()||B.comments_before.length||(x(),x(!0))),"TK_RESERVED"===M||"TK_WORD"===M?"TK_RESERVED"===M&&(r(W.last_text,["get","set","new","export","async"])||r(W.last_text,q))?L.space_before_token=!0:"TK_RESERVED"===M&&"default"===W.last_text&&"export"===I?L.space_before_token=!0:x():"TK_OPERATOR"===M||"="===W.last_text?L.space_before_token=!0:(W.multiline_frame||!w(W.mode)&&!k(W.mode))&&x(),K(),void(W.last_word=B.text)):(F="NONE","TK_END_BLOCK"===M?X.inline_frame?F="SPACE":"TK_RESERVED"===B.type&&r(B.text,["else","catch","finally","from"])?"expand"===Q.brace_style||"end-expand"===Q.brace_style||"none"===Q.brace_style&&B.wanted_newline?F="NEWLINE":(F="SPACE",L.space_before_token=!0):F="NEWLINE":"TK_SEMICOLON"===M&&W.mode===h.BlockStatement?F="NEWLINE":"TK_SEMICOLON"===M&&w(W.mode)?F="SPACE":"TK_STRING"===M?F="NEWLINE":"TK_RESERVED"===M||"TK_WORD"===M||"*"===W.last_text&&(r(I,["function","yield"])||W.mode===h.ObjectLiteral&&r(I,["{",","]))?F="SPACE":"TK_START_BLOCK"===M?F=W.inline_frame?"SPACE":"NEWLINE":"TK_END_EXPR"===M&&(L.space_before_token=!0,F="NEWLINE"),"TK_RESERVED"===B.type&&r(B.text,P.line_starters)&&")"!==W.last_text&&(F=W.inline_frame||"else"===W.last_text||"export"===W.last_text?"SPACE":"NEWLINE"),"TK_RESERVED"===B.type&&r(B.text,["else","catch","finally"])?("TK_END_BLOCK"!==M||X.mode!==h.BlockStatement||"expand"===Q.brace_style||"end-expand"===Q.brace_style||"none"===Q.brace_style&&B.wanted_newline)&&!W.inline_frame?x():(L.trim(!0),"}"!==L.current_line.last()&&x(),L.space_before_token=!0):"NEWLINE"===F?"TK_RESERVED"===M&&A(W.last_text)?L.space_before_token=!0:"TK_END_EXPR"!==M?"TK_START_EXPR"===M&&"TK_RESERVED"===B.type&&r(B.text,["var","let","const"])||":"===W.last_text||("TK_RESERVED"===B.type&&"if"===B.text&&"else"===W.last_text?L.space_before_token=!0:x()):"TK_RESERVED"===B.type&&r(B.text,P.line_starters)&&")"!==W.last_text&&x():W.multiline_frame&&k(W.mode)&&","===W.last_text&&"}"===I?x():"SPACE"===F&&(L.space_before_token=!0),K(),W.last_word=B.text,void("TK_RESERVED"===B.type&&("do"===B.text?W.do_block=!0:"if"===B.text?W.if_block=!0:"import"===B.text?W.import_block=!0:W.import_block&&"TK_RESERVED"===B.type&&"from"===B.text&&(W.import_block=!1)))))}var L,V,P,B,M,I,j,W,X,z,F,U,Q,$=[],Z="";U={TK_START_EXPR:function(){y()||f(B);var e=h.Expression;if("["===B.text){if("TK_WORD"===M||")"===W.last_text)return"TK_RESERVED"===M&&r(W.last_text,P.line_starters)&&(L.space_before_token=!0),v(e),K(),m(),void(Q.space_in_paren&&(L.space_before_token=!0));e=h.ArrayLiteral,k(W.mode)&&("["!==W.last_text&&(","!==W.last_text||"]"!==I&&"}"!==I)||Q.keep_array_indentation||x())}else"TK_RESERVED"===M&&"for"===W.last_text?e=h.ForInitializer:"TK_RESERVED"===M&&r(W.last_text,["if","while"])&&(e=h.Conditional);";"===W.last_text||"TK_START_BLOCK"===M?x():"TK_END_EXPR"===M||"TK_START_EXPR"===M||"TK_END_BLOCK"===M||"."===W.last_text?E(B.wanted_newline):"TK_RESERVED"===M&&"("===B.text||"TK_WORD"===M||"TK_OPERATOR"===M?"TK_RESERVED"===M&&("function"===W.last_word||"typeof"===W.last_word)||"*"===W.last_text&&(r(I,["function","yield"])||W.mode===h.ObjectLiteral&&r(I,["{",","]))?Q.space_after_anon_function&&(L.space_before_token=!0):"TK_RESERVED"!==M||!r(W.last_text,P.line_starters)&&"catch"!==W.last_text||Q.space_before_conditional&&(L.space_before_token=!0):L.space_before_token=!0,"("===B.text&&"TK_RESERVED"===M&&"await"===W.last_word&&(L.space_before_token=!0),"("===B.text&&("TK_EQUALS"!==M&&"TK_OPERATOR"!==M||S()||E()),"("===B.text&&"TK_WORD"!==M&&"TK_RESERVED"!==M&&E(),v(e),K(),Q.space_in_paren&&(L.space_before_token=!0),m()},TK_END_EXPR:function(){for(;W.mode===h.Statement;)O();f(B),W.multiline_frame&&E("]"===B.text&&k(W.mode)&&!Q.keep_array_indentation),Q.space_in_paren&&("TK_START_EXPR"!==M||Q.space_in_empty_paren?L.space_before_token=!0:(L.trim(),L.space_before_token=!1)),"]"===B.text&&Q.keep_array_indentation?(K(),O()):(O(),K()),i(L,X),W.do_while&&X.mode===h.Conditional&&(X.mode=h.Expression,W.do_block=!1,W.do_while=!1)},TK_START_BLOCK:function(){f(B);var e=C(1),t=C(2);v(t&&(r(t.text,[":",","])&&r(e.type,["TK_STRING","TK_WORD","TK_RESERVED"])||r(e.text,["get","set","..."])&&r(t.type,["TK_WORD","TK_RESERVED"]))?r(I,["class","interface"])?h.BlockStatement:h.ObjectLiteral:"TK_OPERATOR"===M&&"=>"===W.last_text?h.BlockStatement:r(M,["TK_EQUALS","TK_START_EXPR","TK_COMMA","TK_OPERATOR"])||"TK_RESERVED"===M&&r(W.last_text,["return","throw","import","default"])?h.ObjectLiteral:h.BlockStatement);var n=!e.comments_before.length&&"}"===e.text&&"function"===W.last_word&&"TK_END_EXPR"===M;if(Q.brace_preserve_inline){var i=0,_=null;W.inline_frame=!0;do{if(i+=1,(_=C(i)).wanted_newline){W.inline_frame=!1;break}}while("TK_EOF"!==_.type&&("TK_END_BLOCK"!==_.type||_.opened!==B))}("expand"===Q.brace_style||"none"===Q.brace_style&&B.wanted_newline)&&!W.inline_frame?"TK_OPERATOR"!==M&&(n||"TK_EQUALS"===M||"TK_RESERVED"===M&&A(W.last_text)&&"else"!==W.last_text)?L.space_before_token=!0:x(!1,!0):(!k(X.mode)||"TK_START_EXPR"!==M&&"TK_COMMA"!==M||(("TK_COMMA"===M||Q.space_in_paren)&&(L.space_before_token=!0),("TK_COMMA"===M||"TK_START_EXPR"===M&&W.inline_frame)&&(E(),X.multiline_frame=X.multiline_frame||W.multiline_frame,W.multiline_frame=!1)),"TK_OPERATOR"!==M&&"TK_START_EXPR"!==M&&("TK_START_BLOCK"!==M||W.inline_frame?L.space_before_token=!0:x())),K(),m()},TK_END_BLOCK:function(){for(f(B);W.mode===h.Statement;)O();var e="TK_START_BLOCK"===M;W.inline_frame&&!e?L.space_before_token=!0:"expand"===Q.brace_style?e||x():e||(k(W.mode)&&Q.keep_array_indentation?(Q.keep_array_indentation=!1,x(),Q.keep_array_indentation=!0):x()),O(),K()},TK_WORD:N,TK_RESERVED:N,TK_SEMICOLON:function(){y()?L.space_before_token=!1:f(B);for(var e=C(1);!(W.mode!==h.Statement||W.if_block&&e&&"TK_RESERVED"===e.type&&"else"===e.text||W.do_block);)O();W.import_block&&(W.import_block=!1),K()},TK_STRING:function(){y()?L.space_before_token=!0:(f(B),"TK_RESERVED"===M||"TK_WORD"===M||W.inline_frame?L.space_before_token=!0:"TK_COMMA"===M||"TK_START_EXPR"===M||"TK_EQUALS"===M||"TK_OPERATOR"===M?S()||E():x()),K()},TK_EQUALS:function(){y()||f(B),W.declaration_statement&&(W.declaration_assignment=!0),L.space_before_token=!0,K(),L.space_before_token=!0},TK_OPERATOR:function(){var e="*"===B.text&&("TK_RESERVED"===M&&r(W.last_text,["function","yield"])||r(M,["TK_START_BLOCK","TK_COMMA","TK_END_BLOCK","TK_SEMICOLON"])),t=r(B.text,["-","+"])&&(r(M,["TK_START_BLOCK","TK_START_EXPR","TK_EQUALS","TK_OPERATOR"])||r(W.last_text,P.line_starters)||","===W.last_text);if(y()||f(B,!e),"TK_RESERVED"===M&&A(W.last_text))return L.space_before_token=!0,void K();if("*"!==B.text||"TK_DOT"!==M)if("::"!==B.text){if("TK_OPERATOR"===M&&r(Q.operator_position,d)&&E(),":"===B.text&&W.in_case)return W.case_body=!0,m(),K(),x(),void(W.in_case=!1);var n=!0,i=!0,_=!1;if(":"===B.text?0===W.ternary_depth?n=!1:(W.ternary_depth-=1,_=!0):"?"===B.text&&(W.ternary_depth+=1),!t&&!e&&Q.preserve_newlines&&r(B.text,P.positionable_operators)){var a=":"===B.text,o=a&&_,s=a&&!_;switch(Q.operator_position){case u.before_newline:return L.space_before_token=!s,K(),a&&!o||E(),void(L.space_before_token=!0);case u.after_newline:return L.space_before_token=!0,!a||o?C(1).wanted_newline?x(!1,!0):E():L.space_before_token=!1,K(),void(L.space_before_token=!0);case u.preserve_newline:return s||E(),n=!(L.just_added_newline()||s),L.space_before_token=n,K(),void(L.space_before_token=!0)}}if(e){E(),n=!1;var l=C(1);i=l&&r(l.type,["TK_WORD","TK_RESERVED"])}else"..."===B.text?(E(),n="TK_START_BLOCK"===M,i=!1):(r(B.text,["--","++","!","~"])||t)&&(n=!1,i=!1,!B.wanted_newline||"--"!==B.text&&"++"!==B.text||x(!1,!0),";"===W.last_text&&w(W.mode)&&(n=!0),"TK_RESERVED"===M?n=!0:"TK_END_EXPR"===M?n=!("]"===W.last_text&&("--"===B.text||"++"===B.text)):"TK_OPERATOR"===M&&(n=r(B.text,["--","-","++","+"])&&r(W.last_text,["--","-","++","+"]),r(B.text,["+","-"])&&r(W.last_text,["--","++"])&&(i=!0)),(W.mode!==h.BlockStatement||W.inline_frame)&&W.mode!==h.Statement||"{"!==W.last_text&&";"!==W.last_text||x());L.space_before_token=L.space_before_token||n,K(),L.space_before_token=i}else K();else K()},TK_COMMA:function(){f(B,!0),K(),L.space_before_token=!0,W.declaration_statement?(w(W.parent.mode)&&(W.declaration_assignment=!1),W.declaration_assignment?(W.declaration_assignment=!1,x(!1,!0)):Q.comma_first&&E()):W.mode===h.ObjectLiteral||W.mode===h.Statement&&W.parent.mode===h.ObjectLiteral?(W.mode===h.Statement&&O(),W.inline_frame||x()):Q.comma_first&&E()},TK_BLOCK_COMMENT:function(e){if(L.raw)return L.add_raw_token(B),void(B.directives&&"end"===B.directives.preserve&&(L.raw=Q.test_output_raw));if(B.directives)return x(!1,e),K(),"start"===B.directives.preserve&&(L.raw=!0),void x(!1,!0);if(!l.newline.test(B.text)&&!B.wanted_newline)return L.space_before_token=!0,K(),void(L.space_before_token=!0);var t,n=T(B.text),i=!1,r=!1,_=B.whitespace_before,o=_.length;for(x(!1,e),n.length>1&&(i=g(n.slice(1),"*"),r=D(n.slice(1),_)),K(n[0]),t=1;t<n.length;t++)x(!1,!0),i?K(" "+a(n[t])):r&&n[t].length>o?K(n[t].substring(o)):L.add_token(n[t]);x(!1,e)},TK_COMMENT:function(e){B.wanted_newline?x(!1,e):L.trim(!0),L.space_before_token=!0,K(),x(!1,e)},TK_DOT:function(){y()||f(B,!0),"TK_RESERVED"===M&&A(W.last_text)?L.space_before_token=!0:E(")"===W.last_text&&Q.break_chained_methods),K()},TK_UNKNOWN:function(e){K(),"\n"===B.text[B.text.length-1]&&x(!1,e)},TK_EOF:function(){for(;W.mode===h.Statement;)O();f(B)}},t=s(t=t||{},"js"),Q={},"expand-strict"===t.brace_style?t.brace_style="expand":"collapse-preserve-inline"===t.brace_style?t.brace_style="collapse,preserve-inline":void 0!==t.braces_on_own_line?t.brace_style=t.braces_on_own_line?"expand":"collapse":t.brace_style||(t.brace_style="collapse");var G=t.brace_style.split(/[^a-zA-Z0-9_\-]+/);for(Q.brace_style=G[0],Q.brace_preserve_inline=!!G[1]&&G[1],Q.indent_size=t.indent_size?parseInt(t.indent_size,10):4,Q.indent_char=t.indent_char?t.indent_char:" ",Q.eol=t.eol?t.eol:"auto",Q.preserve_newlines=void 0===t.preserve_newlines||t.preserve_newlines,Q.unindent_chained_methods=void 0!==t.unindent_chained_methods&&t.unindent_chained_methods,Q.break_chained_methods=void 0!==t.break_chained_methods&&t.break_chained_methods,Q.max_preserve_newlines=void 0===t.max_preserve_newlines?0:parseInt(t.max_preserve_newlines,10),Q.space_in_paren=void 0!==t.space_in_paren&&t.space_in_paren,Q.space_in_empty_paren=void 0!==t.space_in_empty_paren&&t.space_in_empty_paren,Q.jslint_happy=void 0!==t.jslint_happy&&t.jslint_happy,Q.space_after_anon_function=void 0!==t.space_after_anon_function&&t.space_after_anon_function,Q.keep_array_indentation=void 0!==t.keep_array_indentation&&t.keep_array_indentation,Q.space_before_conditional=void 0===t.space_before_conditional||t.space_before_conditional,Q.unescape_strings=void 0!==t.unescape_strings&&t.unescape_strings,Q.wrap_line_length=void 0===t.wrap_line_length?0:parseInt(t.wrap_line_length,10),Q.e4x=void 0!==t.e4x&&t.e4x,Q.end_with_newline=void 0!==t.end_with_newline&&t.end_with_newline,Q.comma_first=void 0!==t.comma_first&&t.comma_first,Q.operator_position=o(t.operator_position),Q.test_output_raw=void 0!==t.test_output_raw&&t.test_output_raw,Q.jslint_happy&&(Q.space_after_anon_function=!0),t.indent_with_tabs&&(Q.indent_char="\t",Q.indent_size=1),"auto"===Q.eol&&(Q.eol="\n",e&&l.lineBreak.test(e||"")&&(Q.eol=e.match(l.lineBreak)[0])),Q.eol=Q.eol.replace(/\\r/,"\r").replace(/\\n/,"\n"),j="";Q.indent_size>0;)j+=Q.indent_char,Q.indent_size-=1;var Y=0;if(e&&e.length){for(;" "===e.charAt(Y)||"\t"===e.charAt(Y);)Y+=1;Z=e.substring(0,Y),e=e.substring(Y)}M="TK_START_BLOCK",I="",(L=new c(j,Z)).raw=Q.test_output_raw,z=[],v(h.BlockStatement),this.beautify=function(){for(P=new p(e,Q,j),$=P.tokenize(),V=0,B=C();B;)U[B.type](),I=W.last_text,M=B.type,W.last_text=B.text,V+=1,B=C();return L.get_code(Q.end_with_newline,Q.eol)};var q=["break","continue","return","throw","yield"]}},function(e,t){e.exports.InputScanner=function(e){var t=e,n=t.length,i=0;this.back=function(){i-=1},this.hasNext=function(){return i<n},this.next=function(){var e=null;return this.hasNext()&&(e=t.charAt(i),i+=1),e},this.peek=function(e){var r=null;return e=e||0,(e+=i)>=0&&e<n&&(r=t.charAt(e)),r},this.peekCharCode=function(e){var r=0;return e=e||0,(e+=i)>=0&&e<n&&(r=t.charCodeAt(e)),r},this.test=function(e,n){return n=n||0,e.lastIndex=i+n,e.test(t)},this.testChar=function(e,t){var n=this.peek(t);return null!==n&&e.test(n)},this.match=function(e){e.lastIndex=i;var n=e.exec(t);return n&&n.index===i?i+=n[0].length:n=null,n}}},function(e,t){e.exports.mergeOpts=function(e,t){var n,i={};for(n in e)n!==t&&(i[n]=e[n]);if(t in e)for(n in e[t])i[n]=e[t][n];return i}},function(e,t){function n(e){var t=0,n=-1,i=[],r=!0;this.set_indent=function(i){t=e.baseIndentLength+i*e.indent_length,n=i},this.get_character_count=function(){return t},this.is_empty=function(){return r},this.last=function(){return this._empty?null:i[i.length-1]},this.push=function(e){i.push(e),t+=e.length,r=!1},this.pop=function(){var e=null;return r||(e=i.pop(),t-=e.length,r=0===i.length),e},this.remove_indent=function(){n>0&&(n-=1,t-=e.indent_length)},this.trim=function(){for(;" "===this.last();)i.pop(),t-=1;r=0===i.length},this.toString=function(){var t="";return this._empty||(n>=0&&(t=e.indent_cache[n]),t+=i.join("")),t}}e.exports.Output=function(e,t){t=t||"",this.indent_cache=[t],this.baseIndentLength=t.length,this.indent_length=e.length,this.raw=!1;var i=[];this.baseIndentString=t,this.indent_string=e,this.previous_line=null,this.current_line=null,this.space_before_token=!1,this.add_outputline=function(){this.previous_line=this.current_line,this.current_line=new n(this),i.push(this.current_line)},this.add_outputline(),this.get_line_number=function(){return i.length},this.add_new_line=function(e){return!(1===this.get_line_number()&&this.just_added_newline()||!e&&this.just_added_newline()||(this.raw||this.add_outputline(),0))},this.get_code=function(e,t){var n=i.join("\n").replace(/[\r\n\t ]+$/,"");return e&&(n+="\n"),"\n"!==t&&(n=n.replace(/[\n]/g,t)),n},this.set_indent=function(e){if(i.length>1){for(;e>=this.indent_cache.length;)this.indent_cache.push(this.indent_cache[this.indent_cache.length-1]+this.indent_string);return this.current_line.set_indent(e),!0}return this.current_line.set_indent(0),!1},this.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.add_outputline();this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1},this.add_token=function(e){this.add_space_before_token(),this.current_line.push(e)},this.add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&this.current_line.push(" "),this.space_before_token=!1},this.remove_indent=function(e){for(var t=i.length;e<t;)i[e].remove_indent(),e++},this.trim=function(n){for(n=void 0!==n&&n,this.current_line.trim(e,t);n&&i.length>1&&this.current_line.is_empty();)i.pop(),this.current_line=i[i.length-1],this.current_line.trim();this.previous_line=i.length>1?i[i.length-2]:null},this.just_added_newline=function(){return this.current_line.is_empty()},this.just_added_blankline=function(){return!!this.just_added_newline()&&(1===i.length||i[i.length-2].is_empty())}}},function(e,t){e.exports.Token=function(e,t,n,i,r){this.type=e,this.text=t,this.comments_before=[],this.comments_after=[],this.newlines=n||0,this.wanted_newline=n>0,this.whitespace_before=i||"",this.parent=r||null,this.opened=null,this.directives=null}},function(e,t,n){var i=n(1).Beautifier;e.exports=function(e,t){return new i(e,t).beautify()}},function(e,t,n){function i(e){return e.replace(/^\s+|\s+$/g,"")}function r(e,t){for(var n=0;n<t.length;n+=1)if(t[n]===e)return!0;return!1}var _=n(2).InputScanner,a=n(5).Token,o=n(0);e.exports.Tokenizer=function(e,t){function n(e){if(!e.match(k))return null;var t={};w.lastIndex=0;for(var n=w.exec(e);n;)t[n[1]]=n[2],n=w.exec(e);return t}function s(){var e,_=[];T=0,E="";var s=K.next();if(null===s)return["","TK_EOF"];var k;for(k=R.length?R[R.length-1]:new a("TK_START_BLOCK","{");r(s,c);)if(o.newline.test(s)?"\n"===s&&"\r"===K.peek(-2)||(T+=1,_=[]):_.push(s),null===(s=K.next()))return["","TK_EOF"];if(_.length&&(E=_.join("")),p.test(s)||"."===s&&K.testChar(p)){var w=!0,y=!0,g=p;for("0"===s&&K.testChar(/[XxOoBb]/)?(w=!1,y=!1,g=K.testChar(/[Bb]/)?f:K.testChar(/[Oo]/)?u:d,s+=K.next()):"."===s?w=!1:(s="",K.back());K.testChar(g);)s+=K.next(),w&&"."===K.peek()&&(s+=K.next(),w=!1),y&&K.testChar(/[Ee]/)&&(s+=K.next(),K.testChar(/[+-]/)&&(s+=K.next()),y=!1,w=!1);return[s,"TK_WORD"]}if(o.isIdentifierStart(K.peekCharCode(-1))){if(K.hasNext())for(;o.isIdentifierChar(K.peekCharCode())&&(s+=K.next(),K.hasNext()););return"TK_DOT"===k.type||"TK_RESERVED"===k.type&&r(k.text,["set","get"])||!r(s,m)?[s,"TK_WORD"]:"in"===s||"of"===s?[s,"TK_OPERATOR"]:[s,"TK_RESERVED"]}if("("===s||"["===s)return[s,"TK_START_EXPR"];if(")"===s||"]"===s)return[s,"TK_END_EXPR"];if("{"===s)return[s,"TK_START_BLOCK"];if("}"===s)return[s,"TK_END_BLOCK"];if(";"===s)return[s,"TK_SEMICOLON"];if("/"===s){var D,A="";if("*"===K.peek()){K.next();var C=n(A="/*"+(D=K.match(b))[0]);return C&&"start"===C.ignore&&(A+=(D=K.match(O))[0]),A=A.replace(o.allLineBreaks,"\n"),[A,"TK_BLOCK_COMMENT",C]}if("/"===K.peek())return K.next(),D=K.match(v),A="//"+D[0],[A,"TK_COMMENT"]}var N=/<()([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;if("`"===s||"'"===s||'"'===s||("/"===s||t.e4x&&"<"===s&&K.test(N,-1))&&("TK_RESERVED"===k.type&&r(k.text,["return","case","throw","else","do","typeof","yield"])||"TK_END_EXPR"===k.type&&")"===k.text&&k.parent&&"TK_RESERVED"===k.parent.type&&r(k.parent.text,["if","while","for"])||r(k.type,["TK_COMMENT","TK_START_EXPR","TK_START_BLOCK","TK_END_BLOCK","TK_OPERATOR","TK_EQUALS","TK_EOF","TK_SEMICOLON","TK_COMMA"]))){var L=s,V=!1,P=!1;if(e=s,"/"===L)for(var B=!1;K.hasNext()&&(V||B||K.peek()!==L)&&!K.testChar(o.newline);)e+=K.peek(),V?V=!1:(V="\\"===K.peek(),"["===K.peek()?B=!0:"]"===K.peek()&&(B=!1)),K.next();else if(t.e4x&&"<"===L){var M=/[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;K.back();var I="",j=K.match(N);if(j){for(var W=j[2].replace(/^{\s+/,"{").replace(/\s+}$/,"}"),X=0===W.indexOf("{"),z=0;j;){var F=!!j[1],U=j[2];if(!(j[j.length-1]||"![CDATA["===U.slice(0,8))&&(U===W||X&&U.replace(/^{\s+/,"{").replace(/\s+}$/,"}"))&&(F?--z:++z),I+=j[0],z<=0)break;j=K.match(M)}return j||(I+=K.match(/[\s\S]*/g)[0]),I=I.replace(o.allLineBreaks,"\n"),[I,"TK_STRING"]}}else{var Q=function(t,n,i){for(var r;K.hasNext()&&(r=K.peek(),V||r!==t&&(n||!o.newline.test(r)));)(V||n)&&o.newline.test(r)?("\r"===r&&"\n"===K.peek(1)&&(K.next(),r=K.peek()),e+="\n"):e+=r,V?("x"!==r&&"u"!==r||(P=!0),V=!1):V="\\"===r,K.next(),i&&-1!==e.indexOf(i,e.length-i.length)&&("`"===t?Q("}",n,"`"):Q("`",n,"${"),K.hasNext()&&(e+=K.next()))};"`"===L?Q("`",!0,"${"):Q(L)}if(P&&t.unescape_strings&&(e=l(e)),K.peek()===L&&(e+=L,K.next(),"/"===L))for(;K.hasNext()&&o.isIdentifierStart(K.peekCharCode());)e+=K.next();return[e,"TK_STRING"]}if("#"===s){if(0===R.length&&"!"===K.peek()){for(e=s;K.hasNext()&&"\n"!==s;)s=K.next(),e+=s;return[i(e)+"\n","TK_UNKNOWN"]}var $="#";if(K.hasNext()&&K.testChar(p)){do{$+=s=K.next()}while(K.hasNext()&&"#"!==s&&"="!==s);return"#"===s||("["===K.peek()&&"]"===K.peek(1)?($+="[]",K.next(),K.next()):"{"===K.peek()&&"}"===K.peek(1)&&($+="{}",K.next(),K.next())),[$,"TK_WORD"]}}if("<"===s&&("?"===K.peek()||"%"===K.peek())){K.back();var Z=K.match(S);if(Z)return s=Z[0],s=s.replace(o.allLineBreaks,"\n"),[s,"TK_STRING"]}if("<"===s&&K.match(/\!--/g)){for(s="\x3c!--";K.hasNext()&&!K.testChar(o.newline);)s+=K.next();return x=!0,[s,"TK_COMMENT"]}if("-"===s&&x&&K.match(/->/g))return x=!1,["--\x3e","TK_COMMENT"];if("."===s)return"."===K.peek()&&"."===K.peek(1)?(s+=K.next()+K.next(),[s,"TK_OPERATOR"]):[s,"TK_DOT"];if(r(s,h)){for(;K.hasNext()&&r(s+K.peek(),h)&&(s+=K.next(),K.hasNext()););return","===s?[s,"TK_COMMA"]:"="===s?[s,"TK_EQUALS"]:[s,"TK_OPERATOR"]}return[s,"TK_UNKNOWN"]}function l(e){for(var t="",n=0,i=new _(e),r=null;i.hasNext();)if((r=i.match(/([\s]|[^\\]|\\\\)+/g))&&(t+=r[0]),"\\"===i.peek()){if(i.next(),"x"===i.peek())r=i.match(/x([0-9A-Fa-f]{2})/g);else{if("u"!==i.peek()){t+="\\",i.hasNext()&&(t+=i.next());continue}r=i.match(/u([0-9A-Fa-f]{4})/g)}if(!r)return e;if((n=parseInt(r[1],16))>126&&n<=255&&0===r[0].indexOf("x"))return e;if(n>=0&&n<32){t+="\\"+r[0];continue}t+=34===n||39===n||92===n?"\\"+String.fromCharCode(n):String.fromCharCode(n)}return t}var c="\n\r\t ".split(""),p=/[0-9]/,f=/[01]/,u=/[01234567]/,d=/[0123456789abcdefABCDEF]/;this.positionable_operators="!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||".split(" ");var h=this.positionable_operators.concat("! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~ ...".split(" "));this.line_starters="continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export".split(",");var T,E,x,R,K,m=this.line_starters.concat(["do","in","of","else","get","set","new","catch","finally","typeof","yield","async","await","from","as"]),b=/([\s\S]*?)((?:\*\/)|$)/g,v=/([^\n\r\u2028\u2029]*)/g,k=/\/\* beautify( \w+[:]\w+)+ \*\//g,w=/ (\w+)[:](\w+)/g,O=/([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g,S=/((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g;this.tokenize=function(){K=new _(e),x=!1,R=[];for(var t,n,i,r=null,o=[],l=[];!n||"TK_EOF"!==n.type;){for(i=s(),t=new a(i[1],i[0],T,E);"TK_COMMENT"===t.type||"TK_BLOCK_COMMENT"===t.type||"TK_UNKNOWN"===t.type;)"TK_BLOCK_COMMENT"===t.type&&(t.directives=i[2]),l.push(t),i=s(),t=new a(i[1],i[0],T,E);l.length&&(t.comments_before=l,l=[]),"TK_START_BLOCK"===t.type||"TK_START_EXPR"===t.type?(t.parent=n,o.push(r),r=t):("TK_END_BLOCK"===t.type||"TK_END_EXPR"===t.type)&&r&&("]"===t.text&&"["===r.text||")"===t.text&&"("===r.text||"}"===t.text&&"{"===r.text)&&(t.parent=r.parent,t.opened=r,r=o.pop()),R.push(t),n=t}return R}}}]);"function"==typeof define&&define.amd?define([],function(){return{js_beautify:e}}):"undefined"!=typeof exports?exports.js_beautify=e:"undefined"!=typeof window?window.js_beautify=e:"undefined"!=typeof global&&(global.js_beautify=e)}();;
;
var Documentation;
(function (Documentation) {
    var Header = (function () {
        function Header(contract) {
            var _this = this;
            this.toggleRevealed = this.toggleRevealed.bind(this);
            this.name = ko.observable();
            this.value = ko.observable();
            this.inputTypeValue = ko.observable("text");
            this.revealed = ko.observable(false);
            this.options = [];
            this.required = false;
            this.readonly = false;
            this.custom = true;
            if (contract) {
                this.custom = false;
                this.name = ko.observable(contract.name);
                this.value = ko.observable(contract.value);
                this.required = contract.required;
                this.readonly = contract.readonly;
                this.options = contract.options;
            }
            this.name.extend({
                required: !contract || this.required ? {
                    message: apiphany.Localizer.getString("ValidationMessageHeaderNameRequired")
                } : false
            });
            this.value.extend({
                required: !contract || this.required ? {
                    message: apiphany.Localizer.getString("ValidationMessageHeaderValueRequired")
                } : false
            });
            setTimeout(function () {
                _this.inputTypeValue(_this.secret && !_this.revealed() ? "password" : "text");
            }, 500);
        }
        Header.prototype.toggleRevealed = function () {
            this.revealed(!this.revealed());
            this.inputTypeValue(this.secret && !this.revealed() ? "password" : "text");
        };
        Header.prototype.canRename = function () {
            return !this.required && this.custom;
        };
        Header.prototype.names = function () {
            var keys = Object.keys(KnownHttpHeaders);
            var values = keys.map(function (value) { return KnownHttpHeaders[value]; });
            return values;
        };
        return Header;
    }());
    Documentation.Header = Header;
    var Parameter = (function () {
        function Parameter(contract) {
            var _this = this;
            this.name = ko.observable();
            this.value = ko.observable();
            this.inputType = ko.observable("text");
            this.required = false;
            this.options = [];
            this.custom = true;
            if (contract) {
                this.custom = false;
                this.name = ko.observable(contract.name);
                this.value = ko.observable(contract.value);
                this.description = contract.description;
                this.required = contract.required;
                this.options = contract.options;
                this.typeName = contract.typeName;
            }
            this.name.extend({
                required: {
                    message: apiphany.Localizer.getString("ValidationMessageParameterNameRequired")
                }
            });
            if (this.required) {
                this.value.extend({
                    required: {
                        message: apiphany.Localizer.getString("ValidationMessageParameterValueRequired")
                    }
                });
            }
            setTimeout(function () {
                _this.inputType(_this.secret ? "password" : "text");
            }, 500);
        }
        Parameter.prototype.canRename = function () {
            return !this.required && this.custom;
        };
        return Parameter;
    }());
    Documentation.Parameter = Parameter;
    var Representation = (function () {
        function Representation(contract) {
            this.sample = contract.sample;
            this.contentType = contract.contentType;
        }
        return Representation;
    }());
    Documentation.Representation = Representation;
    var Request = (function () {
        function Request(requestContract) {
            this.parameters = ko.observableArray();
            this.headers = ko.observableArray();
            this.description = requestContract.description;
            this.representations = requestContract.representations.select(function (representationContract) { return new Representation(representationContract); });
            var parameters = requestContract.parameters.select(function (parameterContract) { return new Parameter(parameterContract); });
            var headers = requestContract.headers.select(function (headerContract) { return new Header(headerContract); });
            ko.utils.arrayPushAll(this.parameters, parameters);
            ko.utils.arrayPushAll(this.headers, headers);
        }
        Request.prototype.requestHeaders = function () {
            return this.headers().where(function (header) { return !header.readonly; });
        };
        return Request;
    }());
    Documentation.Request = Request;
    var Operation = (function () {
        function Operation(operationContract) {
            var _this = this;
            this.httpMethod = operationContract.httpMethod.toUpperCase();
            this.scheme = operationContract.scheme;
            this.uriTemplate = operationContract.uriTemplate;
            this.description = operationContract.description;
            this.request = new Request(operationContract.request);
            this.hostnames = operationContract.hostnames;
            this.selectedHostname = ko.observable(this.hostnames[0]);
            this.wildcard = ko.observable("");
            this.multipleHostnames = ko.pureComputed(function () {
                return _this.hostnames.length > 1;
            });
            this.selectedHostnameWildcarded = ko.pureComputed(function () {
                var hostname = _this.selectedHostname();
                return hostname.contains("*");
            });
            this.host = ko.pureComputed(function () {
                var hostname = _this.selectedHostname();
                if (_this.selectedHostnameWildcarded() && _this.wildcard()) {
                    return hostname.replace("*", _this.wildcard());
                }
                return hostname;
            });
            if (this.uriTemplate.endsWith("/*")) {
                this.request.parameters.push(new Parameter({ name: "*", value: "", required: true }));
            }
        }
        return Operation;
    }());
    Documentation.Operation = Operation;
})(Documentation || (Documentation = {}));
;
var Documentation;
(function (Documentation) {
    var Cookies = { HasAccessToken: "APIM.OAuth2.HasAccessToken" };
    var GrantTypes = {
        authorizationCode: "authorizationCode",
        implicit: "implicit", clientCredentials: "clientCredentials",
        resourceOwnerPassword: "resourceOwnerPassword"
    };
    var EmptyGrantType = null;
    var OAuthAuthorization = (function () {
        function OAuthAuthorization(oauthAuthorizationSettings, headers, httpClient, validationSummary) {
            this.setAccessTokenToHeaders = this.setAccessTokenToHeaders.bind(this);
            this.clearAuthorizationHeader = this.clearAuthorizationHeader.bind(this);
            this.takeErrors = this.takeErrors.bind(this);
            this.onGrantTypeChanged = this.onGrantTypeChanged.bind(this);
            this.threeLeggedOAuth = this.threeLeggedOAuth.bind(this);
            this.apiId = oauthAuthorizationSettings.apiId;
            this.authServerId = oauthAuthorizationSettings.authorizationServerId;
            this.grantTypes = oauthAuthorizationSettings.grantTypes;
            this.headers = headers;
            this.httpClient = httpClient;
            this.validationSummary = validationSummary;
            this.selectedGrantType = ko.observable();
            this.selectedGrantType.subscribe(this.onGrantTypeChanged);
            this.expiresOn = ko.observable();
            this.accessTokenAcquired = ko.observable(false);
            this.prevGrantType = null;
            this.authorizationServerName = oauthAuthorizationSettings.authorizationServerName;
            this.resourceOwnerPasswordAuthorizeDialog = new ResourceOwnerPasswordAuthorizeDialog(this.httpClient, oauthAuthorizationSettings);
            this.clientCredentialsAuthorizeDialog = new ClientCredentialsAuthorizeDialog(this.httpClient, oauthAuthorizationSettings);
        }
        OAuthAuthorization.prototype.onGrantTypeChanged = function (grantType) {
            this.validationSummary.clearAllIssues();
            if (!grantType) {
                this.clearAuthorizationHeader();
                this.expiresOn(null);
                this.accessTokenAcquired(false);
                return;
            }
            switch (grantType.name) {
                case GrantTypes.authorizationCode:
                    this.threeLeggedOAuth('APIM.OAuth2.CodeAcquired', grantType);
                    break;
                case GrantTypes.implicit:
                    this.threeLeggedOAuth('APIM.OAuth2.TokenAcquired', grantType);
                    break;
                case GrantTypes.clientCredentials:
                    this.clientCredentialsAuthorizeDialog.show()
                        .done(this.setAccessTokenToHeaders)
                        .fail(this.takeErrors);
                    break;
                case GrantTypes.resourceOwnerPassword:
                    this.resourceOwnerPasswordAuthorizeDialog.show()
                        .done(this.setAccessTokenToHeaders)
                        .fail(this.takeErrors);
                    break;
                default:
                    throw "Unknown grant type.";
            }
        };
        OAuthAuthorization.prototype.threeLeggedOAuth = function (cookieNamePrefix, grantType) {
            apiphany.Core.windowPop("Authorization", grantType.authorizeUri + "?apiId=" + this.apiId, 550, 475);
            var oauthViewModel = this;
            var checkCodeAcquiredId;
            function checkCodeAcquired() {
                return window.setInterval(function () {
                    var authorizationResult = apiphany.Core.getCookie(cookieNamePrefix + oauthViewModel.authServerId);
                    if (!authorizationResult || authorizationResult == "" || authorizationResult == "false") {
                        return;
                    }
                    window.clearInterval(checkCodeAcquiredId);
                    apiphany.Core.setCookie(cookieNamePrefix + oauthViewModel.authServerId, "false");
                    if (authorizationResult == "true") {
                        oauthViewModel.httpClient.request(grantType.acquireTokenUri, { authServerId: oauthViewModel.authServerId })
                            .then(function (accessTokenInfo) {
                            oauthViewModel.setAccessTokenToHeaders(accessTokenInfo);
                        }, function (errors) {
                            oauthViewModel.takeErrors(errors);
                            return errors;
                        });
                        return;
                    }
                    else {
                        oauthViewModel.takeErrors([authorizationResult]);
                    }
                }, 30);
            }
            checkCodeAcquiredId = checkCodeAcquired();
        };
        OAuthAuthorization.prototype.clearAuthorizationHeader = function () {
            var authorizationHeader = this.getAuthorizationHeader();
            if (authorizationHeader)
                authorizationHeader.value('');
        };
        OAuthAuthorization.prototype.setAccessTokenToHeaders = function (accessTokenInfo) {
            var grantTypeForToken = this.grantTypes.first(function (x) { return x.name.toUpperCase() == accessTokenInfo.type.toUpperCase(); });
            if (grantTypeForToken == null)
                return;
            var authorizationHeader = this.getAuthorizationHeader();
            if (!authorizationHeader) {
                authorizationHeader = new Documentation.Header();
                authorizationHeader.name(KnownHttpHeaders.Authorization);
                authorizationHeader.required = true;
                authorizationHeader.secret = true;
                this.headers.push(authorizationHeader);
            }
            authorizationHeader.value("Bearer " + accessTokenInfo.accessToken);
            if (accessTokenInfo.expiresOn) {
                this.expiresOn(moment(accessTokenInfo.expiresOn).local().format('L LT'));
            }
            this.accessTokenAcquired(true);
        };
        OAuthAuthorization.prototype.getAuthorizationHeader = function () {
            return this.headers().first(function (x) { return x.name().toUpperCase() == KnownHttpHeaders.Authorization.toUpperCase(); });
        };
        OAuthAuthorization.prototype.takeErrors = function (errors) {
            var issues = apiphany.Core.stringsToMessages(errors);
            this.clearAuthorizationHeader();
            this.accessTokenAcquired(false);
            this.expiresOn(null);
            this.selectedGrantType(this.prevGrantType);
            this.validationSummary.takeAllIssues(issues);
        };
        return OAuthAuthorization;
    }());
    Documentation.OAuthAuthorization = OAuthAuthorization;
    var ClientCredentialsAuthorizeDialog = (function () {
        function ClientCredentialsAuthorizeDialog(httpClient, oauthAuthorizationSettings) {
            this.authorize = this.authorize.bind(this);
            this.show = this.show.bind(this);
            this.title = apiphany.Localizer.getString("WebDocumentationOAuth2ClientCredentialsModalTitle");
            this.apiId = oauthAuthorizationSettings.apiId;
            this.textblockClientCredentialsDialogTitle = apiphany.Localizer.getString("TextblockAuthorizationViaClientCredentials").format(oauthAuthorizationSettings.authorizationServerName);
            this.httpClient = httpClient;
        }
        ClientCredentialsAuthorizeDialog.prototype.show = function () {
            jQuery("#clientCredentials").modal();
            this.execution = $.Deferred();
            return this.execution;
        };
        ClientCredentialsAuthorizeDialog.prototype.authorize = function () {
            var _this = this;
            jQuery("#clientCredentials").modal('hide');
            this.httpClient.request('oauth2/clientcredentials/acquiretoken', { apiId: this.apiId })
                .done(function (accessTokenInfo) { _this.execution.resolve(accessTokenInfo); })
                .fail(function (errors) { _this.execution.reject(errors); });
        };
        return ClientCredentialsAuthorizeDialog;
    }());
    Documentation.ClientCredentialsAuthorizeDialog = ClientCredentialsAuthorizeDialog;
    var ResourceOwnerPasswordAuthorizeDialog = (function () {
        function ResourceOwnerPasswordAuthorizeDialog(httpClient, oauthAuthorizationSettings) {
            this.authorize = this.authorize.bind(this);
            this.show = this.show.bind(this);
            this.apiId = oauthAuthorizationSettings.apiId;
            this.title = apiphany.Localizer.getString("WebDocumentationOAuth2ResourceOwnerModalTitle").format(oauthAuthorizationSettings.authorizationServerName);
            this.username = ko.observable();
            this.password = ko.observable();
            this.useTestResourceOwner = ko.observable(oauthAuthorizationSettings.hasTestResourceOwner);
            this.hasTestResourceOwner = oauthAuthorizationSettings.hasTestResourceOwner;
            this.httpClient = httpClient;
        }
        ResourceOwnerPasswordAuthorizeDialog.prototype.show = function () {
            jQuery("#resourceOwnerPassword").modal();
            this.execution = $.Deferred();
            return this.execution;
        };
        ResourceOwnerPasswordAuthorizeDialog.prototype.authorize = function () {
            var _this = this;
            jQuery("#resourceOwnerPassword").modal('hide');
            this.httpClient.request('oauth2/resourceownerpassword/acquiretoken', {
                apiId: this.apiId,
                useTestUser: this.useTestResourceOwner() || false,
                username: this.username(),
                password: this.password()
            })
                .done(function (accessTokenInfo) { _this.execution.resolve(accessTokenInfo); })
                .fail(function (errors) { _this.execution.reject(errors); });
        };
        return ResourceOwnerPasswordAuthorizeDialog;
    }());
    Documentation.ResourceOwnerPasswordAuthorizeDialog = ResourceOwnerPasswordAuthorizeDialog;
})(Documentation || (Documentation = {}));
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var Documentation;
(function (Documentation) {
    var traceHeaderName = "OCP-APIM-TRACE";
    var traceLocationHeaderName = "OCP-APIM-TRACE-LOCATION";
    var noBodyHttpMethods = ["GET", "HEAD", "TRACE"];
    var restrictedContentHeaders = ['content-length', 'content-encoding', 'content-transfer-encoding'];
    var EmptySubscriptionKey = null;
    var ParameterPlaceholderFormatString = "{{0}}";
    var Console = (function () {
        function Console(apiId, operationId, httpClient, subscriptionAuthenticationRequired, oauthAuthenticationRequired) {
            this.sendingRequest = ko.observable(true);
            this.loaded = ko.observable(false);
            this.removeParameter = this.removeParameter.bind(this);
            this.removeHeader = this.removeHeader.bind(this);
            this.processResponse = this.processResponse.bind(this);
            this.sendRequest = this.sendRequest.bind(this);
            this.onSubscriptionKeyChanged = this.onSubscriptionKeyChanged.bind(this);
            this.updateRequestSummary = this.updateRequestSummary.bind(this);
            this.onParametersChanged = this.onParametersChanged.bind(this);
            this.onHeadersChanged = this.onHeadersChanged.bind(this);
            this.applyParameters = this.applyParameters.bind(this);
            this.onRequestBodyChanged = this.onRequestBodyChanged.bind(this);
            this.getHeader = this.getHeader.bind(this);
            this.loadOperation = this.loadOperation.bind(this);
            this.loadSubscriptionAuthenticationSettings = this.loadSubscriptionAuthenticationSettings.bind(this);
            this.loadOAuthAuthenticationSettings = this.loadOAuthAuthenticationSettings.bind(this);
            this.toggleRequestSummarySecrets = this.toggleRequestSummarySecrets.bind(this);
            this.onContentTypeChanged = this.onContentTypeChanged.bind(this);
            this.httpClient = httpClient;
            this.validationSummary = new apiphany.Core.UI.ValidationSummary();
            this.sendingRequest = ko.observable(true);
            this.response = ko.observable(null);
            this.requestBodyAllowed = false;
            this.requestBody = ko.observable('').extend({ maxLength: 600000 });
            this.requestBody.subscribe(this.onRequestBodyChanged);
            this.oauthAuthorization = ko.observable();
            this.subscriptions = ko.observable();
            this.selectedKey = ko.observable();
            this.selectedKey.subscribe(this.onSubscriptionKeyChanged);
            this.requestSummary = ko.observable();
            this.requestSummarySecretsRevealed = ko.observable(false);
            this.requestSummarySecretsRevealed.subscribe(this.updateRequestSummary);
            this.requestUrl = ko.observable();
            this.sendingRequest(true);
            this.loadOperation(apiId, operationId, subscriptionAuthenticationRequired, oauthAuthenticationRequired);
        }
        Console.prototype.onContentTypeChanged = function (contentType) {
            if (this.operation.request) {
                for (var i = 0; i < this.operation.request.representations.length; i++) {
                    var representation = this.operation.request.representations[i];
                    if (representation.contentType == contentType) {
                        this.requestBody(representation.sample);
                        break;
                    }
                }
            }
        };
        Console.prototype.loadOperation = function (apiId, operationId, subscriptionAuthenticationRequired, oauthAuthenticationRequired) {
            var _this = this;
            var operationPromise = this.httpClient.request('console/operation', { apiId: apiId, operationId: operationId });
            operationPromise.done(function (operationContract) {
                var operation = new Documentation.Operation(operationContract);
                _this.operation = operation;
                operation.host.subscribe(_this.updateRequestSummary);
                operation.wildcard.subscribe(_this.updateRequestSummary);
                operation.request.parameters().forEach(function (parameter) {
                    parameter.value.subscribe(_this.updateRequestSummary);
                    parameter.name.subscribe(_this.updateRequestSummary);
                });
                operation.request.headers().forEach(function (header) {
                    header.value.subscribe(_this.updateRequestSummary);
                    header.name.subscribe(_this.updateRequestSummary);
                });
                operation.request.parameters.subscribe(_this.onParametersChanged, null, "arrayChange");
                operation.request.headers.subscribe(_this.onHeadersChanged, null, "arrayChange");
                _this.requestBodyAllowed = !noBodyHttpMethods.any(function (httpMethod) { return httpMethod == operation.httpMethod; });
                var representation = operation.request.representations.first();
                if (representation) {
                    _this.requestBody(representation.sample);
                }
                if (subscriptionAuthenticationRequired) {
                    _this.loadSubscriptionAuthenticationSettings(apiId);
                }
                if (oauthAuthenticationRequired) {
                    _this.loadOAuthAuthenticationSettings(apiId);
                }
                var contentTypeHeader = _this.getHeader(KnownHttpHeaders.ContentType);
                if (contentTypeHeader) {
                    contentTypeHeader.value.subscribe(_this.onContentTypeChanged);
                }
                _this.updateRequestSummary();
                _this.loaded(true);
                _this.sendingRequest(false);
            });
            operationPromise.fail(function (errors) {
                _this.validationSummary.addErrorMessages(errors);
            });
        };
        Console.prototype.loadOAuthAuthenticationSettings = function (apiId) {
            var _this = this;
            var oauthAuthenticationPromise = this.httpClient.request('console/authentication/oauth', { apiId: apiId });
            oauthAuthenticationPromise.done(function (settings) {
                var auth = new Documentation.OAuthAuthorization(settings, _this.operation.request.headers, _this.httpClient, _this.validationSummary);
                _this.oauthAuthorization(auth);
            });
            oauthAuthenticationPromise.fail(function (errors) {
                _this.validationSummary.addErrorMessages(errors);
            });
        };
        Console.prototype.loadSubscriptionAuthenticationSettings = function (apiId) {
            var _this = this;
            var subscriptionAuthenticationPromise = this.httpClient.request('console/authentication/subscription', { apiId: apiId });
            subscriptionAuthenticationPromise.done(function (settings) {
                if (!settings.subscriptions)
                    return;
                _this.subscriptionKeyHeaderName = settings.subscriptionKeyHeaderName;
                if (settings.subscriptions.length === 0) {
                    var message = apiphany.Localizer.getString("WarningNoSubscriptions");
                    _this.validationSummary.addErrorMessage(message.format("/products?api=" + apiId));
                    _this.selectedKey("");
                }
                else {
                    _this.subscriptions(settings.subscriptions);
                }
            });
            subscriptionAuthenticationPromise.fail(function (errors) {
                _this.validationSummary.addErrorMessages(errors);
            });
        };
        Console.prototype.onParametersChanged = function (changes) {
            var _this = this;
            changes.each(function (change) {
                if (change.status === "added") {
                    var parameter = change.value;
                    parameter.value.subscribe(_this.updateRequestSummary);
                    parameter.name.subscribe(_this.updateRequestSummary);
                }
            });
            this.updateRequestSummary();
        };
        Console.prototype.onHeadersChanged = function (changes) {
            var _this = this;
            changes.each(function (change) {
                if (change.status === "added") {
                    var header = change.value;
                    header.value.subscribe(_this.updateRequestSummary);
                    header.name.subscribe(_this.updateRequestSummary);
                    header.revealed.subscribe(_this.updateRequestSummary);
                }
            });
            this.updateRequestSummary();
        };
        Console.prototype.onRequestBodyChanged = function (body) {
            var contentLengthHeader = this.getHeader(KnownHttpHeaders.ContentLength);
            if (body && body.length > 0) {
                if (!contentLengthHeader) {
                    contentLengthHeader = new Documentation.Header();
                    contentLengthHeader.name(KnownHttpHeaders.ContentLength);
                    contentLengthHeader.required = true;
                    contentLengthHeader.readonly = true;
                    this.operation.request.headers.push(contentLengthHeader);
                }
                contentLengthHeader.value(body.length.toString());
            }
            else {
                if (contentLengthHeader) {
                    this.operation.request.headers.remove(contentLengthHeader);
                }
            }
            this.updateRequestSummary();
        };
        Console.prototype.onSubscriptionKeyChanged = function (subscriptionKey) {
            var _this = this;
            if (subscriptionKey == EmptySubscriptionKey)
                return;
            var subscriptionKeyHeader = this.getHeader(this.subscriptionKeyHeaderName);
            if (!subscriptionKeyHeader) {
                subscriptionKeyHeader = new Documentation.Header();
                subscriptionKeyHeader.name(this.subscriptionKeyHeaderName);
                subscriptionKeyHeader.required = true;
                subscriptionKeyHeader.secret = true;
                subscriptionKeyHeader.value.subscribe(function (value) { _this.selectedKey(value); });
                this.operation.request.headers.push(subscriptionKeyHeader);
            }
            subscriptionKeyHeader.value(subscriptionKey);
        };
        Console.prototype.getHeader = function (headerName) {
            return this.operation.request.headers().first(function (x) { return x.name().toUpperCase() == headerName.toUpperCase(); });
        };
        Console.prototype.applyParameters = function (uriTemplate) {
            var resultUrl = uriTemplate;
            this.operation.request.parameters().forEach(function (parameter) {
                var value = parameter.value();
                if (value !== "" && value !== undefined) {
                    var parameterPlaceholder = ParameterPlaceholderFormatString.format(parameter.name());
                    if (resultUrl.contains(parameterPlaceholder)) {
                        resultUrl = resultUrl.replace(parameterPlaceholder, parameter.value());
                    }
                    else if (resultUrl.endsWith("/*")) {
                        resultUrl = resultUrl.replace("*", parameter.value());
                    }
                    else {
                        resultUrl = apiphany.Url.addParam(resultUrl, parameter.name(), parameter.value());
                    }
                }
            });
            return resultUrl;
        };
        Console.prototype.ensureLeadingSlash = function (url) {
            if (url && url.length > 0 && url[0] != "/") {
                return "/" + url;
            }
            return url;
        };
        Console.prototype.updateRequestSummary = function () {
            var _this = this;
            var consoleRequestModel = this.composeRequest();
            var requestUrl = consoleRequestModel.scheme + "://" + consoleRequestModel.host + this.ensureLeadingSlash(consoleRequestModel.path);
            this.requestUrl(requestUrl);
            var result = consoleRequestModel.httpMethod + ' ' + requestUrl + " HTTP/1.1";
            consoleRequestModel.headers.forEach(function (header) {
                if (header.name && header.value) {
                    var value = header.value;
                    if (header.secret && !_this.requestSummarySecretsRevealed())
                        value = value.replace(/./g, "•");
                    result += "\n" + header.name + ": " + value;
                }
            });
            if (consoleRequestModel.body) {
                result += "\n\n" + consoleRequestModel.body;
            }
            this.requestSummary(result + "\n\n\n");
        };
        Console.prototype.formatXml = function (xml) {
            var original = xml;
            try {
                var formatted = '';
                var reg = /(>)(<)(\/*)/g;
                xml = xml.replace(reg, '$1\r\n$2$3');
                var pad = 0;
                xml.split('\r\n').forEach(function (node) {
                    var indent = 0;
                    if (node.match(/.+<\/\w[^>]*>$/)) {
                        indent = 0;
                    }
                    else if (node.match(/^<\/\w/)) {
                        if (pad != 0) {
                            pad -= 1;
                        }
                    }
                    else if (node.match(/^<\w[^>]*[^\/]>.*$/)) {
                        indent = 1;
                    }
                    else {
                        indent = 0;
                    }
                    var padding = '';
                    for (var i = 0; i < pad; i++) {
                        padding += '    ';
                    }
                    formatted += padding + node + '\r\n';
                    pad += indent;
                });
                return formatted;
            }
            catch (error) {
                return original;
            }
        };
        Console.prototype.formatJson = function (json) {
            var original = json;
            try {
                return js_beautify(json, { indent_size: 2 });
            }
            catch (error) {
                return original;
            }
        };
        Console.prototype.formatObject = function (data) {
            return JSON.stringify(data, null, 4);
        };
        Console.prototype.processResponse = function (responseContract) {
            var _this = this;
            var consoleResponse = new ConsoleResponse();
            var headers = "";
            var traceLocation = null;
            responseContract.headers.forEach(function (header) {
                if (header.name.toUpperCase() == traceLocationHeaderName) {
                    traceLocation = header.value;
                }
                headers += header.name + ": " + header.value + "\n";
            });
            consoleResponse.headers(headers);
            var contentTypeHeader = responseContract.headers.first(function (header) { return header.name.toLowerCase() === "content-type"; });
            var responseBody = responseContract.body;
            var responseBodyBrush = "nohighlight";
            if (contentTypeHeader) {
                if (contentTypeHeader.value.toLowerCase().indexOf("json") >= 0) {
                    responseBody = this.formatJson(responseBody);
                    responseBodyBrush = "json";
                }
                if (contentTypeHeader.value.toLowerCase().indexOf("xml") >= 0) {
                    responseBody = this.formatXml(responseBody);
                    responseBodyBrush = "xml";
                }
            }
            consoleResponse.bodyBrush(responseBodyBrush);
            consoleResponse.body(responseBody);
            consoleResponse.latency(responseContract.latency);
            consoleResponse.statusCode(responseContract.statusCode);
            consoleResponse.statusDescription(responseContract.statusDescription);
            consoleResponse.isRedirected(responseContract.isRedirected);
            consoleResponse.traceRequested(this.operation.request.headers().any(function (header) { return header.name().toUpperCase() === traceHeaderName && header.value() && (typeof header.value() == "boolean" || typeof header.value() == "string" && header.value().toUpperCase() == "TRUE"); }));
            consoleResponse.warnings(responseContract.warnings);
            this.response(consoleResponse);
            if (traceLocation) {
                this.downloadTrace(traceLocation, function (data) {
                    if (!data) {
                        consoleResponse.traceEntries(null);
                        return;
                    }
                    _this.calculateEntryTimes(data);
                    consoleResponse.traceEntries(data.traceEntries);
                });
            }
            else {
                consoleResponse.traceEntries(null);
            }
            this.sendingRequest(false);
        };
        Console.prototype.calculateEntryTimes = function (trace) {
            var allEntries = [];
            for (var key in trace.traceEntries) {
                var entries = trace.traceEntries[key];
                for (var i = 0; i < entries.length; i++) {
                    allEntries.push(entries[i]);
                }
            }
            allEntries = allEntries.sort(function (a, b) { return a.elapsed < b.elapsed ? -1 : a.elapsed > b.elapsed ? 1 : 0; });
            var lastTime = 0;
            for (var _i = 0, allEntries_1 = allEntries; _i < allEntries_1.length; _i++) {
                var entry = allEntries_1[_i];
                var elapsed = entry.elapsed && this.formatTime(entry.elapsed);
                entry.elapsed = (elapsed - lastTime);
                lastTime = elapsed;
            }
        };
        Console.prototype.downloadTrace = function (url, callback, tries) {
            var _this = this;
            if (tries === void 0) { tries = 5; }
            if (tries <= 0) {
                callback(null);
                return;
            }
            var traceId = url.split("&").first(function (_) { return _.startsWith("traceId="); }).split("=").pop().replace(/-/g, '').toLowerCase();
            $.ajax({
                url: url,
                success: function (data) {
                    if (data.traceId.replace(/-/g, '').toLowerCase() !== traceId) {
                        window.setTimeout(function () { return _this.downloadTrace(url, callback, tries - 1); }, 100);
                        return;
                    }
                    if (typeof data == "string") {
                        data = JSON.parse(data);
                    }
                    callback(data);
                }
            });
        };
        Console.prototype.composeRequest = function () {
            var consoleRequestModel = new ConsoleRequest();
            consoleRequestModel.httpMethod = this.operation.httpMethod;
            consoleRequestModel.host = this.operation.host();
            consoleRequestModel.scheme = this.operation.scheme;
            consoleRequestModel.path = this.applyParameters(this.operation.uriTemplate);
            var headers = [{ name: KnownHttpHeaders.Host, value: this.operation.host() }];
            var otherHeaders = this.operation.request
                .headers()
                .filter(function (header) { return header.name() && !restrictedContentHeaders.contains(header.name().toLowerCase()); })
                .map(function (header) { return { name: header.name(), value: header.value(), secret: header.secret }; });
            consoleRequestModel.headers = headers.concat(otherHeaders);
            consoleRequestModel.body = this.requestBody();
            return consoleRequestModel;
        };
        Console.prototype.addHeader = function () {
            var header = new Documentation.Header();
            this.operation.request.headers.push(header);
        };
        Console.prototype.removeHeader = function (header) {
            this.operation.request.headers.remove(header);
        };
        Console.prototype.addParameter = function () {
            var parameter = new Documentation.Parameter();
            this.operation.request.parameters.push(parameter);
        };
        Console.prototype.removeParameter = function (parameter) {
            this.operation.request.parameters.remove(parameter);
        };
        Console.prototype.sendRequest = function () {
            return __awaiter(this, void 0, void 0, function () {
                var consoleRequestModel, contentTypeHeader, contentType, formData, heading, headingBlob, content, bodyBlob, consoleResponseContract, errors_1;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            this.validationSummary.clearAllIssues();
                            if (!this.isValid()) {
                                this.validationSummary.takeAllIssues(apiphany.Core.stringsToMessages(this.errors()));
                                return [2];
                            }
                            consoleRequestModel = this.composeRequest();
                            _a.label = 1;
                        case 1:
                            _a.trys.push([1, 3, 4, 5]);
                            contentTypeHeader = consoleRequestModel.headers.find(function (x) { return x.name.toLowerCase() === KnownHttpHeaders.ContentType.toLowerCase(); });
                            contentType = contentTypeHeader && contentTypeHeader.value
                                ? contentTypeHeader.value
                                : "text/plain";
                            formData = new FormData();
                            heading = {
                                headers: consoleRequestModel.headers,
                                httpMethod: consoleRequestModel.httpMethod,
                                host: consoleRequestModel.host,
                                path: consoleRequestModel.path,
                                scheme: consoleRequestModel.scheme
                            };
                            headingBlob = new Blob([JSON.stringify(heading)], { type: "application/json" });
                            formData.append("heading", headingBlob);
                            if (consoleRequestModel.body) {
                                content = consoleRequestModel.body;
                                bodyBlob = new Blob([content], { type: contentType });
                                formData.append("body", bodyBlob);
                            }
                            this.sendingRequest(true);
                            return [4, this.httpClient.sendForm("console/query", formData)];
                        case 2:
                            consoleResponseContract = _a.sent();
                            this.processResponse(consoleResponseContract);
                            return [3, 5];
                        case 3:
                            errors_1 = _a.sent();
                            this.sendingRequest(false);
                            this.validationSummary.takeAllIssues(apiphany.Core.stringsToMessages(errors_1));
                            return [3, 5];
                        case 4:
                            this.sendingRequest(false);
                            return [7];
                        case 5: return [2];
                    }
                });
            });
        };
        Console.prototype.sendRequestWithTracing = function () {
            this.operation.request.headers().forEach(function (header) {
                if (header.name().toUpperCase() == traceHeaderName) {
                    header.value("true");
                }
            });
            this.sendRequest();
        };
        Console.prototype.toggleRequestSummarySecrets = function () {
            this.requestSummarySecretsRevealed(!this.requestSummarySecretsRevealed());
        };
        Console.prototype.formatTime = function (time) {
            var match = time.match(/(\d\d?):(\d\d?):(\d\d?)(\.\d+)/);
            return match ? Math.round(1000 * (60 * (60 * +match[1] + +match[2]) + +match[3] + +match[4])) : null;
        };
        return Console;
    }());
    Documentation.Console = Console;
    var ConsoleRequest = (function () {
        function ConsoleRequest() {
        }
        return ConsoleRequest;
    }());
    Documentation.ConsoleRequest = ConsoleRequest;
    var ConsoleResponse = (function () {
        function ConsoleResponse() {
            this.traceSections = [
                {
                    title: "Inbound",
                    section: "inbound"
                }, {
                    title: "Backend",
                    section: "backend"
                }, {
                    title: "Outbound",
                    section: "outbound"
                }, {
                    title: "On error",
                    section: "on-error"
                }
            ];
            this.requestUrl = ko.observable();
            this.statusCode = ko.observable();
            this.statusDescription = ko.observable();
            this.latency = ko.observable();
            this.headers = ko.observable();
            this.body = ko.observable();
            this.bodyBrush = ko.observable();
            this.traceEntries = ko.observable();
            this.traceRequested = ko.observable();
            this.isRedirected = ko.observable();
            this.warnings = ko.observableArray();
        }
        return ConsoleResponse;
    }());
    Documentation.ConsoleResponse = ConsoleResponse;
})(Documentation || (Documentation = {}));
;
ko.bindingHandlers["subscriptionKey"] = {
    init: function (element, valueAccessor) {
        var options = valueAccessor();
        var subscriptions = options.subscriptions;
        var selectedKey = options.selectedKey;
        var getSelectionValues = function (subscriptions) {
            var result = [];
            for (var j = 0; j < subscriptions.length; j++) {
                result.push({ text: subscriptions[j].name });
                result.push({ id: subscriptions[j].primaryKey, text: subscriptions[j].primaryKeyDisplayName });
                result.push({ id: subscriptions[j].secondaryKey, text: subscriptions[j].secondaryKeyDisplayName });
            }
            return result;
        };
        var subscriptionKeyStoreName = "selectedSubscriptionKey";
        var customKeyStoreName = "customSubscriptionKey";
        var selectionValues = getSelectionValues(options.subscriptions());
        var selectionSource = function () {
            var results = selectionValues;
            var customKey = apiphany.Storage.getValue(customKeyStoreName);
            if (customKey != null) {
                results = [{ id: customKey, text: customKey }].concat(results);
            }
            return { results: results };
        };
        var trySetCustomKey = function (newKey) {
            if (!selectionValues.any(function (x) { return x.id == newKey; })) {
                apiphany.Storage.setValue(customKeyStoreName, newKey);
            }
        };
        var $element = $(element);
        $element.select2({
            data: selectionSource,
            allowClear: true,
            formatResult: function (item) {
                if (!item.id) {
                    return '<b>' + item.text + '</b>';
                }
                return '<span class="select2-result-option">' + item.text + '</span>';
            },
            createSearchChoice: function (term) { return { id: term, text: term }; }
        });
        $element.change(function (event) {
            apiphany.Storage.setValue(subscriptionKeyStoreName, event.val);
            trySetCustomKey(event.val);
            selectedKey(event.val);
        });
        var storedKey = apiphany.Storage.getValue(subscriptionKeyStoreName);
        if (storedKey == null) {
            if (selectionValues.length > 0) {
                var selection = selectionValues.first(function (x) { return x.id != null; });
                $(element).select2("val", selection.id);
                selectedKey(selection.id);
            }
        }
        else {
            $element.select2("val", storedKey);
            selectedKey(storedKey);
        }
        selectedKey.subscribe(function (key) {
            $element.select2("val", key);
        });
    }
};
;
ko.bindingHandlers["snippet"] = {
    init: function (element, valueAccessor) {
        var options = valueAccessor();
        ko.applyBindingsToNode(element, { css: options.brush, text: options.body }, null);
        hljs.highlightBlock(element);
    }
};
;
ko.bindingHandlers["feedback"] = {
    init: function (element, valueAccessor, allBindings, viewModel) {
        var options = valueAccessor();
        var css = {};
        if (options.revealedCss) {
            css[options.revealedCss] = ko.computed({
                read: function () {
                    if (!viewModel.secret)
                        return false;
                    var missingRequiredValue = viewModel.required && !viewModel.value.isValid();
                    return !missingRequiredValue && viewModel.revealed();
                }
            });
        }
        if (options.consealedCss) {
            css[options.consealedCss] = ko.computed({
                read: function () {
                    if (!viewModel.secret)
                        return false;
                    var missingRequiredValue = viewModel.required && !viewModel.value.isValid();
                    return !missingRequiredValue && !viewModel.revealed();
                }
            });
        }
        if (options.requiredCss) {
            css[options.requiredCss] = ko.computed({
                read: function () {
                    var missingRequiredValue = viewModel.required && !viewModel.value.isValid();
                    return missingRequiredValue;
                }
            });
        }
        ko.applyBindingsToNode(element, { css: css }, null);
    }
};
;
ko.bindingHandlers["selectAll"] = {
    init: function (element, valueAccessor) {
        var options = valueAccessor();
        $(element).bind(options.on, function () {
            var handle = document, range, selection;
            var body = handle.body;
            if (body.createTextRange) {
                range = body.createTextRange();
                range.moveToElementText(element);
                range.select();
            }
            else if (window.getSelection) {
                selection = window.getSelection();
                range = handle.createRange();
                range.selectNodeContents(element);
                selection.removeAllRanges();
                selection.addRange(range);
            }
        });
    }
};
;
var Documentation;
(function (Documentation) {
    function bootstrap(globals, apiId, operationId, subscriptionAuthenticationRequired, oauthAuthenticationRequired) {
        var httpClient = new apiphany.Core.Fetcher(globals.appPath, globals.antiForgeryToken, globals.activityId);
        var consoleModel = new Documentation.Console(apiId, operationId, httpClient, subscriptionAuthenticationRequired, oauthAuthenticationRequired);
        ko.validation.init({
            registerExtenders: true,
            messagesOnModified: true,
            insertMessages: false,
            parseInputAttributes: true,
            grouping: { deep: true, observable: true, live: true }
        });
        ko.applyBindings(consoleModel);
        var validation = ko.validatedObservable(consoleModel);
        consoleModel.isValid = validation.isValid;
        consoleModel.errors = (validation["errors"]);
    }
    Documentation.bootstrap = bootstrap;
    function selectText(element) {
        var doc = document, range, selection;
        var body = doc.body;
        if (body.createTextRange) {
            range = body.createTextRange();
            range.moveToElementText(element);
            range.select();
        }
        else if (window.getSelection) {
            selection = window.getSelection();
            range = doc.createRange();
            range.selectNodeContents(element);
            selection.removeAllRanges();
            selection.addRange(range);
        }
    }
    Documentation.selectText = selectText;
})(Documentation || (Documentation = {}));
;
