(function(n,t){typeof exports=="object"?module.exports=t():typeof define=="function"&&define.amd?define(t):n.printStackTrace=t()})(this,function(){function n(t){t=t||{guess:!0};var u=t.e||null,f=!!t.guess,i=new n.implementation,r=i.run(u);return f?i.guessAnonymousFunctions(r):r}return n.implementation=function(){},n.implementation.prototype={run:function(n,t){return n=n||this.createException(),t=t||this.mode(n),t==="other"?this.other(arguments.callee):this[t](n)},createException:function(){try{this.undef()}catch(n){return n}},mode:function(n){return n.arguments&&n.stack?"chrome":n.stack&&n.sourceURL?"safari":n.stack&&n.number?"ie":n.stack&&n.fileName?"firefox":n.message&&n["opera#sourceloc"]?n.stacktrace?n.message.indexOf("\n")>-1&&n.message.split("\n").length>n.stacktrace.split("\n").length?"opera9":"opera10a":"opera9":n.message&&n.stack&&n.stacktrace?n.stacktrace.indexOf("called from line")<0?"opera10b":"opera11":n.stack&&!n.fileName?"chrome":"other"},instrumentFunction:function(t,i,r){t=t||window;var u=t[i];t[i]=function(){return r.call(this,n().slice(4)),t[i]._instrumented.apply(this,arguments)};t[i]._instrumented=u},deinstrumentFunction:function(n,t){n[t].constructor===Function&&n[t]._instrumented&&n[t]._instrumented.constructor===Function&&(n[t]=n[t]._instrumented)},chrome:function(n){return(n.stack+"\n").replace(/^[\s\S]+?\s+at\s+/," at ").replace(/^\s+(at eval )?at\s+/gm,"").replace(/^([^\(]+?)([\n$])/gm,"{anonymous}() ($1)$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm,"{anonymous}() ($1)").replace(/^(.+) \((.+)\)$/gm,"$1@$2").split("\n").slice(0,-1)},safari:function(n){return n.stack.replace(/\[native code\]\n/m,"").replace(/^(?=\w+Error\:).*$\n/m,"").replace(/^@/gm,"{anonymous}()@").split("\n")},ie:function(n){return n.stack.replace(/^\s*at\s+(.*)$/gm,"$1").replace(/^Anonymous function\s+/gm,"{anonymous}() ").replace(/^(.+)\s+\((.+)\)$/gm,"$1@$2").split("\n").slice(1)},firefox:function(n){return n.stack.replace(/(?:\n@:0)?\s+$/m,"").replace(/^(?:\((\S*)\))?@/gm,"{anonymous}($1)@").split("\n")},opera11:function(n){for(var t,e,r,u=n.stacktrace.split("\n"),f=[],i=0,o=u.length;i<o;i+=2)t=/^.*line (\d+), column (\d+)(?: in (.+))? in (\S+):$/.exec(u[i]),t&&(e=t[4]+":"+t[1]+":"+t[2],r=t[3]||"global code",r=r.replace(/<anonymous function: (\S+)>/,"$1").replace(/<anonymous function>/,"{anonymous}"),f.push(r+"@"+e+" -- "+u[i+1].replace(/^\s+/,"")));return f},opera10b:function(n){for(var t,f,r=n.stacktrace.split("\n"),u=[],i=0,e=r.length;i<e;i++)t=/^(.*)@(.+):(\d+)$/.exec(r[i]),t&&(f=t[1]?t[1]+"()":"global code",u.push(f+"@"+t[2]+":"+t[3]));return u},opera10a:function(n){for(var t,f,r=n.stacktrace.split("\n"),u=[],i=0,e=r.length;i<e;i+=2)t=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i.exec(r[i]),t&&(f=t[3]||"{anonymous}",u.push(f+"()@"+t[2]+":"+t[1]+" -- "+r[i+1].replace(/^\s+/,"")));return u},opera9:function(n){for(var i,r=n.message.split("\n"),u=[],t=2,f=r.length;t<f;t+=2)i=/Line (\d+).*script (?:in )?(\S+)/i.exec(r[t]),i&&u.push("{anonymous}()@"+i[2]+":"+i[1]+" -- "+r[t+1].replace(/^\s+/,""));return u},other:function(n){for(var r="{anonymous}",t=[],u,i,e=Array.prototype.slice;n&&t.length<10;){u=/function(?:\s+([\w$]+))?\s*\(/.test(n.toString())?RegExp.$1||r:r;try{i=e.call(n.arguments||[])}catch(f){i=["Cannot access arguments: "+f]}t[t.length]=u+"("+this.stringifyArguments(i)+")";try{n=n.caller}catch(f){t[t.length]="Cannot access caller: "+f;break}}return t},stringifyArguments:function(n){for(var t,r=[],u=Array.prototype.slice,i=0;i<n.length;++i)t=n[i],t===undefined?r[i]="undefined":t===null?r[i]="null":t.constructor&&(r[i]=t.constructor===Array?t.length<3?"["+this.stringifyArguments(t)+"]":"["+this.stringifyArguments(u.call(t,0,1))+"..."+this.stringifyArguments(u.call(t,-1))+"]":t.constructor===Object?"#object":t.constructor===Function?"#function":t.constructor===String?'"'+t+'"':t.constructor===Number?t:"?");return r.join(",")},sourceCache:{},ajax:function(n){var t=this.createXMLHTTPObject();if(t)try{return t.open("GET",n,!1),t.send(null),t.responseText}catch(i){}return""},createXMLHTTPObject:function(){for(var i,t=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],n=0;n<t.length;n++)try{return i=t[n](),this.createXMLHTTPObject=t[n],i}catch(r){}},isSameDomain:function(n){return typeof location!="undefined"&&n.indexOf(location.hostname)!==-1},getSource:function(n){return n in this.sourceCache||(this.sourceCache[n]=this.ajax(n).split("\n")),this.sourceCache[n]},guessAnonymousFunctions:function(n){for(var i,o,t=0;t<n.length;++t){var u=n[t],f=/\{anonymous\}\(.*\)@(.*)/.exec(u);if(f&&(i=/^(.*?)(?::(\d+))(?::(\d+))?(?: -- .+)?$/.exec(f[1]),i)){var r=i[1],e=i[2],s=i[3]||0;r&&this.isSameDomain(r)&&e&&(o=this.guessAnonymousFunction(r,e,s),n[t]=u.replace("{anonymous}",o))}}return n},guessAnonymousFunction:function(n,t){var i;try{i=this.findFunctionName(this.getSource(n),t)}catch(r){i="getSource failed with url: "+n+", exception: "+r.toString()}return i},findFunctionName:function(n,t){for(var u="",r,o=Math.min(t,20),i,f,e=0;e<o;++e)if(r=n[t-e-1],f=r.indexOf("//"),f>=0&&(r=r.substr(0,f)),r&&((u=r+u,i=/['"]?([$_A-Za-z][$_A-Za-z0-9]*)['"]?\s*[:=]\s*function\b/.exec(u),i&&i[1])||(i=/function\s+([^(]*?)\s*\(([^)]*)\)/.exec(u),i&&i[1])||(i=/['"]?([$_A-Za-z][$_A-Za-z0-9]*)['"]?\s*[:=]\s*(?:eval|new Function)\b/.exec(u),i&&i[1])))return i[1];return"(?)"}},n});window.stacktracejs={};stacktracejs.printStackTrace=printStackTrace;var SESSION_ID_KEY="SessionID",DO_ENABLE_EVENT_LOGGING_KEY="DoEnableEventLogging",DO_ENABLE_METRICS_KEY="DoEnableMetrics",USERS_PREVIOUS_SIGN_IN_DATE_KEY="UsersPreviousSignInDate",CURRENT_DATE_TIME_OFFSET_KEY="CurrentDateTimeOffset",ENTITY_FIRST_NAME_KEY="EntityFirstName",ENTITY_LAST_NAME_KEY="EntityLastName",PAGE_NOT_FOUND_ROUTE_PATH="/PageNotFound",getStackTrace=function(n){var t,i;try{i=stacktracejs.printStackTrace({e:n});t=i.join("\n")}catch(r){t="(An error occurred retriving the stacktrace in getStackTrace() common.ts)";console.error(t);console.error(r)}return t},logClientError=function(n,t){var r=sessionStorage[DO_ENABLE_EVENT_LOGGING_KEY];if(r&&r.toLowerCase()==="true"){var u=sessionStorage[SESSION_ID_KEY],f={level:"Error",code:"E007_JavaScript",message:n,details:t},e=JSON.stringify(f),i=new XMLHttpRequest;i.open("POST","api/Event?sessionId=null",!1);i.setRequestHeader("Content-Type","application/json");i.setRequestHeader(SESSION_ID_KEY,u);i.send(e)}};window.onerror=function(n,t,i,r){var u=null,f,e,o;return arguments.length>=5&&(f=arguments[4],u=getStackTrace(f)),e=n.toString(),o=u?u:t+":"+i+":"+r,logClientError(e,o),!1}