From 2a36a0819e669d25ff71f41f13f670a892b7623f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dirk=20L=C3=BCth?= Date: Fri, 22 Dec 2017 14:01:41 +0100 Subject: [PATCH] bump to 4.2.4-alpha.2 --- demo/index.html | 2 +- dist/cache/dispose.js | 2 +- dist/demand.js | 4 ++-- dist/demand.js.map | 2 +- dist/handler/css.js | 2 +- dist/handler/html.js | 2 +- dist/handler/json.js | 2 +- dist/handler/legacy.js | 2 +- dist/handler/text.js | 2 +- dist/plugin/cookie.js | 2 +- dist/plugin/lzstring.js | 4 ++-- dist/plugin/lzstring.js.map | 2 +- dist/plugin/sri.js | 4 ++-- dist/plugin/sri.js.map | 2 +- package.json | 2 +- 15 files changed, 18 insertions(+), 18 deletions(-) diff --git a/demo/index.html b/demo/index.html index c12d863..2a601a7 100644 --- a/demo/index.html +++ b/demo/index.html @@ -33,7 +33,7 @@ target.parentNode.insertBefore(script, target); }(window, document, 'script')) - }('../dist/demand.js', 'app/js/main', { base: './', version: '4.2.4-alpha.1', cache: false })); + }('../dist/demand.js', 'app/js/main', { base: './', version: '4.2.4-alpha.2', cache: false })); \ No newline at end of file diff --git a/dist/cache/dispose.js b/dist/cache/dispose.js index b0d0139..8d42f33 100644 --- a/dist/cache/dispose.js +++ b/dist/cache/dispose.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(t){"use strict";function n(n){function r(n){var r,e=t.getItem(n);if(e&&(r=e.match(d)))return Array.prototype.slice.call(r,1)}function e(t){return"["+i+"]["+t+"]["+o+"]"}function a(t){var n,a=t.match(u);a&&(n=r(e(a[1])),n[5]=a[1],this.push(n))}function c(t,n){return t[4]n[4]?1:0}var i="demand",o="state",u=new RegExp("^\\["+i+"\\]\\[(.+?)\\]\\["+o+"\\]$"),d=/^(.+?),(\d+),(\d*),(.+?),(\d+)$/;return n(t,function(t){var n,a=t.match(u);a&&(n=r(e(a[1])),n[4]||demand.clear.path(a[1]))}),function(r){var e,i=[];for(n(t,a,i),i.sort(c);r>0&&i.length;)e=i.shift(),r-=e[1],demand.clear.path(e[5])}}provide(["/demand/function/iterate"],n)}(localStorage); //# sourceMappingURL=dispose.js.map diff --git a/dist/demand.js b/dist/demand.js index 5dd0bcc..dfce033 100644 --- a/dist/demand.js +++ b/dist/demand.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ -!function(e,t,n,r,i){"use strict";function o(e,t,n,r){return{__proto__:Y,value:e,enumerable:!!r,configurable:!!n,writable:!!t}}function u(e,t){return typeof e===t}function a(e){return e&&u(e,oe)}function c(e){return u(e,ae)&&isFinite(e)&&Math.floor(e)===e&&e>=0}function s(e,t){return e instanceof t}function f(e,t,n){for(var r,i=$.keys(e),o=0;(r=i[o])!==Z&&t.call(n,r,e[r])!==ee;o++);return n}function d(e,t,n){return M.call(e,t,n)}function l(){return+new Date}function h(e){return X.href=e,X.href}function p(e,t){var n=e.replace(ze,"");return Ue.test(n)||Fe.test(n)||(n="/"+h((t&&h(t+"/../")||"/")+n).replace(Ge,"")),n}function v(e,t){var n=e.match(ze);return(n&&n[1]?"mock:":"")+(n&&n[3]||C.handler)+"!"+p(e,t)}function m(){return u(this.uuid,ne)&&I(this,"uuid",new o(Ne())),this}function g(){var e=m.call(this);return S[e.uuid]={},e}function y(e,t,n){var r=this;return r.message=e,t&&(r.module=t),n&&(r.stack=d(n)),r}function x(e){function n(t,n){n&&e.handler.validate&&!e.handler.validate(n)?e.dfd.reject(new y($e+" (content-type)",e.id)):(e.source=t,_e.emit(Pe,e.type,e))}function r(t){e.dfd.reject(new y($e+(t?" (status)":""),e.id))}function i(u){u=u||0,e.url=t.createElement("a"),e.url.href=o?h(o.process(e.path,u)):e.path,_e.emit(ke,e.type,e),new Ye(e.url).then(n,o?function(){u++,o.location[u]?i(u):r()}:r)}var o;Fe.test(e.path)||f(C.pattern,function(t,n){n.matches(e.path)&&(!o||o.weight>>0}function j(){var e=m.call(this);return S[e.uuid]=[],e}function q(e){var t=m.call(this),n=S[t.uuid]={queue:e,current:Y};return demand.on(Me+":"+e.uuid,function(){!n.current&&t.process()}),t}function R(e,t){for(var n,r;n=Be.exec(t);)X.href=e,Fe.test(n[2])?r=X.protocol+"//"+X.host+n[3]:(X.pathname+="/../"+n[3],r=X.protocol+"//"+X.host+X.pathname),t=t.replace(n[0],n[1]+" "+n[2]+"="+r+".map"+(n[4]?" "+n[4]:""));return t}function y(e,t,n){var r=this;return r.message=e,t&&(r.module=t),n&&(r.stack=d(n)),r}function k(e,t){provide(e,function(){return t})}var P,E,C={version:"1.0.0",cache:{},timeout:8e3,pattern:{},modules:{},handler:"module"},S={},O=Array.prototype,M=O.slice,A=O.concat,$=Object,T=$.prototype,D=T.toString,H=$.create,I=$.defineProperty,N=$.getOwnPropertyNames,L=$.getOwnPropertyDescriptor,_=Function.prototype,X=t.createElement("a"),F="demand",U="provide",B="path",G="/"+F+"/",J=G+"abstract/",z=G+"handler/",K=G+"plugin/",Q=G+"function/",V=G+"validator/",W="mock:",Y=null,Z=void 0,ee=!1,te=!0,ne="undefined",re="string",ie="boolean",oe="object",ue="function",ae="number",ce=function(){},se="pre",fe="post",de="Configure",le=se+de,he=fe+de,pe="cache",ve=pe+"Miss",me=pe+"Hit",ge=pe+"Clear",ye=pe+"Exceed",xe=se+"Cache",we=fe+"Cache",be="Resolve",je=se+be,qe=fe+be,Re="Request",ke=se+Re,Pe=fe+Re,Ee="Process",Ce=se+Ee,Se=fe+Ee,Oe="queue",Me=Oe+"Enqueue",Ae=Oe+"Dequeue",$e="error loading",Te="error providing",De="error resolving",He="unspecified anonymous provide";!function(){function e(e){for(var t,n=this,r=n.prototype,i={},u=N(r),a=0;t=u[a];a++)i[t]=L(r,t);return i.constructor=new o(n),n.prototype=H(e.prototype||e,i),n}I(_,"extends",new o(e))}();var Ie=function(){function e(e,t){var n,r=this[e];t!==Z&&(a(t)?(n=a(r),r=t.length!==Z?n&&r.length!==Z?r:[]:n&&r.length===Z?r:{},this[e]=Ie(r,t)):this[e]=t)}return function(){for(var t,n=arguments[0],r=1;(t=arguments[r])!==Z;r++)f(t,e,n);return n}}(),Ne=function(){function e(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}var t=new RegExp("[xy]","g"),n={};return function(){var r;do r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e);while(n[r]);return n[r]=1,r}}(),Le=function(){var n,i,o="setImmediate"in e;return"MutationObserver"in e?function(e){n=t.createElement("div"),new MutationObserver(function(){e()}).observe(n,{attributes:te}),n.setAttribute("i","1")}:!o&&"postMessage"in e&&!("importScripts"in e)&&"addEventListener"in e?function(){function t(t){t.source===e&&t.data&&S[t.data]&&(S[t.data](),delete S[t.data])}return e.addEventListener("message",t,ee),function(t){var n=Ne();S[n]=t,e.postMessage(n,"*")}}():!o&&"onreadystatechange"in(n=t.createElement("script"))?function(e){n.onreadystatechange=function(){n.onreadystatechange=Y,n.parentNode.removeChild(n),e()},t.body.appendChild(n)}:(i=o?setImmediate:r,function(e){i(e)})}(),_e=function(){function e(e,t,r){var a,c;if(u(t,re)&&u(r,ue))for(t=t.split(" ");a=t.shift();)a=a.split(":"),i.test(a[0])&&((o[a[0]]||(o[a[0]]={on:[],after:[]}))[e].push({callback:r,filter:a[1]}),e===n&&a[0]===he&&(c=C.modules[a[1]])&&r(c))}function t(){}var n="on",r="after",i=/^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,o={};return t.prototype={emit:function(e,t){var i,u,a,c=o[e];if(c){for(i=d(arguments,2),u=0;a=c[n][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i);for(u=0;a=c[r][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i)}return this},on:function(t,r){return e(n,t,r),this},after:function(t,n){return e(r,t,n),this}},new t}(),Xe=function(){var e=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;return function(t){return t.replace(e,"\\$&")}}(),Fe=/^(http(s?):)?\/\//i,Ue=/^\//,Be=/((?:\/\/|\/\*)#)\s*(sourceMappingURL)\s*=\s*(?!(?:http[s]?:)?\/\/)(.+?)\.map(?:\s+)?(\*\/)?/g,Ge=new RegExp("^"+Xe(h("/"))),Je=new RegExp("^"+F+"|"+U+"|"+B+"$"),ze=/^(mock:)?([+-])?((?:[-\w]+\/?)+)?(?:@(.+?))?(?:#(\d+))?!/,Ke=function(){function t(e){var t;return e.cache!==Y?e.cache:(f(C.cache,function(n,r){0===e.path.indexOf(n)&&(!t||r.weight>t.weight)&&(t=r)}),t?t.state:ee)}function n(e){return x.getItem(e)}function r(e,t){x[t?"setItem":"removeItem"](e,t)}function i(e){var t,r=n(e);if(r&&(t=r.match(g)))return d(t,1)}function o(e,t){t[4]=l(),r(e,t.join(","))}function u(e,t,n){_e.emit(e,t.id,t,n)}function a(){Le(this.clear.expired.bind(this.clear))}var c,s="["+F+"]",h="[state]",p="[value]",m=new RegExp("^"+Xe(s)+"\\[(.+?)\\]"+Xe(h)+"$"),g=/^(.+?),(\d+),(\d*),(.+?),(\d+)$/,y=function(){try{return"localStorage"in e&&e.localStorage}catch(e){return ee}}(),x=y?e.localStorage:Y,w=y&&"remainingSpace"in x,b={};return _e.on(ve,function(e){Le(function(){c.clear.path(e.id)})}).on(ye,function(e){demand("-!/"+F+"/cache/dispose").then(function(t){Le(function(){t(e.source.length),c.set(e)})})}).on(Pe,function(e){e.source&&t(e)&&(b[e.id]=te)}).after(Se,function(e){b[e.id]&&Le(function(){c.set(e)})}),a.prototype={get:y?function(e){var r,u;if(t(e)&&(r=s+"["+e.id+"]",u=i(r+h),u&&u[0]===e.version&&(!u[2]&&!e.lifetime||u[2]>l())))return e.source=n(r+p),Le(function(){o(r+h,u)}),te}:ce,resolve:y?function(e){var t=this;t.get(e)?u(me,e):u(ve,e)}:function(e){u(ve,e)},set:y?function(e){var n,i,a;if(t(e)){n=[e.version,e.source.length,e.lifetime?l()+e.lifetime:Y,demand.version],i=s+"["+e.id+"]",u(xe,e,n);try{if(a=w?x.remainingSpace:Y,r(i+p,e.source),o(i+h,n),a!==Y&&x.remainingSpace===a)throw new Error;u(we,e,n)}catch(t){u(ye,e)}}}:ce,clear:{path:y?function(e){var t=v(e),i=s+"["+t+"]";n(i+h)&&(r(i+h),r(i+p),u(ge,Ve.get(t)||new Ve(t,Y,ee)))}:ce,all:y?function(){var e;f(x,function(t){e=t.match(m),e&&this.path(e[1])},this)}:ce,expired:y?function(){var e,t,n=this;f(x,function(r){e=r.match(m),e&&(t=i(s+"["+e[1]+"]"+h),t&&t[2]>0&&t[2]<=l()&&n.path(e[1]))},this)}:ce}},c=new a}(),Qe=function(){function e(){s[this.uuid].handle(a,arguments)}function t(){s[this.uuid].handle(c,arguments)}function n(e,t){var n,r,i=s[this.uuid];for(i.state===u&&(i.state=e,i.value=t);n=i[i.state].shift();)r=n.handler.apply(Y,i.value),r&&"function"==typeof r.then?r.then(n.dfd.resolve,n.dfd.reject):n.dfd[i.state===a?"resolve":"reject"].apply(Y,i.value);i[a].length=0,i[c].length=0}function r(e,t,n){e.then(function(){n.resolved[t]=d(arguments),n.count++,i(n)},function(){n.rejected.push(d(arguments)),i(n)})}function i(e){e.count===e.total?e.dfd.resolve.apply(Y,A.apply([],e.resolved)):e.rejected.length+e.count===e.total&&e.dfd.reject.apply(Y,A.apply([],e.rejected))}function o(r){var i=m.call(this);return s[i.uuid]={state:u,handle:n.bind(i),value:Y,resolved:[],rejected:[],count:0},r(e.bind(i),t.bind(i)),i}var u="pending",a="resolved",c="rejected",s={};return o.prototype={catch:function(e){return this.then(ce,e)},always:function(e){return this.then(e,e)},then:function(e,t){var n=s[this.uuid],r=o.defer();return e&&n[a].push({handler:e,dfd:r}),t&&n[c].push({handler:t,dfd:r}),n.state!==u&&Le(n.handle),r.pledge},isPending:function(){return s[this.uuid].state===u},isResolved:function(){return s[this.uuid].state===a},isRejected:function(){return s[this.uuid].state===c}},o.defer=function(){var e={};return e.pledge=new o(function(t,n){e.resolve=t,e.reject=n}),e},o.all=function(e){var t,n,i=o.defer(),u=0;if(e.length)for(t=s[Ne()]={dfd:i,resolved:[],rejected:[],total:e.length,count:0};n=e[u];u++)r(n,u,t);else i.resolve();return i.pledge},o.race=function(e){for(var t,n=o.defer(),r=0;t=e[r];r++)t.then(n.resolve,n.reject);return e.length||n.resolve(),n.pledge},o.extends(m)}();g.prototype={get:function(e){return e?S[this.uuid][e]:S[this.uuid]},set:function(e,t){S[this.uuid][e]=t},remove:function(e){delete S[this.uuid][e]}},g.extends(m),y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var Ve=function(){function e(e,t){this[e]=t}function n(e,t){t.pledge.isPending()&&this.push(e)}function r(e,t){t.pledge.isResolved()&&this.push(e)}function i(e,t){t.pledge.isRejected()&&this.push(e)}function o(e,t,n){var r=this,i=e.match(ze)||s;return r.path=p(e,t),r.mock=i[1]?te:ee,r.cache=i[2]?"+"===i[1]:Y,r.type=i[3]||C.handler,r.version=i[4]||C.version,r.lifetime=i[5]&&1e3*i[5]||C.lifetime,r.id=(r.mock?W:"")+r.type+"!"+r.path,r.uri=(r.mock?W:"")+r.type+"@"+r.version+(c(r.lifetime)&&r.lifetime>0?"#"+r.lifetime:"")+"!"+r.path,r.dfd=Qe.defer(),r.pledge=r.dfd.pledge,r.pledge.then(function(){r.value=d(arguments)}),n!==ee&&a.set(r.id,r),r}var u="internal!",a=new g,s=[];return o.prototype={enqueue:!0},o.get=function(e,t){return a.get(v(e,t))},o.resolve=function(t,n){var r,i=n&&Je.test(t),a=i?this.get(u+n+"/"+t):this.get(t,n);if(!a)if(i){switch(a=new o(u+n+"/"+t),t){case F:r=function(){return f(demand,e,demand.bind(n))}();break;case U:r=provide.bind(n);break;case B:r=n}a.dfd.resolve(r)}else a=new o(t,n),demand(z+a.type).then(function(e){a.handler=e,a.mock?a.dfd.resolve(e):Ke.resolve(a)},function(){a.dfd.reject(new y($e+" (handler)",self.id))});return a},o.remove=function(e,n,r){var i=v(e,n),o=t.querySelector("["+F+'-id="'+i+'"]');a.remove(i),a.remove(W+i),o&&o.parentNode.removeChild(o),r!==ee&&Ke.clear.path(i)},o.list={all:function(){return $.keys(a.get())},pending:function(){return f(a.get(),n,[])},resolved:function(){return f(a.get(),r,[])},rejected:function(){return f(a.get(),i,[])}},o}(),We=function(){function e(e,t){this[e]={url:h(t).replace(n,"$1"),match:new RegExp("^"+Xe(t))}}function t(t,n){var r=this;r.weight=t.length,r.match=new RegExp("^"+Xe(t)),r.location=[].concat(n),f(r.location,e,r.location)}var n=/(.+)\/$/;return t.prototype={matches:function(e){return this.match.test(e)},process:function(e,t){var n=this.location[t];if(n)return e.replace(this.match,n.url)}},t}(),Ye=function(t){function n(){this.readyState<4&&this.abort()}var o="XDomainRequest"in e&&e.XDomainRequest||t;return function(e){var u,a=Qe.defer(),c=Ge.test(e)?new t:new o,s=n.bind(c),f=C.timeout;return c.ontimeout=c.onerror=c.onabort=function(){a.reject(c.status)},c.onprogress=c.onreadystatechange=function(){i(u),u=r(s,f)},c.onload=function(){u=i(u),"status"in c&&200!==c.status?a.reject(c.status):a.resolve(c.responseText,c.getResponseHeader&&c.getResponseHeader("content-type"))},c.open("GET",e,te),c.send(),u=r(s,f),a.pledge}}(XMLHttpRequest);e.demand=function(){function t(e,t){this[e]={weight:e.length,state:t}}function n(e,t){"base"!==e&&(this[e]=new We(e,t))}function r(e,t){var n=this[e]=this[e]||{};_e.emit(le,e,n),Ie(n,t),_e.emit(he,e,n)}function i(){var t,n,r,i=d(arguments),o=this!==e?this:Y,a=0;for(_e.emit(je,Y,i,o);t=i[a];a++)u(t,re)?i[a]=Ve.resolve(t,o).pledge:(i[a]=(n=Qe.defer()).pledge,n.resolve(t));return r=i.length>1?Qe.all(i):i[0],r.always(function(){_e.emit(qe,Y,i,o)})}return i.configure=function(e){var o=e.cache,s=e.version,d=e.timeout,l=e.lifetime,h=e.base,p=e.pattern,v=e.modules,m=C.modules;return u(o,ie)?C.cache[""]={weight:0,state:o}:a(o)&&f(o,t,C.cache),u(s,re)&&(C.version=s),c(d)&&(C.timeout=1e3*Math.min(Math.max(d,2),12)),c(l)&&l>0&&(C.lifetime=1e3*l),u(h,re)&&""!==h&&(C.pattern.base=new We("",h)),a(p)&&f(p,n,C.pattern),a(v)&&f(v,r,m),i},i.version="4.2.4-alpha.1",i.on=_e.on.bind(i),i.get=function(e,t){var n=Ve.get(e,t);return n&&n.value},i.remove=Ve.remove,i.list=Ve.list,i.clear=Ke.clear,_e.after(ve,function(e){new x(e)}).after(Pe,function(e){var t=e.handler.onPostRequest;t&&t(e)}).after(me+" "+Pe,function(e){_e.emit(Ce,e.id,e)}).after(ke,function(e){var t=e.handler.onPreRequest;t&&t(e)}).after(Ce,function(e){var t=e.handler.onPreProcess;t&&t(e),e.pledge.then(function(){_e.emit(Se,e.id,e)}),e.enqueue===!0?P.enqueue(e):s(e.enqueue,Qe)&&e.enqueue.then(function(){P.enqueue(e)})}),i}(),e.provide=function(){var t,n,r=u(arguments[0],re)?arguments[0]:Y,i=this!==e?this:Y,o=w(arguments[r?1:0])?arguments[r?1:0]:Y,a=o?arguments[r?2:1]:arguments[r?1:0];!r&&E.current&&(t=E.current,r=t.uri,E.process()),r?(t=t||new Ve(r,i),n=u(a,ue),o?demand.apply(t.path,o).then(function(){t.dfd.resolve(n?a.apply(Y,arguments):a)},function(){t.dfd.reject(new y(Te,t.id,arguments))}):t.dfd.resolve(n?a():a)):!u(console,ne)&&console.error(new y(He))},demand.configure({cache:te,base:"/",pattern:{"/demand":h((n&&n.url||location.href)+"/../").slice(0,-1)}}),n&&n.settings&&demand.configure(n.settings),j.prototype={enqueue:function(){S[this.uuid]=S[this.uuid].concat(d(arguments)),_e.emit(Me,this.uuid)},dequeue:function(){return _e.emit(Ae,this.uuid),S[this.uuid].shift()},get current(){return S[this.uuid][0]},get length(){return S[this.uuid].length}},j.extends(m),q.prototype={process:function(){var e,t=S[this.uuid];t.queue.length?(e=t.current=t.queue.dequeue(),e.handler.process&&e.handler.process(e)):t.current=Y},get current(){return S[this.uuid].current}},q.extends(m);var Ze=function(){function e(){}return e.prototype={validate:Y,onPreRequest:Y,onPostRequest:Y,onPreProcess:Y,process:Y},e}(),et=function(){function e(){}var n=".js",r=t.getElementsByTagName("head")[0],i=/^(application|text)\/(x-)?javascript/;return e.prototype={validate:function(e){return i.test(e)},onPreRequest:function(e){var t=e.url.pathname;e.url.pathname=t.slice(-n.length)!==n?t+n:t},onPostRequest:function(e){e.source=R(e.url,e.source)},process:function(e){var n;e.source&&(n=t.createElement("script"),n.async=te,n.text=e.source,n.setAttribute(F+"-id",e.id),r.appendChild(n))}},new(e.extends(Ze))}();y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var tt=function(){function e(e,t){var n,r;for(n=0;r=t[n];n++)u(r,re)&&(t[n]=v(r))}function t(e){for(var t,n,r=0;n=e[r];r++)if(n=n.match(ze),n=n&&n[3]||i.handler,t){if(n!==t)return ee}else t=n;return t}function n(){}var r=z+"bundle",i={};return demand.on(he+":"+r,function(t){a(t)&&(i=t,f(i,e))}),n.prototype={validate:et.validate,onPreProcess:function(e){function n(){f.reject(new y(De,e.id,arguments))}var r,o,u,a,c,s=e.source,f=e.dfd,d=i[e.path];if(e.enqueue=ee,d&&(r=t(d))){for(;o=Be.exec(s);)s=s.replace(o[0],"");for(e.source=s,u=[],c=0;a=d[c];c++)u.push(Ve.resolve(W+a).pledge);Qe.all(u).then(function(){for(u.length=0,c=0;a=d[c];c++)a=d[c]=Ve.get(a)||new Ve(a),a.handler=arguments[c],u.push(a.pledge);"module"===r?(P.enqueue.apply(P,d),et.process(e)):(et.process(e),P.enqueue.apply(P,d)),Qe.all(u).then(f.resolve,n)},n)}else n()}},new(n.extends(Ze))}(),nt=function(){function e(){}var n=".html",r=/^text\/.+$/;return e.prototype={validate:function(e){return r.test(e)},onPreRequest:function(e){var t=e.url.pathname;e.url.pathname=t.slice(-n.length)!==n?t+n:t},onPostRequest:function(e){e.source=R(e.url,e.source)},onPreProcess:function(e){function n(){c.reject(new y(De,e.id,arguments))}var r,i,o,u,a=e.path,c=e.dfd,s=t.createElement("body"),f=[],d=[];for(e.enqueue=ee,s.innerHTML=e.source;r=s.firstElementChild;)(i=r.getAttribute("type"))&&(o=r.getAttribute("path"),u=i+"!"+a+(o?"/"+o:""),r.parentNode.removeChild(r),f.push({source:r.textContent,uri:u}),d.push(Ve.resolve("mock:"+u).pledge));Qe.all(d).then(function(){var e,t,r=0;for(d.length=0;e=f[r];r++)t=Ve.get(e.uri)||new Ve(e.uri),t.source=R(t.url,e.source),t.handler=arguments[r],d.push(t.pledge),P.enqueue(t);Qe.all(d).then(c.resolve,n)},n)}},new(e.extends(Ze))}(),rt=function(){function e(e){for(var t,n,r=0;t=s[r];r++)0===e.indexOf(t.prefix)&&(!n||t.weight>n.weight)&&(n=t);return n}function t(e){var t,n,r=e.matches,i={pattern:{},modules:{"/demand/handler/bundle":{}}},o=0;for(i.pattern[e.id]=e.fn(r),i.modules[z+"bundle"][e.id]=t=[];n=r[o];o++)t.push(n.path);return i}function n(){for(var e,t=0;e=this[t];t++)e.dfd.resolve(arguments[t])}function r(){for(var e,t=0;e=this[t];t++)e.dfd.reject(new y(De,e.id))}function i(e,t){s.push({prefix:e,weight:e.length,fn:t})}function o(e,i){var o,u=i.matches,a=0;if(u.length>1){for(i.id=c+"/"+b(JSON.stringify(i.matches));o=u[a];a++)u[a]=new Ve(o.uri);demand.configure(t(i)),demand("bundle!"+i.id).then(n.bind(u),r.bind(u))}}var c=K+"genie",s=[];return demand.on(he+":"+c,function(e){a(e)&&(s.length=0,f(e,i))}).on(je,function(t,n){for(var r,i,a={},c=0;r=t[c];c++)!u(r,re)||Je.test(r)||Ve.get(r,n)||(r=new Ve(r,n,ee),"module"===r.type&&(i=e(r.path))&&!Ke.get(r)&&(a[i.prefix]||(a[i.prefix]={fn:i.fn,matches:[]})).matches.push(r));f(a,o)}),te}();if(P=new j,E=new q(P),k(J+"uuid",m),k(J+"handler",Ze),k(z+"module",et),k(z+"bundle",tt),k(z+"component",nt),k(K+"genie",rt),k(V+"isTypeOf",u),k(V+"isArray",w),k(V+"isObject",a),k(V+"isInstanceOf",s),k(Q+"resolveUrl",h),k(Q+"resolveSourcemaps",R),k(Q+"merge",Ie),k(Q+"iterate",f),k(Q+"hash",b),k(Q+"defer",Le),k(Q+"uuid",Ne),k(G+"descriptor",o),k(G+"pledge",Qe),k(G+"queue",j),k(G+"xhr",Ye),k(G+"failure",y),n&&n.main)switch(typeof n.main){case re:demand(n.main);break;case ue:provide("main",n.main())}}(this,document,"demand"in this&&demand,setTimeout,clearTimeout); +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +!function(e,t,n,r,i){"use strict";function o(e,t,n,r){return{__proto__:Y,value:e,enumerable:!!r,configurable:!!n,writable:!!t}}function u(e,t){return typeof e===t}function a(e){return e&&u(e,oe)}function c(e){return u(e,ae)&&isFinite(e)&&Math.floor(e)===e&&e>=0}function s(e,t){return e instanceof t}function f(e,t,n){for(var r,i=$.keys(e),o=0;(r=i[o])!==Z&&t.call(n,r,e[r])!==ee;o++);return n}function d(e,t,n){return M.call(e,t,n)}function l(){return+new Date}function h(e){return X.href=e,X.href}function p(e,t){var n=e.replace(ze,"");return Ue.test(n)||Fe.test(n)||(n="/"+h((t&&h(t+"/../")||"/")+n).replace(Ge,"")),n}function v(e,t){var n=e.match(ze);return(n&&n[1]?"mock:":"")+(n&&n[3]||C.handler)+"!"+p(e,t)}function m(){return u(this.uuid,ne)&&I(this,"uuid",new o(Ne())),this}function g(){var e=m.call(this);return S[e.uuid]={},e}function y(e,t,n){var r=this;return r.message=e,t&&(r.module=t),n&&(r.stack=d(n)),r}function x(e){function n(t,n){n&&e.handler.validate&&!e.handler.validate(n)?e.dfd.reject(new y($e+" (content-type)",e.id)):(e.source=t,_e.emit(Pe,e.type,e))}function r(t){e.dfd.reject(new y($e+(t?" (status)":""),e.id))}function i(u){u=u||0,e.url=t.createElement("a"),e.url.href=o?h(o.process(e.path,u)):e.path,_e.emit(ke,e.type,e),new Ye(e.url).then(n,o?function(){u++,o.location[u]?i(u):r()}:r)}var o;Fe.test(e.path)||f(C.pattern,function(t,n){n.matches(e.path)&&(!o||o.weight>>0}function j(){var e=m.call(this);return S[e.uuid]=[],e}function q(e){var t=m.call(this),n=S[t.uuid]={queue:e,current:Y};return demand.on(Me+":"+e.uuid,function(){!n.current&&t.process()}),t}function R(e,t){for(var n,r;n=Be.exec(t);)X.href=e,Fe.test(n[2])?r=X.protocol+"//"+X.host+n[3]:(X.pathname+="/../"+n[3],r=X.protocol+"//"+X.host+X.pathname),t=t.replace(n[0],n[1]+" "+n[2]+"="+r+".map"+(n[4]?" "+n[4]:""));return t}function y(e,t,n){var r=this;return r.message=e,t&&(r.module=t),n&&(r.stack=d(n)),r}function k(e,t){provide(e,function(){return t})}var P,E,C={version:"1.0.0",cache:{},timeout:8e3,pattern:{},modules:{},handler:"module"},S={},O=Array.prototype,M=O.slice,A=O.concat,$=Object,T=$.prototype,D=T.toString,H=$.create,I=$.defineProperty,N=$.getOwnPropertyNames,L=$.getOwnPropertyDescriptor,_=Function.prototype,X=t.createElement("a"),F="demand",U="provide",B="path",G="/"+F+"/",J=G+"abstract/",z=G+"handler/",K=G+"plugin/",Q=G+"function/",V=G+"validator/",W="mock:",Y=null,Z=void 0,ee=!1,te=!0,ne="undefined",re="string",ie="boolean",oe="object",ue="function",ae="number",ce=function(){},se="pre",fe="post",de="Configure",le=se+de,he=fe+de,pe="cache",ve=pe+"Miss",me=pe+"Hit",ge=pe+"Clear",ye=pe+"Exceed",xe=se+"Cache",we=fe+"Cache",be="Resolve",je=se+be,qe=fe+be,Re="Request",ke=se+Re,Pe=fe+Re,Ee="Process",Ce=se+Ee,Se=fe+Ee,Oe="queue",Me=Oe+"Enqueue",Ae=Oe+"Dequeue",$e="error loading",Te="error providing",De="error resolving",He="unspecified anonymous provide";!function(){function e(e){for(var t,n=this,r=n.prototype,i={},u=N(r),a=0;t=u[a];a++)i[t]=L(r,t);return i.constructor=new o(n),n.prototype=H(e.prototype||e,i),n}I(_,"extends",new o(e))}();var Ie=function(){function e(e,t){var n,r=this[e];t!==Z&&(a(t)?(n=a(r),r=t.length!==Z?n&&r.length!==Z?r:[]:n&&r.length===Z?r:{},this[e]=Ie(r,t)):this[e]=t)}return function(){for(var t,n=arguments[0],r=1;(t=arguments[r])!==Z;r++)f(t,e,n);return n}}(),Ne=function(){function e(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}var t=new RegExp("[xy]","g"),n={};return function(){var r;do r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e);while(n[r]);return n[r]=1,r}}(),Le=function(){var n,i,o="setImmediate"in e;return"MutationObserver"in e?function(e){n=t.createElement("div"),new MutationObserver(function(){e()}).observe(n,{attributes:te}),n.setAttribute("i","1")}:!o&&"postMessage"in e&&!("importScripts"in e)&&"addEventListener"in e?function(){function t(t){t.source===e&&t.data&&S[t.data]&&(S[t.data](),delete S[t.data])}return e.addEventListener("message",t,ee),function(t){var n=Ne();S[n]=t,e.postMessage(n,"*")}}():!o&&"onreadystatechange"in(n=t.createElement("script"))?function(e){n.onreadystatechange=function(){n.onreadystatechange=Y,n.parentNode.removeChild(n),e()},t.body.appendChild(n)}:(i=o?setImmediate:r,function(e){i(e)})}(),_e=function(){function e(e,t,r){var a,c;if(u(t,re)&&u(r,ue))for(t=t.split(" ");a=t.shift();)a=a.split(":"),i.test(a[0])&&((o[a[0]]||(o[a[0]]={on:[],after:[]}))[e].push({callback:r,filter:a[1]}),e===n&&a[0]===he&&(c=C.modules[a[1]])&&r(c))}function t(){}var n="on",r="after",i=/^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,o={};return t.prototype={emit:function(e,t){var i,u,a,c=o[e];if(c){for(i=d(arguments,2),u=0;a=c[n][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i);for(u=0;a=c[r][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i)}return this},on:function(t,r){return e(n,t,r),this},after:function(t,n){return e(r,t,n),this}},new t}(),Xe=function(){var e=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;return function(t){return t.replace(e,"\\$&")}}(),Fe=/^(http(s?):)?\/\//i,Ue=/^\//,Be=/((?:\/\/|\/\*)#)\s*(sourceMappingURL)\s*=\s*(?!(?:http[s]?:)?\/\/)(.+?)\.map(?:\s+)?(\*\/)?/g,Ge=new RegExp("^"+Xe(h("/"))),Je=new RegExp("^"+F+"|"+U+"|"+B+"$"),ze=/^(mock:)?([+-])?((?:[-\w]+\/?)+)?(?:@(.+?))?(?:#(\d+))?!/,Ke=function(){function t(e){var t;return e.cache!==Y?e.cache:(f(C.cache,function(n,r){0===e.path.indexOf(n)&&(!t||r.weight>t.weight)&&(t=r)}),t?t.state:ee)}function n(e){return x.getItem(e)}function r(e,t){x[t?"setItem":"removeItem"](e,t)}function i(e){var t,r=n(e);if(r&&(t=r.match(g)))return d(t,1)}function o(e,t){t[4]=l(),r(e,t.join(","))}function u(e,t,n){_e.emit(e,t.id,t,n)}function a(){Le(this.clear.expired.bind(this.clear))}var c,s="["+F+"]",h="[state]",p="[value]",m=new RegExp("^"+Xe(s)+"\\[(.+?)\\]"+Xe(h)+"$"),g=/^(.+?),(\d+),(\d*),(.+?),(\d+)$/,y=function(){try{return"localStorage"in e&&e.localStorage}catch(e){return ee}}(),x=y?e.localStorage:Y,w=y&&"remainingSpace"in x,b={};return _e.on(ve,function(e){Le(function(){c.clear.path(e.id)})}).on(ye,function(e){demand("-!/"+F+"/cache/dispose").then(function(t){Le(function(){t(e.source.length),c.set(e)})})}).on(Pe,function(e){e.source&&t(e)&&(b[e.id]=te)}).after(Se,function(e){b[e.id]&&Le(function(){c.set(e)})}),a.prototype={get:y?function(e){var r,u;if(t(e)&&(r=s+"["+e.id+"]",u=i(r+h),u&&u[0]===e.version&&(!u[2]&&!e.lifetime||u[2]>l())))return e.source=n(r+p),Le(function(){o(r+h,u)}),te}:ce,resolve:y?function(e){var t=this;t.get(e)?u(me,e):u(ve,e)}:function(e){u(ve,e)},set:y?function(e){var n,i,a;if(t(e)){n=[e.version,e.source.length,e.lifetime?l()+e.lifetime:Y,demand.version],i=s+"["+e.id+"]",u(xe,e,n);try{if(a=w?x.remainingSpace:Y,r(i+p,e.source),o(i+h,n),a!==Y&&x.remainingSpace===a)throw new Error;u(we,e,n)}catch(t){u(ye,e)}}}:ce,clear:{path:y?function(e){var t=v(e),i=s+"["+t+"]";n(i+h)&&(r(i+h),r(i+p),u(ge,Ve.get(t)||new Ve(t,Y,ee)))}:ce,all:y?function(){var e;f(x,function(t){e=t.match(m),e&&this.path(e[1])},this)}:ce,expired:y?function(){var e,t,n=this;f(x,function(r){e=r.match(m),e&&(t=i(s+"["+e[1]+"]"+h),t&&t[2]>0&&t[2]<=l()&&n.path(e[1]))},this)}:ce}},c=new a}(),Qe=function(){function e(){s[this.uuid].handle(a,arguments)}function t(){s[this.uuid].handle(c,arguments)}function n(e,t){var n,r,i=s[this.uuid];for(i.state===u&&(i.state=e,i.value=t);n=i[i.state].shift();)r=n.handler.apply(Y,i.value),r&&"function"==typeof r.then?r.then(n.dfd.resolve,n.dfd.reject):n.dfd[i.state===a?"resolve":"reject"].apply(Y,i.value);i[a].length=0,i[c].length=0}function r(e,t,n){e.then(function(){n.resolved[t]=d(arguments),n.count++,i(n)},function(){n.rejected.push(d(arguments)),i(n)})}function i(e){e.count===e.total?e.dfd.resolve.apply(Y,A.apply([],e.resolved)):e.rejected.length+e.count===e.total&&e.dfd.reject.apply(Y,A.apply([],e.rejected))}function o(r){var i=m.call(this);return s[i.uuid]={state:u,handle:n.bind(i),value:Y,resolved:[],rejected:[],count:0},r(e.bind(i),t.bind(i)),i}var u="pending",a="resolved",c="rejected",s={};return o.prototype={catch:function(e){return this.then(ce,e)},always:function(e){return this.then(e,e)},then:function(e,t){var n=s[this.uuid],r=o.defer();return e&&n[a].push({handler:e,dfd:r}),t&&n[c].push({handler:t,dfd:r}),n.state!==u&&Le(n.handle),r.pledge},isPending:function(){return s[this.uuid].state===u},isResolved:function(){return s[this.uuid].state===a},isRejected:function(){return s[this.uuid].state===c}},o.defer=function(){var e={};return e.pledge=new o(function(t,n){e.resolve=t,e.reject=n}),e},o.all=function(e){var t,n,i=o.defer(),u=0;if(e.length)for(t=s[Ne()]={dfd:i,resolved:[],rejected:[],total:e.length,count:0};n=e[u];u++)r(n,u,t);else i.resolve();return i.pledge},o.race=function(e){for(var t,n=o.defer(),r=0;t=e[r];r++)t.then(n.resolve,n.reject);return e.length||n.resolve(),n.pledge},o.extends(m)}();g.prototype={get:function(e){return e?S[this.uuid][e]:S[this.uuid]},set:function(e,t){S[this.uuid][e]=t},remove:function(e){delete S[this.uuid][e]}},g.extends(m),y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var Ve=function(){function e(e,t){this[e]=t}function n(e,t){t.pledge.isPending()&&this.push(e)}function r(e,t){t.pledge.isResolved()&&this.push(e)}function i(e,t){t.pledge.isRejected()&&this.push(e)}function o(e,t,n){var r=this,i=e.match(ze)||s;return r.path=p(e,t),r.mock=i[1]?te:ee,r.cache=i[2]?"+"===i[1]:Y,r.type=i[3]||C.handler,r.version=i[4]||C.version,r.lifetime=i[5]&&1e3*i[5]||C.lifetime,r.id=(r.mock?W:"")+r.type+"!"+r.path,r.uri=(r.mock?W:"")+r.type+"@"+r.version+(c(r.lifetime)&&r.lifetime>0?"#"+r.lifetime:"")+"!"+r.path,r.dfd=Qe.defer(),r.pledge=r.dfd.pledge,r.pledge.then(function(){r.value=d(arguments)}),n!==ee&&a.set(r.id,r),r}var u="internal!",a=new g,s=[];return o.prototype={enqueue:!0},o.get=function(e,t){return a.get(v(e,t))},o.resolve=function(t,n){var r,i=n&&Je.test(t),a=i?this.get(u+n+"/"+t):this.get(t,n);if(!a)if(i){switch(a=new o(u+n+"/"+t),t){case F:r=function(){return f(demand,e,demand.bind(n))}();break;case U:r=provide.bind(n);break;case B:r=n}a.dfd.resolve(r)}else a=new o(t,n),demand(z+a.type).then(function(e){a.handler=e,a.mock?a.dfd.resolve(e):Ke.resolve(a)},function(){a.dfd.reject(new y($e+" (handler)",self.id))});return a},o.remove=function(e,n,r){var i=v(e,n),o=t.querySelector("["+F+'-id="'+i+'"]');a.remove(i),a.remove(W+i),o&&o.parentNode.removeChild(o),r!==ee&&Ke.clear.path(i)},o.list={all:function(){return $.keys(a.get())},pending:function(){return f(a.get(),n,[])},resolved:function(){return f(a.get(),r,[])},rejected:function(){return f(a.get(),i,[])}},o}(),We=function(){function e(e,t){this[e]={url:h(t).replace(n,"$1"),match:new RegExp("^"+Xe(t))}}function t(t,n){var r=this;r.weight=t.length,r.match=new RegExp("^"+Xe(t)),r.location=[].concat(n),f(r.location,e,r.location)}var n=/(.+)\/$/;return t.prototype={matches:function(e){return this.match.test(e)},process:function(e,t){var n=this.location[t];if(n)return e.replace(this.match,n.url)}},t}(),Ye=function(t){function n(){this.readyState<4&&this.abort()}var o="XDomainRequest"in e&&e.XDomainRequest||t;return function(e){var u,a=Qe.defer(),c=Ge.test(e)?new t:new o,s=n.bind(c),f=C.timeout;return c.ontimeout=c.onerror=c.onabort=function(){a.reject(c.status)},c.onprogress=c.onreadystatechange=function(){i(u),u=r(s,f)},c.onload=function(){u=i(u),"status"in c&&200!==c.status?a.reject(c.status):a.resolve(c.responseText,c.getResponseHeader&&c.getResponseHeader("content-type"))},c.open("GET",e,te),c.send(),u=r(s,f),a.pledge}}(XMLHttpRequest);e.demand=function(){function t(e,t){this[e]={weight:e.length,state:t}}function n(e,t){"base"!==e&&(this[e]=new We(e,t))}function r(e,t){var n=this[e]=this[e]||{};_e.emit(le,e,n),Ie(n,t),_e.emit(he,e,n)}function i(){var t,n,r,i=d(arguments),o=this!==e?this:Y,a=0;for(_e.emit(je,Y,i,o);t=i[a];a++)u(t,re)?i[a]=Ve.resolve(t,o).pledge:(i[a]=(n=Qe.defer()).pledge,n.resolve(t));return r=i.length>1?Qe.all(i):i[0],r.always(function(){_e.emit(qe,Y,i,o)})}return i.configure=function(e){var o=e.cache,s=e.version,d=e.timeout,l=e.lifetime,h=e.base,p=e.pattern,v=e.modules,m=C.modules;return u(o,ie)?C.cache[""]={weight:0,state:o}:a(o)&&f(o,t,C.cache),u(s,re)&&(C.version=s),c(d)&&(C.timeout=1e3*Math.min(Math.max(d,2),12)),c(l)&&l>0&&(C.lifetime=1e3*l),u(h,re)&&""!==h&&(C.pattern.base=new We("",h)),a(p)&&f(p,n,C.pattern),a(v)&&f(v,r,m),i},i.version="4.2.4-alpha.2",i.on=_e.on.bind(i),i.get=function(e,t){var n=Ve.get(e,t);return n&&n.value},i.remove=Ve.remove,i.list=Ve.list,i.clear=Ke.clear,_e.after(ve,function(e){new x(e)}).after(Pe,function(e){var t=e.handler.onPostRequest;t&&t(e)}).after(me+" "+Pe,function(e){_e.emit(Ce,e.id,e)}).after(ke,function(e){var t=e.handler.onPreRequest;t&&t(e)}).after(Ce,function(e){var t=e.handler.onPreProcess;t&&t(e),e.pledge.then(function(){_e.emit(Se,e.id,e)}),e.enqueue===!0?P.enqueue(e):s(e.enqueue,Qe)&&e.enqueue.then(function(){P.enqueue(e)})}),i}(),e.provide=function(){var t,n,r=u(arguments[0],re)?arguments[0]:Y,i=this!==e?this:Y,o=w(arguments[r?1:0])?arguments[r?1:0]:Y,a=o?arguments[r?2:1]:arguments[r?1:0];!r&&E.current&&(t=E.current,r=t.uri,E.process()),r?(t=t||new Ve(r,i),n=u(a,ue),o?demand.apply(t.path,o).then(function(){t.dfd.resolve(n?a.apply(Y,arguments):a)},function(){t.dfd.reject(new y(Te,t.id,arguments))}):t.dfd.resolve(n?a():a)):!u(console,ne)&&console.error(new y(He))},demand.configure({cache:te,base:"/",pattern:{"/demand":h((n&&n.url||location.href)+"/../").slice(0,-1)}}),n&&n.settings&&demand.configure(n.settings),j.prototype={enqueue:function(){S[this.uuid]=S[this.uuid].concat(d(arguments)),_e.emit(Me,this.uuid)},dequeue:function(){return _e.emit(Ae,this.uuid),S[this.uuid].shift()},get current(){return S[this.uuid][0]},get length(){return S[this.uuid].length}},j.extends(m),q.prototype={process:function(){var e,t=S[this.uuid];return t.queue.length&&(e=t.current=t.queue.dequeue(),!e.pledge.isRejected())?void(e.handler.process&&e.handler.process(e)):void(t.current=Y)},get current(){return S[this.uuid].current}},q.extends(m);var Ze=function(){function e(){}return e.prototype={validate:Y,onPreRequest:Y,onPostRequest:Y,onPreProcess:Y,process:Y},e}(),et=function(){function e(){}var n=".js",r=t.getElementsByTagName("head")[0],i=/^(application|text)\/(x-)?javascript/;return e.prototype={validate:function(e){return i.test(e)},onPreRequest:function(e){var t=e.url.pathname;e.url.pathname=t.slice(-n.length)!==n?t+n:t},onPostRequest:function(e){e.source=R(e.url,e.source)},process:function(e){var n;e.source&&(n=t.createElement("script"),n.async=te,n.text=e.source,n.setAttribute(F+"-id",e.id),r.appendChild(n))}},new(e.extends(Ze))}();y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var tt=function(){function e(e,t){var n,r;for(n=0;r=t[n];n++)u(r,re)&&(t[n]=v(r))}function t(e){for(var t,n,r=0;n=e[r];r++)if(n=n.match(ze),n=n&&n[3]||i.handler,t){if(n!==t)return ee}else t=n;return t}function n(){}var r=z+"bundle",i={};return demand.on(he+":"+r,function(t){a(t)&&(i=t,f(i,e))}),n.prototype={validate:et.validate,onPreProcess:function(e){function n(){f.reject(new y(De,e.id,arguments))}var r,o,u,a,c,s=e.source,f=e.dfd,d=i[e.path];if(e.enqueue=ee,d&&(r=t(d))){for(;o=Be.exec(s);)s=s.replace(o[0],"");for(e.source=s,u=[],c=0;a=d[c];c++)u.push(Ve.resolve(W+a).pledge);Qe.all(u).then(function(){for(u.length=0,c=0;a=d[c];c++)a=d[c]=Ve.get(a)||new Ve(a),a.handler=arguments[c],u.push(a.pledge);"module"===r?(P.enqueue.apply(P,d),et.process(e)):(et.process(e),P.enqueue.apply(P,d)),Qe.all(u).then(f.resolve,n)},n)}else n()}},new(n.extends(Ze))}(),nt=function(){function e(){}var n=".html",r=/^text\/.+$/;return e.prototype={validate:function(e){return r.test(e)},onPreRequest:function(e){var t=e.url.pathname;e.url.pathname=t.slice(-n.length)!==n?t+n:t},onPostRequest:function(e){e.source=R(e.url,e.source)},onPreProcess:function(e){function n(){c.reject(new y(De,e.id,arguments))}var r,i,o,u,a=e.path,c=e.dfd,s=t.createElement("body"),f=[],d=[];for(e.enqueue=ee,s.innerHTML=e.source;r=s.firstElementChild;)(i=r.getAttribute("type"))&&(o=r.getAttribute("path"),u=i+"!"+a+(o?"/"+o:""),r.parentNode.removeChild(r),f.push({source:r.textContent,uri:u}),d.push(Ve.resolve("mock:"+u).pledge));Qe.all(d).then(function(){var e,t,r=0;for(d.length=0;e=f[r];r++)t=Ve.get(e.uri)||new Ve(e.uri),t.source=R(t.url,e.source),t.handler=arguments[r],d.push(t.pledge),P.enqueue(t);Qe.all(d).then(c.resolve,n)},n)}},new(e.extends(Ze))}(),rt=function(){function e(e){for(var t,n,r=0;t=s[r];r++)0===e.indexOf(t.prefix)&&(!n||t.weight>n.weight)&&(n=t);return n}function t(e){var t,n,r=e.matches,i={pattern:{},modules:{"/demand/handler/bundle":{}}},o=0;for(i.pattern[e.id]=e.fn(r),i.modules[z+"bundle"][e.id]=t=[];n=r[o];o++)t.push(n.path);return i}function n(){for(var e,t=0;e=this[t];t++)e.dfd.resolve(arguments[t])}function r(){for(var e,t=0;e=this[t];t++)e.dfd.reject(new y(De,e.id))}function i(e,t){s.push({prefix:e,weight:e.length,fn:t})}function o(e,i){var o,u=i.matches,a=0;if(u.length>1){for(i.id=c+"/"+b(JSON.stringify(i.matches));o=u[a];a++)u[a]=new Ve(o.uri);demand.configure(t(i)),demand("bundle!"+i.id).then(n.bind(u),r.bind(u))}}var c=K+"genie",s=[];return demand.on(he+":"+c,function(e){a(e)&&(s.length=0,f(e,i))}).on(je,function(t,n){for(var r,i,a={},c=0;r=t[c];c++)!u(r,re)||Je.test(r)||Ve.get(r,n)||(r=new Ve(r,n,ee),"module"===r.type&&(i=e(r.path))&&!Ke.get(r)&&(a[i.prefix]||(a[i.prefix]={fn:i.fn,matches:[]})).matches.push(r));f(a,o)}),te}();if(P=new j,E=new q(P),k(J+"uuid",m),k(J+"handler",Ze),k(z+"module",et),k(z+"bundle",tt),k(z+"component",nt),k(K+"genie",rt),k(V+"isTypeOf",u),k(V+"isArray",w),k(V+"isObject",a),k(V+"isInstanceOf",s),k(Q+"resolveUrl",h),k(Q+"resolveSourcemaps",R),k(Q+"merge",Ie),k(Q+"iterate",f),k(Q+"hash",b),k(Q+"defer",Le),k(Q+"uuid",Ne),k(G+"descriptor",o),k(G+"pledge",Qe),k(G+"queue",j),k(G+"xhr",Ye),k(G+"failure",y),n&&n.main)switch(typeof n.main){case re:demand(n.main);break;case ue:provide("main",n.main())}}(this,document,"demand"in this&&demand,setTimeout,clearTimeout); //# sourceMappingURL=demand.js.map diff --git a/dist/demand.js.map b/dist/demand.js.map index 6e9c447..24a8f89 100644 --- a/dist/demand.js.map +++ b/dist/demand.js.map @@ -1 +1 @@ -{"version":3,"sources":["demand.js","class/descriptor.js","validator/isTypeOf.js","validator/isObject.js","validator/isPositive.js","validator/isInstanceOf.js","function/iterate.js","function/toArray.js","function/getTimestamp.js","function/resolveUrl.js","function/resolvePath.js","function/resolveId.js","abstract/uuid.js","class/registry.js","class/failure.js","class/loader.js","validator/isArray.js","function/hash.js","class/queue.js","class/processor.js","function/resolveSourcemaps.js","class/Failure.js","shortcuts.js","constants.js","inheritance.js","function/merge.js","function/uuid.js","function/defer.js","singleton/event.js","function/escapeRegex.js","variables.js","singleton/cache.js","class/pledge.js","class/dependency.js","class/pattern.js","class/xhr.js","function/demand.js","function/provide.js","abstract/handler.js","handler/module.js","handler/bundle.js","handler/component.js","plugin/genie.js"],"names":["global","document","options","setTimeout","clearTimeout","ClassDescriptor","value","writable","configurable","enumerable","__proto__","NULL","validatorIsTypeOf","object","type","validatorIsObject","STRING_OBJECT","validatorIsPositive","STRING_NUMBER","isFinite","Math","floor","validatorIsInstanceOf","module","functionIterate","source","callback","context","property","properties","keys","i","UNDEFINED","call","FALSE","functionToArray","arrayLikeObject","start","end","arrayPrototypeSlice","functionGetTimestamp","Date","functionResolveUrl","url","linkElement","href","functionResolvePath","uri","path","replace","regexMatchParameter","regexIsAbsolutePath","test","regexIsAbsoluteUri","regexMatchBaseUrl","functionResolveId","parameter","match","settings","handler","AbstractUuid","this","uuid","STRING_UNDEFINED","objectDefineProperty","functionUuid","ClassRegistry","self","storage","ClassFailure","message","stack","ClassLoader","dependency","resolve","response","validate","dfd","reject","ERROR_LOAD","id","singletonEvent","emit","EVENT_POST_REQUEST","status","load","location","createElement","pattern","process","EVENT_PRE_REQUEST","ClassXhr","then","matches","weight","validatorIsArray","objectPrototypeToString","functionHash","input","length","charCodeAt","ClassQueue","ClassProcessor","queue","pointer","current","demand","on","EVENT_QUEUE_ENQUEUE","functionResolveSourcemaps","replacement","regexMatchSourcemap","exec","protocol","host","pathname","assignModule","provide","processor","version","cache","timeout","modules","arrayPrototype","Array","prototype","slice","arrayPrototypeConcat","concat","Object","objectPrototype","toString","objectCreate","create","defineProperty","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertyDescriptor","getOwnPropertyDescriptor","functionPrototype","Function","DEMAND_ID","PROVIDE_ID","PATH_ID","MODULE_PREFIX","MODULE_PREFIX_ABSTRACT","MODULE_PREFIX_HANDLER","MODULE_PREFIX_PLUGIN","MODULE_PREFIX_FUNCTION","MODULE_PREFIX_VALIDATOR","MOCK_PREFIX","undefined","TRUE","STRING_STRING","STRING_BOOLEAN","STRING_FUNCTION","FUNCTION_EMPTY","EVENT_PREFIX","EVENT_POSTFIX","EVENT_CONFIGURE","EVENT_PRE_CONFIGURE","EVENT_POST_CONFIGURE","EVENT_CACHE","EVENT_CACHE_MISS","EVENT_CACHE_HIT","EVENT_CACHE_CLEAR","EVENT_CACHE_EXCEED","EVENT_PRE_CACHE","EVENT_POST_CACHE","EVENT_RESOLVE","EVENT_PRE_RESOLVE","EVENT_POST_RESOLVE","EVENT_REQUEST","EVENT_PROCESS","EVENT_PRE_PROCESS","EVENT_POST_PROCESS","EVENT_QUEUE","EVENT_QUEUE_DEQUEUE","ERROR_PROVIDE","ERROR_RESOLVE","ERROR_PROVIDE_ANONYMOUS","extend","parent","names","constructor","functionMerge","mergeProperties","targetPropertyIsObject","targetProperty","target","arguments","randomize","character","r","random","regex","RegExp","functionDefer","element","fallback","hasSetImmediate","fn","MutationObserver","observe","attributes","setAttribute","onMessage","event","data","addEventListener","postMessage","onreadystatechange","parentNode","removeChild","body","appendChild","setImmediate","addListener","events","split","shift","regexMatchEvent","listener","after","push","filter","TYPE_ON","Event","TYPE_AFTER","item","apply","functionEscapeRegex","regexMatchRegex","regexMatchInternal","singletonCache","enabled","indexOf","state","getKey","key","localStorage","getItem","setKey","getState","regexMatchProperties","setState","join","Cache","clear","expired","bind","STORAGE_PREFIX","STORAGE_SUFFIX_STATE","STORAGE_SUFFIX_VALUE","regexMatchState","supportsLocalStorage","exception","supportsRemainingSpace","cacheDispose","set","get","lifetime","spaceBefore","remainingSpace","Error","error","ClassDependency","all","ClassPledge","handle","PLEDGE_RESOLVED","PLEDGE_REJECTED","result","PLEDGE_PENDING","pledge","index","resolved","count","check","rejected","total","executor","catch","always","alwaysListener","resolveListener","rejectListener","defer","isPending","isResolved","isRejected","pledges","race","extends","remove","traverse","depth","indention","setProperty","addPending","addResolved","addRejected","register","placeholder","mock","registry","PREFIX_INTERNAL","enqueue","isInternal","node","querySelector","list","pending","ClassPattern","regexMatchTrailingSlash","XMLHttpRequest","checkState","readyState","abort","XDomainRequest","xhr","boundCheckState","ontimeout","onerror","onabort","onprogress","onload","responseText","getResponseHeader","open","send","updateCacheSettings","updatePatternSettings","updateModuleSettings","temp","dependencies","configure","base","min","max","onPostRequest","onPreRequest","onPreProcess","isFunction","definition","console","/demand","dequeue","abstractHandler","AbstractHandler","handlerModule","HandlerModule","suffix","getElementsByTagName","regexMatchType","script","async","text","handlerBundle","updateDependencies","getType","HandlerBundle","handlerComponent","HandlerComponent","container","innerHTML","firstElementChild","getAttribute","textContent","pluginGenie","matchPattern","prefix","generateConfiguration","bundle","configuration","/demand/handler/bundle","resolveDependencies","rejectDependencies","addPattern","resolveBundles","JSON","stringify","bundles","main"],"mappings":"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","file":"demand.js","sourcesContent":["/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX, MODULE_PREFIX_HANDLER, MODULE_PREFIX_VALIDATOR, MODULE_PREFIX_PLUGIN, MODULE_PREFIX_FUNCTION, MODULE_PREFIX_ABSTRACT, STRING_STRING, STRING_FUNCTION, TRUE,\n\tvalidatorIsTypeOf, validatorIsArray, validatorIsObject, validatorIsInstanceOf,\n\tfunctionResolveUrl, functionResolveSourcemaps, functionMerge, functionIterate, functionDefer, functionHash, functionUuid,\n\tAbstractUuid, abstractHandler,\n\tClassDependency, ClassQueue, ClassProcessor, ClassPledge, ClassXhr, ClassFailure, ClassDescriptor,\n\thandlerModule, handlerBundle, handlerComponent,\n \tpluginGenie\n*/\n\n/*eslint no-unused-vars: [2, { \"vars\": \"local\", \"args\": \"none\" }]*/\n(function(global, document, options, setTimeout, clearTimeout) {\n\t'use strict';\n\n\t/* eslint-disable no-unused-vars */\n\tvar settings = { version: '1.0.0', cache: {}, timeout: 8000, pattern: {}, modules: {}, handler: 'module' },\n\t\tstorage = {},\n\t\tqueue, processor;\n\t/* eslint-enable no-unused-vars */\n\n\t// include inheritance\n\t\t//=require inheritance.js\n\n\t// include main components\n\t\t//=require function/demand.js\n\t\t//=require function/provide.js\n\n\t// process initial configuration\n\t\tdemand.configure({ cache: TRUE, base: '/', pattern: { '/demand': functionResolveUrl(((options && options.url) || location.href) + '/../').slice(0, -1)} });\n\t\toptions && options.settings && demand.configure(options.settings);\n\n\t// include additional components\n\t\t//=require function/hash.js\n\t\t//=require class/queue.js\n\t\t//=require class/processor.js\n\t\t//=require handler/module.js\n\t\t//=require handler/bundle.js\n\t\t//=require handler/component.js\n\t\t//=require plugin/genie.js\n\n\t// initialize\n\t\tqueue = new ClassQueue();\n\t\tprocessor = new ClassProcessor(queue);\n\n\t\tfunction assignModule(id, module) {\n\t\t\tprovide(id, function() { return module; });\n\t\t}\n\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'uuid', AbstractUuid);\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'handler', abstractHandler);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'module', handlerModule);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'bundle', handlerBundle);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'component', handlerComponent);\n\t\tassignModule(MODULE_PREFIX_PLUGIN + 'genie', pluginGenie);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isTypeOf', validatorIsTypeOf);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isArray', validatorIsArray);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isObject', validatorIsObject);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isInstanceOf', validatorIsInstanceOf);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveUrl', functionResolveUrl);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveSourcemaps', functionResolveSourcemaps);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'merge', functionMerge);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'iterate', functionIterate);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'hash', functionHash);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'defer', functionDefer);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'uuid', functionUuid);\n\t\tassignModule(MODULE_PREFIX + 'descriptor', ClassDescriptor);\n\t\tassignModule(MODULE_PREFIX + 'pledge', ClassPledge);\n\t\tassignModule(MODULE_PREFIX + 'queue', ClassQueue);\n\t\tassignModule(MODULE_PREFIX + 'xhr', ClassXhr);\n\t\tassignModule(MODULE_PREFIX + 'failure', ClassFailure);\n\n\t\tif(options && options.main) {\n\t\t\tswitch(typeof options.main) {\n\t\t\t\tcase STRING_STRING:\n\t\t\t\t\tdemand(options.main);\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase STRING_FUNCTION:\n\t\t\t\t\tprovide('main', options.main());\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n}(this, document, 'demand' in this && demand, setTimeout, clearTimeout));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nfunction ClassDescriptor(value, writable, configurable, enumerable) {\n\treturn {\n\t\t__proto__: NULL,\n\t\tvalue: value,\n\t\tenumerable: !!enumerable,\n\t\tconfigurable: !!configurable,\n\t\twritable: !!writable\n\t};\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * isTypeOf\n *\n * Check whether a given object is of specified type\n *\n * @param object\n * @param {string} type\n *\n * @return {boolean}\n */\n\nfunction validatorIsTypeOf(object, type) {\n\treturn typeof object === type;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_OBJECT,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isObject\n *\n * Check whether a given object is of type object\n *\n * @param object\n *\n * @return {boolean}\n */\n\nfunction validatorIsObject(object) {\n\treturn object && validatorIsTypeOf(object, STRING_OBJECT);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_NUMBER,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isPositive\n *\n * Check whether a given value is a positive integer\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsPositive(value) {\n\treturn validatorIsTypeOf(value, STRING_NUMBER) && isFinite(value) && Math.floor(value) === value && value >= 0;\n}","/**\n * isInstanceOf\n *\n * Check whether a given object is an instance of specified type\n *\n * @param object\n * @param module\n *\n * @return {boolean}\n */\nfunction validatorIsInstanceOf(object, module) {\n\treturn object instanceof module;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED, FALSE,\n\tobject\n*/\n\n//=require constants.js\n//=require shortcuts.js\n\n/**\n * iterate\n *\n * Iterate over enumerable & own properties of a given\n * object and pass current property as well as its value\n * to a callback function\n *\n * @param {object} object\n * @param {function} callback\n * @param context\n *\n * @return mixed\n */\n\nfunction functionIterate(source, callback, context) {\n\tvar properties = object.keys(source),\n\t\ti = 0, property;\n\n\tfor(; (property = properties[i]) !== UNDEFINED; i++) {\n\t\tif(callback.call(context, property, source[property]) === FALSE) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn context;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tarrayPrototypeSlice\n*/\n\n//=require shortcuts.js\n\nfunction functionToArray(arrayLikeObject, start, end) {\n\treturn arrayPrototypeSlice.call(arrayLikeObject, start, end);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nfunction functionGetTimestamp() {\n\treturn +new Date();\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tlinkElement\n*/\n\n//=require shortcuts.js\n\nfunction functionResolveUrl(url) {\n\tlinkElement.href = url;\n\n\treturn linkElement.href;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter, regexMatchBaseUrl, regexIsAbsolutePath, regexIsAbsoluteUri,\n\tfunctionResolveUrl\n*/\n\n//=require variables.js\n//=require function/resolveUrl.js\n\nfunction functionResolvePath(uri, context) {\n\tvar path = uri.replace(regexMatchParameter, '');\n\n\tif(!regexIsAbsolutePath.test(path) && !regexIsAbsoluteUri.test(path)) {\n\t\tpath = '/' + functionResolveUrl(((context && functionResolveUrl(context + '/../')) || '/') + path).replace(regexMatchBaseUrl, '');\n\t}\n\n\treturn path;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter,\n\tfunctionResolvePath\n*/\n\n//=require variables.js\n//=require function/resolvePath.js\n\nfunction functionResolveId(uri, context) {\n\tvar parameter = uri.match(regexMatchParameter);\n\n\treturn ((parameter && parameter[1]) ? 'mock:' : '') + ((parameter && parameter[3]) || settings.handler) + '!' + functionResolvePath(uri, context);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_UNDEFINED,\n\tobjectDefineProperty,\n\tvalidatorIsTypeOf,\n\tfunctionUuid,\n\tClassDescriptor\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require validator/isTypeOf.js\n//=require function/uuid.js\n//=require class/descriptor.js\n\nfunction AbstractUuid() {\n\tif(validatorIsTypeOf(this.uuid, STRING_UNDEFINED)) {\n\t\tobjectDefineProperty(this, 'uuid', new ClassDescriptor(functionUuid()));\n\t}\n\n\treturn this;\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tAbstractUuid\n*/\n\n//=require abstract/uuid.js\n\nfunction ClassRegistry() {\n\tvar self = AbstractUuid.call(this);\n\n\tstorage[self.uuid] = {};\n\t\n\treturn self;\n}\n\nClassRegistry.prototype = {\n\tget: function(key) {\n\t\treturn key ? storage[this.uuid][key] : storage[this.uuid];\n\t},\n\tset: function(key, value) {\n\t\tstorage[this.uuid][key] = value;\n\t},\n\tremove: function(key) {\n\t\tdelete storage[this.uuid][key];\n\t}\n};\n\nClassRegistry.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tvar self = this;\n\t\n\tself.message = message;\n\t\t\n\tmodule && (self.module = module);\n\tstack && (self.stack = functionToArray(stack));\n\t\n\treturn self;\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, ERROR_LOAD,\n\tregexIsAbsoluteUri,\n\tlinkElement,\n\tfunctionIterate, functionResolveUrl,\n\tClassXhr, ClassFailure,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require variables.js\n//=require shortcuts.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require singleton/event.js\n//=require class/xhr.js\n//=require class/failure.js\n\nfunction ClassLoader(dependency) {\n\tvar pattern;\n\n\tfunction resolve(response, type) {\n\t\tif(!type || !dependency.handler.validate || dependency.handler.validate(type)) {\n\t\t\tdependency.source = response;\n\n\t\t\tsingletonEvent.emit(EVENT_POST_REQUEST, dependency.type, dependency);\n\t\t} else {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (content-type)', dependency.id));\n\t\t}\n\t}\n\n\tfunction reject(status) {\n\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + (status ? ' (status)' : ''), dependency.id));\n\t}\n\n\tfunction load(location) {\n\t\tlocation = location || 0;\n\t\tdependency.url = document.createElement('a');\n\t\t\n\t\tdependency.url.href = pattern ? functionResolveUrl(pattern.process(dependency.path, location)) : dependency.path;\n\n\t\tsingletonEvent.emit(EVENT_PRE_REQUEST, dependency.type, dependency);\n\n\t\tnew ClassXhr(dependency.url).then(\n\t\t\tresolve,\n\t\t\t(\n\t\t\t\tpattern ?\n\t\t\t\tfunction() {\n\t\t\t\t\tlocation++;\n\n\t\t\t\t\tif(pattern.location[location]) {\n\t\t\t\t\t\tload(location);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t:\n\t\t\t\treject\n\t\t\t)\n\t\t);\n\t}\n\n\tif(!regexIsAbsoluteUri.test(dependency.path)) {\n\t\tfunctionIterate(settings.pattern, function(property, value) {\n\t\t\tvalue.matches(dependency.path) && (!pattern || pattern.weight < value.weight) && (pattern = value);\n\t\t});\n\t}\n\n\tload();\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectPrototypeToString\n*/\n\n//=require shortcuts.js\n\n/**\n * isArray\n *\n * Check whether a given value is of type array\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsArray(value) {\n\treturn objectPrototypeToString.call(value) === '[object Array]';\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * hash\n *\n * Generate a hash for a given string\n *\n * @param {string} input\n *\n * @return {number}\n */\nfunction functionHash(input){\n\tvar value = 5381,\n\t\ti = input.length;\n\n\twhile(i) {\n\t\tvalue = (value * 33) ^ input.charCodeAt(--i);\n\t}\n\n\treturn value >>> 0;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, EVENT_QUEUE_DEQUEUE,\n\tfunctionToArray,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require abstract/uuid.js\n\nfunction ClassQueue() {\n\tvar self = AbstractUuid.call(this);\n\n\tstorage[self.uuid] = [];\n\t\n\treturn self;\n}\n\t\nClassQueue.prototype = {\n\tenqueue: function() {\n\t\tstorage[this.uuid] = storage[this.uuid].concat(functionToArray(arguments));\n\n\t\tsingletonEvent.emit(EVENT_QUEUE_ENQUEUE, this.uuid);\n\t},\n\tdequeue: function() {\n\t\tsingletonEvent.emit(EVENT_QUEUE_DEQUEUE, this.uuid);\n\n\t\treturn storage[this.uuid].shift();\n\t},\n\tget current() {\n\t\treturn storage[this.uuid][0];\n\t},\n\tget length() {\n\t\treturn storage[this.uuid].length;\n\t}\n};\n\t\nClassQueue.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, NULL,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require abstract/uuid.js\n\nfunction ClassProcessor(queue) {\n\tvar self = AbstractUuid.call(this),\n\t\tpointer = storage[self.uuid] = { queue: queue, current: NULL };\n\n\tdemand\n\t\t.on(EVENT_QUEUE_ENQUEUE + ':' + queue.uuid, function() {\n\t\t\t!pointer.current && self.process();\n\t\t});\n\t\n\treturn self;\n}\n\nClassProcessor.prototype = {\n\tprocess: function() {\n\t\tvar pointer = storage[this.uuid],\n\t\t\tcurrent;\n\n\t\tif(pointer.queue.length) {\n\t\t\tcurrent = pointer.current = pointer.queue.dequeue();\n\n\t\t\tcurrent.handler.process && current.handler.process(current);\n\t\t} else {\n\t\t\tpointer.current = NULL;\n\t\t}\n\t},\n\tget current() {\n\t\treturn storage[this.uuid].current;\n\t}\n};\n\t\nClassProcessor.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchSourcemap, regexIsAbsoluteUri\n\tlinkElement\n*/\n\n//=require variables.js\n//=require shortcuts.js\n\nfunction functionResolveSourcemaps(url, source) {\n\tvar match, replacement;\n\t\n\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\tlinkElement.href = url;\n\t\t\n\t\tif(regexIsAbsoluteUri.test(match[2])) {\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + match[3];\n\t\t} else {\n\t\t\tlinkElement.pathname += '/../' + match[3];\n\t\t\t\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + linkElement.pathname;\n\t\t}\n\t\t\n\t\tsource = source.replace(match[0], match[1] + ' ' + match[2] + '=' + replacement + '.map' + (match[4] ? ' ' + match[4] : ''));\n\t}\n\t\n\treturn source;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tvar self = this;\n\t\n\tself.message = message;\n\t\t\n\tmodule && (self.module = module);\n\tstack && (self.stack = functionToArray(stack));\n\t\n\treturn self;\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar arrayPrototype = Array.prototype,\n\tarrayPrototypeSlice = arrayPrototype.slice,\n\tarrayPrototypeConcat = arrayPrototype.concat,\n\tobject = Object,\n\tobjectPrototype = object.prototype,\n\tobjectPrototypeToString = objectPrototype.toString,\n\tobjectCreate = object.create,\n\tobjectDefineProperty = object.defineProperty,\n\tobjectGetOwnPropertyNames = object.getOwnPropertyNames,\n\tobjectGetOwnPropertyDescriptor = object.getOwnPropertyDescriptor,\n\tfunctionPrototype = Function.prototype,\n\tlinkElement = document.createElement('a');","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar DEMAND_ID = 'demand',\n\tPROVIDE_ID = 'provide',\n\tPATH_ID = 'path',\n\tMODULE_PREFIX = '/' + DEMAND_ID + '/',\n\tMODULE_PREFIX_ABSTRACT = MODULE_PREFIX + 'abstract/',\n\tMODULE_PREFIX_HANDLER = MODULE_PREFIX + 'handler/',\n\tMODULE_PREFIX_PLUGIN = MODULE_PREFIX + 'plugin/',\n\tMODULE_PREFIX_FUNCTION = MODULE_PREFIX + 'function/',\n\tMODULE_PREFIX_VALIDATOR = MODULE_PREFIX + 'validator/',\n\tMOCK_PREFIX = 'mock:',\n\tNULL = null,\n\tUNDEFINED = undefined,\n\tFALSE = false,\n\tTRUE = true,\n\tSTRING_UNDEFINED = 'undefined',\n\tSTRING_STRING = 'string',\n\tSTRING_BOOLEAN = 'boolean',\n\tSTRING_OBJECT = 'object',\n\tSTRING_FUNCTION = 'function',\n\tSTRING_NUMBER = 'number',\n\tFUNCTION_EMPTY = function() {},\n\tEVENT_PREFIX = 'pre',\n\tEVENT_POSTFIX = 'post',\n\tEVENT_CONFIGURE = 'Configure',\n\tEVENT_PRE_CONFIGURE = EVENT_PREFIX + EVENT_CONFIGURE,\n\tEVENT_POST_CONFIGURE = EVENT_POSTFIX + EVENT_CONFIGURE,\n\tEVENT_CACHE = 'cache',\n\tEVENT_CACHE_MISS = EVENT_CACHE + 'Miss',\n\tEVENT_CACHE_HIT = EVENT_CACHE + 'Hit',\n\tEVENT_CACHE_CLEAR = EVENT_CACHE + 'Clear',\n\tEVENT_CACHE_EXCEED = EVENT_CACHE + 'Exceed',\n\tEVENT_PRE_CACHE = EVENT_PREFIX + 'Cache',\n\tEVENT_POST_CACHE = EVENT_POSTFIX + 'Cache',\n\tEVENT_RESOLVE = 'Resolve',\n\tEVENT_PRE_RESOLVE = EVENT_PREFIX + EVENT_RESOLVE,\n\tEVENT_POST_RESOLVE = EVENT_POSTFIX + EVENT_RESOLVE,\n\tEVENT_REQUEST = 'Request',\n\tEVENT_PRE_REQUEST = EVENT_PREFIX + EVENT_REQUEST,\n\tEVENT_POST_REQUEST = EVENT_POSTFIX + EVENT_REQUEST,\n\tEVENT_PROCESS = 'Process',\n\tEVENT_PRE_PROCESS = EVENT_PREFIX + EVENT_PROCESS,\n\tEVENT_POST_PROCESS = EVENT_POSTFIX + EVENT_PROCESS,\n\tEVENT_QUEUE = 'queue',\n\tEVENT_QUEUE_ENQUEUE = EVENT_QUEUE + 'Enqueue',\n\tEVENT_QUEUE_DEQUEUE = EVENT_QUEUE + 'Dequeue',\n\tERROR_LOAD = 'error loading',\n\tERROR_PROVIDE = 'error providing',\n\tERROR_RESOLVE = 'error resolving',\n\tERROR_PROVIDE_ANONYMOUS = 'unspecified anonymous provide';","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectCreate, objectDefineProperty, objectGetOwnPropertyNames, objectGetOwnPropertyDescriptor, functionPrototype,\n\tClassDescriptor\n*/\n\n//=require shortcuts.js\n//=require class/descriptor.js\n\n(function() {\n\tfunction extend(parent) {\n\t\tvar self = this,\n\t\t\tprototype = self.prototype,\n\t\t\tproperties = {},\n\t\t\tnames = objectGetOwnPropertyNames(prototype),\n\t\t\ti = 0, property;\n\n\t\tfor(; (property = names[i]); i++) {\n\t\t\tproperties[property] = objectGetOwnPropertyDescriptor(prototype, property);\n\t\t}\n\n\t\tproperties.constructor = new ClassDescriptor(self);\n\t\tself.prototype = objectCreate(parent.prototype || parent, properties);\n\n\t\treturn self;\n\t}\n\n\tobjectDefineProperty(functionPrototype, 'extends', new ClassDescriptor(extend));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED,\n\tvalidatorIsObject,\n\tfunctionIterate\n*/\n\n//=require constants.js\n//=require validator/isObject.js\n//=require function/iterate.js\n\n/**\n * merge\n *\n * Merge two or more objects into the first one passed in\n *\n * @param {...object} object\n *\n * @return {object}\n */\nvar functionMerge = (function() {\n\tfunction mergeProperties(property, value) {\n\t\tvar targetProperty = this[property],\n\t\t\ttargetPropertyIsObject;\n\n\t\tif(value !== UNDEFINED) {\n\t\t\tif(validatorIsObject(value)) {\n\t\t\t\ttargetPropertyIsObject = validatorIsObject(targetProperty);\n\n\t\t\t\tif(value.length !== UNDEFINED) {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length !== UNDEFINED) ? targetProperty : [];\n\t\t\t\t} else {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length === UNDEFINED) ? targetProperty : {};\n\t\t\t\t}\n\n\t\t\t\tthis[property] = functionMerge(targetProperty, value);\n\t\t\t} else {\n\t\t\t\tthis[property] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn function functionMerge() {\n\t\tvar target = arguments[0],\n\t\t\ti = 1, properties;\n\n\t\tfor(; (properties = arguments[i]) !== UNDEFINED; i++) {\n\t\t\tfunctionIterate(properties, mergeProperties, target);\n\t\t}\n\n\t\treturn target;\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionUuid = (function() {\n\tvar regex = new RegExp('[xy]', 'g'),\n\t\tstorage = {};\n\n\tfunction randomize(character) {\n\t\tvar r = Math.random() * 16 | 0;\n\n\t\treturn ((character === 'x') ? r : (r & 0x3 | 0x8)).toString(16);\n\t}\n\n\treturn function functionUuid() {\n\t\tvar uuid;\n\n\t\tdo {\n\t\t\tuuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(regex, randomize);\n\t\t} while(storage[uuid]);\n\n\t\tstorage[uuid] = 1;\n\n\t\treturn uuid;\n\t};\n}());","/**\n * Based on setAsap:\n * Repo: https://github.com/taylorhakes/setAsap\n * License: https://github.com/taylorhakes/setAsap/blob/master/LICENSE\n */\n\n/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, TRUE, FALSE,\n\tfunctionUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/uuid.js\n\n/**\n * defer\n *\n * delay function execution like setImmediate does\n *\n * @param {function} function\n */\nvar functionDefer = (function() {\n\tvar hasSetImmediate = 'setImmediate' in global,\n\t\telement, fallback;\n\n\tif('MutationObserver' in global) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement = document.createElement('div');\n\n\t\t\tnew MutationObserver(function() { fn(); })\n\t\t\t\t.observe(element, { attributes: TRUE });\n\n\t\t\telement.setAttribute('i', '1');\n\t\t};\n\t}\n\n\tif(!hasSetImmediate && 'postMessage' in global && !('importScripts' in global) && 'addEventListener' in global) {\n\t\treturn (function() {\n\t\t\tfunction onMessage(event) {\n\t\t\t\tif(event.source === global && event.data && storage[event.data]) {\n\t\t\t\t\tstorage[event.data]();\n\n\t\t\t\t\tdelete storage[event.data];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tglobal.addEventListener('message', onMessage, FALSE);\n\n\t\t\treturn function functionDefer(fn) {\n\t\t\t\tvar uuid = functionUuid();\n\n\t\t\t\tstorage[uuid] = fn;\n\n\t\t\t\tglobal.postMessage(uuid, '*');\n\t\t\t};\n\t\t}());\n\t}\n\n\tif(!hasSetImmediate && 'onreadystatechange' in (element = document.createElement('script'))) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement.onreadystatechange = function onreadystatechange() {\n\t\t\t\telement.onreadystatechange = NULL;\n\t\t\t\telement.parentNode.removeChild(element);\n\n\t\t\t\tfn();\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(element);\n\t\t};\n\t}\n\n\t/* eslint-disable no-undef */\n\tfallback = hasSetImmediate ? setImmediate : setTimeout;\n\t/* eslint-enable no-undef */\n\n\treturn function functionDefer(fn) {\n\t\tfallback(fn);\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, STRING_STRING, STRING_FUNCTION, EVENT_POST_CONFIGURE,\n\tvalidatorIsTypeOf,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/toArray.js\n\nvar singletonEvent = (function() {\n\tvar TYPE_ON = 'on',\n\t\tTYPE_AFTER = 'after',\n\t\tregexMatchEvent = /^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,\n\t\tlistener = {};\n\n\tfunction addListener(type, events, callback) {\n\t\tvar event, pointer;\n\n\t\tif(validatorIsTypeOf(events, STRING_STRING) && validatorIsTypeOf(callback, STRING_FUNCTION)) {\n\t\t\tevents = events.split(' ');\n\n\t\t\twhile(event = events.shift()) {\n\t\t\t\tevent = event.split(':');\n\n\t\t\t\tif(regexMatchEvent.test(event[0])) {\n\t\t\t\t\t(listener[event[0]] || (listener[event[0]] = { on: [], after: [] }))[type].push({ callback: callback, filter: event[1] });\n\n\t\t\t\t\tif(type === TYPE_ON && event[0] === EVENT_POST_CONFIGURE && (pointer = settings.modules[event[1]])) {\n\t\t\t\t\t\tcallback(pointer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction Event() {}\n\n\tEvent.prototype = {\n\t\temit: function (event, filter) {\n\t\t\tvar pointer = listener[event],\n\t\t\t\tparameter, i, item;\n\n\t\t\tif(pointer) {\n\t\t\t\tparameter = functionToArray(arguments, 2);\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_ON][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_AFTER][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\t\ton: function(events, callback) {\n\t\t\taddListener(TYPE_ON, events,callback);\n\n\t\t\treturn this;\n\t\t},\n\t\tafter: function(events, callback) {\n\t\t\taddListener(TYPE_AFTER, events,callback);\n\n\t\t\treturn this;\n\t\t}\n\t};\n\n\treturn new Event();\n}());\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionEscapeRegex = (function() {\n\tvar regexMatchRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\n\treturn function functionEscapeRegex(value) {\n\t\treturn value.replace(regexMatchRegex, '\\\\$&');\n\t};\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, PROVIDE_ID, PATH_ID,\n\tfunctionEscapeRegex, functionResolveUrl\n*/\n\n//=require constants.js\n//=require function/escapeRegex.js\n//=require function/resolveUrl.js\n\nvar regexIsAbsoluteUri = /^(http(s?):)?\\/\\//i,\n\tregexIsAbsolutePath = /^\\//,\n\tregexMatchSourcemap = /((?:\\/\\/|\\/\\*)#)\\s*(sourceMappingURL)\\s*=\\s*(?!(?:http[s]?:)?\\/\\/)(.+?)\\.map(?:\\s+)?(\\*\\/)?/g,\n\tregexMatchBaseUrl = new RegExp('^' + functionEscapeRegex(functionResolveUrl('/'))),\n\tregexMatchInternal = new RegExp('^' + DEMAND_ID + '|' + PROVIDE_ID + '|' + PATH_ID + '$'),\n\tregexMatchParameter = /^(mock:)?([+-])?((?:[-\\w]+\\/?)+)?(?:@(.+?))?(?:#(\\d+))?!/;","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, FUNCTION_EMPTY, EVENT_POST_REQUEST, EVENT_POST_PROCESS, EVENT_CACHE_HIT, EVENT_CACHE_MISS, EVENT_CACHE_EXCEED, EVENT_CACHE_CLEAR, EVENT_PRE_CACHE, EVENT_PRE_CACHE, EVENT_POST_CACHE, STRING_STRING, NULL, FALSE, TRUE,\n\tvalidatorIsTypeOf,\n\tfunctionGetTimestamp, functionEscapeRegex, functionIterate, functionDefer, functionResolveId, functionToArray,\n\tClassDependency,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/getTimestamp.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n//=require function/defer.js\n//=require function/resolveId.js\n//=require function/toArray.js\n//=require singleton/event.js\n\nvar singletonCache = (function() {\n\tvar STORAGE_PREFIX = '[' + DEMAND_ID + ']',\n\t\tSTORAGE_SUFFIX_STATE = '[state]',\n\t\tSTORAGE_SUFFIX_VALUE = '[value]',\n\t\tregexMatchState = new RegExp('^' + functionEscapeRegex(STORAGE_PREFIX) + '\\\\[(.+?)\\\\]' + functionEscapeRegex(STORAGE_SUFFIX_STATE) + '$'),\n\t\tregexMatchProperties = /^(.+?),(\\d+),(\\d*),(.+?),(\\d+)$/,\n\t\tsupportsLocalStorage = (function() { try { return 'localStorage' in global && global.localStorage; } catch(exception) { return FALSE; } }()),\n\t\tlocalStorage = supportsLocalStorage ? global.localStorage : NULL,\n\t\tsupportsRemainingSpace = supportsLocalStorage && 'remainingSpace' in localStorage,\n\t\tstorage = {},\n\t\tcache;\n\n\tsingletonEvent\n\t\t.on(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tfunctionDefer(function() {\n\t\t\t\tcache.clear.path(dependency.id);\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_CACHE_EXCEED, function(dependency) {\n\t\t\tdemand('-!/' + DEMAND_ID + '/cache/dispose').then(function(cacheDispose) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcacheDispose(dependency.source.length);\n\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tif(dependency.source && enabled(dependency)) {\n\t\t\t\tstorage[dependency.id] = TRUE;\n\t\t\t}\n\t\t})\n\t\t.after(EVENT_POST_PROCESS, function(dependency) {\n\t\t\tif(storage[dependency.id]) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\tfunction enabled(dependency) {\n\t\tvar match;\n\n\t\tif(dependency.cache !== NULL) {\n\t\t\treturn dependency.cache;\n\t\t}\n\n\t\tfunctionIterate(settings.cache, function(property, value) {\n\t\t\tif(dependency.path.indexOf(property) === 0 && (!match || value.weight > match.weight)) {\n\t\t\t\tmatch = value;\n\t\t\t}\n\t\t});\n\n\t\treturn match ? match.state : FALSE;\n\t}\n\t\n\tfunction getKey(key) {\n\t\treturn localStorage.getItem(key);\n\t}\n\t\n\tfunction setKey(key, value) {\n\t\tlocalStorage[value ? 'setItem' : 'removeItem'](key, value);\n\t}\n\t\n\tfunction getState(key) {\n\t\tvar state = getKey(key),\n\t\t\tmatches;\n\n\t\tif(state && (matches = state.match(regexMatchProperties))) {\n\t\t\treturn functionToArray(matches, 1);\n\t\t}\n\t}\n\t\n\tfunction setState(key, state) {\n\t\tstate[4] = functionGetTimestamp();\n\n\t\tsetKey(key, state.join(','));\n\t}\n\n\tfunction emit(event, dependency, state) {\n\t\tsingletonEvent.emit(event, dependency.id, dependency, state);\n\t}\n\n\tfunction Cache() {\n\t\tfunctionDefer(this.clear.expired.bind(this.clear));\n\t}\n\n\tCache.prototype = {\n\t\tget: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar id, state;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(id + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[0] === dependency.version && ((!state[2] && !dependency.lifetime) || state[2] > functionGetTimestamp())) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdependency.source = getKey(id + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn TRUE;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tresolve: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\t\t\t\t\t\tif(self.get(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_HIT, dependency);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_MISS, dependency);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : function(dependency) { emit(EVENT_CACHE_MISS, dependency); },\n\t\tset: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar state, id, spaceBefore;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate = [ dependency.version, dependency.source.length, dependency.lifetime ? functionGetTimestamp() + dependency.lifetime : NULL, demand.version ];\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_PRE_CACHE, dependency, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\tspaceBefore = supportsRemainingSpace ? localStorage.remainingSpace : NULL;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(id + STORAGE_SUFFIX_VALUE, dependency.source);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// strict equality check with \"===\" is required due to spaceBefore might be \"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(spaceBefore !== NULL && localStorage.remainingSpace === spaceBefore) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_POST_CACHE, dependency, state);\n\t\t\t\t\t\t\t\t\t\t\t\t} catch(error) {\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_EXCEED, dependency);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tclear: {\n\t\t\tpath: supportsLocalStorage ? function(path) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar id = functionResolveId(path),\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey = STORAGE_PREFIX + '[' + id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(getKey(key + STORAGE_SUFFIX_STATE)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_STATE);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_CLEAR, ClassDependency.get(id) || new ClassDependency(id, NULL, FALSE));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\tall: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar match;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch && this.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\texpired: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar self = this,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch, state;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(match) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(STORAGE_PREFIX + '[' + match[1] + ']' + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[2] > 0 && state[2] <= functionGetTimestamp()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tself.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY\n\t\t}\n\t};\n\n\treturn (cache = new Cache());\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n \tFUNCTION_EMPTY, NULL,\n\tarrayPrototypeConcat,\n\tfunctionDefer, functionUuid, functionToArray,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/defer.js\n//=require function/uuid.js\n//=require function/toArray.js\n//=require abstract/uuid.js\n\nvar ClassPledge = (function() {\n\tvar PLEDGE_PENDING = 'pending',\n\t\tPLEDGE_RESOLVED = 'resolved',\n\t\tPLEDGE_REJECTED = 'rejected',\n\t\tstorage = {};\n\n\tfunction resolve() {\n\t\tstorage[this.uuid].handle(PLEDGE_RESOLVED, arguments);\n\t}\n\n\tfunction reject() {\n\t\tstorage[this.uuid].handle(PLEDGE_REJECTED, arguments);\n\t}\n\n\tfunction handle(state, parameter) {\n\t\tvar properties = storage[this.uuid],\n\t\t\tpointer, result;\n\n\t\tif(properties.state === PLEDGE_PENDING) {\n\t\t\tproperties.state = state;\n\t\t\tproperties.value = parameter;\n\t\t}\n\n\t\twhile(pointer = properties[properties.state].shift()) {\n\t\t\tresult = pointer.handler.apply(NULL, properties.value);\n\n\t\t\tif(result && typeof result.then === 'function') {\n\t\t\t\tresult.then(pointer.dfd.resolve, pointer.dfd.reject);\n\t\t\t} else {\n\t\t\t\tpointer.dfd[properties.state === PLEDGE_RESOLVED ? 'resolve' : 'reject'].apply(NULL, properties.value);\n\t\t\t}\n\t\t}\n\n\t\tproperties[PLEDGE_RESOLVED].length = 0;\n\t\tproperties[PLEDGE_REJECTED].length = 0;\n\t}\n\n\tfunction observe(pledge, index, properties) {\n\t\tpledge.then(\n\t\t\tfunction() {\n\t\t\t\tproperties.resolved[index] = functionToArray(arguments);\n\n\t\t\t\tproperties.count++;\n\n\t\t\t\tcheck(properties);\n\t\t\t},\n\t\t\tfunction() {\n\t\t\t\tproperties.rejected.push(functionToArray(arguments));\n\n\t\t\t\tcheck(properties);\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction check(properties) {\n\t\tif(properties.count === properties.total) {\n\t\t\tproperties.dfd.resolve.apply(NULL, arrayPrototypeConcat.apply([], properties.resolved));\n\t\t} else if(properties.rejected.length + properties.count === properties.total) {\n\t\t\tproperties.dfd.reject.apply(NULL, arrayPrototypeConcat.apply([], properties.rejected));\n\t\t}\n\t}\n\n\tfunction ClassPledge(executor) {\n\t\tvar self = AbstractUuid.call(this);\n\n\t\tstorage[self.uuid] = { state: PLEDGE_PENDING, handle: handle.bind(self), value: NULL, resolved: [], rejected: [], count: 0 };\n\n\t\texecutor(resolve.bind(self), reject.bind(self));\n\t\t\n\t\treturn self;\n\t}\n\n\tClassPledge.prototype = {\n\t\t'catch': function(listener) {\n\t\t\treturn this.then(FUNCTION_EMPTY, listener);\n\t\t},\n\t\talways: function(alwaysListener) {\n\t\t\treturn this.then(alwaysListener, alwaysListener);\n\t\t},\n\t\tthen: function(resolveListener, rejectListener) {\n\t\t\tvar properties = storage[this.uuid],\n\t\t\t\tdfd = ClassPledge.defer();\n\n\t\t\tresolveListener && properties[PLEDGE_RESOLVED].push({ handler: resolveListener, dfd: dfd });\n\t\t\trejectListener && properties[PLEDGE_REJECTED].push({ handler: rejectListener, dfd: dfd });\n\n\t\t\tif(properties.state !== PLEDGE_PENDING) {\n\t\t\t\tfunctionDefer(properties.handle);\n\t\t\t}\n\n\t\t\treturn dfd.pledge;\n\t\t},\n\t\tisPending: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_PENDING;\n\t\t},\n\t\tisResolved: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_RESOLVED;\n\t\t},\n\t\tisRejected: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_REJECTED;\n\t\t}\n\t};\n\n\tClassPledge.defer = function() {\n\t\tvar self = {};\n\n\t\tself.pledge = new ClassPledge(function(resolveListener, rejectListener) {\n\t\t\tself.resolve = resolveListener;\n\t\t\tself.reject = rejectListener;\n\t\t});\n\n\t\treturn self;\n\t};\n\n\tClassPledge.all = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\tproperties, i = 0, pledge;\n\t\t\n\t\tif(pledges.length) {\n\t\t\tproperties = (storage[functionUuid()] = { dfd: dfd, resolved: [], rejected: [], total: pledges.length, count: 0 })\n\t\t\t\n\t\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\t\tobserve(pledge, i, properties)\n\t\t\t}\n\t\t} else {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\tClassPledge.race = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\ti = 0, pledge;\n\n\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\tpledge.then(dfd.resolve, dfd.reject);\n\t\t}\n\t\t\n\t\tif(!pledges.length) {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\treturn ClassPledge.extends(AbstractUuid);\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, MODULE_PREFIX_HANDLER, ERROR_LOAD, DEMAND_ID, PROVIDE_ID, PATH_ID, MOCK_PREFIX, NULL, TRUE, FALSE,\n\tobject,\n\tregexMatchInternal, regexMatchParameter,\n\tvalidatorIsPositive,\n\tfunctionResolvePath, functionResolveId, functionResolveUrl, functionIterate, functionToArray,\n\tClassRegistry, ClassPledge, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require validator/isPositive.js\n//=require function/resolvePath.js\n//=require function/resolveId.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require function/toArray.js\n//=require class/registry.js\n//=require class/pledge.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar ClassDependency = (function() {\n\tvar PREFIX_INTERNAL = 'internal!',\n\t\tregistry = new ClassRegistry(),\n\t\tplaceholder = [];\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = value;\n\t}\n\n\tfunction addPending(id, dependency) {\n\t\tif(dependency.pledge.isPending()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addResolved(id, dependency) {\n\t\tif(dependency.pledge.isResolved()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addRejected(id, dependency) {\n\t\tif(dependency.pledge.isRejected()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction ClassDependency(uri, context, register) {\n\t\tvar self = this,\n\t\t\tparameter = uri.match(regexMatchParameter) || placeholder;\n\n\t\tself.path = functionResolvePath(uri, context);\n\t\tself.mock = parameter[1] ? TRUE : FALSE;\n\t\tself.cache = parameter[2] ? parameter[1] === '+' : NULL;\n\t\tself.type = parameter[3] || settings.handler;\n\t\tself.version = parameter[4] || settings.version;\n\t\tself.lifetime = (parameter[5] && parameter[5] * 1000) || settings.lifetime;\n\t\tself.id = (self.mock ? MOCK_PREFIX : '' ) + self.type + '!' + self.path;\n\t\tself.uri = (self.mock ? MOCK_PREFIX : '' ) + self.type + '@' + self.version + (validatorIsPositive(self.lifetime) && self.lifetime > 0 ? '#' + self.lifetime : '' ) + '!' + self.path;\n\t\tself.dfd = ClassPledge.defer();\n\t\tself.pledge = self.dfd.pledge;\n\t\t\n\t\tself.pledge.then(function() {\n\t\t\tself.value = functionToArray(arguments);\n\t\t});\n\n\t\t(register !== FALSE) && registry.set(self.id, self);\n\n\t\treturn self;\n\t}\n\n\tClassDependency.prototype = {\n\t\tenqueue: true // handled by handler\n\t\t/* only for reference\n\t \tpath: NULL,\n\t \tmock: NULL,\n\t\tcache: NULL,\n\t\ttype: NULL,\n\t\tversion: NULL,\n\t\tlifetime: NULL,\n\t \tid: NULL,\n\t \turi: NULL,\n\t\tdfd: NULL,\n\t\tpledge: NULL,\n\t\tvalue: NULL,\n\t\thandler: NULL, // set by Dependency.resolve\n\t \tsource: NULL, // set by Cache or Loader\n\t \turl: NULL // optional, set by Loader\n\t\t*/\n\t};\n\n\tClassDependency.get = function(uri, context) {\n\t\treturn registry.get(functionResolveId(uri, context));\n\t};\n\n\tClassDependency.resolve = function(uri, context) {\n\t\tvar isInternal = context && regexMatchInternal.test(uri),\n\t\t\tdependency = isInternal ? this.get(PREFIX_INTERNAL + context + '/' + uri) : this.get(uri, context),\n\t\t\tvalue;\n\n\t\tif(!dependency) {\n\t\t\tif(isInternal) {\n\t\t\t\tdependency = new ClassDependency(PREFIX_INTERNAL + context + '/' + uri);\n\n\t\t\t\tswitch(uri) {\n\t\t\t\t\tcase DEMAND_ID:\n\t\t\t\t\t\tvalue = (function() {\n\t\t\t\t\t\t\treturn functionIterate(demand, setProperty, demand.bind(context));\n\t\t\t\t\t\t}());\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PROVIDE_ID:\n\t\t\t\t\t\tvalue = provide.bind(context);\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PATH_ID:\n\t\t\t\t\t\tvalue = context;\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdependency.dfd.resolve(value);\n\t\t\t} else {\n\t\t\t\tdependency = new ClassDependency(uri, context);\n\n\t\t\t\tdemand(MODULE_PREFIX_HANDLER + dependency.type)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction(handler) {\n\t\t\t\t\t\t\tdependency.handler = handler;\n\n\t\t\t\t\t\t\tif(dependency.mock) {\n\t\t\t\t\t\t\t\tdependency.dfd.resolve(handler);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsingletonCache.resolve(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (handler)', self.id));\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn dependency;\n\t};\n\n\tClassDependency.remove = function(uri, context, cache) {\n\t\tvar id = functionResolveId(uri, context),\n\t\t\tnode = document.querySelector('[' + DEMAND_ID + '-id=\"' + id + '\"]');\n\n\t\tregistry.remove(id);\n\t\tregistry.remove(MOCK_PREFIX + id);\n\n\t\tnode && node.parentNode.removeChild(node);\n\n\t\t(cache !== FALSE) && singletonCache.clear.path(id);\n\t};\n\n\tClassDependency.list = {\n\t\tall: function() {\n\t\t\treturn object.keys(registry.get());\n\t\t},\n\t\tpending: function() {\n\t\t\treturn functionIterate(registry.get(), addPending, []);\n\t\t},\n\t\tresolved: function() {\n\t\t\treturn functionIterate(registry.get(), addResolved, []);\n\t\t},\n\t\trejected: function() {\n\t\t\treturn functionIterate(registry.get(), addRejected, []);\n\t\t}\n\t};\n\n\treturn ClassDependency;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tfunctionResolveUrl, functionEscapeRegex, functionIterate\n*/\n\n//=require function/resolveUrl.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n\nvar ClassPattern = (function() {\n\tvar regexMatchTrailingSlash = /(.+)\\/$/;\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = {\n\t\t\turl: functionResolveUrl(value).replace(regexMatchTrailingSlash, '$1'),\n\t\t\tmatch: new RegExp('^' + functionEscapeRegex(value))\n\t\t};\n\t}\n\n\tfunction ClassPattern(pattern, url) {\n\t\tvar self = this;\n\n\t\tself.weight = pattern.length;\n\t\tself.match = new RegExp('^' + functionEscapeRegex(pattern));\n\t\tself.location = [].concat(url);\n\n\t\tfunctionIterate(self.location, setProperty, self.location);\n\t}\n\n\tClassPattern.prototype = {\n\t\t/* only for reference\n\t\t weight: 0,\n\t\t match: NULL,\n\t\t location: NULL,\n\t\t */\n\t\tmatches: function(path) {\n\t\t\treturn this.match.test(path);\n\t\t},\n\t\tprocess: function(path, index) {\n\t\t\tvar current = this.location[index];\n\n\t\t\tif(current) {\n\t\t\t\treturn path.replace(this.match, current.url);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn ClassPattern;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tTRUE,\n\tregexMatchBaseUrl,\n\tClassPledge\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require class/pledge.js\n\nvar ClassXhr = (function(XMLHttpRequest) {\n\tvar XDomainRequest = 'XDomainRequest' in global && global.XDomainRequest || XMLHttpRequest;\n\t\n\tfunction checkState() {\n\t\tif(this.readyState < 4) {\n\t\t\tthis.abort();\n\t\t}\n\t}\n\t\n\treturn function ClassXhr(url) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\txhr = regexMatchBaseUrl.test(url) ? new XMLHttpRequest() : new XDomainRequest(),\n\t\t\tboundCheckState = checkState.bind(xhr),\n\t\t\ttimeout = settings.timeout,\n\t\t\tpointer;\n\n\t\txhr.ontimeout = xhr.onerror = xhr.onabort = function() {\n\t\t\tdfd.reject(xhr.status);\n\t\t};\n\t\txhr.onprogress = xhr.onreadystatechange = function() {\n\t\t\tclearTimeout(pointer);\n\n\t\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t};\n\t\txhr.onload = function() {\n\t\t\tpointer = clearTimeout(pointer);\n\n\t\t\tif(!('status' in xhr) || xhr.status === 200) {\n\t\t\t\tdfd.resolve(xhr.responseText, xhr.getResponseHeader && xhr.getResponseHeader('content-type'));\n\t\t\t} else {\n\t\t\t\tdfd.reject(xhr.status);\n\t\t\t}\n\t\t};\n\n\t\txhr.open('GET', url, TRUE);\n\t\txhr.send();\n\t\t\n\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t\n\t\treturn dfd.pledge;\n\t};\n}(XMLHttpRequest));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_BOOLEAN, STRING_STRING, EVENT_PRE_RESOLVE, EVENT_POST_RESOLVE, EVENT_PRE_CONFIGURE, EVENT_POST_CONFIGURE, EVENT_CACHE_MISS, EVENT_CACHE_HIT, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, EVENT_PRE_PROCESS, EVENT_POST_PROCESS, NULL, FALSE,\n\tvalidatorIsTypeOf, validatorIsObject, validatorIsPositive, validatorIsInstanceOf,\n\tfunctionIterate, functionMerge, functionDefer, functionToArray,\n\tClassPledge, ClassDependency, ClassPattern, ClassLoader, \n\tsingletonEvent, singletonCache\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require validator/isPositive.js\n//=require validator/isInstanceOf.js\n//=require function/iterate.js\n//=require function/merge.js\n//=require function/defer.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require singleton/cache.js\n//=require class/pledge.js\n//=require class/dependency.js\n//=require class/pattern.js\n//=require class/loader.js\n\nglobal.demand = (function() {\n\tfunction updateCacheSettings(property, value) {\n\t\tthis[property] = { weight: property.length, state: value };\n\t}\n\n\tfunction updatePatternSettings(property, value) {\n\t\tproperty !== 'base' && (this[property] = new ClassPattern(property, value));\n\t}\n\n\tfunction updateModuleSettings(property, value) {\n\t\tvar temp = this[property] = this[property] || {};\n\n\t\tsingletonEvent.emit(EVENT_PRE_CONFIGURE, property, temp);\n\n\t\tfunctionMerge(temp, value);\n\n\t\tsingletonEvent.emit(EVENT_POST_CONFIGURE, property, temp);\n\t}\n\n\tfunction demand() {\n\t\tvar dependencies = functionToArray(arguments),\n\t\t\tcontext = this !== global ? this : NULL,\n\t\t\ti = 0, uri, dfd, result;\n\t\t\n\t\tsingletonEvent.emit(EVENT_PRE_RESOLVE, NULL, dependencies, context);\n\t\t\n\t\tfor(; (uri = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(uri, STRING_STRING)) {\n\t\t\t\tdependencies[i] = ClassDependency.resolve(uri, context).pledge;\n\t\t\t} else {\n\t\t\t\tdependencies[i] = (dfd = ClassPledge.defer()).pledge;\n\n\t\t\t\tdfd.resolve(uri);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(dependencies.length > 1) {\n\t\t\tresult = ClassPledge.all(dependencies);\n\t\t} else {\n\t\t\tresult = dependencies[0];\n\t\t}\n\t\t\n\t\treturn result.always(function() {\n\t\t\tsingletonEvent.emit(EVENT_POST_RESOLVE, NULL, dependencies, context);\n\t\t});\n\t}\n\n\tdemand.configure = function(options) {\n\t\tvar cache = options.cache,\n\t\t\tversion = options.version,\n\t\t\ttimeout = options.timeout,\n\t\t\tlifetime = options.lifetime,\n\t\t\tbase = options.base,\n\t\t\tpattern = options.pattern,\n\t\t\tmodules = options.modules,\n\t\t\tpointer = settings.modules;\n\n\t\tif(validatorIsTypeOf(cache, STRING_BOOLEAN)) {\n\t\t\tsettings.cache[''] = { weight: 0, state: cache };\n\t\t} else if(validatorIsObject(cache)) {\n\t\t\tfunctionIterate(cache, updateCacheSettings, settings.cache);\n\t\t}\n\n\t\tif(validatorIsTypeOf(version, STRING_STRING)) {\n\t\t\tsettings.version = version;\n\t\t}\n\n\t\tif(validatorIsPositive(timeout)) {\n\t\t\tsettings.timeout = Math.min(Math.max(timeout, 2), 12) * 1000;\n\t\t}\n\n\t\tif(validatorIsPositive(lifetime) && lifetime > 0) {\n\t\t\tsettings.lifetime = lifetime * 1000;\n\t\t}\n\n\t\tif(validatorIsTypeOf(base, STRING_STRING) && base !== '') {\n\t\t\tsettings.pattern.base = new ClassPattern('', base);\n\t\t}\n\n\t\tif(validatorIsObject(pattern)) {\n\t\t\tfunctionIterate(pattern, updatePatternSettings, settings.pattern);\n\t\t}\n\n\t\tif(validatorIsObject(modules)) {\n\t\t\tfunctionIterate(modules, updateModuleSettings, pointer);\n\t\t}\n\n\t\treturn demand;\n\t};\n\n\tdemand.version = '{{gulp:package.version}}';\n\tdemand.on = singletonEvent.on.bind(demand);\n\tdemand.get = function(uri, context) { var dependency = ClassDependency.get(uri, context); return dependency && dependency.value; };\n\tdemand.remove = ClassDependency.remove;\n\tdemand.list = ClassDependency.list;\n\tdemand.clear = singletonCache.clear;\n\n\tsingletonEvent\n\t\t.after(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tnew ClassLoader(dependency);\n\t\t})\n\t\t.after(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPostRequest;\n\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_CACHE_HIT + ' ' + EVENT_POST_REQUEST, function(dependency) {\n\t\t\tsingletonEvent.emit(EVENT_PRE_PROCESS, dependency.id, dependency);\n\t\t})\n\t\t.after(EVENT_PRE_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreRequest;\n\t\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_PRE_PROCESS, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreProcess;\n\t\t\t\n\t\t\tpointer && pointer(dependency);\n\t\t\t\n\t\t\tdependency.pledge.then(function() {\n\t\t\t\tsingletonEvent.emit(EVENT_POST_PROCESS, dependency.id, dependency);\n\t\t\t});\n\n\t\t\tif(dependency.enqueue === true) {\n\t\t\t\tqueue.enqueue(dependency);\n\t\t\t} else if(validatorIsInstanceOf(dependency.enqueue, ClassPledge)) {\n\t\t\t\tdependency.enqueue.then(function() { queue.enqueue(dependency); });\n\t\t\t}\n\t\t});\n\n\treturn demand;\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_STRING, STRING_UNDEFINED, STRING_FUNCTION, ERROR_PROVIDE, ERROR_PROVIDE_ANONYMOUS, NULL,\n\tvalidatorIsTypeOf, validatorIsArray,\n\tClassDependency, ClassFailure\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isArray.js\n//=require class/dependency.js\n//=require class/failure.js\n\nglobal.provide = function provide() {\n\tvar uri = validatorIsTypeOf(arguments[0], STRING_STRING) ? arguments[0] : NULL,\n\t\tcontext = this !== global ? this : NULL,\n\t\tdependencies = validatorIsArray(arguments[uri ? 1 : 0]) ? arguments[uri ? 1 : 0] : NULL,\n\t\tdefinition = dependencies ? arguments[uri ? 2 : 1] : arguments[uri ? 1 : 0],\n\t\tmodule, isFunction;\n\n\tif(!uri && processor.current) {\n\t\tmodule = processor.current;\n\t\turi = module.uri;\n\n\t\tprocessor.process();\n\t}\n\t\n\tif(uri) {\n\t\tmodule = module || new ClassDependency(uri, context);\n\t\tisFunction = validatorIsTypeOf(definition, STRING_FUNCTION);\n\n\t\tif(dependencies) {\n\t\t\tdemand\n\t\t\t\t.apply(module.path, dependencies)\n\t\t\t\t.then(\n\t\t\t\t\tfunction() { module.dfd.resolve(isFunction ? definition.apply(NULL, arguments) : definition); },\n\t\t\t\t\tfunction() { module.dfd.reject(new ClassFailure(ERROR_PROVIDE, module.id, arguments)); }\n\t\t\t\t);\n\t\t} else {\n\t\t\tmodule.dfd.resolve(isFunction ? definition() : definition);\n\t\t}\n\t} else {\n\t\t/* eslint-disable no-console */\n\t\t!validatorIsTypeOf(console, STRING_UNDEFINED) && console.error(new ClassFailure(ERROR_PROVIDE_ANONYMOUS));\n\t\t/* eslint-enable no-console */\n\t}\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nvar abstractHandler = (function() {\n\tfunction AbstractHandler() {\n\n\t}\n\n\tAbstractHandler.prototype = {\n\t\tvalidate: NULL,\n\t\tonPreRequest: NULL,\n\t\tonPostRequest: NULL,\n\t\tonPreProcess: NULL,\n\t\tprocess: NULL\n\t};\n\n\treturn AbstractHandler;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, TRUE,\n\tfunctionResolveSourcemaps,\n\tabstractHandler\n*/\n\n//=require constants.js\n//=require function/resolveSourcemaps.js\n//=require abstract/handler.js\n\nvar handlerModule = (function() {\n\tvar suffix = '.js',\n\t\ttarget = document.getElementsByTagName('head')[0],\n\t\tregexMatchType = /^(application|text)\\/(x-)?javascript/;\n\n\tfunction HandlerModule() {}\n\n\tHandlerModule.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar pathname = dependency.url.pathname;\n\t\t\t\n\t\t\tdependency.url.pathname = pathname.slice(-suffix.length) !== suffix ? pathname + suffix : pathname;\n\t\t},\n\t\tonPostRequest: function(dependency) {\n\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, dependency.source);\n\t\t},\n\t\tprocess: function(dependency) {\n\t\t\tvar script;\n\n\t\t\tif(dependency.source) {\n\t\t\t\tscript = document.createElement('script');\n\t\t\t\tscript.async = TRUE;\n\t\t\t\tscript.text = dependency.source;\n\n\t\t\t\tscript.setAttribute(DEMAND_ID + '-id', dependency.id);\n\n\t\t\t\ttarget.appendChild(script);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerModule.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, ERROR_RESOLVE, MOCK_PREFIX, STRING_STRING, FALSE, TRUE,\n\tregexMatchParameter, regexMatchSourcemap,\n\tvalidatorIsTypeOf, validatorIsObject,\n\tfunctionIterate, functionResolveId,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure,\n\thandlerModule\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/resolveId.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n//=require handler/module.js\n\nvar handlerBundle = (function() {\n\tvar path = MODULE_PREFIX_HANDLER + 'bundle',\n\t\tsettings = {};\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tsettings = options;\n\n\t\t\t\tfunctionIterate(settings, updateDependencies);\n\t\t\t}\n\t\t});\n\n\tfunction updateDependencies(uri, dependencies) {\n\t\tvar i, dependency;\n\n\t\tfor(i = 0; (dependency = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING)) {\n\t\t\t\tdependencies[i] = functionResolveId(dependency);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getType(dependencies) {\n\t\tvar type, i = 0, temp;\n\n\t\tfor(; (temp = dependencies[i]); i++) {\n\t\t\ttemp = temp.match(regexMatchParameter);\n\t\t\ttemp = (temp && temp[3]) || settings.handler;\n\n\t\t\tif(type) {\n\t\t\t\tif(temp !== type) {\n\t\t\t\t\treturn FALSE;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttype = temp;\n\t\t\t}\n\t\t}\n\n\t\treturn type;\n\t}\n\n\tfunction HandlerBundle() {}\n\n\tHandlerBundle.prototype = {\n\t\tvalidate: handlerModule.validate,\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar source = dependency.source,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tdependencies = settings[dependency.path],\n\t\t\t\ttype, match, pledges, temp, i;\n\n\t\t\tdependency.enqueue = FALSE;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\tif(dependencies && (type = getType(dependencies))) {\n\t\t\t\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\t\t\t\tsource = source.replace(match[0], '');\n\t\t\t\t}\n\n\t\t\t\tdependency.source = source;\n\t\t\t\tpledges = [];\n\n\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\tpledges.push(ClassDependency.resolve(MOCK_PREFIX + temp).pledge);\n\t\t\t\t}\n\n\t\t\t\tClassPledge.all(pledges).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\t\t\ttemp = dependencies[i] = ClassDependency.get(temp) || new ClassDependency(temp);\n\t\t\t\t\t\t\ttemp.handler = arguments[i];\n\n\t\t\t\t\t\t\tpledges.push(temp.pledge);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(type === 'module') {\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t\t},\n\t\t\t\t\treject\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treject();\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerBundle.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tFALSE, EVENT_POST_REQUEST, ERROR_RESOLVE,\n\tfunctionResolveSourcemaps,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure\n*/\n\n//=require constants.js\n//=require function/resolveSourcemaps.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n\nvar handlerComponent = (function() {\n\tvar suffix = '.html',\n\t\tregexMatchType = /^text\\/.+$/;\n\n\tfunction HandlerComponent() {}\n\n\tHandlerComponent.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar pathname = dependency.url.pathname;\n\t\t\t\n\t\t\tdependency.url.pathname = pathname.slice(-suffix.length) !== suffix ? pathname + suffix : pathname;\n\t\t},\n\t\tonPostRequest: function(dependency) {\n\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, dependency.source);\n\t\t},\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar context = dependency.path,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tcontainer = document.createElement('body'),\n\t\t\t\tmodules = [],\n\t\t\t\tpledges = [],\n\t\t\t\tnode, handler, path, uri;\n\n\t\t\tdependency.enqueue = FALSE;\n\t\t\tcontainer.innerHTML = dependency.source;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\twhile(node = container.firstElementChild) {\n\t\t\t\tif(handler = node.getAttribute('type')) {\n\t\t\t\t\tpath = node.getAttribute('path');\n\t\t\t\t\turi = handler + '!' + context + (path ? '/' + path : '');\n\n\t\t\t\t\tnode.parentNode.removeChild(node);\n\t\t\t\t\tmodules.push({ source: node.textContent, uri: uri });\n\t\t\t\t\tpledges.push(ClassDependency.resolve('mock:' + uri).pledge);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tClassPledge.all(pledges).then(\n\t\t\t\tfunction() {\n\t\t\t\t\tvar i = 0, module, dependency;\n\n\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\tfor(; (module = modules[i]); i++) {\n\t\t\t\t\t\tdependency = ClassDependency.get(module.uri) || new ClassDependency(module.uri);\n\t\t\t\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, module.source);\n\t\t\t\t\t\tdependency.handler = arguments[i];\n\n\t\t\t\t\t\tpledges.push(dependency.pledge);\n\n\t\t\t\t\t\tqueue.enqueue(dependency);\n\t\t\t\t\t}\n\n\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\t};\n\n\treturn new (HandlerComponent.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_PLUGIN, MODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, EVENT_PRE_RESOLVE, STRING_STRING, ERROR_RESOLVE, FALSE, TRUE,\n\tregexMatchInternal,\n\tvalidatorIsObject, validatorIsTypeOf,\n\tfunctionIterate, functionHash,\n\tClassDependency, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/hash.js\n//=require class/dependency.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar pluginGenie = (function() {\n\tvar path = MODULE_PREFIX_PLUGIN + 'genie',\n\t\tpattern = [];\n\n\tfunction matchPattern(path) {\n\t\tvar i = 0, pointer, match;\n\n\t\tfor(; (pointer = pattern[i]); i++) {\n\t\t\tif(path.indexOf(pointer.prefix) === 0 && (!match || pointer.weight > match.weight)) {\n\t\t\t\tmatch = pointer;\n\t\t\t}\n\t\t}\n\n\t\treturn match;\n\t}\n\n\tfunction generateConfiguration(bundle) {\n\t\tvar matches = bundle.matches,\n\t\t\tconfiguration = { pattern: {}, modules: { '/demand/handler/bundle': {} } },\n\t\t\ti = 0, pointer, dependency;\n\n\t\tconfiguration.pattern[bundle.id] = bundle.fn(matches);\n\t\tconfiguration.modules[MODULE_PREFIX_HANDLER + 'bundle'][bundle.id] = pointer = [];\n\n\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\tpointer.push(dependency.path);\n\t\t}\n\n\t\treturn configuration;\n\t}\n\n\tfunction resolveDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.resolve(arguments[i]);\n\t\t}\n\t}\n\n\tfunction rejectDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id));\n\t\t}\n\t}\n\n\tfunction addPattern(property, value) {\n\t\tpattern.push({ prefix: property, weight: property.length, fn: value });\n\t}\n\n\tfunction resolveBundles(property, value) {\n\t\tvar matches = value.matches,\n\t\t\ti = 0, dependency;\n\n\t\tif(matches.length > 1) {\n\t\t\tvalue.id = path + '/' + functionHash(JSON.stringify(value.matches));\n\n\t\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\t\tmatches[i] = new ClassDependency(dependency.uri);\n\t\t\t}\n\n\t\t\tdemand.configure(generateConfiguration(value));\n\t\t\tdemand('bundle!' + value.id)\n\t\t\t\t.then(\n\t\t\t\t\tresolveDependencies.bind(matches),\n\t\t\t\t\trejectDependencies.bind(matches)\n\t\t\t\t);\n\t\t}\n\t}\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tpattern.length = 0;\n\n\t\t\t\tfunctionIterate(options, addPattern);\n\t\t\t}\n\t\t})\n\t\t.on(EVENT_PRE_RESOLVE, function(dependencies, context) {\n\t\t\tvar bundles = {},\n\t\t\t\ti = 0, dependency, pattern;\n\n\t\t\tfor(; (dependency = dependencies[i]); i++) {\n\t\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING) && !regexMatchInternal.test(dependency) && !ClassDependency.get(dependency, context)) {\n\t\t\t\t\tdependency = new ClassDependency(dependency, context, FALSE);\n\n\t\t\t\t\tif(dependency.type === 'module' && (pattern = matchPattern(dependency.path)) && !singletonCache.get(dependency)) {\n\t\t\t\t\t\t(bundles[pattern.prefix] || (bundles[pattern.prefix] = { fn: pattern.fn, matches: [] })).matches.push(dependency);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunctionIterate(bundles, resolveBundles);\n\t\t});\n\n\treturn TRUE;\n}());"]} \ No newline at end of file +{"version":3,"sources":["demand.js","class/descriptor.js","validator/isTypeOf.js","validator/isObject.js","validator/isPositive.js","validator/isInstanceOf.js","function/iterate.js","function/toArray.js","function/getTimestamp.js","function/resolveUrl.js","function/resolvePath.js","function/resolveId.js","abstract/uuid.js","class/registry.js","class/failure.js","class/loader.js","validator/isArray.js","function/hash.js","class/queue.js","class/processor.js","function/resolveSourcemaps.js","class/Failure.js","shortcuts.js","constants.js","inheritance.js","function/merge.js","function/uuid.js","function/defer.js","singleton/event.js","function/escapeRegex.js","variables.js","singleton/cache.js","class/pledge.js","class/dependency.js","class/pattern.js","class/xhr.js","function/demand.js","function/provide.js","abstract/handler.js","handler/module.js","handler/bundle.js","handler/component.js","plugin/genie.js"],"names":["global","document","options","setTimeout","clearTimeout","ClassDescriptor","value","writable","configurable","enumerable","__proto__","NULL","validatorIsTypeOf","object","type","validatorIsObject","STRING_OBJECT","validatorIsPositive","STRING_NUMBER","isFinite","Math","floor","validatorIsInstanceOf","module","functionIterate","source","callback","context","property","properties","keys","i","UNDEFINED","call","FALSE","functionToArray","arrayLikeObject","start","end","arrayPrototypeSlice","functionGetTimestamp","Date","functionResolveUrl","url","linkElement","href","functionResolvePath","uri","path","replace","regexMatchParameter","regexIsAbsolutePath","test","regexIsAbsoluteUri","regexMatchBaseUrl","functionResolveId","parameter","match","settings","handler","AbstractUuid","this","uuid","STRING_UNDEFINED","objectDefineProperty","functionUuid","ClassRegistry","self","storage","ClassFailure","message","stack","ClassLoader","dependency","resolve","response","validate","dfd","reject","ERROR_LOAD","id","singletonEvent","emit","EVENT_POST_REQUEST","status","load","location","createElement","pattern","process","EVENT_PRE_REQUEST","ClassXhr","then","matches","weight","validatorIsArray","objectPrototypeToString","functionHash","input","length","charCodeAt","ClassQueue","ClassProcessor","queue","pointer","current","demand","on","EVENT_QUEUE_ENQUEUE","functionResolveSourcemaps","replacement","regexMatchSourcemap","exec","protocol","host","pathname","assignModule","provide","processor","version","cache","timeout","modules","arrayPrototype","Array","prototype","slice","arrayPrototypeConcat","concat","Object","objectPrototype","toString","objectCreate","create","defineProperty","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertyDescriptor","getOwnPropertyDescriptor","functionPrototype","Function","DEMAND_ID","PROVIDE_ID","PATH_ID","MODULE_PREFIX","MODULE_PREFIX_ABSTRACT","MODULE_PREFIX_HANDLER","MODULE_PREFIX_PLUGIN","MODULE_PREFIX_FUNCTION","MODULE_PREFIX_VALIDATOR","MOCK_PREFIX","undefined","TRUE","STRING_STRING","STRING_BOOLEAN","STRING_FUNCTION","FUNCTION_EMPTY","EVENT_PREFIX","EVENT_POSTFIX","EVENT_CONFIGURE","EVENT_PRE_CONFIGURE","EVENT_POST_CONFIGURE","EVENT_CACHE","EVENT_CACHE_MISS","EVENT_CACHE_HIT","EVENT_CACHE_CLEAR","EVENT_CACHE_EXCEED","EVENT_PRE_CACHE","EVENT_POST_CACHE","EVENT_RESOLVE","EVENT_PRE_RESOLVE","EVENT_POST_RESOLVE","EVENT_REQUEST","EVENT_PROCESS","EVENT_PRE_PROCESS","EVENT_POST_PROCESS","EVENT_QUEUE","EVENT_QUEUE_DEQUEUE","ERROR_PROVIDE","ERROR_RESOLVE","ERROR_PROVIDE_ANONYMOUS","extend","parent","names","constructor","functionMerge","mergeProperties","targetPropertyIsObject","targetProperty","target","arguments","randomize","character","r","random","regex","RegExp","functionDefer","element","fallback","hasSetImmediate","fn","MutationObserver","observe","attributes","setAttribute","onMessage","event","data","addEventListener","postMessage","onreadystatechange","parentNode","removeChild","body","appendChild","setImmediate","addListener","events","split","shift","regexMatchEvent","listener","after","push","filter","TYPE_ON","Event","TYPE_AFTER","item","apply","functionEscapeRegex","regexMatchRegex","regexMatchInternal","singletonCache","enabled","indexOf","state","getKey","key","localStorage","getItem","setKey","getState","regexMatchProperties","setState","join","Cache","clear","expired","bind","STORAGE_PREFIX","STORAGE_SUFFIX_STATE","STORAGE_SUFFIX_VALUE","regexMatchState","supportsLocalStorage","exception","supportsRemainingSpace","cacheDispose","set","get","lifetime","spaceBefore","remainingSpace","Error","error","ClassDependency","all","ClassPledge","handle","PLEDGE_RESOLVED","PLEDGE_REJECTED","result","PLEDGE_PENDING","pledge","index","resolved","count","check","rejected","total","executor","catch","always","alwaysListener","resolveListener","rejectListener","defer","isPending","isResolved","isRejected","pledges","race","extends","remove","traverse","depth","indention","setProperty","addPending","addResolved","addRejected","register","placeholder","mock","registry","PREFIX_INTERNAL","enqueue","isInternal","node","querySelector","list","pending","ClassPattern","regexMatchTrailingSlash","XMLHttpRequest","checkState","readyState","abort","XDomainRequest","xhr","boundCheckState","ontimeout","onerror","onabort","onprogress","onload","responseText","getResponseHeader","open","send","updateCacheSettings","updatePatternSettings","updateModuleSettings","temp","dependencies","configure","base","min","max","onPostRequest","onPreRequest","onPreProcess","isFunction","definition","console","/demand","dequeue","abstractHandler","AbstractHandler","handlerModule","HandlerModule","suffix","getElementsByTagName","regexMatchType","script","async","text","handlerBundle","updateDependencies","getType","HandlerBundle","handlerComponent","HandlerComponent","container","innerHTML","firstElementChild","getAttribute","textContent","pluginGenie","matchPattern","prefix","generateConfiguration","bundle","configuration","/demand/handler/bundle","resolveDependencies","rejectDependencies","addPattern","resolveBundles","JSON","stringify","bundles","main"],"mappings":"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","file":"demand.js","sourcesContent":["/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX, MODULE_PREFIX_HANDLER, MODULE_PREFIX_VALIDATOR, MODULE_PREFIX_PLUGIN, MODULE_PREFIX_FUNCTION, MODULE_PREFIX_ABSTRACT, STRING_STRING, STRING_FUNCTION, TRUE,\n\tvalidatorIsTypeOf, validatorIsArray, validatorIsObject, validatorIsInstanceOf,\n\tfunctionResolveUrl, functionResolveSourcemaps, functionMerge, functionIterate, functionDefer, functionHash, functionUuid,\n\tAbstractUuid, abstractHandler,\n\tClassDependency, ClassQueue, ClassProcessor, ClassPledge, ClassXhr, ClassFailure, ClassDescriptor,\n\thandlerModule, handlerBundle, handlerComponent,\n \tpluginGenie\n*/\n\n/*eslint no-unused-vars: [2, { \"vars\": \"local\", \"args\": \"none\" }]*/\n(function(global, document, options, setTimeout, clearTimeout) {\n\t'use strict';\n\n\t/* eslint-disable no-unused-vars */\n\tvar settings = { version: '1.0.0', cache: {}, timeout: 8000, pattern: {}, modules: {}, handler: 'module' },\n\t\tstorage = {},\n\t\tqueue, processor;\n\t/* eslint-enable no-unused-vars */\n\n\t// include inheritance\n\t\t//=require inheritance.js\n\n\t// include main components\n\t\t//=require function/demand.js\n\t\t//=require function/provide.js\n\n\t// process initial configuration\n\t\tdemand.configure({ cache: TRUE, base: '/', pattern: { '/demand': functionResolveUrl(((options && options.url) || location.href) + '/../').slice(0, -1)} });\n\t\toptions && options.settings && demand.configure(options.settings);\n\n\t// include additional components\n\t\t//=require function/hash.js\n\t\t//=require class/queue.js\n\t\t//=require class/processor.js\n\t\t//=require handler/module.js\n\t\t//=require handler/bundle.js\n\t\t//=require handler/component.js\n\t\t//=require plugin/genie.js\n\n\t// initialize\n\t\tqueue = new ClassQueue();\n\t\tprocessor = new ClassProcessor(queue);\n\n\t\tfunction assignModule(id, module) {\n\t\t\tprovide(id, function() { return module; });\n\t\t}\n\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'uuid', AbstractUuid);\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'handler', abstractHandler);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'module', handlerModule);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'bundle', handlerBundle);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'component', handlerComponent);\n\t\tassignModule(MODULE_PREFIX_PLUGIN + 'genie', pluginGenie);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isTypeOf', validatorIsTypeOf);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isArray', validatorIsArray);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isObject', validatorIsObject);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isInstanceOf', validatorIsInstanceOf);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveUrl', functionResolveUrl);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveSourcemaps', functionResolveSourcemaps);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'merge', functionMerge);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'iterate', functionIterate);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'hash', functionHash);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'defer', functionDefer);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'uuid', functionUuid);\n\t\tassignModule(MODULE_PREFIX + 'descriptor', ClassDescriptor);\n\t\tassignModule(MODULE_PREFIX + 'pledge', ClassPledge);\n\t\tassignModule(MODULE_PREFIX + 'queue', ClassQueue);\n\t\tassignModule(MODULE_PREFIX + 'xhr', ClassXhr);\n\t\tassignModule(MODULE_PREFIX + 'failure', ClassFailure);\n\n\t\tif(options && options.main) {\n\t\t\tswitch(typeof options.main) {\n\t\t\t\tcase STRING_STRING:\n\t\t\t\t\tdemand(options.main);\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase STRING_FUNCTION:\n\t\t\t\t\tprovide('main', options.main());\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n}(this, document, 'demand' in this && demand, setTimeout, clearTimeout));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nfunction ClassDescriptor(value, writable, configurable, enumerable) {\n\treturn {\n\t\t__proto__: NULL,\n\t\tvalue: value,\n\t\tenumerable: !!enumerable,\n\t\tconfigurable: !!configurable,\n\t\twritable: !!writable\n\t};\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * isTypeOf\n *\n * Check whether a given object is of specified type\n *\n * @param object\n * @param {string} type\n *\n * @return {boolean}\n */\n\nfunction validatorIsTypeOf(object, type) {\n\treturn typeof object === type;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_OBJECT,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isObject\n *\n * Check whether a given object is of type object\n *\n * @param object\n *\n * @return {boolean}\n */\n\nfunction validatorIsObject(object) {\n\treturn object && validatorIsTypeOf(object, STRING_OBJECT);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_NUMBER,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isPositive\n *\n * Check whether a given value is a positive integer\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsPositive(value) {\n\treturn validatorIsTypeOf(value, STRING_NUMBER) && isFinite(value) && Math.floor(value) === value && value >= 0;\n}","/**\n * isInstanceOf\n *\n * Check whether a given object is an instance of specified type\n *\n * @param object\n * @param module\n *\n * @return {boolean}\n */\nfunction validatorIsInstanceOf(object, module) {\n\treturn object instanceof module;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED, FALSE,\n\tobject\n*/\n\n//=require constants.js\n//=require shortcuts.js\n\n/**\n * iterate\n *\n * Iterate over enumerable & own properties of a given\n * object and pass current property as well as its value\n * to a callback function\n *\n * @param {object} object\n * @param {function} callback\n * @param context\n *\n * @return mixed\n */\n\nfunction functionIterate(source, callback, context) {\n\tvar properties = object.keys(source),\n\t\ti = 0, property;\n\n\tfor(; (property = properties[i]) !== UNDEFINED; i++) {\n\t\tif(callback.call(context, property, source[property]) === FALSE) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn context;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tarrayPrototypeSlice\n*/\n\n//=require shortcuts.js\n\nfunction functionToArray(arrayLikeObject, start, end) {\n\treturn arrayPrototypeSlice.call(arrayLikeObject, start, end);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nfunction functionGetTimestamp() {\n\treturn +new Date();\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tlinkElement\n*/\n\n//=require shortcuts.js\n\nfunction functionResolveUrl(url) {\n\tlinkElement.href = url;\n\n\treturn linkElement.href;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter, regexMatchBaseUrl, regexIsAbsolutePath, regexIsAbsoluteUri,\n\tfunctionResolveUrl\n*/\n\n//=require variables.js\n//=require function/resolveUrl.js\n\nfunction functionResolvePath(uri, context) {\n\tvar path = uri.replace(regexMatchParameter, '');\n\n\tif(!regexIsAbsolutePath.test(path) && !regexIsAbsoluteUri.test(path)) {\n\t\tpath = '/' + functionResolveUrl(((context && functionResolveUrl(context + '/../')) || '/') + path).replace(regexMatchBaseUrl, '');\n\t}\n\n\treturn path;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter,\n\tfunctionResolvePath\n*/\n\n//=require variables.js\n//=require function/resolvePath.js\n\nfunction functionResolveId(uri, context) {\n\tvar parameter = uri.match(regexMatchParameter);\n\n\treturn ((parameter && parameter[1]) ? 'mock:' : '') + ((parameter && parameter[3]) || settings.handler) + '!' + functionResolvePath(uri, context);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_UNDEFINED,\n\tobjectDefineProperty,\n\tvalidatorIsTypeOf,\n\tfunctionUuid,\n\tClassDescriptor\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require validator/isTypeOf.js\n//=require function/uuid.js\n//=require class/descriptor.js\n\nfunction AbstractUuid() {\n\tif(validatorIsTypeOf(this.uuid, STRING_UNDEFINED)) {\n\t\tobjectDefineProperty(this, 'uuid', new ClassDescriptor(functionUuid()));\n\t}\n\n\treturn this;\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tAbstractUuid\n*/\n\n//=require abstract/uuid.js\n\nfunction ClassRegistry() {\n\tvar self = AbstractUuid.call(this);\n\n\tstorage[self.uuid] = {};\n\t\n\treturn self;\n}\n\nClassRegistry.prototype = {\n\tget: function(key) {\n\t\treturn key ? storage[this.uuid][key] : storage[this.uuid];\n\t},\n\tset: function(key, value) {\n\t\tstorage[this.uuid][key] = value;\n\t},\n\tremove: function(key) {\n\t\tdelete storage[this.uuid][key];\n\t}\n};\n\nClassRegistry.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tvar self = this;\n\t\n\tself.message = message;\n\t\t\n\tmodule && (self.module = module);\n\tstack && (self.stack = functionToArray(stack));\n\t\n\treturn self;\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, ERROR_LOAD,\n\tregexIsAbsoluteUri,\n\tlinkElement,\n\tfunctionIterate, functionResolveUrl,\n\tClassXhr, ClassFailure,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require variables.js\n//=require shortcuts.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require singleton/event.js\n//=require class/xhr.js\n//=require class/failure.js\n\nfunction ClassLoader(dependency) {\n\tvar pattern;\n\n\tfunction resolve(response, type) {\n\t\tif(!type || !dependency.handler.validate || dependency.handler.validate(type)) {\n\t\t\tdependency.source = response;\n\n\t\t\tsingletonEvent.emit(EVENT_POST_REQUEST, dependency.type, dependency);\n\t\t} else {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (content-type)', dependency.id));\n\t\t}\n\t}\n\n\tfunction reject(status) {\n\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + (status ? ' (status)' : ''), dependency.id));\n\t}\n\n\tfunction load(location) {\n\t\tlocation = location || 0;\n\t\tdependency.url = document.createElement('a');\n\t\t\n\t\tdependency.url.href = pattern ? functionResolveUrl(pattern.process(dependency.path, location)) : dependency.path;\n\n\t\tsingletonEvent.emit(EVENT_PRE_REQUEST, dependency.type, dependency);\n\n\t\tnew ClassXhr(dependency.url).then(\n\t\t\tresolve,\n\t\t\t(\n\t\t\t\tpattern ?\n\t\t\t\tfunction() {\n\t\t\t\t\tlocation++;\n\n\t\t\t\t\tif(pattern.location[location]) {\n\t\t\t\t\t\tload(location);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t:\n\t\t\t\treject\n\t\t\t)\n\t\t);\n\t}\n\n\tif(!regexIsAbsoluteUri.test(dependency.path)) {\n\t\tfunctionIterate(settings.pattern, function(property, value) {\n\t\t\tvalue.matches(dependency.path) && (!pattern || pattern.weight < value.weight) && (pattern = value);\n\t\t});\n\t}\n\n\tload();\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectPrototypeToString\n*/\n\n//=require shortcuts.js\n\n/**\n * isArray\n *\n * Check whether a given value is of type array\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsArray(value) {\n\treturn objectPrototypeToString.call(value) === '[object Array]';\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * hash\n *\n * Generate a hash for a given string\n *\n * @param {string} input\n *\n * @return {number}\n */\nfunction functionHash(input){\n\tvar value = 5381,\n\t\ti = input.length;\n\n\twhile(i) {\n\t\tvalue = (value * 33) ^ input.charCodeAt(--i);\n\t}\n\n\treturn value >>> 0;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, EVENT_QUEUE_DEQUEUE,\n\tfunctionToArray,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require abstract/uuid.js\n\nfunction ClassQueue() {\n\tvar self = AbstractUuid.call(this);\n\n\tstorage[self.uuid] = [];\n\t\n\treturn self;\n}\n\t\nClassQueue.prototype = {\n\tenqueue: function() {\n\t\tstorage[this.uuid] = storage[this.uuid].concat(functionToArray(arguments));\n\n\t\tsingletonEvent.emit(EVENT_QUEUE_ENQUEUE, this.uuid);\n\t},\n\tdequeue: function() {\n\t\tsingletonEvent.emit(EVENT_QUEUE_DEQUEUE, this.uuid);\n\n\t\treturn storage[this.uuid].shift();\n\t},\n\tget current() {\n\t\treturn storage[this.uuid][0];\n\t},\n\tget length() {\n\t\treturn storage[this.uuid].length;\n\t}\n};\n\t\nClassQueue.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, NULL,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require abstract/uuid.js\n\nfunction ClassProcessor(queue) {\n\tvar self = AbstractUuid.call(this),\n\t\tpointer = storage[self.uuid] = { queue: queue, current: NULL };\n\n\tdemand\n\t\t.on(EVENT_QUEUE_ENQUEUE + ':' + queue.uuid, function() {\n\t\t\t!pointer.current && self.process();\n\t\t});\n\t\n\treturn self;\n}\n\nClassProcessor.prototype = {\n\tprocess: function() {\n\t\tvar pointer = storage[this.uuid],\n\t\t\tcurrent;\n\n\t\tif(pointer.queue.length) {\n\t\t\tcurrent = pointer.current = pointer.queue.dequeue();\n\n\t\t\tif(!current.pledge.isRejected()) {\n current.handler.process && current.handler.process(current);\n\n return;\n\t\t\t}\n\t\t}\n\n\t\tpointer.current = NULL;\n\t},\n\tget current() {\n\t\treturn storage[this.uuid].current;\n\t}\n};\n\t\nClassProcessor.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchSourcemap, regexIsAbsoluteUri\n\tlinkElement\n*/\n\n//=require variables.js\n//=require shortcuts.js\n\nfunction functionResolveSourcemaps(url, source) {\n\tvar match, replacement;\n\t\n\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\tlinkElement.href = url;\n\t\t\n\t\tif(regexIsAbsoluteUri.test(match[2])) {\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + match[3];\n\t\t} else {\n\t\t\tlinkElement.pathname += '/../' + match[3];\n\t\t\t\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + linkElement.pathname;\n\t\t}\n\t\t\n\t\tsource = source.replace(match[0], match[1] + ' ' + match[2] + '=' + replacement + '.map' + (match[4] ? ' ' + match[4] : ''));\n\t}\n\t\n\treturn source;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tvar self = this;\n\t\n\tself.message = message;\n\t\t\n\tmodule && (self.module = module);\n\tstack && (self.stack = functionToArray(stack));\n\t\n\treturn self;\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar arrayPrototype = Array.prototype,\n\tarrayPrototypeSlice = arrayPrototype.slice,\n\tarrayPrototypeConcat = arrayPrototype.concat,\n\tobject = Object,\n\tobjectPrototype = object.prototype,\n\tobjectPrototypeToString = objectPrototype.toString,\n\tobjectCreate = object.create,\n\tobjectDefineProperty = object.defineProperty,\n\tobjectGetOwnPropertyNames = object.getOwnPropertyNames,\n\tobjectGetOwnPropertyDescriptor = object.getOwnPropertyDescriptor,\n\tfunctionPrototype = Function.prototype,\n\tlinkElement = document.createElement('a');","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar DEMAND_ID = 'demand',\n\tPROVIDE_ID = 'provide',\n\tPATH_ID = 'path',\n\tMODULE_PREFIX = '/' + DEMAND_ID + '/',\n\tMODULE_PREFIX_ABSTRACT = MODULE_PREFIX + 'abstract/',\n\tMODULE_PREFIX_HANDLER = MODULE_PREFIX + 'handler/',\n\tMODULE_PREFIX_PLUGIN = MODULE_PREFIX + 'plugin/',\n\tMODULE_PREFIX_FUNCTION = MODULE_PREFIX + 'function/',\n\tMODULE_PREFIX_VALIDATOR = MODULE_PREFIX + 'validator/',\n\tMOCK_PREFIX = 'mock:',\n\tNULL = null,\n\tUNDEFINED = undefined,\n\tFALSE = false,\n\tTRUE = true,\n\tSTRING_UNDEFINED = 'undefined',\n\tSTRING_STRING = 'string',\n\tSTRING_BOOLEAN = 'boolean',\n\tSTRING_OBJECT = 'object',\n\tSTRING_FUNCTION = 'function',\n\tSTRING_NUMBER = 'number',\n\tFUNCTION_EMPTY = function() {},\n\tEVENT_PREFIX = 'pre',\n\tEVENT_POSTFIX = 'post',\n\tEVENT_CONFIGURE = 'Configure',\n\tEVENT_PRE_CONFIGURE = EVENT_PREFIX + EVENT_CONFIGURE,\n\tEVENT_POST_CONFIGURE = EVENT_POSTFIX + EVENT_CONFIGURE,\n\tEVENT_CACHE = 'cache',\n\tEVENT_CACHE_MISS = EVENT_CACHE + 'Miss',\n\tEVENT_CACHE_HIT = EVENT_CACHE + 'Hit',\n\tEVENT_CACHE_CLEAR = EVENT_CACHE + 'Clear',\n\tEVENT_CACHE_EXCEED = EVENT_CACHE + 'Exceed',\n\tEVENT_PRE_CACHE = EVENT_PREFIX + 'Cache',\n\tEVENT_POST_CACHE = EVENT_POSTFIX + 'Cache',\n\tEVENT_RESOLVE = 'Resolve',\n\tEVENT_PRE_RESOLVE = EVENT_PREFIX + EVENT_RESOLVE,\n\tEVENT_POST_RESOLVE = EVENT_POSTFIX + EVENT_RESOLVE,\n\tEVENT_REQUEST = 'Request',\n\tEVENT_PRE_REQUEST = EVENT_PREFIX + EVENT_REQUEST,\n\tEVENT_POST_REQUEST = EVENT_POSTFIX + EVENT_REQUEST,\n\tEVENT_PROCESS = 'Process',\n\tEVENT_PRE_PROCESS = EVENT_PREFIX + EVENT_PROCESS,\n\tEVENT_POST_PROCESS = EVENT_POSTFIX + EVENT_PROCESS,\n\tEVENT_QUEUE = 'queue',\n\tEVENT_QUEUE_ENQUEUE = EVENT_QUEUE + 'Enqueue',\n\tEVENT_QUEUE_DEQUEUE = EVENT_QUEUE + 'Dequeue',\n\tERROR_LOAD = 'error loading',\n\tERROR_PROVIDE = 'error providing',\n\tERROR_RESOLVE = 'error resolving',\n\tERROR_PROVIDE_ANONYMOUS = 'unspecified anonymous provide';","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectCreate, objectDefineProperty, objectGetOwnPropertyNames, objectGetOwnPropertyDescriptor, functionPrototype,\n\tClassDescriptor\n*/\n\n//=require shortcuts.js\n//=require class/descriptor.js\n\n(function() {\n\tfunction extend(parent) {\n\t\tvar self = this,\n\t\t\tprototype = self.prototype,\n\t\t\tproperties = {},\n\t\t\tnames = objectGetOwnPropertyNames(prototype),\n\t\t\ti = 0, property;\n\n\t\tfor(; (property = names[i]); i++) {\n\t\t\tproperties[property] = objectGetOwnPropertyDescriptor(prototype, property);\n\t\t}\n\n\t\tproperties.constructor = new ClassDescriptor(self);\n\t\tself.prototype = objectCreate(parent.prototype || parent, properties);\n\n\t\treturn self;\n\t}\n\n\tobjectDefineProperty(functionPrototype, 'extends', new ClassDescriptor(extend));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED,\n\tvalidatorIsObject,\n\tfunctionIterate\n*/\n\n//=require constants.js\n//=require validator/isObject.js\n//=require function/iterate.js\n\n/**\n * merge\n *\n * Merge two or more objects into the first one passed in\n *\n * @param {...object} object\n *\n * @return {object}\n */\nvar functionMerge = (function() {\n\tfunction mergeProperties(property, value) {\n\t\tvar targetProperty = this[property],\n\t\t\ttargetPropertyIsObject;\n\n\t\tif(value !== UNDEFINED) {\n\t\t\tif(validatorIsObject(value)) {\n\t\t\t\ttargetPropertyIsObject = validatorIsObject(targetProperty);\n\n\t\t\t\tif(value.length !== UNDEFINED) {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length !== UNDEFINED) ? targetProperty : [];\n\t\t\t\t} else {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length === UNDEFINED) ? targetProperty : {};\n\t\t\t\t}\n\n\t\t\t\tthis[property] = functionMerge(targetProperty, value);\n\t\t\t} else {\n\t\t\t\tthis[property] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn function functionMerge() {\n\t\tvar target = arguments[0],\n\t\t\ti = 1, properties;\n\n\t\tfor(; (properties = arguments[i]) !== UNDEFINED; i++) {\n\t\t\tfunctionIterate(properties, mergeProperties, target);\n\t\t}\n\n\t\treturn target;\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionUuid = (function() {\n\tvar regex = new RegExp('[xy]', 'g'),\n\t\tstorage = {};\n\n\tfunction randomize(character) {\n\t\tvar r = Math.random() * 16 | 0;\n\n\t\treturn ((character === 'x') ? r : (r & 0x3 | 0x8)).toString(16);\n\t}\n\n\treturn function functionUuid() {\n\t\tvar uuid;\n\n\t\tdo {\n\t\t\tuuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(regex, randomize);\n\t\t} while(storage[uuid]);\n\n\t\tstorage[uuid] = 1;\n\n\t\treturn uuid;\n\t};\n}());","/**\n * Based on setAsap:\n * Repo: https://github.com/taylorhakes/setAsap\n * License: https://github.com/taylorhakes/setAsap/blob/master/LICENSE\n */\n\n/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, TRUE, FALSE,\n\tfunctionUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/uuid.js\n\n/**\n * defer\n *\n * delay function execution like setImmediate does\n *\n * @param {function} function\n */\nvar functionDefer = (function() {\n\tvar hasSetImmediate = 'setImmediate' in global,\n\t\telement, fallback;\n\n\tif('MutationObserver' in global) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement = document.createElement('div');\n\n\t\t\tnew MutationObserver(function() { fn(); })\n\t\t\t\t.observe(element, { attributes: TRUE });\n\n\t\t\telement.setAttribute('i', '1');\n\t\t};\n\t}\n\n\tif(!hasSetImmediate && 'postMessage' in global && !('importScripts' in global) && 'addEventListener' in global) {\n\t\treturn (function() {\n\t\t\tfunction onMessage(event) {\n\t\t\t\tif(event.source === global && event.data && storage[event.data]) {\n\t\t\t\t\tstorage[event.data]();\n\n\t\t\t\t\tdelete storage[event.data];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tglobal.addEventListener('message', onMessage, FALSE);\n\n\t\t\treturn function functionDefer(fn) {\n\t\t\t\tvar uuid = functionUuid();\n\n\t\t\t\tstorage[uuid] = fn;\n\n\t\t\t\tglobal.postMessage(uuid, '*');\n\t\t\t};\n\t\t}());\n\t}\n\n\tif(!hasSetImmediate && 'onreadystatechange' in (element = document.createElement('script'))) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement.onreadystatechange = function onreadystatechange() {\n\t\t\t\telement.onreadystatechange = NULL;\n\t\t\t\telement.parentNode.removeChild(element);\n\n\t\t\t\tfn();\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(element);\n\t\t};\n\t}\n\n\t/* eslint-disable no-undef */\n\tfallback = hasSetImmediate ? setImmediate : setTimeout;\n\t/* eslint-enable no-undef */\n\n\treturn function functionDefer(fn) {\n\t\tfallback(fn);\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, STRING_STRING, STRING_FUNCTION, EVENT_POST_CONFIGURE,\n\tvalidatorIsTypeOf,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/toArray.js\n\nvar singletonEvent = (function() {\n\tvar TYPE_ON = 'on',\n\t\tTYPE_AFTER = 'after',\n\t\tregexMatchEvent = /^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,\n\t\tlistener = {};\n\n\tfunction addListener(type, events, callback) {\n\t\tvar event, pointer;\n\n\t\tif(validatorIsTypeOf(events, STRING_STRING) && validatorIsTypeOf(callback, STRING_FUNCTION)) {\n\t\t\tevents = events.split(' ');\n\n\t\t\twhile(event = events.shift()) {\n\t\t\t\tevent = event.split(':');\n\n\t\t\t\tif(regexMatchEvent.test(event[0])) {\n\t\t\t\t\t(listener[event[0]] || (listener[event[0]] = { on: [], after: [] }))[type].push({ callback: callback, filter: event[1] });\n\n\t\t\t\t\tif(type === TYPE_ON && event[0] === EVENT_POST_CONFIGURE && (pointer = settings.modules[event[1]])) {\n\t\t\t\t\t\tcallback(pointer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction Event() {}\n\n\tEvent.prototype = {\n\t\temit: function (event, filter) {\n\t\t\tvar pointer = listener[event],\n\t\t\t\tparameter, i, item;\n\n\t\t\tif(pointer) {\n\t\t\t\tparameter = functionToArray(arguments, 2);\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_ON][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_AFTER][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\t\ton: function(events, callback) {\n\t\t\taddListener(TYPE_ON, events, callback);\n\n\t\t\treturn this;\n\t\t},\n\t\tafter: function(events, callback) {\n\t\t\taddListener(TYPE_AFTER, events, callback);\n\n\t\t\treturn this;\n\t\t}\n\t};\n\n\treturn new Event();\n}());\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionEscapeRegex = (function() {\n\tvar regexMatchRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\n\treturn function functionEscapeRegex(value) {\n\t\treturn value.replace(regexMatchRegex, '\\\\$&');\n\t};\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, PROVIDE_ID, PATH_ID,\n\tfunctionEscapeRegex, functionResolveUrl\n*/\n\n//=require constants.js\n//=require function/escapeRegex.js\n//=require function/resolveUrl.js\n\nvar regexIsAbsoluteUri = /^(http(s?):)?\\/\\//i,\n\tregexIsAbsolutePath = /^\\//,\n\tregexMatchSourcemap = /((?:\\/\\/|\\/\\*)#)\\s*(sourceMappingURL)\\s*=\\s*(?!(?:http[s]?:)?\\/\\/)(.+?)\\.map(?:\\s+)?(\\*\\/)?/g,\n\tregexMatchBaseUrl = new RegExp('^' + functionEscapeRegex(functionResolveUrl('/'))),\n\tregexMatchInternal = new RegExp('^' + DEMAND_ID + '|' + PROVIDE_ID + '|' + PATH_ID + '$'),\n\tregexMatchParameter = /^(mock:)?([+-])?((?:[-\\w]+\\/?)+)?(?:@(.+?))?(?:#(\\d+))?!/;","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, FUNCTION_EMPTY, EVENT_POST_REQUEST, EVENT_POST_PROCESS, EVENT_CACHE_HIT, EVENT_CACHE_MISS, EVENT_CACHE_EXCEED, EVENT_CACHE_CLEAR, EVENT_PRE_CACHE, EVENT_PRE_CACHE, EVENT_POST_CACHE, STRING_STRING, NULL, FALSE, TRUE,\n\tvalidatorIsTypeOf,\n\tfunctionGetTimestamp, functionEscapeRegex, functionIterate, functionDefer, functionResolveId, functionToArray,\n\tClassDependency,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/getTimestamp.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n//=require function/defer.js\n//=require function/resolveId.js\n//=require function/toArray.js\n//=require singleton/event.js\n\nvar singletonCache = (function() {\n\tvar STORAGE_PREFIX = '[' + DEMAND_ID + ']',\n\t\tSTORAGE_SUFFIX_STATE = '[state]',\n\t\tSTORAGE_SUFFIX_VALUE = '[value]',\n\t\tregexMatchState = new RegExp('^' + functionEscapeRegex(STORAGE_PREFIX) + '\\\\[(.+?)\\\\]' + functionEscapeRegex(STORAGE_SUFFIX_STATE) + '$'),\n\t\tregexMatchProperties = /^(.+?),(\\d+),(\\d*),(.+?),(\\d+)$/,\n\t\tsupportsLocalStorage = (function() { try { return 'localStorage' in global && global.localStorage; } catch(exception) { return FALSE; } }()),\n\t\tlocalStorage = supportsLocalStorage ? global.localStorage : NULL,\n\t\tsupportsRemainingSpace = supportsLocalStorage && 'remainingSpace' in localStorage,\n\t\tstorage = {},\n\t\tcache;\n\n\tsingletonEvent\n\t\t.on(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tfunctionDefer(function() {\n\t\t\t\tcache.clear.path(dependency.id);\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_CACHE_EXCEED, function(dependency) {\n\t\t\tdemand('-!/' + DEMAND_ID + '/cache/dispose').then(function(cacheDispose) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcacheDispose(dependency.source.length);\n\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tif(dependency.source && enabled(dependency)) {\n\t\t\t\tstorage[dependency.id] = TRUE;\n\t\t\t}\n\t\t})\n\t\t.after(EVENT_POST_PROCESS, function(dependency) {\n\t\t\tif(storage[dependency.id]) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\tfunction enabled(dependency) {\n\t\tvar match;\n\n\t\tif(dependency.cache !== NULL) {\n\t\t\treturn dependency.cache;\n\t\t}\n\n\t\tfunctionIterate(settings.cache, function(property, value) {\n\t\t\tif(dependency.path.indexOf(property) === 0 && (!match || value.weight > match.weight)) {\n\t\t\t\tmatch = value;\n\t\t\t}\n\t\t});\n\n\t\treturn match ? match.state : FALSE;\n\t}\n\t\n\tfunction getKey(key) {\n\t\treturn localStorage.getItem(key);\n\t}\n\t\n\tfunction setKey(key, value) {\n\t\tlocalStorage[value ? 'setItem' : 'removeItem'](key, value);\n\t}\n\t\n\tfunction getState(key) {\n\t\tvar state = getKey(key),\n\t\t\tmatches;\n\n\t\tif(state && (matches = state.match(regexMatchProperties))) {\n\t\t\treturn functionToArray(matches, 1);\n\t\t}\n\t}\n\t\n\tfunction setState(key, state) {\n\t\tstate[4] = functionGetTimestamp();\n\n\t\tsetKey(key, state.join(','));\n\t}\n\n\tfunction emit(event, dependency, state) {\n\t\tsingletonEvent.emit(event, dependency.id, dependency, state);\n\t}\n\n\tfunction Cache() {\n\t\tfunctionDefer(this.clear.expired.bind(this.clear));\n\t}\n\n\tCache.prototype = {\n\t\tget: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar id, state;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(id + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[0] === dependency.version && ((!state[2] && !dependency.lifetime) || state[2] > functionGetTimestamp())) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdependency.source = getKey(id + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn TRUE;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tresolve: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\t\t\t\t\t\tif(self.get(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_HIT, dependency);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_MISS, dependency);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : function(dependency) { emit(EVENT_CACHE_MISS, dependency); },\n\t\tset: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar state, id, spaceBefore;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate = [ dependency.version, dependency.source.length, dependency.lifetime ? functionGetTimestamp() + dependency.lifetime : NULL, demand.version ];\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_PRE_CACHE, dependency, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\tspaceBefore = supportsRemainingSpace ? localStorage.remainingSpace : NULL;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(id + STORAGE_SUFFIX_VALUE, dependency.source);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// strict equality check with \"===\" is required due to spaceBefore might be \"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(spaceBefore !== NULL && localStorage.remainingSpace === spaceBefore) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_POST_CACHE, dependency, state);\n\t\t\t\t\t\t\t\t\t\t\t\t} catch(error) {\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_EXCEED, dependency);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tclear: {\n\t\t\tpath: supportsLocalStorage ? function(path) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar id = functionResolveId(path),\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey = STORAGE_PREFIX + '[' + id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(getKey(key + STORAGE_SUFFIX_STATE)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_STATE);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_CLEAR, ClassDependency.get(id) || new ClassDependency(id, NULL, FALSE));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\tall: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar match;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch && this.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\texpired: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar self = this,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch, state;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(match) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(STORAGE_PREFIX + '[' + match[1] + ']' + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[2] > 0 && state[2] <= functionGetTimestamp()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tself.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY\n\t\t}\n\t};\n\n\treturn (cache = new Cache());\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n \tFUNCTION_EMPTY, NULL,\n\tarrayPrototypeConcat,\n\tfunctionDefer, functionUuid, functionToArray,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/defer.js\n//=require function/uuid.js\n//=require function/toArray.js\n//=require abstract/uuid.js\n\nvar ClassPledge = (function() {\n\tvar PLEDGE_PENDING = 'pending',\n\t\tPLEDGE_RESOLVED = 'resolved',\n\t\tPLEDGE_REJECTED = 'rejected',\n\t\tstorage = {};\n\n\tfunction resolve() {\n\t\tstorage[this.uuid].handle(PLEDGE_RESOLVED, arguments);\n\t}\n\n\tfunction reject() {\n\t\tstorage[this.uuid].handle(PLEDGE_REJECTED, arguments);\n\t}\n\n\tfunction handle(state, parameter) {\n\t\tvar properties = storage[this.uuid],\n\t\t\tpointer, result;\n\n\t\tif(properties.state === PLEDGE_PENDING) {\n\t\t\tproperties.state = state;\n\t\t\tproperties.value = parameter;\n\t\t}\n\n\t\twhile(pointer = properties[properties.state].shift()) {\n\t\t\tresult = pointer.handler.apply(NULL, properties.value);\n\n\t\t\tif(result && typeof result.then === 'function') {\n\t\t\t\tresult.then(pointer.dfd.resolve, pointer.dfd.reject);\n\t\t\t} else {\n\t\t\t\tpointer.dfd[properties.state === PLEDGE_RESOLVED ? 'resolve' : 'reject'].apply(NULL, properties.value);\n\t\t\t}\n\t\t}\n\n\t\tproperties[PLEDGE_RESOLVED].length = 0;\n\t\tproperties[PLEDGE_REJECTED].length = 0;\n\t}\n\n\tfunction observe(pledge, index, properties) {\n\t\tpledge.then(\n\t\t\tfunction() {\n\t\t\t\tproperties.resolved[index] = functionToArray(arguments);\n\n\t\t\t\tproperties.count++;\n\n\t\t\t\tcheck(properties);\n\t\t\t},\n\t\t\tfunction() {\n\t\t\t\tproperties.rejected.push(functionToArray(arguments));\n\n\t\t\t\tcheck(properties);\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction check(properties) {\n\t\tif(properties.count === properties.total) {\n\t\t\tproperties.dfd.resolve.apply(NULL, arrayPrototypeConcat.apply([], properties.resolved));\n\t\t} else if(properties.rejected.length + properties.count === properties.total) {\n\t\t\tproperties.dfd.reject.apply(NULL, arrayPrototypeConcat.apply([], properties.rejected));\n\t\t}\n\t}\n\n\tfunction ClassPledge(executor) {\n\t\tvar self = AbstractUuid.call(this);\n\n\t\tstorage[self.uuid] = { state: PLEDGE_PENDING, handle: handle.bind(self), value: NULL, resolved: [], rejected: [], count: 0 };\n\n\t\texecutor(resolve.bind(self), reject.bind(self));\n\t\t\n\t\treturn self;\n\t}\n\n\tClassPledge.prototype = {\n\t\t'catch': function(listener) {\n\t\t\treturn this.then(FUNCTION_EMPTY, listener);\n\t\t},\n\t\talways: function(alwaysListener) {\n\t\t\treturn this.then(alwaysListener, alwaysListener);\n\t\t},\n\t\tthen: function(resolveListener, rejectListener) {\n\t\t\tvar properties = storage[this.uuid],\n\t\t\t\tdfd = ClassPledge.defer();\n\n\t\t\tresolveListener && properties[PLEDGE_RESOLVED].push({ handler: resolveListener, dfd: dfd });\n\t\t\trejectListener && properties[PLEDGE_REJECTED].push({ handler: rejectListener, dfd: dfd });\n\n\t\t\tif(properties.state !== PLEDGE_PENDING) {\n\t\t\t\tfunctionDefer(properties.handle);\n\t\t\t}\n\n\t\t\treturn dfd.pledge;\n\t\t},\n\t\tisPending: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_PENDING;\n\t\t},\n\t\tisResolved: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_RESOLVED;\n\t\t},\n\t\tisRejected: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_REJECTED;\n\t\t}\n\t};\n\n\tClassPledge.defer = function() {\n\t\tvar self = {};\n\n\t\tself.pledge = new ClassPledge(function(resolveListener, rejectListener) {\n\t\t\tself.resolve = resolveListener;\n\t\t\tself.reject = rejectListener;\n\t\t});\n\n\t\treturn self;\n\t};\n\n\tClassPledge.all = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\tproperties, i = 0, pledge;\n\t\t\n\t\tif(pledges.length) {\n\t\t\tproperties = (storage[functionUuid()] = { dfd: dfd, resolved: [], rejected: [], total: pledges.length, count: 0 })\n\t\t\t\n\t\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\t\tobserve(pledge, i, properties)\n\t\t\t}\n\t\t} else {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\tClassPledge.race = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\ti = 0, pledge;\n\n\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\tpledge.then(dfd.resolve, dfd.reject);\n\t\t}\n\t\t\n\t\tif(!pledges.length) {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\treturn ClassPledge.extends(AbstractUuid);\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, MODULE_PREFIX_HANDLER, ERROR_LOAD, DEMAND_ID, PROVIDE_ID, PATH_ID, MOCK_PREFIX, NULL, TRUE, FALSE,\n\tobject,\n\tregexMatchInternal, regexMatchParameter,\n\tvalidatorIsPositive,\n\tfunctionResolvePath, functionResolveId, functionResolveUrl, functionIterate, functionToArray,\n\tClassRegistry, ClassPledge, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require validator/isPositive.js\n//=require function/resolvePath.js\n//=require function/resolveId.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require function/toArray.js\n//=require class/registry.js\n//=require class/pledge.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar ClassDependency = (function() {\n\tvar PREFIX_INTERNAL = 'internal!',\n\t\tregistry = new ClassRegistry(),\n\t\tplaceholder = [];\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = value;\n\t}\n\n\tfunction addPending(id, dependency) {\n\t\tif(dependency.pledge.isPending()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addResolved(id, dependency) {\n\t\tif(dependency.pledge.isResolved()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addRejected(id, dependency) {\n\t\tif(dependency.pledge.isRejected()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction ClassDependency(uri, context, register) {\n\t\tvar self = this,\n\t\t\tparameter = uri.match(regexMatchParameter) || placeholder;\n\n\t\tself.path = functionResolvePath(uri, context);\n\t\tself.mock = parameter[1] ? TRUE : FALSE;\n\t\tself.cache = parameter[2] ? parameter[1] === '+' : NULL;\n\t\tself.type = parameter[3] || settings.handler;\n\t\tself.version = parameter[4] || settings.version;\n\t\tself.lifetime = (parameter[5] && parameter[5] * 1000) || settings.lifetime;\n\t\tself.id = (self.mock ? MOCK_PREFIX : '' ) + self.type + '!' + self.path;\n\t\tself.uri = (self.mock ? MOCK_PREFIX : '' ) + self.type + '@' + self.version + (validatorIsPositive(self.lifetime) && self.lifetime > 0 ? '#' + self.lifetime : '' ) + '!' + self.path;\n\t\tself.dfd = ClassPledge.defer();\n\t\tself.pledge = self.dfd.pledge;\n\t\t\n\t\tself.pledge.then(function() {\n\t\t\tself.value = functionToArray(arguments);\n\t\t});\n\n\t\t(register !== FALSE) && registry.set(self.id, self);\n\n\t\treturn self;\n\t}\n\n\tClassDependency.prototype = {\n\t\tenqueue: true // handled by handler\n\t\t/* only for reference\n\t \tpath: NULL,\n\t \tmock: NULL,\n\t\tcache: NULL,\n\t\ttype: NULL,\n\t\tversion: NULL,\n\t\tlifetime: NULL,\n\t \tid: NULL,\n\t \turi: NULL,\n\t\tdfd: NULL,\n\t\tpledge: NULL,\n\t\tvalue: NULL,\n\t\thandler: NULL, // set by Dependency.resolve\n\t \tsource: NULL, // set by Cache or Loader\n\t \turl: NULL // optional, set by Loader\n\t\t*/\n\t};\n\n\tClassDependency.get = function(uri, context) {\n\t\treturn registry.get(functionResolveId(uri, context));\n\t};\n\n\tClassDependency.resolve = function(uri, context) {\n\t\tvar isInternal = context && regexMatchInternal.test(uri),\n\t\t\tdependency = isInternal ? this.get(PREFIX_INTERNAL + context + '/' + uri) : this.get(uri, context),\n\t\t\tvalue;\n\n\t\tif(!dependency) {\n\t\t\tif(isInternal) {\n\t\t\t\tdependency = new ClassDependency(PREFIX_INTERNAL + context + '/' + uri);\n\n\t\t\t\tswitch(uri) {\n\t\t\t\t\tcase DEMAND_ID:\n\t\t\t\t\t\tvalue = (function() {\n\t\t\t\t\t\t\treturn functionIterate(demand, setProperty, demand.bind(context));\n\t\t\t\t\t\t}());\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PROVIDE_ID:\n\t\t\t\t\t\tvalue = provide.bind(context);\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PATH_ID:\n\t\t\t\t\t\tvalue = context;\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdependency.dfd.resolve(value);\n\t\t\t} else {\n\t\t\t\tdependency = new ClassDependency(uri, context);\n\n\t\t\t\tdemand(MODULE_PREFIX_HANDLER + dependency.type)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction(handler) {\n\t\t\t\t\t\t\tdependency.handler = handler;\n\n\t\t\t\t\t\t\tif(dependency.mock) {\n\t\t\t\t\t\t\t\tdependency.dfd.resolve(handler);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsingletonCache.resolve(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (handler)', self.id));\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn dependency;\n\t};\n\n\tClassDependency.remove = function(uri, context, cache) {\n\t\tvar id = functionResolveId(uri, context),\n\t\t\tnode = document.querySelector('[' + DEMAND_ID + '-id=\"' + id + '\"]');\n\n\t\tregistry.remove(id);\n\t\tregistry.remove(MOCK_PREFIX + id);\n\n\t\tnode && node.parentNode.removeChild(node);\n\n\t\t(cache !== FALSE) && singletonCache.clear.path(id);\n\t};\n\n\tClassDependency.list = {\n\t\tall: function() {\n\t\t\treturn object.keys(registry.get());\n\t\t},\n\t\tpending: function() {\n\t\t\treturn functionIterate(registry.get(), addPending, []);\n\t\t},\n\t\tresolved: function() {\n\t\t\treturn functionIterate(registry.get(), addResolved, []);\n\t\t},\n\t\trejected: function() {\n\t\t\treturn functionIterate(registry.get(), addRejected, []);\n\t\t}\n\t};\n\n\treturn ClassDependency;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tfunctionResolveUrl, functionEscapeRegex, functionIterate\n*/\n\n//=require function/resolveUrl.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n\nvar ClassPattern = (function() {\n\tvar regexMatchTrailingSlash = /(.+)\\/$/;\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = {\n\t\t\turl: functionResolveUrl(value).replace(regexMatchTrailingSlash, '$1'),\n\t\t\tmatch: new RegExp('^' + functionEscapeRegex(value))\n\t\t};\n\t}\n\n\tfunction ClassPattern(pattern, url) {\n\t\tvar self = this;\n\n\t\tself.weight = pattern.length;\n\t\tself.match = new RegExp('^' + functionEscapeRegex(pattern));\n\t\tself.location = [].concat(url);\n\n\t\tfunctionIterate(self.location, setProperty, self.location);\n\t}\n\n\tClassPattern.prototype = {\n\t\t/* only for reference\n\t\t weight: 0,\n\t\t match: NULL,\n\t\t location: NULL,\n\t\t */\n\t\tmatches: function(path) {\n\t\t\treturn this.match.test(path);\n\t\t},\n\t\tprocess: function(path, index) {\n\t\t\tvar current = this.location[index];\n\n\t\t\tif(current) {\n\t\t\t\treturn path.replace(this.match, current.url);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn ClassPattern;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tTRUE,\n\tregexMatchBaseUrl,\n\tClassPledge\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require class/pledge.js\n\nvar ClassXhr = (function(XMLHttpRequest) {\n\tvar XDomainRequest = 'XDomainRequest' in global && global.XDomainRequest || XMLHttpRequest;\n\t\n\tfunction checkState() {\n\t\tif(this.readyState < 4) {\n\t\t\tthis.abort();\n\t\t}\n\t}\n\t\n\treturn function ClassXhr(url) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\txhr = regexMatchBaseUrl.test(url) ? new XMLHttpRequest() : new XDomainRequest(),\n\t\t\tboundCheckState = checkState.bind(xhr),\n\t\t\ttimeout = settings.timeout,\n\t\t\tpointer;\n\n\t\txhr.ontimeout = xhr.onerror = xhr.onabort = function() {\n\t\t\tdfd.reject(xhr.status);\n\t\t};\n\t\txhr.onprogress = xhr.onreadystatechange = function() {\n\t\t\tclearTimeout(pointer);\n\n\t\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t};\n\t\txhr.onload = function() {\n\t\t\tpointer = clearTimeout(pointer);\n\n\t\t\tif(!('status' in xhr) || xhr.status === 200) {\n\t\t\t\tdfd.resolve(xhr.responseText, xhr.getResponseHeader && xhr.getResponseHeader('content-type'));\n\t\t\t} else {\n\t\t\t\tdfd.reject(xhr.status);\n\t\t\t}\n\t\t};\n\n\t\txhr.open('GET', url, TRUE);\n\t\txhr.send();\n\t\t\n\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t\n\t\treturn dfd.pledge;\n\t};\n}(XMLHttpRequest));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_BOOLEAN, STRING_STRING, EVENT_PRE_RESOLVE, EVENT_POST_RESOLVE, EVENT_PRE_CONFIGURE, EVENT_POST_CONFIGURE, EVENT_CACHE_MISS, EVENT_CACHE_HIT, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, EVENT_PRE_PROCESS, EVENT_POST_PROCESS, NULL, FALSE,\n\tvalidatorIsTypeOf, validatorIsObject, validatorIsPositive, validatorIsInstanceOf,\n\tfunctionIterate, functionMerge, functionDefer, functionToArray,\n\tClassPledge, ClassDependency, ClassPattern, ClassLoader, \n\tsingletonEvent, singletonCache\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require validator/isPositive.js\n//=require validator/isInstanceOf.js\n//=require function/iterate.js\n//=require function/merge.js\n//=require function/defer.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require singleton/cache.js\n//=require class/pledge.js\n//=require class/dependency.js\n//=require class/pattern.js\n//=require class/loader.js\n\nglobal.demand = (function() {\n\tfunction updateCacheSettings(property, value) {\n\t\tthis[property] = { weight: property.length, state: value };\n\t}\n\n\tfunction updatePatternSettings(property, value) {\n\t\tproperty !== 'base' && (this[property] = new ClassPattern(property, value));\n\t}\n\n\tfunction updateModuleSettings(property, value) {\n\t\tvar temp = this[property] = this[property] || {};\n\n\t\tsingletonEvent.emit(EVENT_PRE_CONFIGURE, property, temp);\n\n\t\tfunctionMerge(temp, value);\n\n\t\tsingletonEvent.emit(EVENT_POST_CONFIGURE, property, temp);\n\t}\n\n\tfunction demand() {\n\t\tvar dependencies = functionToArray(arguments),\n\t\t\tcontext = this !== global ? this : NULL,\n\t\t\ti = 0, uri, dfd, result;\n\t\t\n\t\tsingletonEvent.emit(EVENT_PRE_RESOLVE, NULL, dependencies, context);\n\t\t\n\t\tfor(; (uri = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(uri, STRING_STRING)) {\n\t\t\t\tdependencies[i] = ClassDependency.resolve(uri, context).pledge;\n\t\t\t} else {\n\t\t\t\tdependencies[i] = (dfd = ClassPledge.defer()).pledge;\n\n\t\t\t\tdfd.resolve(uri);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(dependencies.length > 1) {\n\t\t\tresult = ClassPledge.all(dependencies);\n\t\t} else {\n\t\t\tresult = dependencies[0];\n\t\t}\n\t\t\n\t\treturn result.always(function() {\n\t\t\tsingletonEvent.emit(EVENT_POST_RESOLVE, NULL, dependencies, context);\n\t\t});\n\t}\n\n\tdemand.configure = function(options) {\n\t\tvar cache = options.cache,\n\t\t\tversion = options.version,\n\t\t\ttimeout = options.timeout,\n\t\t\tlifetime = options.lifetime,\n\t\t\tbase = options.base,\n\t\t\tpattern = options.pattern,\n\t\t\tmodules = options.modules,\n\t\t\tpointer = settings.modules;\n\n\t\tif(validatorIsTypeOf(cache, STRING_BOOLEAN)) {\n\t\t\tsettings.cache[''] = { weight: 0, state: cache };\n\t\t} else if(validatorIsObject(cache)) {\n\t\t\tfunctionIterate(cache, updateCacheSettings, settings.cache);\n\t\t}\n\n\t\tif(validatorIsTypeOf(version, STRING_STRING)) {\n\t\t\tsettings.version = version;\n\t\t}\n\n\t\tif(validatorIsPositive(timeout)) {\n\t\t\tsettings.timeout = Math.min(Math.max(timeout, 2), 12) * 1000;\n\t\t}\n\n\t\tif(validatorIsPositive(lifetime) && lifetime > 0) {\n\t\t\tsettings.lifetime = lifetime * 1000;\n\t\t}\n\n\t\tif(validatorIsTypeOf(base, STRING_STRING) && base !== '') {\n\t\t\tsettings.pattern.base = new ClassPattern('', base);\n\t\t}\n\n\t\tif(validatorIsObject(pattern)) {\n\t\t\tfunctionIterate(pattern, updatePatternSettings, settings.pattern);\n\t\t}\n\n\t\tif(validatorIsObject(modules)) {\n\t\t\tfunctionIterate(modules, updateModuleSettings, pointer);\n\t\t}\n\n\t\treturn demand;\n\t};\n\n\tdemand.version = '{{gulp:package.version}}';\n\tdemand.on = singletonEvent.on.bind(demand);\n\tdemand.get = function(uri, context) { var dependency = ClassDependency.get(uri, context); return dependency && dependency.value; };\n\tdemand.remove = ClassDependency.remove;\n\tdemand.list = ClassDependency.list;\n\tdemand.clear = singletonCache.clear;\n\n\tsingletonEvent\n\t\t.after(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tnew ClassLoader(dependency);\n\t\t})\n\t\t.after(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPostRequest;\n\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_CACHE_HIT + ' ' + EVENT_POST_REQUEST, function(dependency) {\n\t\t\tsingletonEvent.emit(EVENT_PRE_PROCESS, dependency.id, dependency);\n\t\t})\n\t\t.after(EVENT_PRE_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreRequest;\n\t\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_PRE_PROCESS, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreProcess;\n\t\t\t\n\t\t\tpointer && pointer(dependency);\n\t\t\t\n\t\t\tdependency.pledge.then(function() {\n\t\t\t\tsingletonEvent.emit(EVENT_POST_PROCESS, dependency.id, dependency);\n\t\t\t});\n\n\t\t\tif(dependency.enqueue === true) {\n\t\t\t\tqueue.enqueue(dependency);\n\t\t\t} else if(validatorIsInstanceOf(dependency.enqueue, ClassPledge)) {\n\t\t\t\tdependency.enqueue.then(function() { queue.enqueue(dependency); });\n\t\t\t}\n\t\t});\n\n\treturn demand;\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_STRING, STRING_UNDEFINED, STRING_FUNCTION, ERROR_PROVIDE, ERROR_PROVIDE_ANONYMOUS, NULL,\n\tvalidatorIsTypeOf, validatorIsArray,\n\tClassDependency, ClassFailure\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isArray.js\n//=require class/dependency.js\n//=require class/failure.js\n\nglobal.provide = function provide() {\n\tvar uri = validatorIsTypeOf(arguments[0], STRING_STRING) ? arguments[0] : NULL,\n\t\tcontext = this !== global ? this : NULL,\n\t\tdependencies = validatorIsArray(arguments[uri ? 1 : 0]) ? arguments[uri ? 1 : 0] : NULL,\n\t\tdefinition = dependencies ? arguments[uri ? 2 : 1] : arguments[uri ? 1 : 0],\n\t\tmodule, isFunction;\n\n\tif(!uri && processor.current) {\n\t\tmodule = processor.current;\n\t\turi = module.uri;\n\n\t\tprocessor.process();\n\t}\n\t\n\tif(uri) {\n\t\tmodule = module || new ClassDependency(uri, context);\n\t\tisFunction = validatorIsTypeOf(definition, STRING_FUNCTION);\n\n\t\tif(dependencies) {\n\t\t\tdemand\n\t\t\t\t.apply(module.path, dependencies)\n\t\t\t\t.then(\n\t\t\t\t\tfunction() { module.dfd.resolve(isFunction ? definition.apply(NULL, arguments) : definition); },\n\t\t\t\t\tfunction() { module.dfd.reject(new ClassFailure(ERROR_PROVIDE, module.id, arguments)); }\n\t\t\t\t);\n\t\t} else {\n\t\t\tmodule.dfd.resolve(isFunction ? definition() : definition);\n\t\t}\n\t} else {\n\t\t/* eslint-disable no-console */\n\t\t!validatorIsTypeOf(console, STRING_UNDEFINED) && console.error(new ClassFailure(ERROR_PROVIDE_ANONYMOUS));\n\t\t/* eslint-enable no-console */\n\t}\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nvar abstractHandler = (function() {\n\tfunction AbstractHandler() {\n\n\t}\n\n\tAbstractHandler.prototype = {\n\t\tvalidate: NULL,\n\t\tonPreRequest: NULL,\n\t\tonPostRequest: NULL,\n\t\tonPreProcess: NULL,\n\t\tprocess: NULL\n\t};\n\n\treturn AbstractHandler;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, TRUE,\n\tfunctionResolveSourcemaps,\n\tabstractHandler\n*/\n\n//=require constants.js\n//=require function/resolveSourcemaps.js\n//=require abstract/handler.js\n\nvar handlerModule = (function() {\n\tvar suffix = '.js',\n\t\ttarget = document.getElementsByTagName('head')[0],\n\t\tregexMatchType = /^(application|text)\\/(x-)?javascript/;\n\n\tfunction HandlerModule() {}\n\n\tHandlerModule.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar pathname = dependency.url.pathname;\n\t\t\t\n\t\t\tdependency.url.pathname = pathname.slice(-suffix.length) !== suffix ? pathname + suffix : pathname;\n\t\t},\n\t\tonPostRequest: function(dependency) {\n\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, dependency.source);\n\t\t},\n\t\tprocess: function(dependency) {\n\t\t\tvar script;\n\n\t\t\tif(dependency.source) {\n\t\t\t\tscript = document.createElement('script');\n\t\t\t\tscript.async = TRUE;\n\t\t\t\tscript.text = dependency.source;\n\n\t\t\t\tscript.setAttribute(DEMAND_ID + '-id', dependency.id);\n\n\t\t\t\ttarget.appendChild(script);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerModule.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, ERROR_RESOLVE, MOCK_PREFIX, STRING_STRING, FALSE, TRUE,\n\tregexMatchParameter, regexMatchSourcemap,\n\tvalidatorIsTypeOf, validatorIsObject,\n\tfunctionIterate, functionResolveId,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure,\n\thandlerModule\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/resolveId.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n//=require handler/module.js\n\nvar handlerBundle = (function() {\n\tvar path = MODULE_PREFIX_HANDLER + 'bundle',\n\t\tsettings = {};\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tsettings = options;\n\n\t\t\t\tfunctionIterate(settings, updateDependencies);\n\t\t\t}\n\t\t});\n\n\tfunction updateDependencies(uri, dependencies) {\n\t\tvar i, dependency;\n\n\t\tfor(i = 0; (dependency = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING)) {\n\t\t\t\tdependencies[i] = functionResolveId(dependency);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getType(dependencies) {\n\t\tvar type, i = 0, temp;\n\n\t\tfor(; (temp = dependencies[i]); i++) {\n\t\t\ttemp = temp.match(regexMatchParameter);\n\t\t\ttemp = (temp && temp[3]) || settings.handler;\n\n\t\t\tif(type) {\n\t\t\t\tif(temp !== type) {\n\t\t\t\t\treturn FALSE;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttype = temp;\n\t\t\t}\n\t\t}\n\n\t\treturn type;\n\t}\n\n\tfunction HandlerBundle() {}\n\n\tHandlerBundle.prototype = {\n\t\tvalidate: handlerModule.validate,\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar source = dependency.source,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tdependencies = settings[dependency.path],\n\t\t\t\ttype, match, pledges, temp, i;\n\n\t\t\tdependency.enqueue = FALSE;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\tif(dependencies && (type = getType(dependencies))) {\n\t\t\t\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\t\t\t\tsource = source.replace(match[0], '');\n\t\t\t\t}\n\n\t\t\t\tdependency.source = source;\n\t\t\t\tpledges = [];\n\n\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\tpledges.push(ClassDependency.resolve(MOCK_PREFIX + temp).pledge);\n\t\t\t\t}\n\n\t\t\t\tClassPledge.all(pledges).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\t\t\ttemp = dependencies[i] = ClassDependency.get(temp) || new ClassDependency(temp);\n\t\t\t\t\t\t\ttemp.handler = arguments[i];\n\n\t\t\t\t\t\t\tpledges.push(temp.pledge);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(type === 'module') {\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t\t},\n\t\t\t\t\treject\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treject();\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerBundle.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tFALSE, EVENT_POST_REQUEST, ERROR_RESOLVE,\n\tfunctionResolveSourcemaps,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure\n*/\n\n//=require constants.js\n//=require function/resolveSourcemaps.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n\nvar handlerComponent = (function() {\n\tvar suffix = '.html',\n\t\tregexMatchType = /^text\\/.+$/;\n\n\tfunction HandlerComponent() {}\n\n\tHandlerComponent.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar pathname = dependency.url.pathname;\n\t\t\t\n\t\t\tdependency.url.pathname = pathname.slice(-suffix.length) !== suffix ? pathname + suffix : pathname;\n\t\t},\n\t\tonPostRequest: function(dependency) {\n\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, dependency.source);\n\t\t},\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar context = dependency.path,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tcontainer = document.createElement('body'),\n\t\t\t\tmodules = [],\n\t\t\t\tpledges = [],\n\t\t\t\tnode, handler, path, uri;\n\n\t\t\tdependency.enqueue = FALSE;\n\t\t\tcontainer.innerHTML = dependency.source;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\twhile(node = container.firstElementChild) {\n\t\t\t\tif(handler = node.getAttribute('type')) {\n\t\t\t\t\tpath = node.getAttribute('path');\n\t\t\t\t\turi = handler + '!' + context + (path ? '/' + path : '');\n\n\t\t\t\t\tnode.parentNode.removeChild(node);\n\t\t\t\t\tmodules.push({ source: node.textContent, uri: uri });\n\t\t\t\t\tpledges.push(ClassDependency.resolve('mock:' + uri).pledge);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tClassPledge.all(pledges).then(\n\t\t\t\tfunction() {\n\t\t\t\t\tvar i = 0, module, dependency;\n\n\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\tfor(; (module = modules[i]); i++) {\n\t\t\t\t\t\tdependency = ClassDependency.get(module.uri) || new ClassDependency(module.uri);\n\t\t\t\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, module.source);\n\t\t\t\t\t\tdependency.handler = arguments[i];\n\n\t\t\t\t\t\tpledges.push(dependency.pledge);\n\n\t\t\t\t\t\tqueue.enqueue(dependency);\n\t\t\t\t\t}\n\n\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\t};\n\n\treturn new (HandlerComponent.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_PLUGIN, MODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, EVENT_PRE_RESOLVE, STRING_STRING, ERROR_RESOLVE, FALSE, TRUE,\n\tregexMatchInternal,\n\tvalidatorIsObject, validatorIsTypeOf,\n\tfunctionIterate, functionHash,\n\tClassDependency, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/hash.js\n//=require class/dependency.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar pluginGenie = (function() {\n\tvar path = MODULE_PREFIX_PLUGIN + 'genie',\n\t\tpattern = [];\n\n\tfunction matchPattern(path) {\n\t\tvar i = 0, pointer, match;\n\n\t\tfor(; (pointer = pattern[i]); i++) {\n\t\t\tif(path.indexOf(pointer.prefix) === 0 && (!match || pointer.weight > match.weight)) {\n\t\t\t\tmatch = pointer;\n\t\t\t}\n\t\t}\n\n\t\treturn match;\n\t}\n\n\tfunction generateConfiguration(bundle) {\n\t\tvar matches = bundle.matches,\n\t\t\tconfiguration = { pattern: {}, modules: { '/demand/handler/bundle': {} } },\n\t\t\ti = 0, pointer, dependency;\n\n\t\tconfiguration.pattern[bundle.id] = bundle.fn(matches);\n\t\tconfiguration.modules[MODULE_PREFIX_HANDLER + 'bundle'][bundle.id] = pointer = [];\n\n\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\tpointer.push(dependency.path);\n\t\t}\n\n\t\treturn configuration;\n\t}\n\n\tfunction resolveDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.resolve(arguments[i]);\n\t\t}\n\t}\n\n\tfunction rejectDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id));\n\t\t}\n\t}\n\n\tfunction addPattern(property, value) {\n\t\tpattern.push({ prefix: property, weight: property.length, fn: value });\n\t}\n\n\tfunction resolveBundles(property, value) {\n\t\tvar matches = value.matches,\n\t\t\ti = 0, dependency;\n\n\t\tif(matches.length > 1) {\n\t\t\tvalue.id = path + '/' + functionHash(JSON.stringify(value.matches));\n\n\t\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\t\tmatches[i] = new ClassDependency(dependency.uri);\n\t\t\t}\n\n\t\t\tdemand.configure(generateConfiguration(value));\n\t\t\tdemand('bundle!' + value.id)\n\t\t\t\t.then(\n\t\t\t\t\tresolveDependencies.bind(matches),\n\t\t\t\t\trejectDependencies.bind(matches)\n\t\t\t\t);\n\t\t}\n\t}\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tpattern.length = 0;\n\n\t\t\t\tfunctionIterate(options, addPattern);\n\t\t\t}\n\t\t})\n\t\t.on(EVENT_PRE_RESOLVE, function(dependencies, context) {\n\t\t\tvar bundles = {},\n\t\t\t\ti = 0, dependency, pattern;\n\n\t\t\tfor(; (dependency = dependencies[i]); i++) {\n\t\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING) && !regexMatchInternal.test(dependency) && !ClassDependency.get(dependency, context)) {\n\t\t\t\t\tdependency = new ClassDependency(dependency, context, FALSE);\n\n\t\t\t\t\tif(dependency.type === 'module' && (pattern = matchPattern(dependency.path)) && !singletonCache.get(dependency)) {\n\t\t\t\t\t\t(bundles[pattern.prefix] || (bundles[pattern.prefix] = { fn: pattern.fn, matches: [] })).matches.push(dependency);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunctionIterate(bundles, resolveBundles);\n\t\t});\n\n\treturn TRUE;\n}());"]} \ No newline at end of file diff --git a/dist/handler/css.js b/dist/handler/css.js index 6ee22bb..519869e 100644 --- a/dist/handler/css.js +++ b/dist/handler/css.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(e){"use strict";function t(t,r){function n(e){return a.href=e,a}function s(e,t,r){return f.test(t[1])||(e=e.replace(t[0],r)),e}function o(){}var u=".css",c=e.getElementsByTagName("head")[0],a=e.createElement("a"),i=/url\s*\(\s*["']?(.+?)["']?\s*\)/gi,d=/@import\s+["'](.+?)["']/gi,l=/^\//i,f=/^data:|http(s?):|\/\//i,m=/^text\/css/;return o.prototype={validate:function(e){return m.test(e)},onPreRequest:function(e){var t=e.url.pathname;e.url.pathname=t.slice(-u.length)!==u?t+u:t},onPostRequest:function(e){for(var t,o=n(e.url+"/.."),u=o.href,c="//"+o.host,a=e.source;t=i.exec(a);)a=s(a,t,'url("'+n(l.test(t[1])?c+t[1]:u+t[1]).href+'")');for(;t=d.exec(a);)a=s(a,t,'@import "'+n(l.test(t[1])?c+t[1]:u+t[1]).href+'"');e.source=r(e.url,a)},process:function(t){var r=e.querySelector('[demand-id="'+t.id+'"]');r||(r=e.createElement("style"),r.type="text/css",r.setAttribute("demand-id",t.id),c.appendChild(r)),"STYLE"===r.tagName&&(r.styleSheet?r.styleSheet.cssText=t.source:r.textContent=t.source),provide(function(){return r})}},new(o.extends(t))}provide(["/demand/abstract/handler","/demand/function/resolveSourcemaps"],t)}(document); //# sourceMappingURL=css.js.map diff --git a/dist/handler/html.js b/dist/handler/html.js index 6f84d8d..d24372b 100644 --- a/dist/handler/html.js +++ b/dist/handler/html.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function e(e){function t(e){var t,n=document.createDocumentFragment();for(u.innerHTML=e;t=u.firstElementChild;)n.appendChild(t);return n}function n(){}var r=".html",o=/^text\/html/,u=document.createElement("body");return n.prototype={validate:function(e){return o.test(e)},onPreRequest:function(e){var t=e.url.pathname;e.url.pathname=t.slice(-r.length)!==r?t+r:t},process:function(e){provide(function(){return t(e.source)})}},new(n.extends(e))}provide(["/demand/abstract/handler"],e)}(); //# sourceMappingURL=html.js.map diff --git a/dist/handler/json.js b/dist/handler/json.js index b99d68c..7708e70 100644 --- a/dist/handler/json.js +++ b/dist/handler/json.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function n(n){function t(){}var e=".json",r=/^application\/json/;return t.prototype={validate:function(n){return r.test(n)},onPreRequest:function(n){var t=n.url.pathname;n.url.pathname=t.slice(-e.length)!==e?t+e:t},process:function(n){var t=JSON.parse(n.source);provide(function(){return t})}},new(t.extends(n))}provide(["/demand/abstract/handler"],n)}(); //# sourceMappingURL=json.js.map diff --git a/dist/handler/legacy.js b/dist/handler/legacy.js index 65081cb..2f3842a 100644 --- a/dist/handler/legacy.js +++ b/dist/handler/legacy.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function e(e,n,t,r){function o(){var e,r=this,o=r.dfd,u=a[r.path]&&a[r.path].probe;t.process(r),u&&(e=u())?provide(function(){return e}):o.reject(new n("error probing",r.path))}function u(){}var a={};return demand.on("postConfigure:"+e,function(e){a=r(e)?e:{}}),u.prototype={onPreRequest:function(e){var n=a[e.path]&&a[e.path].dependencies;t.onPreRequest(e),n&&(e.enqueue=demand.apply(null,n))},onPreProcess:function(e){var n=a[e.path]&&a[e.path].dependencies;n&&"boolean"==typeof e.enqueue&&(e.enqueue=demand.apply(null,n))},process:function(e){var t=o.bind(e);e.enqueue===!0?t():e.enqueue.then(t,function(){e.dfd.reject(new n("error resolving",e.path,arguments))})}},new(u.extends(t))}provide(["path","/demand/failure","/demand/handler/module","/demand/validator/isObject"],e)}(); //# sourceMappingURL=legacy.js.map diff --git a/dist/handler/text.js b/dist/handler/text.js index 0ab1066..9138dbf 100644 --- a/dist/handler/text.js +++ b/dist/handler/text.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function t(t){function n(){}var e=/^text\/.+/;return n.prototype={validate:function(t){return e.test(t)},process:function(t){provide(function(){return t.source})}},new(n.extends(t))}provide(["/demand/abstract/handler"],t)}(); //# sourceMappingURL=text.js.map diff --git a/dist/plugin/cookie.js b/dist/plugin/cookie.js index 654a32a..0136cd3 100644 --- a/dist/plugin/cookie.js +++ b/dist/plugin/cookie.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(n){"use strict";function t(t,e,o,i){function a(t,e,o){(r||c(t.path))&&(n.cookie="demand["+t.type+"]["+t.path+"]="+encodeURIComponent(e)+"; expires="+o+"; path=/")}function c(n){for(var t,e,o=0;t=f[o];o++)0===n.indexOf(t.pattern)&&(!e||t.weight>e.weight)&&(e=t);return!!e&&e.state}var r,u="Thu, 01 Jan 1970 00:00:00 GMT",d="Fri, 31 Dec 9999 23:59:59 GMT",f=[];return demand.on("postConfigure:"+t,function(n){o(n)?(f.length=0,e(n,function(n,t){f.push({pattern:n,weight:n.length,state:t})})):i(n,"boolean")&&(r=n)}).on("cacheMiss",function(n){a(n,"",u)}).on("cacheClear",function(n){a(n,"",u)}).on("postCache",function(n,t){a(n,JSON.stringify(t),d)}),!0}provide(["path","/demand/function/iterate","/demand/validator/isObject","/demand/validator/isTypeOf"],t)}(document); //# sourceMappingURL=cookie.js.map diff --git a/dist/plugin/lzstring.js b/dist/plugin/lzstring.js index fb1f0ae..e7ed76b 100644 --- a/dist/plugin/lzstring.js +++ b/dist/plugin/lzstring.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ -!function(){"use strict";function o(o,e,r,t){function i(o){for(var n,e,r=0;n=s[r];r++)0===o.indexOf(n.pattern)&&(!e||n.weight>e.weight)&&(e=n);return!!e&&e.state}var s=[{pattern:o,weight:o.length,state:!1}],u={};return demand.on("postConfigure:"+o,function(o){r(o)?(s.length=0,e(o,function(o,n){s.push({pattern:o,weight:o.length,state:n})})):t(o,"boolean")&&s.push({pattern:"",weight:0,state:o})}).on("cacheHit",function(o){i(o.path)&&(u[o.id]=!0)}).on("preCache",function(o){i(o.path)&&(o.source=n.compressToUTF16(o.source))}).on("preProcess",function(o){u[o.id]&&(o.source=n.decompressFromUTF16(o.source))}),n}var n=function(){function o(o,n){if(!t[o]){t[o]={};for(var e=0;e>>8,e[2*r+1]=s%256}return e},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var e=new Array(o.length/2),r=0,t=e.length;r>=1}else{for(t=1,r=0;r>=1}f--,0==f&&(f=Math.pow(2,h),h++),delete u[p]}else for(t=s[p],r=0;r>=1;f--,0==f&&(f=Math.pow(2,h),h++),s[c]=l++,p=String(a)}if(""!==p){if(Object.prototype.hasOwnProperty.call(u,p)){if(p.charCodeAt(0)<256){for(r=0;r>=1}else{for(t=1,r=0;r>=1}f--,0==f&&(f=Math.pow(2,h),h++),delete u[p]}else for(t=s[p],r=0;r>=1;f--,0==f&&(f=Math.pow(2,h),h++)}for(t=2,r=0;r>=1;for(;;){if(m<<=1,v==n-1){d.push(e(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(n){return o.charCodeAt(n)})},_decompress:function(o,e,r){var t,i,s,u,a,c,p,f,l=[],h=4,d=4,m=3,v="",g=[],w={val:r(0),position:e,index:1};for(i=0;i<3;i+=1)l[i]=i;for(u=0,c=Math.pow(2,2),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=e,w.val=r(w.index++)),u|=(a>0?1:0)*p,p<<=1;switch(t=u){case 0:for(u=0,c=Math.pow(2,8),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=e,w.val=r(w.index++)),u|=(a>0?1:0)*p,p<<=1;f=n(u);break;case 1:for(u=0,c=Math.pow(2,16),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=e,w.val=r(w.index++)),u|=(a>0?1:0)*p,p<<=1;f=n(u);break;case 2:return""}for(l[3]=f,s=f,g.push(f);;){if(w.index>o)return"";for(u=0,c=Math.pow(2,m),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=e,w.val=r(w.index++)),u|=(a>0?1:0)*p,p<<=1;switch(f=u){case 0:for(u=0,c=Math.pow(2,8),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=e,w.val=r(w.index++)),u|=(a>0?1:0)*p,p<<=1;l[d++]=n(u),f=d-1,h--;break;case 1:for(u=0,c=Math.pow(2,16),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=e,w.val=r(w.index++)),u|=(a>0?1:0)*p,p<<=1;l[d++]=n(u),f=d-1,h--;break;case 2:return g.join("")}if(0==h&&(h=Math.pow(2,m),m++),l[f])v=l[f];else{if(f!==d)return null;v=s+s.charAt(0)}g.push(v),l[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return n}):"undefined"!=typeof module&&null!=module?module.exports=n:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return n}),provide(["path","/demand/function/iterate","/demand/validator/isObject","/demand/validator/isTypeOf"],o)}(); +/**! Qoopido.demand 4.2.4-alpha.2 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +var LZString=function(){function n(n,o){if(!t[n]){t[n]={};for(var r=0;r>>8,r[2*e+1]=s%256}return r},decompressFromUint8Array:function(n){if(null===n||void 0===n)return i.decompress(n);for(var r=new Array(n.length/2),e=0,t=r.length;e>=1}else{for(t=1,e=0;e>=1}f--,0==f&&(f=Math.pow(2,h),h++),delete u[p]}else for(t=s[p],e=0;e>=1;f--,0==f&&(f=Math.pow(2,h),h++),s[c]=l++,p=String(a)}if(""!==p){if(Object.prototype.hasOwnProperty.call(u,p)){if(p.charCodeAt(0)<256){for(e=0;e>=1}else{for(t=1,e=0;e>=1}f--,0==f&&(f=Math.pow(2,h),h++),delete u[p]}else for(t=s[p],e=0;e>=1;f--,0==f&&(f=Math.pow(2,h),h++)}for(t=2,e=0;e>=1;for(;;){if(m<<=1,g==o-1){d.push(r(m));break}g++}return d.join("")},decompress:function(n){return null==n?"":""==n?null:i._decompress(n.length,32768,function(o){return n.charCodeAt(o)})},_decompress:function(n,r,e){var t,i,s,u,a,c,p,f,l=[],h=4,d=4,m=3,g="",v=[],w={val:e(0),position:r,index:1};for(i=0;i<3;i+=1)l[i]=i;for(u=0,c=Math.pow(2,2),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=r,w.val=e(w.index++)),u|=(a>0?1:0)*p,p<<=1;switch(t=u){case 0:for(u=0,c=Math.pow(2,8),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=r,w.val=e(w.index++)),u|=(a>0?1:0)*p,p<<=1;f=o(u);break;case 1:for(u=0,c=Math.pow(2,16),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=r,w.val=e(w.index++)),u|=(a>0?1:0)*p,p<<=1;f=o(u);break;case 2:return""}for(l[3]=f,s=f,v.push(f);;){if(w.index>n)return"";for(u=0,c=Math.pow(2,m),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=r,w.val=e(w.index++)),u|=(a>0?1:0)*p,p<<=1;switch(f=u){case 0:for(u=0,c=Math.pow(2,8),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=r,w.val=e(w.index++)),u|=(a>0?1:0)*p,p<<=1;l[d++]=o(u),f=d-1,h--;break;case 1:for(u=0,c=Math.pow(2,16),p=1;p!=c;)a=w.val&w.position,w.position>>=1,0==w.position&&(w.position=r,w.val=e(w.index++)),u|=(a>0?1:0)*p,p<<=1;l[d++]=o(u),f=d-1,h--;break;case 2:return v.join("")}if(0==h&&(h=Math.pow(2,m),m++),l[f])g=l[f];else{if(f!==d)return null;g=s+s.charAt(0)}v.push(g),l[d++]=s+g.charAt(0),h--,s=g,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString}),function(n){"use strict";function o(o,r,e,t){function i(n){for(var o,r,e=0;o=s[e];e++)0===n.indexOf(o.pattern)&&(!r||o.weight>r.weight)&&(r=o);return!!r&&r.state}var s=[{pattern:o,weight:o.length,state:!1}],u={};return demand.on("postConfigure:"+o,function(n){e(n)?(s.length=0,r(n,function(n,o){s.push({pattern:n,weight:n.length,state:o})})):t(n,"boolean")&&s.push({pattern:"",weight:0,state:n})}).on("cacheHit",function(n){i(n.path)&&(u[n.id]=!0)}).on("preCache",function(o){i(o.path)&&(o.source=n.LZString.compressToUTF16(o.source))}).on("preProcess",function(o){u[o.id]&&(o.source=n.LZString.decompressFromUTF16(o.source))}),!0}provide(["path","/demand/function/iterate","/demand/validator/isObject","/demand/validator/isTypeOf"],o)}(this); //# sourceMappingURL=lzstring.js.map diff --git a/dist/plugin/lzstring.js.map b/dist/plugin/lzstring.js.map index eee3198..464553b 100644 --- a/dist/plugin/lzstring.js.map +++ b/dist/plugin/lzstring.js.map @@ -1 +1 @@ -{"version":3,"sources":["plugin/lzstring.js","../vendor/lz-string/libs/lz-string.js"],"names":["definition","path","iterate","isObject","isTypeOf","isEnabled","pointer","match","i","pattern","indexOf","weight","state","length","storage","demand","on","options","key","value","push","dependency","id","source","LZString","compressToUTF16","decompressFromUTF16","getBaseValue","alphabet","character","baseReverseDic","charAt","f","String","fromCharCode","keyStrBase64","keyStrUriSafe","compressToBase64","input","res","_compress","a","decompressFromBase64","_decompress","index","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","undefined","decompress","Array","result","forEach","c","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","Object","prototype","hasOwnProperty","call","Math","pow","resetValue","getNextValue","next","w","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","data","val","position","define","amd","module","exports","angular","factory","provide"],"mappings":"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","file":"lzstring.js","sourcesContent":["/* global\n\tLZString\n*/\n\n(function() {\n\t'use strict';\n\n //=include vendor/lz-string/libs/lz-string.js\n\n\tfunction definition(path, iterate, isObject, isTypeOf) {\n\t\tvar pattern = [ { pattern: path, weight: path.length, state: false }],\n\t\t\t\tstorage = {};\n\n\t\tdemand\n\t\t\t.on('postConfigure:' + path, function(options) {\n\t\t\t\tif(isObject(options)) {\n\t\t\t\t\tpattern.length = 0;\n\n\t\t\t\t\titerate(options, function(key, value) {\n\t\t\t\t\t\tpattern.push({ pattern: key, weight: key.length, state: value });\n\t\t\t\t\t});\n\t\t\t\t} else if(isTypeOf(options, 'boolean')) {\n\t\t\t\t\tpattern.push({ pattern: '', weight: 0, state: options });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('cacheHit', function(dependency) {\n\t\t\t\tif(isEnabled(dependency.path)) {\n\t\t\t\t\tstorage[dependency.id] = true;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('preCache', function(dependency) {\n\t\t\t\tif(isEnabled(dependency.path)) {\n\t\t\t\t\tdependency.source = LZString.compressToUTF16(dependency.source);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('preProcess', function(dependency) {\n\t\t\t\tif(storage[dependency.id]) {\n\t\t\t\t\tdependency.source = LZString.decompressFromUTF16(dependency.source);\n\t\t\t\t}\n\t\t\t});\n\n\t\tfunction isEnabled(path) {\n\t\t\tvar i = 0, pointer, match;\n\n\t\t\tfor(; (pointer = pattern[i]); i++) {\n\t\t\t\tif(path.indexOf(pointer.pattern) === 0 && (!match || pointer.weight > match.weight)) {\n\t\t\t\t\tmatch = pointer;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn match ? match.state : false;\n\t\t}\n\n\t\treturn LZString;\n\t}\n\n\tprovide([ 'path', '/demand/function/iterate', '/demand/validator/isObject', '/demand/validator/isTypeOf' ], definition);\n}());","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../vendor/lz-string/libs/lz-string.js"],"names":["LZString","getBaseValue","alphabet","character","baseReverseDic","i","length","charAt","f","String","fromCharCode","keyStrBase64","keyStrUriSafe","compressToBase64","input","res","_compress","a","decompressFromBase64","_decompress","index","compressToUTF16","decompressFromUTF16","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","undefined","decompress","Array","result","forEach","c","push","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","value","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","Object","prototype","hasOwnProperty","call","Math","pow","resetValue","getNextValue","next","w","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","data","val","position","define","amd","module","exports","angular","factory","global","definition","path","iterate","isObject","isTypeOf","isEnabled","pointer","match","pattern","indexOf","weight","state","storage","demand","on","options","key","dependency","id","source","provide","this"],"mappings":"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","file":"lzstring.js","sourcesContent":["// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n"]} \ No newline at end of file diff --git a/dist/plugin/sri.js b/dist/plugin/sri.js index 777ef16..9b34f14 100644 --- a/dist/plugin/sri.js +++ b/dist/plugin/sri.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.2.4-alpha.1 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ -!function(){"use strict";function r(r,e,n,t){function o(r){var e;return n(i,function(n,t){if(n===r)return e=t,!1}),e||!1}var i;return demand.on("postConfigure:"+r,function(r){t(r)&&(i=r)}).on("postRequest",function(r){var n,t;if(n=o(r.path))try{t=new jsSHA(n.type,"TEXT"),t.update(r.source),t.getHash("HEX")!==n.hash&&r.dfd.reject(new e("error resolving (sri)",r.id))}catch(n){r.dfd.reject(new e("unsupported hashing algorithm (sri)",r.id))}}),jsSHA}var e=15;!function(r){function n(r,e){this.highOrder=r,this.lowOrder=e}function t(r,e,n,t,o){var i,w,h,u,d,f,a,l,s,O,c=0;if(i=n||[0],t=t||0,f=t>>>3,"UTF8"===e)for(s=o===-1?3:0,u=0;uw?h.push(w):2048>w?(h.push(192|w>>>6),h.push(128|63&w)):55296>w||57344<=w?h.push(224|w>>>12,128|w>>>6&63,128|63&w):(u+=1,w=65536+((1023&w)<<10|1023&r.charCodeAt(u)),h.push(240|w>>>18,128|w>>>12&63,128|w>>>6&63,128|63&w)),d=0;d>>2;i.length<=a;)i.push(0);i[a]|=h[d]<<8*(s+o*(l%4)),c+=1}else if("UTF16BE"===e||"UTF16LE"===e)for(s=o===-1?2:0,O="UTF16LE"===e&&1!==o||"UTF16LE"!==e&&1===o,u=0;u>>8),l=c+f,a=l>>>2;i.length<=a;)i.push(0);i[a]|=w<<8*(s+o*(l%4)),c+=2}return{value:i,binLen:8*c+t}}function o(r,e,n,t){var o,i,w,h,u,d,f,a=r.length;if(0!==a%2)throw new Error("String of HEX type must be in byte increments");for(o=e||[0],n=n||0,d=n>>>3,f=t===-1?3:0,i=0;i>>1)+d,h=u>>>2;o.length<=h;)o.push(0);o[h]|=w<<8*(f+t*(u%4))}return{value:o,binLen:4*a+n}}function i(r,e,n,t){var o,i,w,h,u,d,f;for(o=e||[0],n=n||0,h=n>>>3,f=t===-1?3:0,w=0;w>>2,o.length<=u&&o.push(0),o[u]|=i<<8*(f+t*(d%4));return{value:o,binLen:8*r.length+n}}function w(r,e,n,t){var o,i,w,h,u,d,f,a,l,s,O,c=0,g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";if(-1===r.search(/^[a-zA-Z0-9=+\/]+$/))throw new Error("Invalid character in base-64 string");if(f=r.indexOf("="),r=r.replace(/\=/g,""),-1!==f&&f>>3,s=t===-1?3:0,h=0;h>>2;o.length<=O;)o.push(0);o[O]|=(u>>>16-8*w&255)<<8*(s+t*(l%4)),c+=1}}return{value:o,binLen:8*c+n}}function h(r,e,n,t){var o,i,h,w,u,d,f;for(o=e||[0],n=n||0,h=n>>>3,d=t===-1?3:0,f=new Uint8Array(r),i=0;i>>2,o.length<=w&&o.push(0),o[w]|=f[i]<<8*(d+t*(u%4));return{value:o,binLen:8*r.byteLength+n}}function w(r,e,n,t){var o,i,h,w="0123456789abcdef",u="",d=e/8;for(h=n===-1?3:0,o=0;o>>2]>>>8*(h+n*(o%4)),u+=w.charAt(i>>>4&15)+w.charAt(15&i);return t.outputUpper?u.toUpperCase():u}function u(r,e,n,t){var o,i,h,w,u,d,f="",a=e/8,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(d=n===-1?3:0,o=0;o>>2]:0,u=o+2>>2]:0,h=(r[o>>>2]>>>8*(d+n*(o%4))&255)<<16|(w>>>8*(d+n*((o+1)%4))&255)<<8|u>>>8*(d+n*((o+2)%4))&255,i=0;i<4;i+=1)f+=8*o+6*i<=e?O.charAt(h>>>6*(3-i)&63):t.b64Pad;return f}function d(r,e,n){var t,o,i,h="",w=e/8;for(i=n===-1?3:0,t=0;t>>2]>>>8*(i+n*(t%4))&255,h+=String.fromCharCode(o);return h}function f(r,e,n){var t,o,i,h=e/8,w=new ArrayBuffer(h);for(i=new Uint8Array(w),o=n===-1?3:0,t=0;t>>2]>>>8*(o+n*(t%4))&255;return w}function a(r){var e,n={outputUpper:!1,b64Pad:"=",shakeLen:-1};if(e=r||{},n.outputUpper=e.outputUpper||!1,!0===e.hasOwnProperty("b64Pad")&&(n.b64Pad=e.b64Pad),!0===e.hasOwnProperty("shakeLen")&&0!==(8&SUPPORTED_ALGS)){if(e.shakeLen%8!==0)throw new Error("shakeLen must be a multiple of 8");n.shakeLen=e.shakeLen}if("boolean"!=typeof n.outputUpper)throw new Error("Invalid outputUpper formatting option");if("string"!=typeof n.b64Pad)throw new Error("Invalid b64Pad formatting option");return n}function O(r,e,w){var u;switch(e){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw new Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(r){case"HEX":u=function(r,e,n){return t(r,e,n,w)};break;case"TEXT":u=function(r,t,o){return n(r,e,t,o,w)};break;case"B64":u=function(r,e,n){return i(r,e,n,w)};break;case"BYTES":u=function(r,e,n){return o(r,e,n,w)};break;case"ARRAYBUFFER":try{u=new ArrayBuffer(0)}catch(r){throw new Error("ARRAYBUFFER not supported by this environment")}u=function(r,e,n){return h(r,e,n,w)};break;default:throw new Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER")}return u}function l(r,e){return r<>>32-e}function s(r,n){return n>32?(n-=32,new e(r.lowOrder<>>32-n,r.highOrder<>>32-n)):0!==n?new e(r.highOrder<>>32-n,r.lowOrder<>>32-n):r}function c(r,e){return r>>>e|r<<32-e}function g(r,n){var t=null,o=new e(r.highOrder,r.lowOrder);return t=32>=n?new e(o.highOrder>>>n|o.lowOrder<<32-n&4294967295,o.lowOrder>>>n|o.highOrder<<32-n&4294967295):new e(o.lowOrder>>>n-32|o.highOrder<<64-n&4294967295,o.highOrder>>>n-32|o.lowOrder<<64-n&4294967295)}function A(r,e){return r>>>e}function S(r,n){var t=null;return t=32>=n?new e(r.highOrder>>>n,r.lowOrder>>>n|r.highOrder<<32-n&4294967295):new e(0,r.highOrder>>>n-32)}function p(r,e,n){return r^e^n}function E(r,e,n){return r&e^~r&n}function v(r,n,t){return new e(r.highOrder&n.highOrder^~r.highOrder&t.highOrder,r.lowOrder&n.lowOrder^~r.lowOrder&t.lowOrder)}function H(r,e,n){return r&e^r&n^e&n}function P(r,n,t){return new e(r.highOrder&n.highOrder^r.highOrder&t.highOrder^n.highOrder&t.highOrder,r.lowOrder&n.lowOrder^r.lowOrder&t.lowOrder^n.lowOrder&t.lowOrder)}function U(r){return c(r,2)^c(r,13)^c(r,22)}function R(r){var n=g(r,28),t=g(r,34),o=g(r,39);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function b(r){return c(r,6)^c(r,11)^c(r,25)}function T(r){var n=g(r,14),t=g(r,18),o=g(r,41);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function L(r){return c(r,7)^c(r,18)^A(r,3)}function m(r){var n=g(r,1),t=g(r,8),o=S(r,7);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function k(r){return c(r,17)^c(r,19)^A(r,10)}function y(r){var n=g(r,19),t=g(r,61),o=S(r,6);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function F(r,e){var n=(65535&r)+(65535&e),t=(r>>>16)+(e>>>16)+(n>>>16);return(65535&t)<<16|65535&n}function B(r,e,n,t){var o=(65535&r)+(65535&e)+(65535&n)+(65535&t),i=(r>>>16)+(e>>>16)+(n>>>16)+(t>>>16)+(o>>>16);return(65535&i)<<16|65535&o}function D(r,e,n,t,o){var i=(65535&r)+(65535&e)+(65535&n)+(65535&t)+(65535&o),h=(r>>>16)+(e>>>16)+(n>>>16)+(t>>>16)+(o>>>16)+(i>>>16);return(65535&h)<<16|65535&i}function G(r,n){var t,o,i,h;return t=(65535&r.lowOrder)+(65535&n.lowOrder),o=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t>>>16),i=(65535&o)<<16|65535&t,t=(65535&r.highOrder)+(65535&n.highOrder)+(o>>>16),o=(r.highOrder>>>16)+(n.highOrder>>>16)+(t>>>16),h=(65535&o)<<16|65535&t,new e(h,i)}function _(r,n,t,o){var i,h,w,u;return i=(65535&r.lowOrder)+(65535&n.lowOrder)+(65535&t.lowOrder)+(65535&o.lowOrder),h=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t.lowOrder>>>16)+(o.lowOrder>>>16)+(i>>>16),w=(65535&h)<<16|65535&i,i=(65535&r.highOrder)+(65535&n.highOrder)+(65535&t.highOrder)+(65535&o.highOrder)+(h>>>16),h=(r.highOrder>>>16)+(n.highOrder>>>16)+(t.highOrder>>>16)+(o.highOrder>>>16)+(i>>>16),u=(65535&h)<<16|65535&i,new e(u,w)}function C(r,n,t,o,i){var h,w,u,d;return h=(65535&r.lowOrder)+(65535&n.lowOrder)+(65535&t.lowOrder)+(65535&o.lowOrder)+(65535&i.lowOrder),w=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t.lowOrder>>>16)+(o.lowOrder>>>16)+(i.lowOrder>>>16)+(h>>>16),u=(65535&w)<<16|65535&h,h=(65535&r.highOrder)+(65535&n.highOrder)+(65535&t.highOrder)+(65535&o.highOrder)+(65535&i.highOrder)+(w>>>16),w=(r.highOrder>>>16)+(n.highOrder>>>16)+(t.highOrder>>>16)+(o.highOrder>>>16)+(i.highOrder>>>16)+(h>>>16),d=(65535&w)<<16|65535&h,new e(d,u)}function x(r,n){return new e(r.highOrder^n.highOrder,r.lowOrder^n.lowOrder)}function Y(r,n,t,o,i){return new e(r.highOrder^n.highOrder^t.highOrder^o.highOrder^i.highOrder,r.lowOrder^n.lowOrder^t.lowOrder^o.lowOrder^i.lowOrder)}function I(r){var e,n=[];for(e=0;e<5;e+=1)n[e]=r[e].slice();return n}function X(r){var n,t,o,i=[];if("SHA-1"===r&&0!==(1&SUPPORTED_ALGS))i=[1732584193,4023233417,2562383102,271733878,3285377520];else if(0===r.lastIndexOf("SHA-",0)&&0!==(6&SUPPORTED_ALGS))switch(n=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],t=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],r){case"SHA-224":i=n;break;case"SHA-256":i=t;break;case"SHA-384":i=[new e(3418070365,n[0]),new e(1654270250,n[1]),new e(2438529370,n[2]),new e(355462360,n[3]),new e(1731405415,n[4]),new e(41048885895,n[5]),new e(3675008525,n[6]),new e(1203062813,n[7])];break;case"SHA-512":i=[new e(t[0],4089235720),new e(t[1],2227873595),new e(t[2],4271175723),new e(t[3],1595750129),new e(t[4],2917565137),new e(t[5],725511199),new e(t[6],4215389547),new e(t[7],327033209)];break;default:throw new Error("Unknown SHA variant")}else{if(0!==r.lastIndexOf("SHA3-",0)&&0!==r.lastIndexOf("SHAKE",0)||0===(8&SUPPORTED_ALGS))throw new Error("No SHA variants supported");for(o=0;o<5;o+=1)i[o]=[new e(0,0),new e(0,0),new e(0,0),new e(0,0),new e(0,0)]}return i}function M(r,e){var n,t,o,i,h,w,u,d=[],f=E,a=p,O=H,s=l,c=F,g=D;for(n=e[0],t=e[1],o=e[2],i=e[3],h=e[4],u=0;u<80;u+=1)u<16?d[u]=r[u]:d[u]=s(d[u-3]^d[u-8]^d[u-14]^d[u-16],1),w=u<20?g(s(n,5),f(t,o,i),h,1518500249,d[u]):u<40?g(s(n,5),a(t,o,i),h,1859775393,d[u]):u<60?g(s(n,5),O(t,o,i),h,2400959708,d[u]):g(s(n,5),a(t,o,i),h,3395469782,d[u]),h=i,i=o,o=s(t,30),t=n,n=w;return e[0]=c(n,e[0]),e[1]=c(t,e[1]),e[2]=c(o,e[2]),e[3]=c(i,e[3]),e[4]=c(h,e[4]),e}function K(r,e,n,t,o){var i,h,w,u;for(w=(e+65>>>9<<4)+15;r.length<=w;)r.push(0);for(r[e>>>5]|=128<<24-e%32,u=e+n,r[w]=4294967295&u,r[w-1]=u/W|0,h=r.length,i=0;i>>10<<5)+31,f=32}else u=(e+65>>>9<<4)+15,f=16;for(;r.length<=u;)r.push(0);for(r[e>>>5]|=128<<24-e%32,a=e+n,r[u]=4294967295&a,r[u-1]=a/W|0,w=r.length,h=0;h>>1)%5][(o>>>1)/5|0]=x(n[(o>>>1)%5][(o>>>1)/5|0],new e(r[o+1],r[o]));for(t=0;t<24;t+=1){for(h=X("SHA3-"),o=0;o<5;o+=1)w[o]=Y(n[o][0],n[o][1],n[o][2],n[o][3],n[o][4]);for(o=0;o<5;o+=1)u[o]=x(w[(o+4)%5],s(w[(o+1)%5],1));for(o=0;o<5;o+=1)for(i=0;i<5;i+=1)n[o][i]=x(n[o][i],u[o]);for(o=0;o<5;o+=1)for(i=0;i<5;i+=1)h[i][(2*o+3*i)%5]=s(n[o][i],Q[o][i]);for(o=0;o<5;o+=1)for(i=0;i<5;i+=1)n[o][i]=x(h[o][i],new e(~h[(o+1)%5][i].highOrder&h[(o+2)%5][i].highOrder,~h[(o+1)%5][i].lowOrder&h[(o+2)%5][i].lowOrder));n[0][0]=x(n[0][0],V[t])}return n}function z(r,e,n,t,o,i,h){var w,u,d=[],f=o>>>5,a=0,O=e>>>5;for(w=0;w=o;w+=f)t=q(r.slice(w,w+f),t),e-=o;for(r=r.slice(w),e%=o;r.length>>3,r[w>>2]^=i<<8*(w%4),r[f-1]^=2147483648,t=q(r,t);32*d.length=h));)d.push(u.highOrder),a+=1,0===64*a%o&&q(null,t);return d}var Z,J,Q,V,W=4294967296;0!==(6&SUPPORTED_ALGS)&&(Z=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],0!==(4&SUPPORTED_ALGS)&&(J=[new e(Z[0],3609767458),new e(Z[1],602891725),new e(Z[2],3964484399),new e(Z[3],2173295548),new e(Z[4],4081628472),new e(Z[5],3053834265),new e(Z[6],2937671579),new e(Z[7],3664609560),new e(Z[8],2734883394),new e(Z[9],1164996542),new e(Z[10],1323610764),new e(Z[11],3590304994),new e(Z[12],4068182383),new e(Z[13],991336113),new e(Z[14],633803317),new e(Z[15],3479774868),new e(Z[16],2666613458),new e(Z[17],944711139),new e(Z[18],2341262773),new e(Z[19],2007800933),new e(Z[20],1495990901),new e(Z[21],1856431235),new e(Z[22],3175218132),new e(Z[23],2198950837),new e(Z[24],3999719339),new e(Z[25],766784016),new e(Z[26],2566594879),new e(Z[27],3203337956),new e(Z[28],1034457026),new e(Z[29],2466948901),new e(Z[30],3758326383),new e(Z[31],168717936),new e(Z[32],1188179964),new e(Z[33],1546045734),new e(Z[34],1522805485),new e(Z[35],2643833823),new e(Z[36],2343527390),new e(Z[37],1014477480),new e(Z[38],1206759142),new e(Z[39],344077627),new e(Z[40],1290863460),new e(Z[41],3158454273),new e(Z[42],3505952657),new e(Z[43],106217008),new e(Z[44],3606008344),new e(Z[45],1432725776),new e(Z[46],1467031594),new e(Z[47],851169720),new e(Z[48],3100823752),new e(Z[49],1363258195),new e(Z[50],3750685593),new e(Z[51],3785050280),new e(Z[52],3318307427),new e(Z[53],3812723403),new e(Z[54],2003034995),new e(Z[55],3602036899),new e(Z[56],1575990012),new e(Z[57],1125592928),new e(Z[58],2716904306),new e(Z[59],442776044),new e(Z[60],593698344),new e(Z[61],3733110249),new e(Z[62],2999351573),new e(Z[63],3815920427),new e(3391569614,3928383900),new e(3515267271,566280711),new e(3940187606,3454069534),new e(4118630271,4000239992),new e(116418474,1914138554),new e(174292421,2731055270),new e(289380356,3203993006),new e(460393269,320620315),new e(685471733,587496836),new e(852142971,1086792851),new e(1017036298,365543100),new e(1126000580,2618297676),new e(1288033470,3409855158),new e(1501505948,4234509866),new e(1607167915,987167468),new e(1816402316,1246189591)])),0!==(8&SUPPORTED_ALGS)&&(V=[new e(0,1),new e(0,32898),new e(2147483648,32906),new e(2147483648,2147516416),new e(0,32907),new e(0,2147483649),new e(2147483648,2147516545),new e(2147483648,32777),new e(0,138),new e(0,136),new e(0,2147516425),new e(0,2147483658),new e(0,2147516555),new e(2147483648,139),new e(2147483648,32905),new e(2147483648,32771),new e(2147483648,32770),new e(2147483648,128),new e(0,32778),new e(2147483648,2147483658),new e(2147483648,2147516545),new e(2147483648,32896),new e(0,2147483649),new e(2147483648,2147516424)],Q=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]]);var $=function(r,e,n){var t,o,i,h,l,s,c,g,A,S,p=0,E=[],v=0,H=r,P=!1,U=[],R=[],b=!1,T=!1,L=-1;if(S=n||{},t=S.encoding||"UTF8",A=S.numRounds||1,A!==parseInt(A,10)||1>A)throw new Error("numRounds must a integer >= 1");if("SHA-1"===H&&0!==(1&SUPPORTED_ALGS))l=512,s=M,c=K,h=160,g=function(r){return r.slice()};else if(0===H.lastIndexOf("SHA-",0)&&0!==(6&SUPPORTED_ALGS))if(s=function(r,e){return j(r,e,H)},c=function(r,e,n,t,o){return N(r,e,n,t,H,o)},g=function(r){return r.slice()},"SHA-224"===H&&0!==(2&SUPPORTED_ALGS))l=512,h=224;else if("SHA-256"===H&&0!==(2&SUPPORTED_ALGS))l=512,h=256;else if("SHA-384"===H&&0!==(4&SUPPORTED_ALGS))l=1024,h=384;else{if("SHA-512"!==H||0===(4&SUPPORTED_ALGS))throw new Error("Chosen SHA variant is not supported");l=1024,h=512}else{if(0!==H.lastIndexOf("SHA3-",0)&&0!==H.lastIndexOf("SHAKE",0)||0===(8&SUPPORTED_ALGS))throw new Error("Chosen SHA variant is not supported");var m=6;if(s=q,g=function(r){return I(r)},L=1,"SHA3-224"===H)l=1152,h=224;else if("SHA3-256"===H)l=1088,h=256;else if("SHA3-384"===H)l=832,h=384;else if("SHA3-512"===H)l=576,h=512;else if("SHAKE128"===H)l=1344,h=-1,m=31,T=!0;else{if("SHAKE256"!==H)throw new Error("Chosen SHA variant is not supported");l=1088,h=-1,m=31,T=!0}c=function(r,e,n,t,o){return z(r,e,n,t,l,m,o)}}i=O(e,t,L),o=X(H),this.setHMACKey=function(r,e,n){var i,w,u,d,f,a,g,A;if(!0===P)throw new Error("HMAC key already set");if(!0===b)throw new Error("Cannot set HMAC key after calling update");if(T===!0&&0!==(8&SUPPORTED_ALGS))throw new Error("SHAKE is not supported for HMAC");if(A=n||{},t=A.encoding||"UTF8",i=O(e,t,L),w=i(r),u=w.binLen,d=w.value,f=l>>>3,g=f/4-1,fu/8){for(;d.length<=g;)d.push(0);d[g]&=4294967040}for(a=0;a<=g;a+=1)U[a]=909522486^d[a],R[a]=1549556828^d[a];o=s(U,o),p=l,P=!0},this.update=function(r){var e,n,t,h,w,u=0,d=l>>>5;for(e=i(r,E,v),n=e.binLen,h=e.value,t=n>>>5,w=0;w>>5),v=n%l,b=!0},this.getHash=function(r,e){var n,t,i,O;if(!0===P)throw new Error("Cannot call getHash after setting HMAC key");if(i=a(e),T===!0&&0!==(8&SUPPORTED_ALGS)){if(i.shakeLen===-1)throw new Error("shakeLen must be specified in options");h=i.shakeLen}switch(r){case"HEX":n=function(r){return w(r,h,L,i)};break;case"B64":n=function(r){return u(r,h,L,i)};break;case"BYTES":n=function(r){return d(r,h,L)};break;case"ARRAYBUFFER":try{t=new ArrayBuffer(0)}catch(r){throw new Error("ARRAYBUFFER not supported by this environment")}n=function(r){return f(r,h,L)};break;default:throw new Error("format must be HEX, B64, BYTES, or ARRAYBUFFER")}for(O=c(E.slice(),v,p,g(o),h),t=1;t>>24-h%32),O=c(O,h,0,X(H),h);return n(O)},this.getHMAC=function(r,e){var n,t,i,O;if(!1===P)throw new Error("Cannot call getHMAC without first setting HMAC key");switch(i=a(e),r){case"HEX":n=function(r){return w(r,h,L,i)};break;case"B64":n=function(r){return u(r,h,L,i)};break;case"BYTES":n=function(r){return d(r,h,L)};break;case"ARRAYBUFFER":try{n=new ArrayBuffer(0)}catch(r){throw new Error("ARRAYBUFFER not supported by this environment")}n=function(r){return f(r,h,L)};break;default:throw new Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER")}return t=c(E.slice(),v,p,g(o),h),O=s(R,X(H)),O=c(t,h,l,O,h),n(O)}};"function"==typeof define&&define.amd?define(function(){return $}):"undefined"!=typeof exports?"undefined"!=typeof module&&module.exports?(module.exports=$,exports=$):exports=$:r.jsSHA=$}(this),function(r){"use strict";function e(e,n,t,o){function i(r){var e;return t(h,function(n,t){if(n===r)return e=t,!1}),e||!1}var h;return demand.on("postConfigure:"+e,function(r){o(r)&&(h=r)}).on("postRequest",function(e){var t,o,h;if(t=i(e.path))try{o=new r.jsSHA(t.type,"TEXT"),o.update(e.source),(h=o.getHash("B64"))!==t.hash&&e.dfd.reject(new n('hash mismatch, should be "'+t.hash+'" but is "'+h+'" (sri)',e.id))}catch(r){e.dfd.reject(new n("unsupported hashing algorithm (sri)",e.id))}}),!0}provide(["path","/demand/failure","/demand/function/iterate","/demand/validator/isObject"],e)}(this); //# sourceMappingURL=sri.js.map diff --git a/dist/plugin/sri.js.map b/dist/plugin/sri.js.map index a8109d9..3181cef 100644 --- a/dist/plugin/sri.js.map +++ b/dist/plugin/sri.js.map @@ -1 +1 @@ -{"version":3,"sources":["plugin/sri.js","../vendor/jssha/src/sha_dev.js"],"names":["definition","path","Failure","iterate","isObject","isEnabled","match","settings","key","value","demand","on","options","dependency","sha","jsSHA","type","update","source","getHash","hash","dfd","reject","id","error","SUPPORTED_ALGS","global","Int_64","msint_32","lsint_32","this","highOrder","lowOrder","str2packed","str","utfType","existingPacked","existingPackedLen","bigEndianMod","packed","codePnt","codePntArr","i","j","existingByteLen","intOffset","byteOffset","shiftModifier","transposeBytes","byteCnt","length","charCodeAt","push","binLen","hex2packed","num","Error","parseInt","substr","isNaN","bytes2packed","b642packed","index","tmpInt","strPart","firstEqual","b64Tab","search","indexOf","replace","arraybuffer2packed","arr","arrView","Uint8Array","byteLength","packed2hex","outputLength","formatOpts","srcByte","hex_tab","charAt","toUpperCase","packed2b64","triplet","int1","int2","packed2bytes","String","fromCharCode","packed2arraybuffer","retVal","ArrayBuffer","getOutputOpts","outputOptions","outputUpper","b64Pad","shakeLen","hasOwnProperty","getStrConverter","format","existingBin","existingBinLen","ignore","rotl_32","x","n","rotl_64","rotr_32","rotr_64","tmp","shr_32","shr_64","parity_32","y","z","ch_32","ch_64","maj_32","maj_64","sigma0_32","sigma0_64","rotr28","rotr34","rotr39","sigma1_32","sigma1_64","rotr14","rotr18","rotr41","gamma0_32","gamma0_64","rotr1","rotr8","shr7","gamma1_32","gamma1_64","rotr19","rotr61","shr6","safeAdd_32_2","a","b","lsw","msw","safeAdd_32_4","c","d","safeAdd_32_5","e","safeAdd_64_2","safeAdd_64_4","safeAdd_64_5","xor_64_2","xor_64_5","cloneSHA3State","state","clone","slice","getNewState","variant","H_trunc","H_full","lastIndexOf","roundSHA1","block","H","T","t","W","ch","parity","maj","rotl","safeAdd_2","safeAdd_5","finalizeSHA1","remainder","remainderBinLen","processedBinLen","outputLen","appendedMessageLength","offset","totalLen","TWO_PWR_32","roundSHA2","f","g","h","T1","T2","numRounds","binaryStringMult","safeAdd_4","gamma0","gamma1","sigma0","sigma1","Int","K","K_sha512","Number","K_sha2","finalizeSHA2","binaryStringInc","roundSHA3","round","B","C","D","r_sha3","rc_sha3","finalizeSHA3","blockSize","delimiter","temp","state_offset","remainderIntLen","inputFormat","intermediateState","converterFunc","outputBinLen","variantBlockSize","roundFunc","finalizeFunc","stateCloneFunc","inputOptions","processedLen","remainderLen","shaVariant","hmacKeySet","keyWithIPad","keyWithOPad","updatedCalled","isSHAKE","setHMACKey","keyConverterFunc","convertRet","keyBinLen","keyToUse","blockByteSize","lastArrayIndex","keyOptions","srcString","chunkBinLen","chunkIntLen","chunk","updateProcessedLen","variantBlockIntInc","formatFunc","finalizedState","binarray","getHMAC","firstHash","define","exports","module","provide"],"mappings":"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","file":"sri.js","sourcesContent":["/* global\n\tjsSHA\n*/\n\n(function() {\n\t'use strict';\n\n //=include vendor/jssha/src/sha_dev.js\n\n\tfunction definition(path, Failure, iterate, isObject) {\n\t\tvar settings;\n\n\t\tdemand\n\t\t\t.on('postConfigure:' + path, function(options) {\n\t\t\t\tif(isObject(options)) {\n\t\t\t\t\tsettings = options;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('postRequest', function(dependency) {\n\t\t\t\tvar options, sha;\n\n\t\t\t\tif(options = isEnabled(dependency.path)) {\n\t\t\t\t\ttry {\n sha = new jsSHA(options.type, 'TEXT');\n\n sha.update(dependency.source);\n\n if(sha.getHash('HEX') !== options.hash) {\n dependency.dfd.reject(new Failure('error resolving (sri)', dependency.id));\n }\n\t\t\t\t\t} catch(error) {\n dependency.dfd.reject(new Failure('unsupported hashing algorithm (sri)', dependency.id));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\tfunction isEnabled(path) {\n\t\t\tvar match;\n\n\t\t\titerate(settings, function(key, value) {\n\t\t\t\tif(key === path) {\n\t\t\t\t\tmatch = value;\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn match || false;\n\t\t}\n\n\t\treturn jsSHA;\n\t}\n\n\tprovide([ 'path', '/demand/failure', '/demand/function/iterate', '/demand/validator/isObject' ], definition);\n}());","/**\n * @preserve A JavaScript implementation of the SHA family of hashes, as\n * defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding\n * HMAC implementation as defined in FIPS PUB 198a\n *\n * Copyright Brian Turek 2008-2017\n * Distributed under the BSD License\n * See http://caligatio.github.com/jsSHA/ for more information\n *\n * Several functions taken from Paul Johnston\n */\n\n/*jslint\n\tbitwise: true, multivar: true, for: true, this: true, sub: true, esversion: 3\n*/\n\n /**\n * SUPPORTED_ALGS is the stub for a compile flag that will cause pruning of\n * functions that are not needed when a limited number of SHA families are\n * selected\n *\n * @define {number} ORed value of SHA variants to be supported\n * 1 = SHA-1, 2 = SHA-224/SHA-256, 4 = SHA-384/SHA-512, 8 = SHA3\n */\nvar SUPPORTED_ALGS = 8 | 4 | 2 | 1;\n\n(function (global)\n{\n\t\"use strict\";\n\n\t/* Globals */\n\tvar TWO_PWR_32 = 4294967296;\n\n\t/**\n\t * Int_64 is a object for 2 32-bit numbers emulating a 64-bit number\n\t *\n\t * @private\n\t * @constructor\n\t * @this {Int_64}\n\t * @param {number} msint_32 The most significant 32-bits of a 64-bit number\n\t * @param {number} lsint_32 The least significant 32-bits of a 64-bit number\n\t */\n\tfunction Int_64(msint_32, lsint_32)\n\t{\n\t\tthis.highOrder = msint_32;\n\t\tthis.lowOrder = lsint_32;\n\t}\n\n\t/**\n\t * Convert a string to an array of big-endian words\n\t *\n\t * There is a known bug with an odd number of existing bytes and using a\n\t * UTF-16 encoding. However, this function is used such that the existing\n\t * bytes are always a result of a previous UTF-16 str2packed call and\n\t * therefore there should never be an odd number of existing bytes\n\t *\n\t * @private\n\t * @param {string} str String to be converted to binary representation\n\t * @param {string} utfType The Unicode type, UTF8 or UTF16BE, UTF16LE, to\n\t * use to encode the source string\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction str2packed(str, utfType, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, codePnt, codePntArr, byteCnt = 0, i, j, existingByteLen,\n\t\t\tintOffset, byteOffset, shiftModifier, transposeBytes;\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\n\t\tif (\"UTF8\" === utfType)\n\t\t{\n\t\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\t\t\tfor (i = 0; i < str.length; i += 1)\n\t\t\t{\n\t\t\t\tcodePnt = str.charCodeAt(i);\n\t\t\t\tcodePntArr = [];\n\n\t\t\t\tif (0x80 > codePnt)\n\t\t\t\t{\n\t\t\t\t\tcodePntArr.push(codePnt);\n\t\t\t\t}\n\t\t\t\telse if (0x800 > codePnt)\n\t\t\t\t{\n\t\t\t\t\tcodePntArr.push(0xC0 | (codePnt >>> 6));\n\t\t\t\t\tcodePntArr.push(0x80 | (codePnt & 0x3F));\n\t\t\t\t}\n\t\t\t\telse if ((0xd800 > codePnt) || (0xe000 <= codePnt)) {\n\t\t\t\t\tcodePntArr.push(\n\t\t\t\t\t\t0xe0 | (codePnt >>> 12),\n\t\t\t\t\t\t0x80 | ((codePnt >>> 6) & 0x3f),\n\t\t\t\t\t\t0x80 | (codePnt & 0x3f)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ti += 1;\n\t\t\t\t\tcodePnt = 0x10000 + (((codePnt & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n\t\t\t\t\tcodePntArr.push(\n\t\t\t\t\t\t0xf0 | (codePnt >>> 18),\n\t\t\t\t\t\t0x80 | ((codePnt >>> 12) & 0x3f),\n\t\t\t\t\t\t0x80 | ((codePnt >>> 6) & 0x3f),\n\t\t\t\t\t\t0x80 | (codePnt & 0x3f)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tfor (j = 0; j < codePntArr.length; j += 1)\n\t\t\t\t{\n\t\t\t\t\tbyteOffset = byteCnt + existingByteLen;\n\t\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t\t{\n\t\t\t\t\t\tpacked.push(0);\n\t\t\t\t\t}\n\t\t\t\t\t/* Known bug kicks in here */\n\t\t\t\t\tpacked[intOffset] |= codePntArr[j] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t\t\tbyteCnt += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if ((\"UTF16BE\" === utfType) || \"UTF16LE\" === utfType)\n\t\t{\n\t\t\tshiftModifier = (bigEndianMod === -1) ? 2 : 0;\n\t\t\t/* Internally strings are UTF-16BE so transpose bytes under two conditions:\n\t\t\t\t* need LE and not switching endianness due to SHA-3\n\t\t\t\t* need BE and switching endianness due to SHA-3 */\n\t\t\ttransposeBytes = ((\"UTF16LE\" === utfType) && (bigEndianMod !== 1)) || ((\"UTF16LE\" !== utfType) && (bigEndianMod === 1));\n\t\t\tfor (i = 0; i < str.length; i += 1)\n\t\t\t{\n\t\t\t\tcodePnt = str.charCodeAt(i);\n\t\t\t\tif (transposeBytes === true)\n\t\t\t\t{\n\t\t\t\t\tj = codePnt & 0xFF;\n\t\t\t\t\tcodePnt = (j << 8) | (codePnt >>> 8);\n\t\t\t\t}\n\n\t\t\t\tbyteOffset = byteCnt + existingByteLen;\n\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t{\n\t\t\t\t\tpacked.push(0);\n\t\t\t\t}\n\t\t\t\tpacked[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t\tbyteCnt += 2;\n\t\t\t}\n\t\t}\n\t\treturn {\"value\" : packed, \"binLen\" : byteCnt * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert a hex string to an array of big-endian words\n\t *\n\t * @private\n\t * @param {string} str String to be converted to binary representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction hex2packed(str, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, length = str.length, i, num, intOffset, byteOffset,\n\t\t\texistingByteLen, shiftModifier;\n\n\t\tif (0 !== (length % 2))\n\t\t{\n\t\t\tthrow new Error(\"String of HEX type must be in byte increments\");\n\t\t}\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 2)\n\t\t{\n\t\t\tnum = parseInt(str.substr(i, 2), 16);\n\t\t\tif (!isNaN(num))\n\t\t\t{\n\t\t\t\tbyteOffset = (i >>> 1) + existingByteLen;\n\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t{\n\t\t\t\t\tpacked.push(0);\n\t\t\t\t}\n\t\t\t\tpacked[intOffset] |= num << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error(\"String of HEX type contains invalid characters\");\n\t\t\t}\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : length * 4 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert a string of raw bytes to an array of big-endian words\n\t *\n\t * @private\n\t * @param {string} str String of raw bytes to be converted to binary representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction bytes2packed(str, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, codePnt, i, existingByteLen, intOffset,\n\t\t\tbyteOffset, shiftModifier;\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < str.length; i += 1)\n\t\t{\n\t\t\tcodePnt = str.charCodeAt(i);\n\n\t\t\tbyteOffset = i + existingByteLen;\n\t\t\tintOffset = byteOffset >>> 2;\n\t\t\tif (packed.length <= intOffset)\n\t\t\t{\n\t\t\t\tpacked.push(0);\n\t\t\t}\n\t\t\tpacked[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : str.length * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert a base-64 string to an array of big-endian words\n\t *\n\t * @private\n\t * @param {string} str String to be converted to binary representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction b642packed(str, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, byteCnt = 0, index, i, j, tmpInt, strPart, firstEqual,\n\t\t\tb64Tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",\n\t\t\texistingByteLen, intOffset, byteOffset, shiftModifier;\n\n\t\tif (-1 === str.search(/^[a-zA-Z0-9=+\\/]+$/))\n\t\t{\n\t\t\tthrow new Error(\"Invalid character in base-64 string\");\n\t\t}\n\n\t\tfirstEqual = str.indexOf(\"=\");\n\t\tstr = str.replace(/\\=/g, \"\");\n\t\tif ((-1 !== firstEqual) && (firstEqual < str.length))\n\t\t{\n\t\t\tthrow new Error(\"Invalid '=' found in base-64 string\");\n\t\t}\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < str.length; i += 4)\n\t\t{\n\t\t\tstrPart = str.substr(i, 4);\n\t\t\ttmpInt = 0;\n\n\t\t\tfor (j = 0; j < strPart.length; j += 1)\n\t\t\t{\n\t\t\t\tindex = b64Tab.indexOf(strPart[j]);\n\t\t\t\ttmpInt |= index << (18 - (6 * j));\n\t\t\t}\n\n\t\t\tfor (j = 0; j < strPart.length - 1; j += 1)\n\t\t\t{\n\t\t\t\tbyteOffset = byteCnt + existingByteLen;\n\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t{\n\t\t\t\t\tpacked.push(0);\n\t\t\t\t}\n\t\t\t\tpacked[intOffset] |= ((tmpInt >>> (16 - (j * 8))) & 0xFF) <<\n\t\t\t\t\t(8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t\tbyteCnt += 1;\n\t\t\t}\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : byteCnt * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert an ArrayBuffer to an array of big-endian words\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arr ArrayBuffer to be converted to binary\n\t * representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction arraybuffer2packed(arr, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, i, existingByteLen, intOffset, byteOffset, shiftModifier, arrView;\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\t\tarrView = new Uint8Array(arr);\n\n\t\tfor (i = 0; i < arr.byteLength; i += 1)\n\t\t{\n\t\t\tbyteOffset = i + existingByteLen;\n\t\t\tintOffset = byteOffset >>> 2;\n\t\t\tif (packed.length <= intOffset)\n\t\t\t{\n\t\t\t\tpacked.push(0);\n\t\t\t}\n\t\t\tpacked[intOffset] |= arrView[i] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : arr.byteLength * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to a hex string.\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * hexidecimal representation\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @param {{outputUpper : boolean, b64Pad : string}} formatOpts Hash list\n\t * containing validated output formatting options\n\t * @return {string} Hexidecimal representation of the parameter in string\n\t * form\n\t */\n\tfunction packed2hex(packed, outputLength, bigEndianMod, formatOpts)\n\t{\n\t\tvar hex_tab = \"0123456789abcdef\", str = \"\",\n\t\t\tlength = outputLength / 8, i, srcByte, shiftModifier;\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 1)\n\t\t{\n\t\t\t/* The below is more than a byte but it gets taken care of later */\n\t\t\tsrcByte = packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)));\n\t\t\tstr += hex_tab.charAt((srcByte >>> 4) & 0xF) +\n\t\t\t\thex_tab.charAt(srcByte & 0xF);\n\t\t}\n\n\t\treturn (formatOpts[\"outputUpper\"]) ? str.toUpperCase() : str;\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to a base-64 string\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * base-64 representation\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @param {{outputUpper : boolean, b64Pad : string}} formatOpts Hash list\n\t * containing validated output formatting options\n\t * @return {string} Base-64 encoded representation of the parameter in\n\t * string form\n\t */\n\tfunction packed2b64(packed, outputLength, bigEndianMod, formatOpts)\n\t{\n\t\tvar str = \"\", length = outputLength / 8, i, j, triplet, int1, int2, shiftModifier,\n\t\t\tb64Tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 3)\n\t\t{\n\t\t\tint1 = ((i + 1) < length) ? packed[(i + 1) >>> 2] : 0;\n\t\t\tint2 = ((i + 2) < length) ? packed[(i + 2) >>> 2] : 0;\n\t\t\ttriplet = (((packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF) << 16) |\n\t\t\t\t(((int1 >>> (8 * (shiftModifier + bigEndianMod * ((i + 1) % 4)))) & 0xFF) << 8) |\n\t\t\t\t((int2 >>> (8 * (shiftModifier + bigEndianMod * ((i + 2) % 4)))) & 0xFF);\n\t\t\tfor (j = 0; j < 4; j += 1)\n\t\t\t{\n\t\t\t\tif (i * 8 + j * 6 <= outputLength)\n\t\t\t\t{\n\t\t\t\t\tstr += b64Tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstr += formatOpts[\"b64Pad\"];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn str;\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to raw bytes string\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * a raw bytes string representation\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {string} Raw bytes representation of the parameter in string\n\t * form\n\t */\n\tfunction packed2bytes(packed, outputLength, bigEndianMod)\n\t{\n\t\tvar str = \"\", length = outputLength / 8, i, srcByte, shiftModifier;\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 1)\n\t\t{\n\t\t\tsrcByte = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF;\n\t\t\tstr += String.fromCharCode(srcByte);\n\t\t}\n\n\t\treturn str;\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to an ArrayBuffer\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * an ArrayBuffer\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {ArrayBuffer} Raw bytes representation of the parameter in an\n\t * ArrayBuffer\n\t */\n\tfunction packed2arraybuffer(packed, outputLength, bigEndianMod)\n\t{\n\t\tvar length = outputLength / 8, i, retVal = new ArrayBuffer(length), shiftModifier, arrView;\n\t\tarrView = new Uint8Array(retVal);\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 1)\n\t\t{\n\t\t\tarrView[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF;\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Validate hash list containing output formatting options, ensuring\n\t * presence of every option or adding the default value\n\t *\n\t * @private\n\t * @param {{outputUpper : (boolean|undefined), b64Pad : (string|undefined),\n\t * shakeLen : (number|undefined)}=} options Hash list of output formatting options\n\t * @return {{outputUpper : boolean, b64Pad : string, shakeLen : number}} Validated\n\t * hash list containing output formatting options\n\t */\n\tfunction getOutputOpts(options)\n\t{\n\t\tvar retVal = {\"outputUpper\" : false, \"b64Pad\" : \"=\", \"shakeLen\" : -1},\n\t\t\toutputOptions;\n\t\toutputOptions = options || {};\n\n\t\tretVal[\"outputUpper\"] = outputOptions[\"outputUpper\"] || false;\n\n\t\tif (true === outputOptions.hasOwnProperty(\"b64Pad\"))\n\t\t{\n\t\t\tretVal[\"b64Pad\"] = outputOptions[\"b64Pad\"];\n\t\t}\n\n\t\tif ((true === outputOptions.hasOwnProperty(\"shakeLen\")) && ((8 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tif (outputOptions[\"shakeLen\"] % 8 !== 0)\n\t\t\t{\n\t\t\t\tthrow new Error(\"shakeLen must be a multiple of 8\");\n\t\t\t}\n\t\t\tretVal[\"shakeLen\"] = outputOptions[\"shakeLen\"];\n\t\t}\n\n\t\tif (\"boolean\" !== typeof(retVal[\"outputUpper\"]))\n\t\t{\n\t\t\tthrow new Error(\"Invalid outputUpper formatting option\");\n\t\t}\n\n\t\tif (\"string\" !== typeof(retVal[\"b64Pad\"]))\n\t\t{\n\t\t\tthrow new Error(\"Invalid b64Pad formatting option\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Function that takes an input format and UTF encoding and returns the\n\t * appropriate function used to convert the input.\n\t *\n\t * @private\n\t * @param {string} format The format of the string to be converted\n\t * @param {string} utfType The string encoding to use (UTF8, UTF16BE,\n\t *\tUTF16LE)\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {function((string|ArrayBuffer), Array=, number=): {value :\n\t * Array, binLen : number}} Function that will convert an input\n\t * string to a packed int array\n\t */\n\tfunction getStrConverter(format, utfType, bigEndianMod)\n\t{\n\t\tvar retVal;\n\n\t\t/* Validate encoding */\n\t\tswitch (utfType)\n\t\t{\n\t\tcase \"UTF8\":\n\t\t\t/* Fallthrough */\n\t\tcase \"UTF16BE\":\n\t\t\t/* Fallthrough */\n\t\tcase \"UTF16LE\":\n\t\t\t/* Fallthrough */\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\");\n\t\t}\n\n\t\t/* Map inputFormat to the appropriate converter */\n\t\tswitch (format)\n\t\t{\n\t\tcase \"HEX\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return hex2packed(str, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"TEXT\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t\treturn str2packed(str, utfType, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"B64\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return b642packed(str, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"BYTES\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return bytes2packed(str, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"ARRAYBUFFER\":\n\t\t\ttry {\n\t\t\t\tretVal = new ArrayBuffer(0);\n\t\t\t} catch(ignore) {\n\t\t\t\tthrow new Error(\"ARRAYBUFFER not supported by this environment\");\n\t\t\t}\n\t\t\t/**\n\t\t\t * @param {ArrayBuffer} arr ArrayBuffer to be converted to binary\n\t\t\t * representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(arr, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return arraybuffer2packed(arr, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(\"format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * The 32-bit implementation of circular rotate left\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {number} The x shifted circularly by n bits\n\t */\n\tfunction rotl_32(x, n)\n\t{\n\t\treturn (x << n) | (x >>> (32 - n));\n\t}\n\n\t/**\n\t * The 64-bit implementation of circular rotate left\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {Int_64} The x shifted circularly by n bits\n\t */\n\tfunction rotl_64(x, n)\n\t{\n\t\tif (n > 32)\n\t\t{\n\t\t\tn = n - 32;\n\t\t\treturn new Int_64(\n\t\t\t\tx.lowOrder << n | x.highOrder >>> (32 - n),\n\t\t\t\tx.highOrder << n | x.lowOrder >>> (32 - n)\n\t\t\t);\n\t\t}\n\t\telse if (0 !== n)\n\t\t{\n\t\t\treturn new Int_64(\n\t\t\t\tx.highOrder << n | x.lowOrder >>> (32 - n),\n\t\t\t\tx.lowOrder << n | x.highOrder >>> (32 - n)\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn x;\n\t\t}\n\t}\n\n\t/**\n\t * The 32-bit implementation of circular rotate right\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {number} The x shifted circularly by n bits\n\t */\n\tfunction rotr_32(x, n)\n\t{\n\t\treturn (x >>> n) | (x << (32 - n));\n\t}\n\n\t/**\n\t * The 64-bit implementation of circular rotate right\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {Int_64} The x shifted circularly by n bits\n\t */\n\tfunction rotr_64(x, n)\n\t{\n\t\tvar retVal = null, tmp = new Int_64(x.highOrder, x.lowOrder);\n\n\t\tif (32 >= n)\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\t(tmp.highOrder >>> n) | ((tmp.lowOrder << (32 - n)) & 0xFFFFFFFF),\n\t\t\t\t\t(tmp.lowOrder >>> n) | ((tmp.highOrder << (32 - n)) & 0xFFFFFFFF)\n\t\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\t(tmp.lowOrder >>> (n - 32)) | ((tmp.highOrder << (64 - n)) & 0xFFFFFFFF),\n\t\t\t\t\t(tmp.highOrder >>> (n - 32)) | ((tmp.lowOrder << (64 - n)) & 0xFFFFFFFF)\n\t\t\t\t);\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * The 32-bit implementation of shift right\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {number} The x shifted by n bits\n\t */\n\tfunction shr_32(x, n)\n\t{\n\t\treturn x >>> n;\n\t}\n\n\t/**\n\t * The 64-bit implementation of shift right\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {Int_64} The x shifted by n bits\n\t */\n\tfunction shr_64(x, n)\n\t{\n\t\tvar retVal = null;\n\n\t\tif (32 >= n)\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\tx.highOrder >>> n,\n\t\t\t\t\tx.lowOrder >>> n | ((x.highOrder << (32 - n)) & 0xFFFFFFFF)\n\t\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\t0,\n\t\t\t\t\tx.highOrder >>> (n - 32)\n\t\t\t\t);\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Parity function\n\t *\n\t * @private\n\t * @param {number} x The first 32-bit integer argument\n\t * @param {number} y The second 32-bit integer argument\n\t * @param {number} z The third 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction parity_32(x, y, z)\n\t{\n\t\treturn x ^ y ^ z;\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Ch function\n\t *\n\t * @private\n\t * @param {number} x The first 32-bit integer argument\n\t * @param {number} y The second 32-bit integer argument\n\t * @param {number} z The third 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction ch_32(x, y, z)\n\t{\n\t\treturn (x & y) ^ (~x & z);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Ch function\n\t *\n\t * @private\n\t * @param {Int_64} x The first 64-bit integer argument\n\t * @param {Int_64} y The second 64-bit integer argument\n\t * @param {Int_64} z The third 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction ch_64(x, y, z)\n\t{\n\t\treturn new Int_64(\n\t\t\t\t(x.highOrder & y.highOrder) ^ (~x.highOrder & z.highOrder),\n\t\t\t\t(x.lowOrder & y.lowOrder) ^ (~x.lowOrder & z.lowOrder)\n\t\t\t);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Maj function\n\t *\n\t * @private\n\t * @param {number} x The first 32-bit integer argument\n\t * @param {number} y The second 32-bit integer argument\n\t * @param {number} z The third 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction maj_32(x, y, z)\n\t{\n\t\treturn (x & y) ^ (x & z) ^ (y & z);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Maj function\n\t *\n\t * @private\n\t * @param {Int_64} x The first 64-bit integer argument\n\t * @param {Int_64} y The second 64-bit integer argument\n\t * @param {Int_64} z The third 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction maj_64(x, y, z)\n\t{\n\t\treturn new Int_64(\n\t\t\t\t(x.highOrder & y.highOrder) ^\n\t\t\t\t(x.highOrder & z.highOrder) ^\n\t\t\t\t(y.highOrder & z.highOrder),\n\t\t\t\t(x.lowOrder & y.lowOrder) ^\n\t\t\t\t(x.lowOrder & z.lowOrder) ^\n\t\t\t\t(y.lowOrder & z.lowOrder)\n\t\t\t);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Sigma0 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction sigma0_32(x)\n\t{\n\t\treturn rotr_32(x, 2) ^ rotr_32(x, 13) ^ rotr_32(x, 22);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Sigma0 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction sigma0_64(x)\n\t{\n\t\tvar rotr28 = rotr_64(x, 28), rotr34 = rotr_64(x, 34),\n\t\t\trotr39 = rotr_64(x, 39);\n\n\t\treturn new Int_64(\n\t\t\t\trotr28.highOrder ^ rotr34.highOrder ^ rotr39.highOrder,\n\t\t\t\trotr28.lowOrder ^ rotr34.lowOrder ^ rotr39.lowOrder);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Sigma1 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction sigma1_32(x)\n\t{\n\t\treturn rotr_32(x, 6) ^ rotr_32(x, 11) ^ rotr_32(x, 25);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Sigma1 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction sigma1_64(x)\n\t{\n\t\tvar rotr14 = rotr_64(x, 14), rotr18 = rotr_64(x, 18),\n\t\t\trotr41 = rotr_64(x, 41);\n\n\t\treturn new Int_64(\n\t\t\t\trotr14.highOrder ^ rotr18.highOrder ^ rotr41.highOrder,\n\t\t\t\trotr14.lowOrder ^ rotr18.lowOrder ^ rotr41.lowOrder);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Gamma0 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction gamma0_32(x)\n\t{\n\t\treturn rotr_32(x, 7) ^ rotr_32(x, 18) ^ shr_32(x, 3);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Gamma0 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction gamma0_64(x)\n\t{\n\t\tvar rotr1 = rotr_64(x, 1), rotr8 = rotr_64(x, 8), shr7 = shr_64(x, 7);\n\n\t\treturn new Int_64(\n\t\t\t\trotr1.highOrder ^ rotr8.highOrder ^ shr7.highOrder,\n\t\t\t\trotr1.lowOrder ^ rotr8.lowOrder ^ shr7.lowOrder\n\t\t\t);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Gamma1 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction gamma1_32(x)\n\t{\n\t\treturn rotr_32(x, 17) ^ rotr_32(x, 19) ^ shr_32(x, 10);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Gamma1 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction gamma1_64(x)\n\t{\n\t\tvar rotr19 = rotr_64(x, 19), rotr61 = rotr_64(x, 61),\n\t\t\tshr6 = shr_64(x, 6);\n\n\t\treturn new Int_64(\n\t\t\t\trotr19.highOrder ^ rotr61.highOrder ^ shr6.highOrder,\n\t\t\t\trotr19.lowOrder ^ rotr61.lowOrder ^ shr6.lowOrder\n\t\t\t);\n\t}\n\n\t/**\n\t * Add two 32-bit integers, wrapping at 2^32. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {number} a The first 32-bit integer argument to be added\n\t * @param {number} b The second 32-bit integer argument to be added\n\t * @return {number} The sum of a + b\n\t */\n\tfunction safeAdd_32_2(a, b)\n\t{\n\t\tvar lsw = (a & 0xFFFF) + (b & 0xFFFF),\n\t\t\tmsw = (a >>> 16) + (b >>> 16) + (lsw >>> 16);\n\n\t\treturn ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\t}\n\n\t/**\n\t * Add four 32-bit integers, wrapping at 2^32. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {number} a The first 32-bit integer argument to be added\n\t * @param {number} b The second 32-bit integer argument to be added\n\t * @param {number} c The third 32-bit integer argument to be added\n\t * @param {number} d The fourth 32-bit integer argument to be added\n\t * @return {number} The sum of a + b + c + d\n\t */\n\tfunction safeAdd_32_4(a, b, c, d)\n\t{\n\t\tvar lsw = (a & 0xFFFF) + (b & 0xFFFF) + (c & 0xFFFF) + (d & 0xFFFF),\n\t\t\tmsw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) +\n\t\t\t\t(lsw >>> 16);\n\n\t\treturn ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\t}\n\n\t/**\n\t * Add five 32-bit integers, wrapping at 2^32. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {number} a The first 32-bit integer argument to be added\n\t * @param {number} b The second 32-bit integer argument to be added\n\t * @param {number} c The third 32-bit integer argument to be added\n\t * @param {number} d The fourth 32-bit integer argument to be added\n\t * @param {number} e The fifth 32-bit integer argument to be added\n\t * @return {number} The sum of a + b + c + d + e\n\t */\n\tfunction safeAdd_32_5(a, b, c, d, e)\n\t{\n\t\tvar lsw = (a & 0xFFFF) + (b & 0xFFFF) + (c & 0xFFFF) + (d & 0xFFFF) +\n\t\t\t\t(e & 0xFFFF),\n\t\t\tmsw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) +\n\t\t\t\t(e >>> 16) + (lsw >>> 16);\n\n\t\treturn ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\t}\n\n\t/**\n\t * Add two 64-bit integers, wrapping at 2^64. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {Int_64} x The first 64-bit integer argument to be added\n\t * @param {Int_64} y The second 64-bit integer argument to be added\n\t * @return {Int_64} The sum of x + y\n\t */\n\tfunction safeAdd_64_2(x, y)\n\t{\n\t\tvar lsw, msw, lowOrder, highOrder;\n\n\t\tlsw = (x.lowOrder & 0xFFFF) + (y.lowOrder & 0xFFFF);\n\t\tmsw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);\n\t\tlowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\tlsw = (x.highOrder & 0xFFFF) + (y.highOrder & 0xFFFF) + (msw >>> 16);\n\t\tmsw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);\n\t\thighOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\treturn new Int_64(highOrder, lowOrder);\n\t}\n\n\t/**\n\t * Add four 64-bit integers, wrapping at 2^64. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {Int_64} a The first 64-bit integer argument to be added\n\t * @param {Int_64} b The second 64-bit integer argument to be added\n\t * @param {Int_64} c The third 64-bit integer argument to be added\n\t * @param {Int_64} d The fouth 64-bit integer argument to be added\n\t * @return {Int_64} The sum of a + b + c + d\n\t */\n\tfunction safeAdd_64_4(a, b, c, d)\n\t{\n\t\tvar lsw, msw, lowOrder, highOrder;\n\n\t\tlsw = (a.lowOrder & 0xFFFF) + (b.lowOrder & 0xFFFF) +\n\t\t\t(c.lowOrder & 0xFFFF) + (d.lowOrder & 0xFFFF);\n\t\tmsw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) +\n\t\t\t(c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (lsw >>> 16);\n\t\tlowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\tlsw = (a.highOrder & 0xFFFF) + (b.highOrder & 0xFFFF) +\n\t\t\t(c.highOrder & 0xFFFF) + (d.highOrder & 0xFFFF) + (msw >>> 16);\n\t\tmsw = (a.highOrder >>> 16) + (b.highOrder >>> 16) +\n\t\t\t(c.highOrder >>> 16) + (d.highOrder >>> 16) + (lsw >>> 16);\n\t\thighOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\treturn new Int_64(highOrder, lowOrder);\n\t}\n\n\t/**\n\t * Add five 64-bit integers, wrapping at 2^64. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {Int_64} a The first 64-bit integer argument to be added\n\t * @param {Int_64} b The second 64-bit integer argument to be added\n\t * @param {Int_64} c The third 64-bit integer argument to be added\n\t * @param {Int_64} d The fouth 64-bit integer argument to be added\n\t * @param {Int_64} e The fouth 64-bit integer argument to be added\n\t * @return {Int_64} The sum of a + b + c + d + e\n\t */\n\tfunction safeAdd_64_5(a, b, c, d, e)\n\t{\n\t\tvar lsw, msw, lowOrder, highOrder;\n\n\t\tlsw = (a.lowOrder & 0xFFFF) + (b.lowOrder & 0xFFFF) +\n\t\t\t(c.lowOrder & 0xFFFF) + (d.lowOrder & 0xFFFF) +\n\t\t\t(e.lowOrder & 0xFFFF);\n\t\tmsw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) +\n\t\t\t(c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (e.lowOrder >>> 16) +\n\t\t\t(lsw >>> 16);\n\t\tlowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\tlsw = (a.highOrder & 0xFFFF) + (b.highOrder & 0xFFFF) +\n\t\t\t(c.highOrder & 0xFFFF) + (d.highOrder & 0xFFFF) +\n\t\t\t(e.highOrder & 0xFFFF) + (msw >>> 16);\n\t\tmsw = (a.highOrder >>> 16) + (b.highOrder >>> 16) +\n\t\t\t(c.highOrder >>> 16) + (d.highOrder >>> 16) +\n\t\t\t(e.highOrder >>> 16) + (lsw >>> 16);\n\t\thighOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\treturn new Int_64(highOrder, lowOrder);\n\t}\n\n\t/**\n\t * XORs two given arguments.\n\t *\n\t * @private\n\t * @param {Int_64} a First argument to be XORed\n\t * @param {Int_64} b Second argument to be XORed\n\t * @return {Int_64} The XOR of the arguments\n\t */\n\tfunction xor_64_2(a, b)\n\t{\n\t\treturn new Int_64(\n\t\t\ta.highOrder ^ b.highOrder,\n\t\t\ta.lowOrder ^ b.lowOrder\n\t\t);\n\t}\n\n\t/**\n\t * XORs five given arguments.\n\t *\n\t * @private\n\t * @param {Int_64} a First argument to be XORed\n\t * @param {Int_64} b Second argument to be XORed\n\t * @param {Int_64} c Third argument to be XORed\n\t * @param {Int_64} d Fourth argument to be XORed\n\t * @param {Int_64} e Fifth argument to be XORed\n\t * @return {Int_64} The XOR of the arguments\n\t */\n\tfunction xor_64_5(a, b, c, d, e)\n\t{\n\t\treturn new Int_64(\n\t\t\ta.highOrder ^ b.highOrder ^ c.highOrder ^ d.highOrder ^ e.highOrder,\n\t\t\ta.lowOrder ^ b.lowOrder ^ c.lowOrder ^ d.lowOrder ^ e.lowOrder\n\t\t);\n\t}\n\n\t/**\n\t * Returns a clone of the given SHA3 state\n\t *\n\t * @private\n\t * @param {Array>} state The state to be cloned\n\t * @return {Array>} The cloned state\n\t */\n\tfunction cloneSHA3State(state) {\n\t\tvar clone = [], i;\n\t\tfor (i = 0; i < 5; i += 1)\n\t\t{\n\t\t\tclone[i] = state[i].slice();\n\t\t}\n\n\t\treturn clone;\n\t}\n\n\t/**\n\t * Gets the state values for the specified SHA variant\n\t *\n\t * @param {string} variant The SHA variant\n\t * @return {Array>} The initial state values\n\t */\n\tfunction getNewState(variant)\n\t{\n\t\tvar retVal = [], H_trunc, H_full, i;\n\n\t\tif ((\"SHA-1\" === variant) && ((1 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\t0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0\n\t\t\t];\n\t\t}\n\t\telse if ((variant.lastIndexOf(\"SHA-\", 0) === 0) && ((6 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tH_trunc = [\n\t\t\t\t0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t\t\t\t0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t\t\t];\n\t\t\tH_full = [\n\t\t\t\t0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A,\n\t\t\t\t0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19\n\t\t\t];\n\n\t\t\tswitch (variant)\n\t\t\t{\n\t\t\tcase \"SHA-224\":\n\t\t\t\tretVal = H_trunc;\n\t\t\t\tbreak;\n\t\t\tcase \"SHA-256\":\n\t\t\t\tretVal = H_full;\n\t\t\t\tbreak;\n\t\t\tcase \"SHA-384\":\n\t\t\t\tretVal = [\n\t\t\t\t\tnew Int_64(0xcbbb9d5d, H_trunc[0]),\n\t\t\t\t\tnew Int_64(0x0629a292a, H_trunc[1]),\n\t\t\t\t\tnew Int_64(0x9159015a, H_trunc[2]),\n\t\t\t\t\tnew Int_64(0x0152fecd8, H_trunc[3]),\n\t\t\t\t\tnew Int_64(0x67332667, H_trunc[4]),\n\t\t\t\t\tnew Int_64(0x98eb44a87, H_trunc[5]),\n\t\t\t\t\tnew Int_64(0xdb0c2e0d, H_trunc[6]),\n\t\t\t\t\tnew Int_64(0x047b5481d, H_trunc[7])\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tcase \"SHA-512\":\n\t\t\t\tretVal = [\n\t\t\t\t\tnew Int_64(H_full[0], 0xf3bcc908),\n\t\t\t\t\tnew Int_64(H_full[1], 0x84caa73b),\n\t\t\t\t\tnew Int_64(H_full[2], 0xfe94f82b),\n\t\t\t\t\tnew Int_64(H_full[3], 0x5f1d36f1),\n\t\t\t\t\tnew Int_64(H_full[4], 0xade682d1),\n\t\t\t\t\tnew Int_64(H_full[5], 0x2b3e6c1f),\n\t\t\t\t\tnew Int_64(H_full[6], 0xfb41bd6b),\n\t\t\t\t\tnew Int_64(H_full[7], 0x137e2179)\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Unknown SHA variant\");\n\t\t\t}\n\t\t}\n\t\telse if (((variant.lastIndexOf(\"SHA3-\", 0) === 0) || (variant.lastIndexOf(\"SHAKE\", 0) === 0)) &&\n\t\t\t((8 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tfor (i = 0; i < 5; i += 1)\n\t\t\t{\n\t\t\t\tretVal[i] = [new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0)];\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"No SHA variants supported\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Performs a round of SHA-1 hashing over a 512-byte block\n\t *\n\t * @private\n\t * @param {Array} block The binary array representation of the\n\t * block to hash\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @return {Array} The resulting H values\n\t */\n\tfunction roundSHA1(block, H)\n\t{\n\t\tvar W = [], a, b, c, d, e, T, ch = ch_32, parity = parity_32,\n\t\t\tmaj = maj_32, rotl = rotl_32, safeAdd_2 = safeAdd_32_2, t,\n\t\t\tsafeAdd_5 = safeAdd_32_5;\n\n\t\ta = H[0];\n\t\tb = H[1];\n\t\tc = H[2];\n\t\td = H[3];\n\t\te = H[4];\n\n\t\tfor (t = 0; t < 80; t += 1)\n\t\t{\n\t\t\tif (t < 16)\n\t\t\t{\n\t\t\t\tW[t] = block[t];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tW[t] = rotl(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n\t\t\t}\n\n\t\t\tif (t < 20)\n\t\t\t{\n\t\t\t\tT = safeAdd_5(rotl(a, 5), ch(b, c, d), e, 0x5a827999, W[t]);\n\t\t\t}\n\t\t\telse if (t < 40)\n\t\t\t{\n\t\t\t\tT = safeAdd_5(rotl(a, 5), parity(b, c, d), e, 0x6ed9eba1, W[t]);\n\t\t\t}\n\t\t\telse if (t < 60)\n\t\t\t{\n\t\t\t\tT = safeAdd_5(rotl(a, 5), maj(b, c, d), e, 0x8f1bbcdc, W[t]);\n\t\t\t} else {\n\t\t\t\tT = safeAdd_5(rotl(a, 5), parity(b, c, d), e, 0xca62c1d6, W[t]);\n\t\t\t}\n\n\t\t\te = d;\n\t\t\td = c;\n\t\t\tc = rotl(b, 30);\n\t\t\tb = a;\n\t\t\ta = T;\n\t\t}\n\n\t\tH[0] = safeAdd_2(a, H[0]);\n\t\tH[1] = safeAdd_2(b, H[1]);\n\t\tH[2] = safeAdd_2(c, H[2]);\n\t\tH[3] = safeAdd_2(d, H[3]);\n\t\tH[4] = safeAdd_2(e, H[4]);\n\n\t\treturn H;\n\t}\n\n\t/**\n\t * Finalizes the SHA-1 hash\n\t *\n\t * @private\n\t * @param {Array} remainder Any leftover unprocessed packed ints\n\t * that still need to be processed\n\t * @param {number} remainderBinLen The number of bits in remainder\n\t * @param {number} processedBinLen The number of bits already\n\t * processed\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @param {number} outputLen Unused for this variant\n\t * @return {Array} The array of integers representing the SHA-1\n\t * hash of message\n\t */\n\tfunction finalizeSHA1(remainder, remainderBinLen, processedBinLen, H, outputLen)\n\t{\n\t\tvar i, appendedMessageLength, offset, totalLen;\n\n\t\t/* The 65 addition is a hack but it works. The correct number is\n\t\t actually 72 (64 + 8) but the below math fails if\n\t\t remainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n\t\t \"shorting\" the addition is OK. */\n\t\toffset = (((remainderBinLen + 65) >>> 9) << 4) + 15;\n\t\twhile (remainder.length <= offset)\n\t\t{\n\t\t\tremainder.push(0);\n\t\t}\n\t\t/* Append '1' at the end of the binary string */\n\t\tremainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n\t\t/* Append length of binary string in the position such that the new\n\t\t * length is a multiple of 512. Logic does not work for even multiples\n\t\t * of 512 but there can never be even multiples of 512. JavaScript\n\t\t * numbers are limited to 2^53 so it's \"safe\" to treat the totalLen as\n\t\t * a 64-bit integer. */\n\t\ttotalLen = remainderBinLen + processedBinLen;\n\t\tremainder[offset] = totalLen & 0xFFFFFFFF;\n\t\t/* Bitwise operators treat the operand as a 32-bit number so need to\n\t\t * use hacky division and round to get access to upper 32-ish bits */\n\t\tremainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n\t\tappendedMessageLength = remainder.length;\n\n\t\t/* This will always be at least 1 full chunk */\n\t\tfor (i = 0; i < appendedMessageLength; i += 16)\n\t\t{\n\t\t\tH = roundSHA1(remainder.slice(i, i + 16), H);\n\t\t}\n\n\t\treturn H;\n\t}\n\n\t/* Put this here so the K arrays aren't put on the stack for every block */\n\tvar K_sha2, K_sha512, r_sha3, rc_sha3;\n\tif ((6 & SUPPORTED_ALGS) !== 0)\n\t{\n\t\tK_sha2 = [\n\t\t\t0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n\t\t\t0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n\t\t\t0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n\t\t\t0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n\t\t\t0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n\t\t\t0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n\t\t\t0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n\t\t\t0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n\t\t\t0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n\t\t\t0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n\t\t\t0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n\t\t\t0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n\t\t\t0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n\t\t\t0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n\t\t\t0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n\t\t\t0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n\t\t];\n\n\t\tif ((4 & SUPPORTED_ALGS) !== 0)\n\t\t{\n\t\t\t K_sha512 = [\n\t\t\t\tnew Int_64(K_sha2[ 0], 0xd728ae22), new Int_64(K_sha2[ 1], 0x23ef65cd),\n\t\t\t\tnew Int_64(K_sha2[ 2], 0xec4d3b2f), new Int_64(K_sha2[ 3], 0x8189dbbc),\n\t\t\t\tnew Int_64(K_sha2[ 4], 0xf348b538), new Int_64(K_sha2[ 5], 0xb605d019),\n\t\t\t\tnew Int_64(K_sha2[ 6], 0xaf194f9b), new Int_64(K_sha2[ 7], 0xda6d8118),\n\t\t\t\tnew Int_64(K_sha2[ 8], 0xa3030242), new Int_64(K_sha2[ 9], 0x45706fbe),\n\t\t\t\tnew Int_64(K_sha2[10], 0x4ee4b28c), new Int_64(K_sha2[11], 0xd5ffb4e2),\n\t\t\t\tnew Int_64(K_sha2[12], 0xf27b896f), new Int_64(K_sha2[13], 0x3b1696b1),\n\t\t\t\tnew Int_64(K_sha2[14], 0x25c71235), new Int_64(K_sha2[15], 0xcf692694),\n\t\t\t\tnew Int_64(K_sha2[16], 0x9ef14ad2), new Int_64(K_sha2[17], 0x384f25e3),\n\t\t\t\tnew Int_64(K_sha2[18], 0x8b8cd5b5), new Int_64(K_sha2[19], 0x77ac9c65),\n\t\t\t\tnew Int_64(K_sha2[20], 0x592b0275), new Int_64(K_sha2[21], 0x6ea6e483),\n\t\t\t\tnew Int_64(K_sha2[22], 0xbd41fbd4), new Int_64(K_sha2[23], 0x831153b5),\n\t\t\t\tnew Int_64(K_sha2[24], 0xee66dfab), new Int_64(K_sha2[25], 0x2db43210),\n\t\t\t\tnew Int_64(K_sha2[26], 0x98fb213f), new Int_64(K_sha2[27], 0xbeef0ee4),\n\t\t\t\tnew Int_64(K_sha2[28], 0x3da88fc2), new Int_64(K_sha2[29], 0x930aa725),\n\t\t\t\tnew Int_64(K_sha2[30], 0xe003826f), new Int_64(K_sha2[31], 0x0a0e6e70),\n\t\t\t\tnew Int_64(K_sha2[32], 0x46d22ffc), new Int_64(K_sha2[33], 0x5c26c926),\n\t\t\t\tnew Int_64(K_sha2[34], 0x5ac42aed), new Int_64(K_sha2[35], 0x9d95b3df),\n\t\t\t\tnew Int_64(K_sha2[36], 0x8baf63de), new Int_64(K_sha2[37], 0x3c77b2a8),\n\t\t\t\tnew Int_64(K_sha2[38], 0x47edaee6), new Int_64(K_sha2[39], 0x1482353b),\n\t\t\t\tnew Int_64(K_sha2[40], 0x4cf10364), new Int_64(K_sha2[41], 0xbc423001),\n\t\t\t\tnew Int_64(K_sha2[42], 0xd0f89791), new Int_64(K_sha2[43], 0x0654be30),\n\t\t\t\tnew Int_64(K_sha2[44], 0xd6ef5218), new Int_64(K_sha2[45], 0x5565a910),\n\t\t\t\tnew Int_64(K_sha2[46], 0x5771202a), new Int_64(K_sha2[47], 0x32bbd1b8),\n\t\t\t\tnew Int_64(K_sha2[48], 0xb8d2d0c8), new Int_64(K_sha2[49], 0x5141ab53),\n\t\t\t\tnew Int_64(K_sha2[50], 0xdf8eeb99), new Int_64(K_sha2[51], 0xe19b48a8),\n\t\t\t\tnew Int_64(K_sha2[52], 0xc5c95a63), new Int_64(K_sha2[53], 0xe3418acb),\n\t\t\t\tnew Int_64(K_sha2[54], 0x7763e373), new Int_64(K_sha2[55], 0xd6b2b8a3),\n\t\t\t\tnew Int_64(K_sha2[56], 0x5defb2fc), new Int_64(K_sha2[57], 0x43172f60),\n\t\t\t\tnew Int_64(K_sha2[58], 0xa1f0ab72), new Int_64(K_sha2[59], 0x1a6439ec),\n\t\t\t\tnew Int_64(K_sha2[60], 0x23631e28), new Int_64(K_sha2[61], 0xde82bde9),\n\t\t\t\tnew Int_64(K_sha2[62], 0xb2c67915), new Int_64(K_sha2[63], 0xe372532b),\n\t\t\t\tnew Int_64(0xca273ece, 0xea26619c), new Int_64(0xd186b8c7, 0x21c0c207),\n\t\t\t\tnew Int_64(0xeada7dd6, 0xcde0eb1e), new Int_64(0xf57d4f7f, 0xee6ed178),\n\t\t\t\tnew Int_64(0x06f067aa, 0x72176fba), new Int_64(0x0a637dc5, 0xa2c898a6),\n\t\t\t\tnew Int_64(0x113f9804, 0xbef90dae), new Int_64(0x1b710b35, 0x131c471b),\n\t\t\t\tnew Int_64(0x28db77f5, 0x23047d84), new Int_64(0x32caab7b, 0x40c72493),\n\t\t\t\tnew Int_64(0x3c9ebe0a, 0x15c9bebc), new Int_64(0x431d67c4, 0x9c100d4c),\n\t\t\t\tnew Int_64(0x4cc5d4be, 0xcb3e42b6), new Int_64(0x597f299c, 0xfc657e2a),\n\t\t\t\tnew Int_64(0x5fcb6fab, 0x3ad6faec), new Int_64(0x6c44198c, 0x4a475817)\n\t\t\t];\n\t\t}\n\t}\n\tif ((8 & SUPPORTED_ALGS) !== 0)\n\t{\n\t\trc_sha3 = [\n\t\t\tnew Int_64(0x00000000, 0x00000001), new Int_64(0x00000000, 0x00008082),\n\t\t\tnew Int_64(0x80000000, 0x0000808A), new Int_64(0x80000000, 0x80008000),\n\t\t\tnew Int_64(0x00000000, 0x0000808B), new Int_64(0x00000000, 0x80000001),\n\t\t\tnew Int_64(0x80000000, 0x80008081), new Int_64(0x80000000, 0x00008009),\n\t\t\tnew Int_64(0x00000000, 0x0000008A), new Int_64(0x00000000, 0x00000088),\n\t\t\tnew Int_64(0x00000000, 0x80008009), new Int_64(0x00000000, 0x8000000A),\n\t\t\tnew Int_64(0x00000000, 0x8000808B), new Int_64(0x80000000, 0x0000008B),\n\t\t\tnew Int_64(0x80000000, 0x00008089), new Int_64(0x80000000, 0x00008003),\n\t\t\tnew Int_64(0x80000000, 0x00008002), new Int_64(0x80000000, 0x00000080),\n\t\t\tnew Int_64(0x00000000, 0x0000800A), new Int_64(0x80000000, 0x8000000A),\n\t\t\tnew Int_64(0x80000000, 0x80008081), new Int_64(0x80000000, 0x00008080),\n\t\t\tnew Int_64(0x00000000, 0x80000001), new Int_64(0x80000000, 0x80008008)\n\t\t];\n\n\t\tr_sha3 = [\n\t\t\t[ 0, 36, 3, 41, 18],\n\t\t\t[ 1, 44, 10, 45, 2],\n\t\t\t[62, 6, 43, 15, 61],\n\t\t\t[28, 55, 25, 21, 56],\n\t\t\t[27, 20, 39, 8, 14]\n\t\t];\n\t}\n\n\t/**\n\t * Performs a round of SHA-2 hashing over a block\n\t *\n\t * @private\n\t * @param {Array} block The binary array representation of the\n\t * block to hash\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @param {string} variant The desired SHA-2 variant\n\t * @return {Array} The resulting H values\n\t */\n\tfunction roundSHA2(block, H, variant)\n\t{\n\t\tvar a, b, c, d, e, f, g, h, T1, T2, numRounds, t, binaryStringMult,\n\t\t\tsafeAdd_2, safeAdd_4, safeAdd_5, gamma0, gamma1, sigma0, sigma1,\n\t\t\tch, maj, Int, W = [], int1, int2, offset, K;\n\n\t\t/* Set up the various function handles and variable for the specific\n\t\t * variant */\n\t\tif ((variant === \"SHA-224\" || variant === \"SHA-256\") &&\n\t\t\t((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 32-bit variant */\n\t\t\tnumRounds = 64;\n\t\t\tbinaryStringMult = 1;\n\t\t\tInt = Number;\n\t\t\tsafeAdd_2 = safeAdd_32_2;\n\t\t\tsafeAdd_4 = safeAdd_32_4;\n\t\t\tsafeAdd_5 = safeAdd_32_5;\n\t\t\tgamma0 = gamma0_32;\n\t\t\tgamma1 = gamma1_32;\n\t\t\tsigma0 = sigma0_32;\n\t\t\tsigma1 = sigma1_32;\n\t\t\tmaj = maj_32;\n\t\t\tch = ch_32;\n\t\t\tK = K_sha2;\n\t\t}\n\t\telse if ((variant === \"SHA-384\" || variant === \"SHA-512\") &&\n\t\t\t((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 64-bit variant */\n\t\t\tnumRounds = 80;\n\t\t\tbinaryStringMult = 2;\n\t\t\tInt = Int_64;\n\t\t\tsafeAdd_2 = safeAdd_64_2;\n\t\t\tsafeAdd_4 = safeAdd_64_4;\n\t\t\tsafeAdd_5 = safeAdd_64_5;\n\t\t\tgamma0 = gamma0_64;\n\t\t\tgamma1 = gamma1_64;\n\t\t\tsigma0 = sigma0_64;\n\t\t\tsigma1 = sigma1_64;\n\t\t\tmaj = maj_64;\n\t\t\tch = ch_64;\n\t\t\tK = K_sha512;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Unexpected error in SHA-2 implementation\");\n\t\t}\n\n\t\ta = H[0];\n\t\tb = H[1];\n\t\tc = H[2];\n\t\td = H[3];\n\t\te = H[4];\n\t\tf = H[5];\n\t\tg = H[6];\n\t\th = H[7];\n\n\t\tfor (t = 0; t < numRounds; t += 1)\n\t\t{\n\t\t\tif (t < 16)\n\t\t\t{\n\t\t\t\toffset = t * binaryStringMult;\n\t\t\t\tint1 = (block.length <= offset) ? 0 : block[offset];\n\t\t\t\tint2 = (block.length <= offset + 1) ? 0 : block[offset + 1];\n\t\t\t\t/* Bit of a hack - for 32-bit, the second term is ignored */\n\t\t\t\tW[t] = new Int(int1, int2);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tW[t] = safeAdd_4(\n\t\t\t\t\t\tgamma1(W[t - 2]), W[t - 7],\n\t\t\t\t\t\tgamma0(W[t - 15]), W[t - 16]\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tT1 = safeAdd_5(h, sigma1(e), ch(e, f, g), K[t], W[t]);\n\t\t\tT2 = safeAdd_2(sigma0(a), maj(a, b, c));\n\t\t\th = g;\n\t\t\tg = f;\n\t\t\tf = e;\n\t\t\te = safeAdd_2(d, T1);\n\t\t\td = c;\n\t\t\tc = b;\n\t\t\tb = a;\n\t\t\ta = safeAdd_2(T1, T2);\n\t\t}\n\n\t\tH[0] = safeAdd_2(a, H[0]);\n\t\tH[1] = safeAdd_2(b, H[1]);\n\t\tH[2] = safeAdd_2(c, H[2]);\n\t\tH[3] = safeAdd_2(d, H[3]);\n\t\tH[4] = safeAdd_2(e, H[4]);\n\t\tH[5] = safeAdd_2(f, H[5]);\n\t\tH[6] = safeAdd_2(g, H[6]);\n\t\tH[7] = safeAdd_2(h, H[7]);\n\n\t\treturn H;\n\t}\n\n\t/**\n\t * Finalizes the SHA-2 hash\n\t *\n\t * @private\n\t * @param {Array} remainder Any leftover unprocessed packed ints\n\t * that still need to be processed\n\t * @param {number} remainderBinLen The number of bits in remainder\n\t * @param {number} processedBinLen The number of bits already\n\t * processed\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @param {string} variant The desired SHA-2 variant\n\t * @param {number} outputLen Unused for this variant\n\t * @return {Array} The array of integers representing the SHA-2\n\t * hash of message\n\t */\n\tfunction finalizeSHA2(remainder, remainderBinLen, processedBinLen, H, variant, outputLen)\n\t{\n\t\tvar i, appendedMessageLength, offset, retVal, binaryStringInc, totalLen;\n\n\t\tif ((variant === \"SHA-224\" || variant === \"SHA-256\") &&\n\t\t\t((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 32-bit variant */\n\t\t\t/* The 65 addition is a hack but it works. The correct number is\n\t\t\t actually 72 (64 + 8) but the below math fails if\n\t\t\t remainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n\t\t\t \"shorting\" the addition is OK. */\n\t\t\toffset = (((remainderBinLen + 65) >>> 9) << 4) + 15;\n\t\t\tbinaryStringInc = 16;\n\t\t}\n\t\telse if ((variant === \"SHA-384\" || variant === \"SHA-512\") &&\n\t\t\t((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 64-bit variant */\n\t\t\t/* The 129 addition is a hack but it works. The correct number is\n\t\t\t actually 136 (128 + 8) but the below math fails if\n\t\t\t remainderBinLen + 136 % 1024 = 0. Since remainderBinLen % 8 = 0,\n\t\t\t \"shorting\" the addition is OK. */\n\t\t\toffset = (((remainderBinLen + 129) >>> 10) << 5) + 31;\n\t\t\tbinaryStringInc = 32;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Unexpected error in SHA-2 implementation\");\n\t\t}\n\n\t\twhile (remainder.length <= offset)\n\t\t{\n\t\t\tremainder.push(0);\n\t\t}\n\t\t/* Append '1' at the end of the binary string */\n\t\tremainder[remainderBinLen >>> 5] |= 0x80 << (24 - remainderBinLen % 32);\n\t\t/* Append length of binary string in the position such that the new\n\t\t * length is correct. JavaScript numbers are limited to 2^53 so it's\n\t\t * \"safe\" to treat the totalLen as a 64-bit integer. */\n\t\ttotalLen = remainderBinLen + processedBinLen;\n\t\tremainder[offset] = totalLen & 0xFFFFFFFF;\n\t\t/* Bitwise operators treat the operand as a 32-bit number so need to\n\t\t * use hacky division and round to get access to upper 32-ish bits */\n\t\tremainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n\t\tappendedMessageLength = remainder.length;\n\n\t\t/* This will always be at least 1 full chunk */\n\t\tfor (i = 0; i < appendedMessageLength; i += binaryStringInc)\n\t\t{\n\t\t\tH = roundSHA2(remainder.slice(i, i + binaryStringInc), H, variant);\n\t\t}\n\n\t\tif ((\"SHA-224\" === variant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\tH[0], H[1], H[2], H[3],\n\t\t\t\tH[4], H[5], H[6]\n\t\t\t];\n\t\t}\n\t\telse if ((\"SHA-256\" === variant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = H;\n\t\t}\n\t\telse if ((\"SHA-384\" === variant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\tH[0].highOrder, H[0].lowOrder,\n\t\t\t\tH[1].highOrder, H[1].lowOrder,\n\t\t\t\tH[2].highOrder, H[2].lowOrder,\n\t\t\t\tH[3].highOrder, H[3].lowOrder,\n\t\t\t\tH[4].highOrder, H[4].lowOrder,\n\t\t\t\tH[5].highOrder, H[5].lowOrder\n\t\t\t];\n\t\t}\n\t\telse if ((\"SHA-512\" === variant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\tH[0].highOrder, H[0].lowOrder,\n\t\t\t\tH[1].highOrder, H[1].lowOrder,\n\t\t\t\tH[2].highOrder, H[2].lowOrder,\n\t\t\t\tH[3].highOrder, H[3].lowOrder,\n\t\t\t\tH[4].highOrder, H[4].lowOrder,\n\t\t\t\tH[5].highOrder, H[5].lowOrder,\n\t\t\t\tH[6].highOrder, H[6].lowOrder,\n\t\t\t\tH[7].highOrder, H[7].lowOrder\n\t\t\t];\n\t\t}\n\t\telse /* This should never be reached */\n\t\t{\n\t\t\tthrow new Error(\"Unexpected error in SHA-2 implementation\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Performs a round of SHA-3 hashing over a block\n\t *\n\t * @private\n\t * @param {Array|null} block The binary array representation of the\n\t * block to hash\n\t * @param {Array>} state The binary array representation of the\n\t * block to hash\n\t * @return {Array>} The resulting state value\n\t */\n\tfunction roundSHA3(block, state)\n\t{\n\t\tvar round, x, y, B, C = [], D = [];\n\n\t\tif (null !== block)\n\t\t{\n\t\t\tfor (x = 0; x < block.length; x+=2)\n\t\t\t{\n\t\t\t\tstate[(x >>> 1) % 5][((x >>> 1) / 5) | 0] = xor_64_2(\n\t\t\t\t\tstate[(x >>> 1) % 5][((x >>> 1) / 5) | 0],\n\t\t\t\t\tnew Int_64(block[x + 1], block[x])\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfor (round = 0; round < 24; round += 1)\n\t\t{\n\t\t\t/* getNewState doesn't care about variant beyond SHA3 so feed it a\n\t\t\t value that triggers the getNewState \"if\" statement\n\t\t\t*/\n\t\t\tB = getNewState(\"SHA3-\");\n\n\t\t\t/* Perform theta step */\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tC[x] = xor_64_5(state[x][0], state[x][1], state[x][2],\n\t\t\t\t\tstate[x][3], state[x][4]);\n\t\t\t}\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tD[x] = xor_64_2(C[(x + 4) % 5], rotl_64(C[(x + 1) % 5], 1));\n\t\t\t}\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tfor (y = 0; y < 5; y += 1)\n\t\t\t\t{\n\t\t\t\t\tstate[x][y] = xor_64_2(state[x][y], D[x]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Perform combined ro and pi steps */\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tfor (y = 0; y < 5; y += 1)\n\t\t\t\t{\n\t\t\t\t\tB[y][(2 * x + 3 * y) % 5] = rotl_64(\n\t\t\t\t\t\tstate[x][y],\n\t\t\t\t\t\tr_sha3[x][y]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Perform chi step */\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tfor (y = 0; y < 5; y += 1)\n\t\t\t\t{\n\t\t\t\t\tstate[x][y] = xor_64_2(\n\t\t\t\t\t\tB[x][y],\n\t\t\t\t\t\tnew Int_64(\n\t\t\t\t\t\t\t~(B[(x + 1) % 5][y].highOrder) & B[(x + 2) % 5][y].highOrder,\n\t\t\t\t\t\t\t~(B[(x + 1) % 5][y].lowOrder) & B[(x + 2) % 5][y].lowOrder\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Perform iota step */\n\t\t\tstate[0][0] = xor_64_2(state[0][0], rc_sha3[round]);\n\t\t}\n\n\t\treturn state;\n\t}\n\n\t/**\n\t * Finalizes the SHA-3 hash\n\t *\n\t * @private\n\t * @param {Array} remainder Any leftover unprocessed packed ints\n\t * that still need to be processed\n\t * @param {number} remainderBinLen The number of bits in remainder\n\t * @param {number} processedBinLen The number of bits already\n\t * processed\n\t * @param {Array>} state The state from a previous round\n\t * @param {number} blockSize The block size/rate of the variant in bits\n\t * @param {number} delimiter The delimiter value for the variant\n\t * @param {number} outputLen The output length for the variant in bits\n\t * @return {Array} The array of integers representing the SHA-3\n\t * hash of message\n\t */\n\tfunction finalizeSHA3(remainder, remainderBinLen, processedBinLen, state, blockSize, delimiter, outputLen)\n\t{\n\t\tvar i, retVal = [], binaryStringInc = blockSize >>> 5, state_offset = 0,\n\t\t\tremainderIntLen = remainderBinLen >>> 5, temp;\n\n\n\t\t/* Process as many blocks as possible, some may be here for multiple rounds\n\t\t with SHAKE\n\t\t*/\n\t\tfor (i = 0; i < remainderIntLen && remainderBinLen >= blockSize; i += binaryStringInc)\n\t\t{\n\t\t\tstate = roundSHA3(remainder.slice(i, i + binaryStringInc), state);\n\t\t\tremainderBinLen -= blockSize;\n\t\t}\n\n\t\tremainder = remainder.slice(i);\n\t\tremainderBinLen = remainderBinLen % blockSize;\n\n\t\t/* Pad out the remainder to a full block */\n\t\twhile (remainder.length < binaryStringInc)\n\t\t{\n\t\t\tremainder.push(0);\n\t\t}\n\n\t\t/* Find the next \"empty\" byte for the 0x80 and append it via an xor */\n\t\ti = remainderBinLen >>> 3;\n\t\tremainder[i >> 2] ^= delimiter << (8 * (i % 4));\n\n\t\tremainder[binaryStringInc - 1] ^= 0x80000000;\n\t\tstate = roundSHA3(remainder, state);\n\n\t\twhile (retVal.length * 32 < outputLen)\n\t\t{\n\t\t\ttemp = state[state_offset % 5][(state_offset / 5) | 0];\n\t\t\tretVal.push(temp.lowOrder);\n\t\t\tif (retVal.length * 32 >= outputLen)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tretVal.push(temp.highOrder);\n\t\t\tstate_offset += 1;\n\n\t\t\tif (0 === ((state_offset * 64) % blockSize))\n\t\t\t{\n\t\t\t\troundSHA3(null, state);\n\t\t\t}\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * jsSHA is the workhorse of the library. Instantiate it with the string to\n\t * be hashed as the parameter\n\t *\n\t * @constructor\n\t * @this {jsSHA}\n\t * @param {string} variant The desired SHA variant (SHA-1, SHA-224, SHA-256,\n\t * SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, or SHA3-512)\n\t * @param {string} inputFormat The format of srcString: HEX, TEXT, B64,\n\t * BYTES, or ARRAYBUFFER\n\t * @param {{encoding: (string|undefined), numRounds: (number|undefined)}=}\n\t * options Optional values\n\t */\n\tvar jsSHA = function(variant, inputFormat, options)\n\t{\n\t\tvar processedLen = 0, remainder = [], remainderLen = 0, utfType,\n\t\t\tintermediateState, converterFunc, shaVariant = variant, outputBinLen,\n\t\t\tvariantBlockSize, roundFunc, finalizeFunc, stateCloneFunc,\n\t\t\thmacKeySet = false, keyWithIPad = [], keyWithOPad = [], numRounds,\n\t\t\tupdatedCalled = false, inputOptions, isSHAKE = false, bigEndianMod = -1;\n\n\t\tinputOptions = options || {};\n\t\tutfType = inputOptions[\"encoding\"] || \"UTF8\";\n\t\tnumRounds = inputOptions[\"numRounds\"] || 1;\n\n\t\tif ((numRounds !== parseInt(numRounds, 10)) || (1 > numRounds))\n\t\t{\n\t\t\tthrow new Error(\"numRounds must a integer >= 1\");\n\t\t}\n\n\t\tif ((\"SHA-1\" === shaVariant) && ((1 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tvariantBlockSize = 512;\n\t\t\troundFunc = roundSHA1;\n\t\t\tfinalizeFunc = finalizeSHA1;\n\t\t\toutputBinLen = 160;\n\t\t\tstateCloneFunc = function(state) { return state.slice();};\n\t\t}\n\t\telse if ((shaVariant.lastIndexOf(\"SHA-\", 0) === 0) && ((6 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\troundFunc = function (block, H) {\n\t\t\t\treturn roundSHA2(block, H, shaVariant);\n\t\t\t};\n\t\t\tfinalizeFunc = function (remainder, remainderBinLen, processedBinLen, H, outputLen)\n\t\t\t{\n\t\t\t\treturn finalizeSHA2(remainder, remainderBinLen, processedBinLen, H, shaVariant, outputLen);\n\t\t\t};\n\t\t\tstateCloneFunc = function(state) { return state.slice(); };\n\n\t\t\tif ((\"SHA-224\" === shaVariant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 512;\n\t\t\t\toutputBinLen = 224;\n\t\t\t}\n\t\t\telse if ((\"SHA-256\" === shaVariant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 512;\n\t\t\t\toutputBinLen = 256;\n\t\t\t}\n\t\t\telse if ((\"SHA-384\" === shaVariant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1024;\n\t\t\t\toutputBinLen = 384;\n\t\t\t}\n\t\t\telse if ((\"SHA-512\" === shaVariant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1024;\n\t\t\t\toutputBinLen = 512;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error(\"Chosen SHA variant is not supported\");\n\t\t\t}\n\t\t}\n\t\telse if (((shaVariant.lastIndexOf(\"SHA3-\", 0) === 0) || (shaVariant.lastIndexOf(\"SHAKE\", 0) === 0)) &&\n\t\t\t((8 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tvar delimiter = 0x06;\n\n\t\t\troundFunc = roundSHA3;\n\t\t\tstateCloneFunc = function(state) { return cloneSHA3State(state);};\n\t\t\tbigEndianMod = 1;\n\n\t\t\tif (\"SHA3-224\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1152;\n\t\t\t\toutputBinLen = 224;\n\n\t\t\t}\n\t\t\telse if (\"SHA3-256\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1088;\n\t\t\t\toutputBinLen = 256;\n\t\t\t}\n\t\t\telse if (\"SHA3-384\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 832;\n\t\t\t\toutputBinLen = 384;\n\t\t\t}\n\t\t\telse if (\"SHA3-512\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 576;\n\t\t\t\toutputBinLen = 512;\n\t\t\t}\n\t\t\telse if (\"SHAKE128\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1344;\n\t\t\t\toutputBinLen = -1;\n\t\t\t\tdelimiter = 0x1F;\n\t\t\t\tisSHAKE = true;\n\t\t\t}\n\t\t\telse if (\"SHAKE256\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1088;\n\t\t\t\toutputBinLen = -1;\n\t\t\t\tdelimiter = 0x1F;\n\t\t\t\tisSHAKE = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error(\"Chosen SHA variant is not supported\");\n\t\t\t}\n\t\t\tfinalizeFunc = function (remainder, remainderBinLen, processedBinLen, state, outputLen)\n\t\t\t{\n\t\t\t\treturn finalizeSHA3(remainder, remainderBinLen, processedBinLen, state, variantBlockSize, delimiter, outputLen);\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Chosen SHA variant is not supported\");\n\t\t}\n\t\tconverterFunc = getStrConverter(inputFormat, utfType, bigEndianMod);\n\t\tintermediateState = getNewState(shaVariant);\n\n\t\t/**\n\t\t * Sets the HMAC key for an eventual getHMAC call. Must be called\n\t\t * immediately after jsSHA object instantiation\n\t\t *\n\t\t * @expose\n\t\t * @param {string|ArrayBuffer} key The key used to calculate the HMAC\n\t\t * @param {string} inputFormat The format of key, HEX, TEXT, B64, BYTES,\n\t\t * or ARRAYBUFFER\n\t\t * @param {{encoding : (string|undefined)}=} options Associative array\n\t\t * of input format options\n\t\t */\n\t\tthis.setHMACKey = function(key, inputFormat, options)\n\t\t{\n\t\t\tvar keyConverterFunc, convertRet, keyBinLen, keyToUse, blockByteSize,\n\t\t\t\ti, lastArrayIndex, keyOptions;\n\n\t\t\tif (true === hmacKeySet)\n\t\t\t{\n\t\t\t\tthrow new Error(\"HMAC key already set\");\n\t\t\t}\n\n\t\t\tif (true === updatedCalled)\n\t\t\t{\n\t\t\t\tthrow new Error(\"Cannot set HMAC key after calling update\");\n\t\t\t}\n\n\t\t\tif ((isSHAKE === true) && ((8 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tthrow new Error(\"SHAKE is not supported for HMAC\");\n\t\t\t}\n\n\t\t\tkeyOptions = options || {};\n\t\t\tutfType = keyOptions[\"encoding\"] || \"UTF8\";\n\n\t\t\tkeyConverterFunc = getStrConverter(inputFormat, utfType, bigEndianMod);\n\n\t\t\tconvertRet = keyConverterFunc(key);\n\t\t\tkeyBinLen = convertRet[\"binLen\"];\n\t\t\tkeyToUse = convertRet[\"value\"];\n\n\t\t\tblockByteSize = variantBlockSize >>> 3;\n\n\t\t\t/* These are used multiple times, calculate and store them */\n\t\t\tlastArrayIndex = (blockByteSize / 4) - 1;\n\n\t\t\t/* Figure out what to do with the key based on its size relative to\n\t\t\t * the hash's block size */\n\t\t\tif (blockByteSize < (keyBinLen / 8))\n\t\t\t{\n\n\t\t\t\tkeyToUse = finalizeFunc(keyToUse, keyBinLen, 0,getNewState(shaVariant), outputBinLen);\n\t\t\t\t/* For all variants, the block size is bigger than the output\n\t\t\t\t * size so there will never be a useful byte at the end of the\n\t\t\t\t * string */\n\t\t\t\twhile (keyToUse.length <= lastArrayIndex)\n\t\t\t\t{\n\t\t\t\t\tkeyToUse.push(0);\n\t\t\t\t}\n\t\t\t\tkeyToUse[lastArrayIndex] &= 0xFFFFFF00;\n\t\t\t}\n\t\t\telse if (blockByteSize > (keyBinLen / 8))\n\t\t\t{\n\t\t\t\t/* If the blockByteSize is greater than the key length, there\n\t\t\t\t * will always be at LEAST one \"useless\" byte at the end of the\n\t\t\t\t * string */\n\t\t\t\twhile (keyToUse.length <= lastArrayIndex)\n\t\t\t\t{\n\t\t\t\t\tkeyToUse.push(0);\n\t\t\t\t}\n\t\t\t\tkeyToUse[lastArrayIndex] &= 0xFFFFFF00;\n\t\t\t}\n\n\t\t\t/* Create ipad and opad */\n\t\t\tfor (i = 0; i <= lastArrayIndex; i += 1)\n\t\t\t{\n\t\t\t\tkeyWithIPad[i] = keyToUse[i] ^ 0x36363636;\n\t\t\t\tkeyWithOPad[i] = keyToUse[i] ^ 0x5C5C5C5C;\n\t\t\t}\n\n\t\t\tintermediateState = roundFunc(keyWithIPad, intermediateState);\n\t\t\tprocessedLen = variantBlockSize;\n\n\t\t\thmacKeySet = true;\n\t\t};\n\n\t\t/**\n\t\t * Takes strString and hashes as many blocks as possible. Stores the\n\t\t * rest for either a future update or getHash call.\n\t\t *\n\t\t * @expose\n\t\t * @param {string|ArrayBuffer} srcString The string to be hashed\n\t\t */\n\t\tthis.update = function(srcString)\n\t\t{\n\t\t\tvar convertRet, chunkBinLen, chunkIntLen, chunk, i, updateProcessedLen = 0,\n\t\t\t\tvariantBlockIntInc = variantBlockSize >>> 5;\n\n\t\t\tconvertRet = converterFunc(srcString, remainder, remainderLen);\n\t\t\tchunkBinLen = convertRet[\"binLen\"];\n\t\t\tchunk = convertRet[\"value\"];\n\n\t\t\tchunkIntLen = chunkBinLen >>> 5;\n\t\t\tfor (i = 0; i < chunkIntLen; i += variantBlockIntInc)\n\t\t\t{\n\t\t\t\tif (updateProcessedLen + variantBlockSize <= chunkBinLen)\n\t\t\t\t{\n\t\t\t\t\tintermediateState = roundFunc(\n\t\t\t\t\t\tchunk.slice(i, i + variantBlockIntInc),\n\t\t\t\t\t\tintermediateState\n\t\t\t\t\t);\n\t\t\t\t\tupdateProcessedLen += variantBlockSize;\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocessedLen += updateProcessedLen;\n\t\t\tremainder = chunk.slice(updateProcessedLen >>> 5);\n\t\t\tremainderLen = chunkBinLen % variantBlockSize;\n\t\t\tupdatedCalled = true;\n\n\t\t};\n\n\t\t/**\n\t\t * Returns the desired SHA hash of the string specified at instantiation\n\t\t * using the specified parameters\n\t\t *\n\t\t * @expose\n\t\t * @param {string} format The desired output formatting (B64, HEX,\n\t\t * BYTES, or ARRAYBUFFER)\n\t\t * @param {{outputUpper : (boolean|undefined), b64Pad : (string|undefined),\n\t\t * shakeLen : (number|undefined)}=} options Hash list of output formatting options\n\t\t * @return {string|ArrayBuffer} The string representation of the hash\n\t\t * in the format specified.\n\t\t */\n\t\tthis.getHash = function(format, options)\n\t\t{\n\t\t\tvar formatFunc, i, outputOptions, finalizedState;\n\n\t\t\tif (true === hmacKeySet)\n\t\t\t{\n\t\t\t\tthrow new Error(\"Cannot call getHash after setting HMAC key\");\n\t\t\t}\n\n\t\t\toutputOptions = getOutputOpts(options);\n\n\t\t\tif ((isSHAKE === true) && ((8 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tif (outputOptions[\"shakeLen\"] === -1)\n\t\t\t\t{\n\t\t\t\t\tthrow new Error(\"shakeLen must be specified in options\");\n\t\t\t\t}\n\t\t\t\toutputBinLen = outputOptions[\"shakeLen\"];\n\t\t\t}\n\n\t\t\t/* Validate the output format selection */\n\t\t\tswitch (format)\n\t\t\t{\n\t\t\tcase \"HEX\":\n\t\t\t\tformatFunc = function(binarray) {return packed2hex(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"B64\":\n\t\t\t\tformatFunc = function(binarray) {return packed2b64(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"BYTES\":\n\t\t\t\tformatFunc = function(binarray) {return packed2bytes(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tcase \"ARRAYBUFFER\":\n\t\t\t\ttry {\n\t\t\t\t\ti = new ArrayBuffer(0);\n\t\t\t\t} catch (ignore) {\n\t\t\t\t\tthrow new Error(\"ARRAYBUFFER not supported by this environment\");\n\t\t\t\t}\n\t\t\t\tformatFunc = function(binarray) {return packed2arraybuffer(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"format must be HEX, B64, BYTES, or ARRAYBUFFER\");\n\t\t\t}\n\n\t\t\tfinalizedState = finalizeFunc(remainder.slice(), remainderLen, processedLen, stateCloneFunc(intermediateState), outputBinLen);\n\t\t\tfor (i = 1; i < numRounds; i += 1)\n\t\t\t{\n\t\t\t\t/* This weird fix-up is only for the case of SHAKE algorithms\n\t\t\t\t * and outputBinLen is not a multiple of 32. In this case, the\n\t\t\t\t * very last block of finalizedState has data that needs to be\n\t\t\t\t * ignored because all the finalizeFunc calls need to have\n\t\t\t\t * unneeded bits set to 0.\n\t\t\t\t */\n\t\t\t\tif (((8 & SUPPORTED_ALGS) !== 0) && (isSHAKE === true) && (outputBinLen % 32 !== 0))\n\t\t\t\t{\n\t\t\t\t\tfinalizedState[finalizedState.length - 1] &= 0x00FFFFFF >>> 24 - (outputBinLen % 32);\n\t\t\t\t}\n\t\t\t\tfinalizedState = finalizeFunc(finalizedState, outputBinLen, 0, getNewState(shaVariant), outputBinLen);\n\t\t\t}\n\n\t\t\treturn formatFunc(finalizedState);\n\t\t};\n\n\t\t/**\n\t\t * Returns the the HMAC in the specified format using the key given by\n\t\t * a previous setHMACKey call.\n\t\t *\n\t\t * @expose\n\t\t * @param {string} format The desired output formatting\n\t\t * (B64, HEX, BYTES, or ARRAYBUFFER)\n\t\t * @param {{outputUpper : (boolean|undefined), b64Pad : (string|undefined),\n\t\t * shakeLen : (number|undefined)}=} options associative array of output\n\t\t * formatting options\n\t\t * @return {string|ArrayBuffer} The string representation of the hash in the\n\t\t * format specified.\n\t\t */\n\t\tthis.getHMAC = function(format, options)\n\t\t{\n\t\t\tvar formatFunc,\tfirstHash, outputOptions, finalizedState;\n\n\t\t\tif (false === hmacKeySet)\n\t\t\t{\n\t\t\t\tthrow new Error(\"Cannot call getHMAC without first setting HMAC key\");\n\t\t\t}\n\n\t\t\toutputOptions = getOutputOpts(options);\n\n\t\t\t/* Validate the output format selection */\n\t\t\tswitch (format)\n\t\t\t{\n\t\t\tcase \"HEX\":\n\t\t\t\tformatFunc = function(binarray) {return packed2hex(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"B64\":\n\t\t\t\tformatFunc = function(binarray) {return packed2b64(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"BYTES\":\n\t\t\t\tformatFunc = function(binarray) {return packed2bytes(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tcase \"ARRAYBUFFER\":\n\t\t\t\ttry {\n\t\t\t\t\tformatFunc = new ArrayBuffer(0);\n\t\t\t\t} catch(ignore) {\n\t\t\t\t\tthrow new Error(\"ARRAYBUFFER not supported by this environment\");\n\t\t\t\t}\n\t\t\t\tformatFunc = function(binarray) {return packed2arraybuffer(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER\");\n\t\t\t}\n\n\t\t\tfirstHash = finalizeFunc(remainder.slice(), remainderLen, processedLen, stateCloneFunc(intermediateState), outputBinLen);\n\t\t\tfinalizedState = roundFunc(keyWithOPad, getNewState(shaVariant));\n\t\t\tfinalizedState = finalizeFunc(firstHash, outputBinLen, variantBlockSize, finalizedState, outputBinLen);\n\n\t\t\treturn formatFunc(finalizedState);\n\t\t};\n\t};\n\n\tif ((\"function\" === typeof define) && (define[\"amd\"])) /* AMD Support */\n\t{\n\t\tdefine(function()\n\t\t{\n\t\t\treturn jsSHA;\n\t\t});\n\t} else if (\"undefined\" !== typeof exports) /* Node Support */\n\t{\n\t\tif ((\"undefined\" !== typeof module) && module[\"exports\"])\n\t\t{\n\t\t module[\"exports\"] = jsSHA;\n\t\t exports = jsSHA;\n\t\t}\n\t\telse {\n\t\t\texports = jsSHA;\n\t\t}\n\t} else { /* Browsers and Web Workers*/\n\t\tglobal[\"jsSHA\"] = jsSHA;\n\t}\n}(this));\n"]} \ No newline at end of file +{"version":3,"sources":["../vendor/jssha/src/sha_dev.js"],"names":["SUPPORTED_ALGS","global","Int_64","msint_32","lsint_32","this","highOrder","lowOrder","str2packed","str","utfType","existingPacked","existingPackedLen","bigEndianMod","packed","codePnt","codePntArr","i","j","existingByteLen","intOffset","byteOffset","shiftModifier","transposeBytes","byteCnt","length","charCodeAt","push","value","binLen","hex2packed","num","Error","parseInt","substr","isNaN","bytes2packed","b642packed","index","tmpInt","strPart","firstEqual","b64Tab","search","indexOf","replace","arraybuffer2packed","arr","arrView","Uint8Array","byteLength","packed2hex","outputLength","formatOpts","srcByte","hex_tab","charAt","toUpperCase","packed2b64","triplet","int1","int2","packed2bytes","String","fromCharCode","packed2arraybuffer","retVal","ArrayBuffer","getOutputOpts","options","outputOptions","outputUpper","b64Pad","shakeLen","hasOwnProperty","getStrConverter","format","existingBin","existingBinLen","ignore","rotl_32","x","n","rotl_64","rotr_32","rotr_64","tmp","shr_32","shr_64","parity_32","y","z","ch_32","ch_64","maj_32","maj_64","sigma0_32","sigma0_64","rotr28","rotr34","rotr39","sigma1_32","sigma1_64","rotr14","rotr18","rotr41","gamma0_32","gamma0_64","rotr1","rotr8","shr7","gamma1_32","gamma1_64","rotr19","rotr61","shr6","safeAdd_32_2","a","b","lsw","msw","safeAdd_32_4","c","d","safeAdd_32_5","e","safeAdd_64_2","safeAdd_64_4","safeAdd_64_5","xor_64_2","xor_64_5","cloneSHA3State","state","clone","slice","getNewState","variant","H_trunc","H_full","lastIndexOf","roundSHA1","block","H","T","t","W","ch","parity","maj","rotl","safeAdd_2","safeAdd_5","finalizeSHA1","remainder","remainderBinLen","processedBinLen","outputLen","appendedMessageLength","offset","totalLen","TWO_PWR_32","roundSHA2","f","g","h","T1","T2","numRounds","binaryStringMult","safeAdd_4","gamma0","gamma1","sigma0","sigma1","Int","K","K_sha512","Number","K_sha2","finalizeSHA2","binaryStringInc","roundSHA3","round","B","C","D","r_sha3","rc_sha3","finalizeSHA3","blockSize","delimiter","temp","state_offset","remainderIntLen","jsSHA","inputFormat","intermediateState","converterFunc","outputBinLen","variantBlockSize","roundFunc","finalizeFunc","stateCloneFunc","inputOptions","processedLen","remainderLen","shaVariant","hmacKeySet","keyWithIPad","keyWithOPad","updatedCalled","isSHAKE","setHMACKey","key","keyConverterFunc","convertRet","keyBinLen","keyToUse","blockByteSize","lastArrayIndex","keyOptions","update","srcString","chunkBinLen","chunkIntLen","chunk","updateProcessedLen","variantBlockIntInc","getHash","formatFunc","finalizedState","binarray","getHMAC","firstHash","define","exports","module","definition","path","Failure","iterate","isObject","isEnabled","match","settings","demand","on","dependency","sha","hash","type","source","dfd","reject","id","error","provide"],"mappings":"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","file":"sri.js","sourcesContent":["/**\n * @preserve A JavaScript implementation of the SHA family of hashes, as\n * defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding\n * HMAC implementation as defined in FIPS PUB 198a\n *\n * Copyright Brian Turek 2008-2017\n * Distributed under the BSD License\n * See http://caligatio.github.com/jsSHA/ for more information\n *\n * Several functions taken from Paul Johnston\n */\n\n/*jslint\n\tbitwise: true, multivar: true, for: true, this: true, sub: true, esversion: 3\n*/\n\n /**\n * SUPPORTED_ALGS is the stub for a compile flag that will cause pruning of\n * functions that are not needed when a limited number of SHA families are\n * selected\n *\n * @define {number} ORed value of SHA variants to be supported\n * 1 = SHA-1, 2 = SHA-224/SHA-256, 4 = SHA-384/SHA-512, 8 = SHA3\n */\nvar SUPPORTED_ALGS = 8 | 4 | 2 | 1;\n\n(function (global)\n{\n\t\"use strict\";\n\n\t/* Globals */\n\tvar TWO_PWR_32 = 4294967296;\n\n\t/**\n\t * Int_64 is a object for 2 32-bit numbers emulating a 64-bit number\n\t *\n\t * @private\n\t * @constructor\n\t * @this {Int_64}\n\t * @param {number} msint_32 The most significant 32-bits of a 64-bit number\n\t * @param {number} lsint_32 The least significant 32-bits of a 64-bit number\n\t */\n\tfunction Int_64(msint_32, lsint_32)\n\t{\n\t\tthis.highOrder = msint_32;\n\t\tthis.lowOrder = lsint_32;\n\t}\n\n\t/**\n\t * Convert a string to an array of big-endian words\n\t *\n\t * There is a known bug with an odd number of existing bytes and using a\n\t * UTF-16 encoding. However, this function is used such that the existing\n\t * bytes are always a result of a previous UTF-16 str2packed call and\n\t * therefore there should never be an odd number of existing bytes\n\t *\n\t * @private\n\t * @param {string} str String to be converted to binary representation\n\t * @param {string} utfType The Unicode type, UTF8 or UTF16BE, UTF16LE, to\n\t * use to encode the source string\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction str2packed(str, utfType, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, codePnt, codePntArr, byteCnt = 0, i, j, existingByteLen,\n\t\t\tintOffset, byteOffset, shiftModifier, transposeBytes;\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\n\t\tif (\"UTF8\" === utfType)\n\t\t{\n\t\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\t\t\tfor (i = 0; i < str.length; i += 1)\n\t\t\t{\n\t\t\t\tcodePnt = str.charCodeAt(i);\n\t\t\t\tcodePntArr = [];\n\n\t\t\t\tif (0x80 > codePnt)\n\t\t\t\t{\n\t\t\t\t\tcodePntArr.push(codePnt);\n\t\t\t\t}\n\t\t\t\telse if (0x800 > codePnt)\n\t\t\t\t{\n\t\t\t\t\tcodePntArr.push(0xC0 | (codePnt >>> 6));\n\t\t\t\t\tcodePntArr.push(0x80 | (codePnt & 0x3F));\n\t\t\t\t}\n\t\t\t\telse if ((0xd800 > codePnt) || (0xe000 <= codePnt)) {\n\t\t\t\t\tcodePntArr.push(\n\t\t\t\t\t\t0xe0 | (codePnt >>> 12),\n\t\t\t\t\t\t0x80 | ((codePnt >>> 6) & 0x3f),\n\t\t\t\t\t\t0x80 | (codePnt & 0x3f)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ti += 1;\n\t\t\t\t\tcodePnt = 0x10000 + (((codePnt & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n\t\t\t\t\tcodePntArr.push(\n\t\t\t\t\t\t0xf0 | (codePnt >>> 18),\n\t\t\t\t\t\t0x80 | ((codePnt >>> 12) & 0x3f),\n\t\t\t\t\t\t0x80 | ((codePnt >>> 6) & 0x3f),\n\t\t\t\t\t\t0x80 | (codePnt & 0x3f)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tfor (j = 0; j < codePntArr.length; j += 1)\n\t\t\t\t{\n\t\t\t\t\tbyteOffset = byteCnt + existingByteLen;\n\t\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t\t{\n\t\t\t\t\t\tpacked.push(0);\n\t\t\t\t\t}\n\t\t\t\t\t/* Known bug kicks in here */\n\t\t\t\t\tpacked[intOffset] |= codePntArr[j] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t\t\tbyteCnt += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if ((\"UTF16BE\" === utfType) || \"UTF16LE\" === utfType)\n\t\t{\n\t\t\tshiftModifier = (bigEndianMod === -1) ? 2 : 0;\n\t\t\t/* Internally strings are UTF-16BE so transpose bytes under two conditions:\n\t\t\t\t* need LE and not switching endianness due to SHA-3\n\t\t\t\t* need BE and switching endianness due to SHA-3 */\n\t\t\ttransposeBytes = ((\"UTF16LE\" === utfType) && (bigEndianMod !== 1)) || ((\"UTF16LE\" !== utfType) && (bigEndianMod === 1));\n\t\t\tfor (i = 0; i < str.length; i += 1)\n\t\t\t{\n\t\t\t\tcodePnt = str.charCodeAt(i);\n\t\t\t\tif (transposeBytes === true)\n\t\t\t\t{\n\t\t\t\t\tj = codePnt & 0xFF;\n\t\t\t\t\tcodePnt = (j << 8) | (codePnt >>> 8);\n\t\t\t\t}\n\n\t\t\t\tbyteOffset = byteCnt + existingByteLen;\n\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t{\n\t\t\t\t\tpacked.push(0);\n\t\t\t\t}\n\t\t\t\tpacked[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t\tbyteCnt += 2;\n\t\t\t}\n\t\t}\n\t\treturn {\"value\" : packed, \"binLen\" : byteCnt * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert a hex string to an array of big-endian words\n\t *\n\t * @private\n\t * @param {string} str String to be converted to binary representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction hex2packed(str, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, length = str.length, i, num, intOffset, byteOffset,\n\t\t\texistingByteLen, shiftModifier;\n\n\t\tif (0 !== (length % 2))\n\t\t{\n\t\t\tthrow new Error(\"String of HEX type must be in byte increments\");\n\t\t}\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 2)\n\t\t{\n\t\t\tnum = parseInt(str.substr(i, 2), 16);\n\t\t\tif (!isNaN(num))\n\t\t\t{\n\t\t\t\tbyteOffset = (i >>> 1) + existingByteLen;\n\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t{\n\t\t\t\t\tpacked.push(0);\n\t\t\t\t}\n\t\t\t\tpacked[intOffset] |= num << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error(\"String of HEX type contains invalid characters\");\n\t\t\t}\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : length * 4 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert a string of raw bytes to an array of big-endian words\n\t *\n\t * @private\n\t * @param {string} str String of raw bytes to be converted to binary representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction bytes2packed(str, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, codePnt, i, existingByteLen, intOffset,\n\t\t\tbyteOffset, shiftModifier;\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < str.length; i += 1)\n\t\t{\n\t\t\tcodePnt = str.charCodeAt(i);\n\n\t\t\tbyteOffset = i + existingByteLen;\n\t\t\tintOffset = byteOffset >>> 2;\n\t\t\tif (packed.length <= intOffset)\n\t\t\t{\n\t\t\t\tpacked.push(0);\n\t\t\t}\n\t\t\tpacked[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : str.length * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert a base-64 string to an array of big-endian words\n\t *\n\t * @private\n\t * @param {string} str String to be converted to binary representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction b642packed(str, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, byteCnt = 0, index, i, j, tmpInt, strPart, firstEqual,\n\t\t\tb64Tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",\n\t\t\texistingByteLen, intOffset, byteOffset, shiftModifier;\n\n\t\tif (-1 === str.search(/^[a-zA-Z0-9=+\\/]+$/))\n\t\t{\n\t\t\tthrow new Error(\"Invalid character in base-64 string\");\n\t\t}\n\n\t\tfirstEqual = str.indexOf(\"=\");\n\t\tstr = str.replace(/\\=/g, \"\");\n\t\tif ((-1 !== firstEqual) && (firstEqual < str.length))\n\t\t{\n\t\t\tthrow new Error(\"Invalid '=' found in base-64 string\");\n\t\t}\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < str.length; i += 4)\n\t\t{\n\t\t\tstrPart = str.substr(i, 4);\n\t\t\ttmpInt = 0;\n\n\t\t\tfor (j = 0; j < strPart.length; j += 1)\n\t\t\t{\n\t\t\t\tindex = b64Tab.indexOf(strPart[j]);\n\t\t\t\ttmpInt |= index << (18 - (6 * j));\n\t\t\t}\n\n\t\t\tfor (j = 0; j < strPart.length - 1; j += 1)\n\t\t\t{\n\t\t\t\tbyteOffset = byteCnt + existingByteLen;\n\t\t\t\tintOffset = byteOffset >>> 2;\n\t\t\t\twhile (packed.length <= intOffset)\n\t\t\t\t{\n\t\t\t\t\tpacked.push(0);\n\t\t\t\t}\n\t\t\t\tpacked[intOffset] |= ((tmpInt >>> (16 - (j * 8))) & 0xFF) <<\n\t\t\t\t\t(8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t\t\tbyteCnt += 1;\n\t\t\t}\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : byteCnt * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert an ArrayBuffer to an array of big-endian words\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arr ArrayBuffer to be converted to binary\n\t * representation\n\t * @param {Array} existingPacked A packed int array of bytes to\n\t * append the results to\n\t * @param {number} existingPackedLen The number of bits in the existingPacked\n\t * array\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {{value : Array, binLen : number}} Hash list where\n\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t * length of \"value\"\n\t */\n\tfunction arraybuffer2packed(arr, existingPacked, existingPackedLen, bigEndianMod)\n\t{\n\t\tvar packed, i, existingByteLen, intOffset, byteOffset, shiftModifier, arrView;\n\n\t\tpacked = existingPacked || [0];\n\t\texistingPackedLen = existingPackedLen || 0;\n\t\texistingByteLen = existingPackedLen >>> 3;\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\t\tarrView = new Uint8Array(arr);\n\n\t\tfor (i = 0; i < arr.byteLength; i += 1)\n\t\t{\n\t\t\tbyteOffset = i + existingByteLen;\n\t\t\tintOffset = byteOffset >>> 2;\n\t\t\tif (packed.length <= intOffset)\n\t\t\t{\n\t\t\t\tpacked.push(0);\n\t\t\t}\n\t\t\tpacked[intOffset] |= arrView[i] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n\t\t}\n\n\t\treturn {\"value\" : packed, \"binLen\" : arr.byteLength * 8 + existingPackedLen};\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to a hex string.\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * hexidecimal representation\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @param {{outputUpper : boolean, b64Pad : string}} formatOpts Hash list\n\t * containing validated output formatting options\n\t * @return {string} Hexidecimal representation of the parameter in string\n\t * form\n\t */\n\tfunction packed2hex(packed, outputLength, bigEndianMod, formatOpts)\n\t{\n\t\tvar hex_tab = \"0123456789abcdef\", str = \"\",\n\t\t\tlength = outputLength / 8, i, srcByte, shiftModifier;\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 1)\n\t\t{\n\t\t\t/* The below is more than a byte but it gets taken care of later */\n\t\t\tsrcByte = packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)));\n\t\t\tstr += hex_tab.charAt((srcByte >>> 4) & 0xF) +\n\t\t\t\thex_tab.charAt(srcByte & 0xF);\n\t\t}\n\n\t\treturn (formatOpts[\"outputUpper\"]) ? str.toUpperCase() : str;\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to a base-64 string\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * base-64 representation\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @param {{outputUpper : boolean, b64Pad : string}} formatOpts Hash list\n\t * containing validated output formatting options\n\t * @return {string} Base-64 encoded representation of the parameter in\n\t * string form\n\t */\n\tfunction packed2b64(packed, outputLength, bigEndianMod, formatOpts)\n\t{\n\t\tvar str = \"\", length = outputLength / 8, i, j, triplet, int1, int2, shiftModifier,\n\t\t\tb64Tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 3)\n\t\t{\n\t\t\tint1 = ((i + 1) < length) ? packed[(i + 1) >>> 2] : 0;\n\t\t\tint2 = ((i + 2) < length) ? packed[(i + 2) >>> 2] : 0;\n\t\t\ttriplet = (((packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF) << 16) |\n\t\t\t\t(((int1 >>> (8 * (shiftModifier + bigEndianMod * ((i + 1) % 4)))) & 0xFF) << 8) |\n\t\t\t\t((int2 >>> (8 * (shiftModifier + bigEndianMod * ((i + 2) % 4)))) & 0xFF);\n\t\t\tfor (j = 0; j < 4; j += 1)\n\t\t\t{\n\t\t\t\tif (i * 8 + j * 6 <= outputLength)\n\t\t\t\t{\n\t\t\t\t\tstr += b64Tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstr += formatOpts[\"b64Pad\"];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn str;\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to raw bytes string\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * a raw bytes string representation\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {string} Raw bytes representation of the parameter in string\n\t * form\n\t */\n\tfunction packed2bytes(packed, outputLength, bigEndianMod)\n\t{\n\t\tvar str = \"\", length = outputLength / 8, i, srcByte, shiftModifier;\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 1)\n\t\t{\n\t\t\tsrcByte = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF;\n\t\t\tstr += String.fromCharCode(srcByte);\n\t\t}\n\n\t\treturn str;\n\t}\n\n\t/**\n\t * Convert an array of big-endian words to an ArrayBuffer\n\t *\n\t * @private\n\t * @param {Array} packed Array of integers to be converted to\n\t * an ArrayBuffer\n\t * @param {number} outputLength Length of output in bits\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {ArrayBuffer} Raw bytes representation of the parameter in an\n\t * ArrayBuffer\n\t */\n\tfunction packed2arraybuffer(packed, outputLength, bigEndianMod)\n\t{\n\t\tvar length = outputLength / 8, i, retVal = new ArrayBuffer(length), shiftModifier, arrView;\n\t\tarrView = new Uint8Array(retVal);\n\n\t\tshiftModifier = (bigEndianMod === -1) ? 3 : 0;\n\n\t\tfor (i = 0; i < length; i += 1)\n\t\t{\n\t\t\tarrView[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF;\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Validate hash list containing output formatting options, ensuring\n\t * presence of every option or adding the default value\n\t *\n\t * @private\n\t * @param {{outputUpper : (boolean|undefined), b64Pad : (string|undefined),\n\t * shakeLen : (number|undefined)}=} options Hash list of output formatting options\n\t * @return {{outputUpper : boolean, b64Pad : string, shakeLen : number}} Validated\n\t * hash list containing output formatting options\n\t */\n\tfunction getOutputOpts(options)\n\t{\n\t\tvar retVal = {\"outputUpper\" : false, \"b64Pad\" : \"=\", \"shakeLen\" : -1},\n\t\t\toutputOptions;\n\t\toutputOptions = options || {};\n\n\t\tretVal[\"outputUpper\"] = outputOptions[\"outputUpper\"] || false;\n\n\t\tif (true === outputOptions.hasOwnProperty(\"b64Pad\"))\n\t\t{\n\t\t\tretVal[\"b64Pad\"] = outputOptions[\"b64Pad\"];\n\t\t}\n\n\t\tif ((true === outputOptions.hasOwnProperty(\"shakeLen\")) && ((8 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tif (outputOptions[\"shakeLen\"] % 8 !== 0)\n\t\t\t{\n\t\t\t\tthrow new Error(\"shakeLen must be a multiple of 8\");\n\t\t\t}\n\t\t\tretVal[\"shakeLen\"] = outputOptions[\"shakeLen\"];\n\t\t}\n\n\t\tif (\"boolean\" !== typeof(retVal[\"outputUpper\"]))\n\t\t{\n\t\t\tthrow new Error(\"Invalid outputUpper formatting option\");\n\t\t}\n\n\t\tif (\"string\" !== typeof(retVal[\"b64Pad\"]))\n\t\t{\n\t\t\tthrow new Error(\"Invalid b64Pad formatting option\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Function that takes an input format and UTF encoding and returns the\n\t * appropriate function used to convert the input.\n\t *\n\t * @private\n\t * @param {string} format The format of the string to be converted\n\t * @param {string} utfType The string encoding to use (UTF8, UTF16BE,\n\t *\tUTF16LE)\n\t * @param {number} bigEndianMod Modifier for whether hash function is\n\t * big or small endian\n\t * @return {function((string|ArrayBuffer), Array=, number=): {value :\n\t * Array, binLen : number}} Function that will convert an input\n\t * string to a packed int array\n\t */\n\tfunction getStrConverter(format, utfType, bigEndianMod)\n\t{\n\t\tvar retVal;\n\n\t\t/* Validate encoding */\n\t\tswitch (utfType)\n\t\t{\n\t\tcase \"UTF8\":\n\t\t\t/* Fallthrough */\n\t\tcase \"UTF16BE\":\n\t\t\t/* Fallthrough */\n\t\tcase \"UTF16LE\":\n\t\t\t/* Fallthrough */\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\");\n\t\t}\n\n\t\t/* Map inputFormat to the appropriate converter */\n\t\tswitch (format)\n\t\t{\n\t\tcase \"HEX\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return hex2packed(str, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"TEXT\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t\treturn str2packed(str, utfType, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"B64\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return b642packed(str, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"BYTES\":\n\t\t\t/**\n\t\t\t * @param {string} str String of raw bytes to be converted to binary representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(str, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return bytes2packed(str, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tcase \"ARRAYBUFFER\":\n\t\t\ttry {\n\t\t\t\tretVal = new ArrayBuffer(0);\n\t\t\t} catch(ignore) {\n\t\t\t\tthrow new Error(\"ARRAYBUFFER not supported by this environment\");\n\t\t\t}\n\t\t\t/**\n\t\t\t * @param {ArrayBuffer} arr ArrayBuffer to be converted to binary\n\t\t\t * representation\n\t\t\t * @param {Array} existingBin A packed int array of bytes to\n\t\t\t * append the results to\n\t\t\t * @param {number} existingBinLen The number of bits in the existingBin\n\t\t\t * array\n\t\t\t * @return {{value : Array, binLen : number}} Hash list where\n\t\t\t * \"value\" contains the output number array and \"binLen\" is the binary\n\t\t\t * length of \"value\"\n\t\t\t */\n\t\t\tretVal = function(arr, existingBin, existingBinLen)\n\t\t\t\t{\n\t\t\t\t return arraybuffer2packed(arr, existingBin, existingBinLen, bigEndianMod);\n\t\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(\"format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * The 32-bit implementation of circular rotate left\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {number} The x shifted circularly by n bits\n\t */\n\tfunction rotl_32(x, n)\n\t{\n\t\treturn (x << n) | (x >>> (32 - n));\n\t}\n\n\t/**\n\t * The 64-bit implementation of circular rotate left\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {Int_64} The x shifted circularly by n bits\n\t */\n\tfunction rotl_64(x, n)\n\t{\n\t\tif (n > 32)\n\t\t{\n\t\t\tn = n - 32;\n\t\t\treturn new Int_64(\n\t\t\t\tx.lowOrder << n | x.highOrder >>> (32 - n),\n\t\t\t\tx.highOrder << n | x.lowOrder >>> (32 - n)\n\t\t\t);\n\t\t}\n\t\telse if (0 !== n)\n\t\t{\n\t\t\treturn new Int_64(\n\t\t\t\tx.highOrder << n | x.lowOrder >>> (32 - n),\n\t\t\t\tx.lowOrder << n | x.highOrder >>> (32 - n)\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn x;\n\t\t}\n\t}\n\n\t/**\n\t * The 32-bit implementation of circular rotate right\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {number} The x shifted circularly by n bits\n\t */\n\tfunction rotr_32(x, n)\n\t{\n\t\treturn (x >>> n) | (x << (32 - n));\n\t}\n\n\t/**\n\t * The 64-bit implementation of circular rotate right\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {Int_64} The x shifted circularly by n bits\n\t */\n\tfunction rotr_64(x, n)\n\t{\n\t\tvar retVal = null, tmp = new Int_64(x.highOrder, x.lowOrder);\n\n\t\tif (32 >= n)\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\t(tmp.highOrder >>> n) | ((tmp.lowOrder << (32 - n)) & 0xFFFFFFFF),\n\t\t\t\t\t(tmp.lowOrder >>> n) | ((tmp.highOrder << (32 - n)) & 0xFFFFFFFF)\n\t\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\t(tmp.lowOrder >>> (n - 32)) | ((tmp.highOrder << (64 - n)) & 0xFFFFFFFF),\n\t\t\t\t\t(tmp.highOrder >>> (n - 32)) | ((tmp.lowOrder << (64 - n)) & 0xFFFFFFFF)\n\t\t\t\t);\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * The 32-bit implementation of shift right\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {number} The x shifted by n bits\n\t */\n\tfunction shr_32(x, n)\n\t{\n\t\treturn x >>> n;\n\t}\n\n\t/**\n\t * The 64-bit implementation of shift right\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @param {number} n The number of bits to shift\n\t * @return {Int_64} The x shifted by n bits\n\t */\n\tfunction shr_64(x, n)\n\t{\n\t\tvar retVal = null;\n\n\t\tif (32 >= n)\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\tx.highOrder >>> n,\n\t\t\t\t\tx.lowOrder >>> n | ((x.highOrder << (32 - n)) & 0xFFFFFFFF)\n\t\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tretVal = new Int_64(\n\t\t\t\t\t0,\n\t\t\t\t\tx.highOrder >>> (n - 32)\n\t\t\t\t);\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Parity function\n\t *\n\t * @private\n\t * @param {number} x The first 32-bit integer argument\n\t * @param {number} y The second 32-bit integer argument\n\t * @param {number} z The third 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction parity_32(x, y, z)\n\t{\n\t\treturn x ^ y ^ z;\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Ch function\n\t *\n\t * @private\n\t * @param {number} x The first 32-bit integer argument\n\t * @param {number} y The second 32-bit integer argument\n\t * @param {number} z The third 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction ch_32(x, y, z)\n\t{\n\t\treturn (x & y) ^ (~x & z);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Ch function\n\t *\n\t * @private\n\t * @param {Int_64} x The first 64-bit integer argument\n\t * @param {Int_64} y The second 64-bit integer argument\n\t * @param {Int_64} z The third 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction ch_64(x, y, z)\n\t{\n\t\treturn new Int_64(\n\t\t\t\t(x.highOrder & y.highOrder) ^ (~x.highOrder & z.highOrder),\n\t\t\t\t(x.lowOrder & y.lowOrder) ^ (~x.lowOrder & z.lowOrder)\n\t\t\t);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Maj function\n\t *\n\t * @private\n\t * @param {number} x The first 32-bit integer argument\n\t * @param {number} y The second 32-bit integer argument\n\t * @param {number} z The third 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction maj_32(x, y, z)\n\t{\n\t\treturn (x & y) ^ (x & z) ^ (y & z);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Maj function\n\t *\n\t * @private\n\t * @param {Int_64} x The first 64-bit integer argument\n\t * @param {Int_64} y The second 64-bit integer argument\n\t * @param {Int_64} z The third 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction maj_64(x, y, z)\n\t{\n\t\treturn new Int_64(\n\t\t\t\t(x.highOrder & y.highOrder) ^\n\t\t\t\t(x.highOrder & z.highOrder) ^\n\t\t\t\t(y.highOrder & z.highOrder),\n\t\t\t\t(x.lowOrder & y.lowOrder) ^\n\t\t\t\t(x.lowOrder & z.lowOrder) ^\n\t\t\t\t(y.lowOrder & z.lowOrder)\n\t\t\t);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Sigma0 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction sigma0_32(x)\n\t{\n\t\treturn rotr_32(x, 2) ^ rotr_32(x, 13) ^ rotr_32(x, 22);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Sigma0 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction sigma0_64(x)\n\t{\n\t\tvar rotr28 = rotr_64(x, 28), rotr34 = rotr_64(x, 34),\n\t\t\trotr39 = rotr_64(x, 39);\n\n\t\treturn new Int_64(\n\t\t\t\trotr28.highOrder ^ rotr34.highOrder ^ rotr39.highOrder,\n\t\t\t\trotr28.lowOrder ^ rotr34.lowOrder ^ rotr39.lowOrder);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Sigma1 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction sigma1_32(x)\n\t{\n\t\treturn rotr_32(x, 6) ^ rotr_32(x, 11) ^ rotr_32(x, 25);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Sigma1 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction sigma1_64(x)\n\t{\n\t\tvar rotr14 = rotr_64(x, 14), rotr18 = rotr_64(x, 18),\n\t\t\trotr41 = rotr_64(x, 41);\n\n\t\treturn new Int_64(\n\t\t\t\trotr14.highOrder ^ rotr18.highOrder ^ rotr41.highOrder,\n\t\t\t\trotr14.lowOrder ^ rotr18.lowOrder ^ rotr41.lowOrder);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Gamma0 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction gamma0_32(x)\n\t{\n\t\treturn rotr_32(x, 7) ^ rotr_32(x, 18) ^ shr_32(x, 3);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Gamma0 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction gamma0_64(x)\n\t{\n\t\tvar rotr1 = rotr_64(x, 1), rotr8 = rotr_64(x, 8), shr7 = shr_64(x, 7);\n\n\t\treturn new Int_64(\n\t\t\t\trotr1.highOrder ^ rotr8.highOrder ^ shr7.highOrder,\n\t\t\t\trotr1.lowOrder ^ rotr8.lowOrder ^ shr7.lowOrder\n\t\t\t);\n\t}\n\n\t/**\n\t * The 32-bit implementation of the NIST specified Gamma1 function\n\t *\n\t * @private\n\t * @param {number} x The 32-bit integer argument\n\t * @return {number} The NIST specified output of the function\n\t */\n\tfunction gamma1_32(x)\n\t{\n\t\treturn rotr_32(x, 17) ^ rotr_32(x, 19) ^ shr_32(x, 10);\n\t}\n\n\t/**\n\t * The 64-bit implementation of the NIST specified Gamma1 function\n\t *\n\t * @private\n\t * @param {Int_64} x The 64-bit integer argument\n\t * @return {Int_64} The NIST specified output of the function\n\t */\n\tfunction gamma1_64(x)\n\t{\n\t\tvar rotr19 = rotr_64(x, 19), rotr61 = rotr_64(x, 61),\n\t\t\tshr6 = shr_64(x, 6);\n\n\t\treturn new Int_64(\n\t\t\t\trotr19.highOrder ^ rotr61.highOrder ^ shr6.highOrder,\n\t\t\t\trotr19.lowOrder ^ rotr61.lowOrder ^ shr6.lowOrder\n\t\t\t);\n\t}\n\n\t/**\n\t * Add two 32-bit integers, wrapping at 2^32. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {number} a The first 32-bit integer argument to be added\n\t * @param {number} b The second 32-bit integer argument to be added\n\t * @return {number} The sum of a + b\n\t */\n\tfunction safeAdd_32_2(a, b)\n\t{\n\t\tvar lsw = (a & 0xFFFF) + (b & 0xFFFF),\n\t\t\tmsw = (a >>> 16) + (b >>> 16) + (lsw >>> 16);\n\n\t\treturn ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\t}\n\n\t/**\n\t * Add four 32-bit integers, wrapping at 2^32. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {number} a The first 32-bit integer argument to be added\n\t * @param {number} b The second 32-bit integer argument to be added\n\t * @param {number} c The third 32-bit integer argument to be added\n\t * @param {number} d The fourth 32-bit integer argument to be added\n\t * @return {number} The sum of a + b + c + d\n\t */\n\tfunction safeAdd_32_4(a, b, c, d)\n\t{\n\t\tvar lsw = (a & 0xFFFF) + (b & 0xFFFF) + (c & 0xFFFF) + (d & 0xFFFF),\n\t\t\tmsw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) +\n\t\t\t\t(lsw >>> 16);\n\n\t\treturn ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\t}\n\n\t/**\n\t * Add five 32-bit integers, wrapping at 2^32. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {number} a The first 32-bit integer argument to be added\n\t * @param {number} b The second 32-bit integer argument to be added\n\t * @param {number} c The third 32-bit integer argument to be added\n\t * @param {number} d The fourth 32-bit integer argument to be added\n\t * @param {number} e The fifth 32-bit integer argument to be added\n\t * @return {number} The sum of a + b + c + d + e\n\t */\n\tfunction safeAdd_32_5(a, b, c, d, e)\n\t{\n\t\tvar lsw = (a & 0xFFFF) + (b & 0xFFFF) + (c & 0xFFFF) + (d & 0xFFFF) +\n\t\t\t\t(e & 0xFFFF),\n\t\t\tmsw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) +\n\t\t\t\t(e >>> 16) + (lsw >>> 16);\n\n\t\treturn ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\t}\n\n\t/**\n\t * Add two 64-bit integers, wrapping at 2^64. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {Int_64} x The first 64-bit integer argument to be added\n\t * @param {Int_64} y The second 64-bit integer argument to be added\n\t * @return {Int_64} The sum of x + y\n\t */\n\tfunction safeAdd_64_2(x, y)\n\t{\n\t\tvar lsw, msw, lowOrder, highOrder;\n\n\t\tlsw = (x.lowOrder & 0xFFFF) + (y.lowOrder & 0xFFFF);\n\t\tmsw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);\n\t\tlowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\tlsw = (x.highOrder & 0xFFFF) + (y.highOrder & 0xFFFF) + (msw >>> 16);\n\t\tmsw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);\n\t\thighOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\treturn new Int_64(highOrder, lowOrder);\n\t}\n\n\t/**\n\t * Add four 64-bit integers, wrapping at 2^64. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {Int_64} a The first 64-bit integer argument to be added\n\t * @param {Int_64} b The second 64-bit integer argument to be added\n\t * @param {Int_64} c The third 64-bit integer argument to be added\n\t * @param {Int_64} d The fouth 64-bit integer argument to be added\n\t * @return {Int_64} The sum of a + b + c + d\n\t */\n\tfunction safeAdd_64_4(a, b, c, d)\n\t{\n\t\tvar lsw, msw, lowOrder, highOrder;\n\n\t\tlsw = (a.lowOrder & 0xFFFF) + (b.lowOrder & 0xFFFF) +\n\t\t\t(c.lowOrder & 0xFFFF) + (d.lowOrder & 0xFFFF);\n\t\tmsw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) +\n\t\t\t(c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (lsw >>> 16);\n\t\tlowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\tlsw = (a.highOrder & 0xFFFF) + (b.highOrder & 0xFFFF) +\n\t\t\t(c.highOrder & 0xFFFF) + (d.highOrder & 0xFFFF) + (msw >>> 16);\n\t\tmsw = (a.highOrder >>> 16) + (b.highOrder >>> 16) +\n\t\t\t(c.highOrder >>> 16) + (d.highOrder >>> 16) + (lsw >>> 16);\n\t\thighOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\treturn new Int_64(highOrder, lowOrder);\n\t}\n\n\t/**\n\t * Add five 64-bit integers, wrapping at 2^64. This uses 16-bit operations\n\t * internally to work around bugs in some JS interpreters.\n\t *\n\t * @private\n\t * @param {Int_64} a The first 64-bit integer argument to be added\n\t * @param {Int_64} b The second 64-bit integer argument to be added\n\t * @param {Int_64} c The third 64-bit integer argument to be added\n\t * @param {Int_64} d The fouth 64-bit integer argument to be added\n\t * @param {Int_64} e The fouth 64-bit integer argument to be added\n\t * @return {Int_64} The sum of a + b + c + d + e\n\t */\n\tfunction safeAdd_64_5(a, b, c, d, e)\n\t{\n\t\tvar lsw, msw, lowOrder, highOrder;\n\n\t\tlsw = (a.lowOrder & 0xFFFF) + (b.lowOrder & 0xFFFF) +\n\t\t\t(c.lowOrder & 0xFFFF) + (d.lowOrder & 0xFFFF) +\n\t\t\t(e.lowOrder & 0xFFFF);\n\t\tmsw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) +\n\t\t\t(c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (e.lowOrder >>> 16) +\n\t\t\t(lsw >>> 16);\n\t\tlowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\tlsw = (a.highOrder & 0xFFFF) + (b.highOrder & 0xFFFF) +\n\t\t\t(c.highOrder & 0xFFFF) + (d.highOrder & 0xFFFF) +\n\t\t\t(e.highOrder & 0xFFFF) + (msw >>> 16);\n\t\tmsw = (a.highOrder >>> 16) + (b.highOrder >>> 16) +\n\t\t\t(c.highOrder >>> 16) + (d.highOrder >>> 16) +\n\t\t\t(e.highOrder >>> 16) + (lsw >>> 16);\n\t\thighOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);\n\n\t\treturn new Int_64(highOrder, lowOrder);\n\t}\n\n\t/**\n\t * XORs two given arguments.\n\t *\n\t * @private\n\t * @param {Int_64} a First argument to be XORed\n\t * @param {Int_64} b Second argument to be XORed\n\t * @return {Int_64} The XOR of the arguments\n\t */\n\tfunction xor_64_2(a, b)\n\t{\n\t\treturn new Int_64(\n\t\t\ta.highOrder ^ b.highOrder,\n\t\t\ta.lowOrder ^ b.lowOrder\n\t\t);\n\t}\n\n\t/**\n\t * XORs five given arguments.\n\t *\n\t * @private\n\t * @param {Int_64} a First argument to be XORed\n\t * @param {Int_64} b Second argument to be XORed\n\t * @param {Int_64} c Third argument to be XORed\n\t * @param {Int_64} d Fourth argument to be XORed\n\t * @param {Int_64} e Fifth argument to be XORed\n\t * @return {Int_64} The XOR of the arguments\n\t */\n\tfunction xor_64_5(a, b, c, d, e)\n\t{\n\t\treturn new Int_64(\n\t\t\ta.highOrder ^ b.highOrder ^ c.highOrder ^ d.highOrder ^ e.highOrder,\n\t\t\ta.lowOrder ^ b.lowOrder ^ c.lowOrder ^ d.lowOrder ^ e.lowOrder\n\t\t);\n\t}\n\n\t/**\n\t * Returns a clone of the given SHA3 state\n\t *\n\t * @private\n\t * @param {Array>} state The state to be cloned\n\t * @return {Array>} The cloned state\n\t */\n\tfunction cloneSHA3State(state) {\n\t\tvar clone = [], i;\n\t\tfor (i = 0; i < 5; i += 1)\n\t\t{\n\t\t\tclone[i] = state[i].slice();\n\t\t}\n\n\t\treturn clone;\n\t}\n\n\t/**\n\t * Gets the state values for the specified SHA variant\n\t *\n\t * @param {string} variant The SHA variant\n\t * @return {Array>} The initial state values\n\t */\n\tfunction getNewState(variant)\n\t{\n\t\tvar retVal = [], H_trunc, H_full, i;\n\n\t\tif ((\"SHA-1\" === variant) && ((1 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\t0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0\n\t\t\t];\n\t\t}\n\t\telse if ((variant.lastIndexOf(\"SHA-\", 0) === 0) && ((6 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tH_trunc = [\n\t\t\t\t0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t\t\t\t0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t\t\t];\n\t\t\tH_full = [\n\t\t\t\t0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A,\n\t\t\t\t0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19\n\t\t\t];\n\n\t\t\tswitch (variant)\n\t\t\t{\n\t\t\tcase \"SHA-224\":\n\t\t\t\tretVal = H_trunc;\n\t\t\t\tbreak;\n\t\t\tcase \"SHA-256\":\n\t\t\t\tretVal = H_full;\n\t\t\t\tbreak;\n\t\t\tcase \"SHA-384\":\n\t\t\t\tretVal = [\n\t\t\t\t\tnew Int_64(0xcbbb9d5d, H_trunc[0]),\n\t\t\t\t\tnew Int_64(0x0629a292a, H_trunc[1]),\n\t\t\t\t\tnew Int_64(0x9159015a, H_trunc[2]),\n\t\t\t\t\tnew Int_64(0x0152fecd8, H_trunc[3]),\n\t\t\t\t\tnew Int_64(0x67332667, H_trunc[4]),\n\t\t\t\t\tnew Int_64(0x98eb44a87, H_trunc[5]),\n\t\t\t\t\tnew Int_64(0xdb0c2e0d, H_trunc[6]),\n\t\t\t\t\tnew Int_64(0x047b5481d, H_trunc[7])\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tcase \"SHA-512\":\n\t\t\t\tretVal = [\n\t\t\t\t\tnew Int_64(H_full[0], 0xf3bcc908),\n\t\t\t\t\tnew Int_64(H_full[1], 0x84caa73b),\n\t\t\t\t\tnew Int_64(H_full[2], 0xfe94f82b),\n\t\t\t\t\tnew Int_64(H_full[3], 0x5f1d36f1),\n\t\t\t\t\tnew Int_64(H_full[4], 0xade682d1),\n\t\t\t\t\tnew Int_64(H_full[5], 0x2b3e6c1f),\n\t\t\t\t\tnew Int_64(H_full[6], 0xfb41bd6b),\n\t\t\t\t\tnew Int_64(H_full[7], 0x137e2179)\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Unknown SHA variant\");\n\t\t\t}\n\t\t}\n\t\telse if (((variant.lastIndexOf(\"SHA3-\", 0) === 0) || (variant.lastIndexOf(\"SHAKE\", 0) === 0)) &&\n\t\t\t((8 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tfor (i = 0; i < 5; i += 1)\n\t\t\t{\n\t\t\t\tretVal[i] = [new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0)];\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"No SHA variants supported\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Performs a round of SHA-1 hashing over a 512-byte block\n\t *\n\t * @private\n\t * @param {Array} block The binary array representation of the\n\t * block to hash\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @return {Array} The resulting H values\n\t */\n\tfunction roundSHA1(block, H)\n\t{\n\t\tvar W = [], a, b, c, d, e, T, ch = ch_32, parity = parity_32,\n\t\t\tmaj = maj_32, rotl = rotl_32, safeAdd_2 = safeAdd_32_2, t,\n\t\t\tsafeAdd_5 = safeAdd_32_5;\n\n\t\ta = H[0];\n\t\tb = H[1];\n\t\tc = H[2];\n\t\td = H[3];\n\t\te = H[4];\n\n\t\tfor (t = 0; t < 80; t += 1)\n\t\t{\n\t\t\tif (t < 16)\n\t\t\t{\n\t\t\t\tW[t] = block[t];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tW[t] = rotl(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n\t\t\t}\n\n\t\t\tif (t < 20)\n\t\t\t{\n\t\t\t\tT = safeAdd_5(rotl(a, 5), ch(b, c, d), e, 0x5a827999, W[t]);\n\t\t\t}\n\t\t\telse if (t < 40)\n\t\t\t{\n\t\t\t\tT = safeAdd_5(rotl(a, 5), parity(b, c, d), e, 0x6ed9eba1, W[t]);\n\t\t\t}\n\t\t\telse if (t < 60)\n\t\t\t{\n\t\t\t\tT = safeAdd_5(rotl(a, 5), maj(b, c, d), e, 0x8f1bbcdc, W[t]);\n\t\t\t} else {\n\t\t\t\tT = safeAdd_5(rotl(a, 5), parity(b, c, d), e, 0xca62c1d6, W[t]);\n\t\t\t}\n\n\t\t\te = d;\n\t\t\td = c;\n\t\t\tc = rotl(b, 30);\n\t\t\tb = a;\n\t\t\ta = T;\n\t\t}\n\n\t\tH[0] = safeAdd_2(a, H[0]);\n\t\tH[1] = safeAdd_2(b, H[1]);\n\t\tH[2] = safeAdd_2(c, H[2]);\n\t\tH[3] = safeAdd_2(d, H[3]);\n\t\tH[4] = safeAdd_2(e, H[4]);\n\n\t\treturn H;\n\t}\n\n\t/**\n\t * Finalizes the SHA-1 hash\n\t *\n\t * @private\n\t * @param {Array} remainder Any leftover unprocessed packed ints\n\t * that still need to be processed\n\t * @param {number} remainderBinLen The number of bits in remainder\n\t * @param {number} processedBinLen The number of bits already\n\t * processed\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @param {number} outputLen Unused for this variant\n\t * @return {Array} The array of integers representing the SHA-1\n\t * hash of message\n\t */\n\tfunction finalizeSHA1(remainder, remainderBinLen, processedBinLen, H, outputLen)\n\t{\n\t\tvar i, appendedMessageLength, offset, totalLen;\n\n\t\t/* The 65 addition is a hack but it works. The correct number is\n\t\t actually 72 (64 + 8) but the below math fails if\n\t\t remainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n\t\t \"shorting\" the addition is OK. */\n\t\toffset = (((remainderBinLen + 65) >>> 9) << 4) + 15;\n\t\twhile (remainder.length <= offset)\n\t\t{\n\t\t\tremainder.push(0);\n\t\t}\n\t\t/* Append '1' at the end of the binary string */\n\t\tremainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n\t\t/* Append length of binary string in the position such that the new\n\t\t * length is a multiple of 512. Logic does not work for even multiples\n\t\t * of 512 but there can never be even multiples of 512. JavaScript\n\t\t * numbers are limited to 2^53 so it's \"safe\" to treat the totalLen as\n\t\t * a 64-bit integer. */\n\t\ttotalLen = remainderBinLen + processedBinLen;\n\t\tremainder[offset] = totalLen & 0xFFFFFFFF;\n\t\t/* Bitwise operators treat the operand as a 32-bit number so need to\n\t\t * use hacky division and round to get access to upper 32-ish bits */\n\t\tremainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n\t\tappendedMessageLength = remainder.length;\n\n\t\t/* This will always be at least 1 full chunk */\n\t\tfor (i = 0; i < appendedMessageLength; i += 16)\n\t\t{\n\t\t\tH = roundSHA1(remainder.slice(i, i + 16), H);\n\t\t}\n\n\t\treturn H;\n\t}\n\n\t/* Put this here so the K arrays aren't put on the stack for every block */\n\tvar K_sha2, K_sha512, r_sha3, rc_sha3;\n\tif ((6 & SUPPORTED_ALGS) !== 0)\n\t{\n\t\tK_sha2 = [\n\t\t\t0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n\t\t\t0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n\t\t\t0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n\t\t\t0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n\t\t\t0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n\t\t\t0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n\t\t\t0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n\t\t\t0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n\t\t\t0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n\t\t\t0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n\t\t\t0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n\t\t\t0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n\t\t\t0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n\t\t\t0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n\t\t\t0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n\t\t\t0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n\t\t];\n\n\t\tif ((4 & SUPPORTED_ALGS) !== 0)\n\t\t{\n\t\t\t K_sha512 = [\n\t\t\t\tnew Int_64(K_sha2[ 0], 0xd728ae22), new Int_64(K_sha2[ 1], 0x23ef65cd),\n\t\t\t\tnew Int_64(K_sha2[ 2], 0xec4d3b2f), new Int_64(K_sha2[ 3], 0x8189dbbc),\n\t\t\t\tnew Int_64(K_sha2[ 4], 0xf348b538), new Int_64(K_sha2[ 5], 0xb605d019),\n\t\t\t\tnew Int_64(K_sha2[ 6], 0xaf194f9b), new Int_64(K_sha2[ 7], 0xda6d8118),\n\t\t\t\tnew Int_64(K_sha2[ 8], 0xa3030242), new Int_64(K_sha2[ 9], 0x45706fbe),\n\t\t\t\tnew Int_64(K_sha2[10], 0x4ee4b28c), new Int_64(K_sha2[11], 0xd5ffb4e2),\n\t\t\t\tnew Int_64(K_sha2[12], 0xf27b896f), new Int_64(K_sha2[13], 0x3b1696b1),\n\t\t\t\tnew Int_64(K_sha2[14], 0x25c71235), new Int_64(K_sha2[15], 0xcf692694),\n\t\t\t\tnew Int_64(K_sha2[16], 0x9ef14ad2), new Int_64(K_sha2[17], 0x384f25e3),\n\t\t\t\tnew Int_64(K_sha2[18], 0x8b8cd5b5), new Int_64(K_sha2[19], 0x77ac9c65),\n\t\t\t\tnew Int_64(K_sha2[20], 0x592b0275), new Int_64(K_sha2[21], 0x6ea6e483),\n\t\t\t\tnew Int_64(K_sha2[22], 0xbd41fbd4), new Int_64(K_sha2[23], 0x831153b5),\n\t\t\t\tnew Int_64(K_sha2[24], 0xee66dfab), new Int_64(K_sha2[25], 0x2db43210),\n\t\t\t\tnew Int_64(K_sha2[26], 0x98fb213f), new Int_64(K_sha2[27], 0xbeef0ee4),\n\t\t\t\tnew Int_64(K_sha2[28], 0x3da88fc2), new Int_64(K_sha2[29], 0x930aa725),\n\t\t\t\tnew Int_64(K_sha2[30], 0xe003826f), new Int_64(K_sha2[31], 0x0a0e6e70),\n\t\t\t\tnew Int_64(K_sha2[32], 0x46d22ffc), new Int_64(K_sha2[33], 0x5c26c926),\n\t\t\t\tnew Int_64(K_sha2[34], 0x5ac42aed), new Int_64(K_sha2[35], 0x9d95b3df),\n\t\t\t\tnew Int_64(K_sha2[36], 0x8baf63de), new Int_64(K_sha2[37], 0x3c77b2a8),\n\t\t\t\tnew Int_64(K_sha2[38], 0x47edaee6), new Int_64(K_sha2[39], 0x1482353b),\n\t\t\t\tnew Int_64(K_sha2[40], 0x4cf10364), new Int_64(K_sha2[41], 0xbc423001),\n\t\t\t\tnew Int_64(K_sha2[42], 0xd0f89791), new Int_64(K_sha2[43], 0x0654be30),\n\t\t\t\tnew Int_64(K_sha2[44], 0xd6ef5218), new Int_64(K_sha2[45], 0x5565a910),\n\t\t\t\tnew Int_64(K_sha2[46], 0x5771202a), new Int_64(K_sha2[47], 0x32bbd1b8),\n\t\t\t\tnew Int_64(K_sha2[48], 0xb8d2d0c8), new Int_64(K_sha2[49], 0x5141ab53),\n\t\t\t\tnew Int_64(K_sha2[50], 0xdf8eeb99), new Int_64(K_sha2[51], 0xe19b48a8),\n\t\t\t\tnew Int_64(K_sha2[52], 0xc5c95a63), new Int_64(K_sha2[53], 0xe3418acb),\n\t\t\t\tnew Int_64(K_sha2[54], 0x7763e373), new Int_64(K_sha2[55], 0xd6b2b8a3),\n\t\t\t\tnew Int_64(K_sha2[56], 0x5defb2fc), new Int_64(K_sha2[57], 0x43172f60),\n\t\t\t\tnew Int_64(K_sha2[58], 0xa1f0ab72), new Int_64(K_sha2[59], 0x1a6439ec),\n\t\t\t\tnew Int_64(K_sha2[60], 0x23631e28), new Int_64(K_sha2[61], 0xde82bde9),\n\t\t\t\tnew Int_64(K_sha2[62], 0xb2c67915), new Int_64(K_sha2[63], 0xe372532b),\n\t\t\t\tnew Int_64(0xca273ece, 0xea26619c), new Int_64(0xd186b8c7, 0x21c0c207),\n\t\t\t\tnew Int_64(0xeada7dd6, 0xcde0eb1e), new Int_64(0xf57d4f7f, 0xee6ed178),\n\t\t\t\tnew Int_64(0x06f067aa, 0x72176fba), new Int_64(0x0a637dc5, 0xa2c898a6),\n\t\t\t\tnew Int_64(0x113f9804, 0xbef90dae), new Int_64(0x1b710b35, 0x131c471b),\n\t\t\t\tnew Int_64(0x28db77f5, 0x23047d84), new Int_64(0x32caab7b, 0x40c72493),\n\t\t\t\tnew Int_64(0x3c9ebe0a, 0x15c9bebc), new Int_64(0x431d67c4, 0x9c100d4c),\n\t\t\t\tnew Int_64(0x4cc5d4be, 0xcb3e42b6), new Int_64(0x597f299c, 0xfc657e2a),\n\t\t\t\tnew Int_64(0x5fcb6fab, 0x3ad6faec), new Int_64(0x6c44198c, 0x4a475817)\n\t\t\t];\n\t\t}\n\t}\n\tif ((8 & SUPPORTED_ALGS) !== 0)\n\t{\n\t\trc_sha3 = [\n\t\t\tnew Int_64(0x00000000, 0x00000001), new Int_64(0x00000000, 0x00008082),\n\t\t\tnew Int_64(0x80000000, 0x0000808A), new Int_64(0x80000000, 0x80008000),\n\t\t\tnew Int_64(0x00000000, 0x0000808B), new Int_64(0x00000000, 0x80000001),\n\t\t\tnew Int_64(0x80000000, 0x80008081), new Int_64(0x80000000, 0x00008009),\n\t\t\tnew Int_64(0x00000000, 0x0000008A), new Int_64(0x00000000, 0x00000088),\n\t\t\tnew Int_64(0x00000000, 0x80008009), new Int_64(0x00000000, 0x8000000A),\n\t\t\tnew Int_64(0x00000000, 0x8000808B), new Int_64(0x80000000, 0x0000008B),\n\t\t\tnew Int_64(0x80000000, 0x00008089), new Int_64(0x80000000, 0x00008003),\n\t\t\tnew Int_64(0x80000000, 0x00008002), new Int_64(0x80000000, 0x00000080),\n\t\t\tnew Int_64(0x00000000, 0x0000800A), new Int_64(0x80000000, 0x8000000A),\n\t\t\tnew Int_64(0x80000000, 0x80008081), new Int_64(0x80000000, 0x00008080),\n\t\t\tnew Int_64(0x00000000, 0x80000001), new Int_64(0x80000000, 0x80008008)\n\t\t];\n\n\t\tr_sha3 = [\n\t\t\t[ 0, 36, 3, 41, 18],\n\t\t\t[ 1, 44, 10, 45, 2],\n\t\t\t[62, 6, 43, 15, 61],\n\t\t\t[28, 55, 25, 21, 56],\n\t\t\t[27, 20, 39, 8, 14]\n\t\t];\n\t}\n\n\t/**\n\t * Performs a round of SHA-2 hashing over a block\n\t *\n\t * @private\n\t * @param {Array} block The binary array representation of the\n\t * block to hash\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @param {string} variant The desired SHA-2 variant\n\t * @return {Array} The resulting H values\n\t */\n\tfunction roundSHA2(block, H, variant)\n\t{\n\t\tvar a, b, c, d, e, f, g, h, T1, T2, numRounds, t, binaryStringMult,\n\t\t\tsafeAdd_2, safeAdd_4, safeAdd_5, gamma0, gamma1, sigma0, sigma1,\n\t\t\tch, maj, Int, W = [], int1, int2, offset, K;\n\n\t\t/* Set up the various function handles and variable for the specific\n\t\t * variant */\n\t\tif ((variant === \"SHA-224\" || variant === \"SHA-256\") &&\n\t\t\t((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 32-bit variant */\n\t\t\tnumRounds = 64;\n\t\t\tbinaryStringMult = 1;\n\t\t\tInt = Number;\n\t\t\tsafeAdd_2 = safeAdd_32_2;\n\t\t\tsafeAdd_4 = safeAdd_32_4;\n\t\t\tsafeAdd_5 = safeAdd_32_5;\n\t\t\tgamma0 = gamma0_32;\n\t\t\tgamma1 = gamma1_32;\n\t\t\tsigma0 = sigma0_32;\n\t\t\tsigma1 = sigma1_32;\n\t\t\tmaj = maj_32;\n\t\t\tch = ch_32;\n\t\t\tK = K_sha2;\n\t\t}\n\t\telse if ((variant === \"SHA-384\" || variant === \"SHA-512\") &&\n\t\t\t((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 64-bit variant */\n\t\t\tnumRounds = 80;\n\t\t\tbinaryStringMult = 2;\n\t\t\tInt = Int_64;\n\t\t\tsafeAdd_2 = safeAdd_64_2;\n\t\t\tsafeAdd_4 = safeAdd_64_4;\n\t\t\tsafeAdd_5 = safeAdd_64_5;\n\t\t\tgamma0 = gamma0_64;\n\t\t\tgamma1 = gamma1_64;\n\t\t\tsigma0 = sigma0_64;\n\t\t\tsigma1 = sigma1_64;\n\t\t\tmaj = maj_64;\n\t\t\tch = ch_64;\n\t\t\tK = K_sha512;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Unexpected error in SHA-2 implementation\");\n\t\t}\n\n\t\ta = H[0];\n\t\tb = H[1];\n\t\tc = H[2];\n\t\td = H[3];\n\t\te = H[4];\n\t\tf = H[5];\n\t\tg = H[6];\n\t\th = H[7];\n\n\t\tfor (t = 0; t < numRounds; t += 1)\n\t\t{\n\t\t\tif (t < 16)\n\t\t\t{\n\t\t\t\toffset = t * binaryStringMult;\n\t\t\t\tint1 = (block.length <= offset) ? 0 : block[offset];\n\t\t\t\tint2 = (block.length <= offset + 1) ? 0 : block[offset + 1];\n\t\t\t\t/* Bit of a hack - for 32-bit, the second term is ignored */\n\t\t\t\tW[t] = new Int(int1, int2);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tW[t] = safeAdd_4(\n\t\t\t\t\t\tgamma1(W[t - 2]), W[t - 7],\n\t\t\t\t\t\tgamma0(W[t - 15]), W[t - 16]\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tT1 = safeAdd_5(h, sigma1(e), ch(e, f, g), K[t], W[t]);\n\t\t\tT2 = safeAdd_2(sigma0(a), maj(a, b, c));\n\t\t\th = g;\n\t\t\tg = f;\n\t\t\tf = e;\n\t\t\te = safeAdd_2(d, T1);\n\t\t\td = c;\n\t\t\tc = b;\n\t\t\tb = a;\n\t\t\ta = safeAdd_2(T1, T2);\n\t\t}\n\n\t\tH[0] = safeAdd_2(a, H[0]);\n\t\tH[1] = safeAdd_2(b, H[1]);\n\t\tH[2] = safeAdd_2(c, H[2]);\n\t\tH[3] = safeAdd_2(d, H[3]);\n\t\tH[4] = safeAdd_2(e, H[4]);\n\t\tH[5] = safeAdd_2(f, H[5]);\n\t\tH[6] = safeAdd_2(g, H[6]);\n\t\tH[7] = safeAdd_2(h, H[7]);\n\n\t\treturn H;\n\t}\n\n\t/**\n\t * Finalizes the SHA-2 hash\n\t *\n\t * @private\n\t * @param {Array} remainder Any leftover unprocessed packed ints\n\t * that still need to be processed\n\t * @param {number} remainderBinLen The number of bits in remainder\n\t * @param {number} processedBinLen The number of bits already\n\t * processed\n\t * @param {Array} H The intermediate H values from a previous\n\t * round\n\t * @param {string} variant The desired SHA-2 variant\n\t * @param {number} outputLen Unused for this variant\n\t * @return {Array} The array of integers representing the SHA-2\n\t * hash of message\n\t */\n\tfunction finalizeSHA2(remainder, remainderBinLen, processedBinLen, H, variant, outputLen)\n\t{\n\t\tvar i, appendedMessageLength, offset, retVal, binaryStringInc, totalLen;\n\n\t\tif ((variant === \"SHA-224\" || variant === \"SHA-256\") &&\n\t\t\t((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 32-bit variant */\n\t\t\t/* The 65 addition is a hack but it works. The correct number is\n\t\t\t actually 72 (64 + 8) but the below math fails if\n\t\t\t remainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n\t\t\t \"shorting\" the addition is OK. */\n\t\t\toffset = (((remainderBinLen + 65) >>> 9) << 4) + 15;\n\t\t\tbinaryStringInc = 16;\n\t\t}\n\t\telse if ((variant === \"SHA-384\" || variant === \"SHA-512\") &&\n\t\t\t((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\t/* 64-bit variant */\n\t\t\t/* The 129 addition is a hack but it works. The correct number is\n\t\t\t actually 136 (128 + 8) but the below math fails if\n\t\t\t remainderBinLen + 136 % 1024 = 0. Since remainderBinLen % 8 = 0,\n\t\t\t \"shorting\" the addition is OK. */\n\t\t\toffset = (((remainderBinLen + 129) >>> 10) << 5) + 31;\n\t\t\tbinaryStringInc = 32;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Unexpected error in SHA-2 implementation\");\n\t\t}\n\n\t\twhile (remainder.length <= offset)\n\t\t{\n\t\t\tremainder.push(0);\n\t\t}\n\t\t/* Append '1' at the end of the binary string */\n\t\tremainder[remainderBinLen >>> 5] |= 0x80 << (24 - remainderBinLen % 32);\n\t\t/* Append length of binary string in the position such that the new\n\t\t * length is correct. JavaScript numbers are limited to 2^53 so it's\n\t\t * \"safe\" to treat the totalLen as a 64-bit integer. */\n\t\ttotalLen = remainderBinLen + processedBinLen;\n\t\tremainder[offset] = totalLen & 0xFFFFFFFF;\n\t\t/* Bitwise operators treat the operand as a 32-bit number so need to\n\t\t * use hacky division and round to get access to upper 32-ish bits */\n\t\tremainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n\t\tappendedMessageLength = remainder.length;\n\n\t\t/* This will always be at least 1 full chunk */\n\t\tfor (i = 0; i < appendedMessageLength; i += binaryStringInc)\n\t\t{\n\t\t\tH = roundSHA2(remainder.slice(i, i + binaryStringInc), H, variant);\n\t\t}\n\n\t\tif ((\"SHA-224\" === variant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\tH[0], H[1], H[2], H[3],\n\t\t\t\tH[4], H[5], H[6]\n\t\t\t];\n\t\t}\n\t\telse if ((\"SHA-256\" === variant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = H;\n\t\t}\n\t\telse if ((\"SHA-384\" === variant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\tH[0].highOrder, H[0].lowOrder,\n\t\t\t\tH[1].highOrder, H[1].lowOrder,\n\t\t\t\tH[2].highOrder, H[2].lowOrder,\n\t\t\t\tH[3].highOrder, H[3].lowOrder,\n\t\t\t\tH[4].highOrder, H[4].lowOrder,\n\t\t\t\tH[5].highOrder, H[5].lowOrder\n\t\t\t];\n\t\t}\n\t\telse if ((\"SHA-512\" === variant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tretVal = [\n\t\t\t\tH[0].highOrder, H[0].lowOrder,\n\t\t\t\tH[1].highOrder, H[1].lowOrder,\n\t\t\t\tH[2].highOrder, H[2].lowOrder,\n\t\t\t\tH[3].highOrder, H[3].lowOrder,\n\t\t\t\tH[4].highOrder, H[4].lowOrder,\n\t\t\t\tH[5].highOrder, H[5].lowOrder,\n\t\t\t\tH[6].highOrder, H[6].lowOrder,\n\t\t\t\tH[7].highOrder, H[7].lowOrder\n\t\t\t];\n\t\t}\n\t\telse /* This should never be reached */\n\t\t{\n\t\t\tthrow new Error(\"Unexpected error in SHA-2 implementation\");\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * Performs a round of SHA-3 hashing over a block\n\t *\n\t * @private\n\t * @param {Array|null} block The binary array representation of the\n\t * block to hash\n\t * @param {Array>} state The binary array representation of the\n\t * block to hash\n\t * @return {Array>} The resulting state value\n\t */\n\tfunction roundSHA3(block, state)\n\t{\n\t\tvar round, x, y, B, C = [], D = [];\n\n\t\tif (null !== block)\n\t\t{\n\t\t\tfor (x = 0; x < block.length; x+=2)\n\t\t\t{\n\t\t\t\tstate[(x >>> 1) % 5][((x >>> 1) / 5) | 0] = xor_64_2(\n\t\t\t\t\tstate[(x >>> 1) % 5][((x >>> 1) / 5) | 0],\n\t\t\t\t\tnew Int_64(block[x + 1], block[x])\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfor (round = 0; round < 24; round += 1)\n\t\t{\n\t\t\t/* getNewState doesn't care about variant beyond SHA3 so feed it a\n\t\t\t value that triggers the getNewState \"if\" statement\n\t\t\t*/\n\t\t\tB = getNewState(\"SHA3-\");\n\n\t\t\t/* Perform theta step */\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tC[x] = xor_64_5(state[x][0], state[x][1], state[x][2],\n\t\t\t\t\tstate[x][3], state[x][4]);\n\t\t\t}\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tD[x] = xor_64_2(C[(x + 4) % 5], rotl_64(C[(x + 1) % 5], 1));\n\t\t\t}\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tfor (y = 0; y < 5; y += 1)\n\t\t\t\t{\n\t\t\t\t\tstate[x][y] = xor_64_2(state[x][y], D[x]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Perform combined ro and pi steps */\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tfor (y = 0; y < 5; y += 1)\n\t\t\t\t{\n\t\t\t\t\tB[y][(2 * x + 3 * y) % 5] = rotl_64(\n\t\t\t\t\t\tstate[x][y],\n\t\t\t\t\t\tr_sha3[x][y]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Perform chi step */\n\t\t\tfor (x = 0; x < 5; x += 1)\n\t\t\t{\n\t\t\t\tfor (y = 0; y < 5; y += 1)\n\t\t\t\t{\n\t\t\t\t\tstate[x][y] = xor_64_2(\n\t\t\t\t\t\tB[x][y],\n\t\t\t\t\t\tnew Int_64(\n\t\t\t\t\t\t\t~(B[(x + 1) % 5][y].highOrder) & B[(x + 2) % 5][y].highOrder,\n\t\t\t\t\t\t\t~(B[(x + 1) % 5][y].lowOrder) & B[(x + 2) % 5][y].lowOrder\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Perform iota step */\n\t\t\tstate[0][0] = xor_64_2(state[0][0], rc_sha3[round]);\n\t\t}\n\n\t\treturn state;\n\t}\n\n\t/**\n\t * Finalizes the SHA-3 hash\n\t *\n\t * @private\n\t * @param {Array} remainder Any leftover unprocessed packed ints\n\t * that still need to be processed\n\t * @param {number} remainderBinLen The number of bits in remainder\n\t * @param {number} processedBinLen The number of bits already\n\t * processed\n\t * @param {Array>} state The state from a previous round\n\t * @param {number} blockSize The block size/rate of the variant in bits\n\t * @param {number} delimiter The delimiter value for the variant\n\t * @param {number} outputLen The output length for the variant in bits\n\t * @return {Array} The array of integers representing the SHA-3\n\t * hash of message\n\t */\n\tfunction finalizeSHA3(remainder, remainderBinLen, processedBinLen, state, blockSize, delimiter, outputLen)\n\t{\n\t\tvar i, retVal = [], binaryStringInc = blockSize >>> 5, state_offset = 0,\n\t\t\tremainderIntLen = remainderBinLen >>> 5, temp;\n\n\n\t\t/* Process as many blocks as possible, some may be here for multiple rounds\n\t\t with SHAKE\n\t\t*/\n\t\tfor (i = 0; i < remainderIntLen && remainderBinLen >= blockSize; i += binaryStringInc)\n\t\t{\n\t\t\tstate = roundSHA3(remainder.slice(i, i + binaryStringInc), state);\n\t\t\tremainderBinLen -= blockSize;\n\t\t}\n\n\t\tremainder = remainder.slice(i);\n\t\tremainderBinLen = remainderBinLen % blockSize;\n\n\t\t/* Pad out the remainder to a full block */\n\t\twhile (remainder.length < binaryStringInc)\n\t\t{\n\t\t\tremainder.push(0);\n\t\t}\n\n\t\t/* Find the next \"empty\" byte for the 0x80 and append it via an xor */\n\t\ti = remainderBinLen >>> 3;\n\t\tremainder[i >> 2] ^= delimiter << (8 * (i % 4));\n\n\t\tremainder[binaryStringInc - 1] ^= 0x80000000;\n\t\tstate = roundSHA3(remainder, state);\n\n\t\twhile (retVal.length * 32 < outputLen)\n\t\t{\n\t\t\ttemp = state[state_offset % 5][(state_offset / 5) | 0];\n\t\t\tretVal.push(temp.lowOrder);\n\t\t\tif (retVal.length * 32 >= outputLen)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tretVal.push(temp.highOrder);\n\t\t\tstate_offset += 1;\n\n\t\t\tif (0 === ((state_offset * 64) % blockSize))\n\t\t\t{\n\t\t\t\troundSHA3(null, state);\n\t\t\t}\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\t/**\n\t * jsSHA is the workhorse of the library. Instantiate it with the string to\n\t * be hashed as the parameter\n\t *\n\t * @constructor\n\t * @this {jsSHA}\n\t * @param {string} variant The desired SHA variant (SHA-1, SHA-224, SHA-256,\n\t * SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, or SHA3-512)\n\t * @param {string} inputFormat The format of srcString: HEX, TEXT, B64,\n\t * BYTES, or ARRAYBUFFER\n\t * @param {{encoding: (string|undefined), numRounds: (number|undefined)}=}\n\t * options Optional values\n\t */\n\tvar jsSHA = function(variant, inputFormat, options)\n\t{\n\t\tvar processedLen = 0, remainder = [], remainderLen = 0, utfType,\n\t\t\tintermediateState, converterFunc, shaVariant = variant, outputBinLen,\n\t\t\tvariantBlockSize, roundFunc, finalizeFunc, stateCloneFunc,\n\t\t\thmacKeySet = false, keyWithIPad = [], keyWithOPad = [], numRounds,\n\t\t\tupdatedCalled = false, inputOptions, isSHAKE = false, bigEndianMod = -1;\n\n\t\tinputOptions = options || {};\n\t\tutfType = inputOptions[\"encoding\"] || \"UTF8\";\n\t\tnumRounds = inputOptions[\"numRounds\"] || 1;\n\n\t\tif ((numRounds !== parseInt(numRounds, 10)) || (1 > numRounds))\n\t\t{\n\t\t\tthrow new Error(\"numRounds must a integer >= 1\");\n\t\t}\n\n\t\tif ((\"SHA-1\" === shaVariant) && ((1 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tvariantBlockSize = 512;\n\t\t\troundFunc = roundSHA1;\n\t\t\tfinalizeFunc = finalizeSHA1;\n\t\t\toutputBinLen = 160;\n\t\t\tstateCloneFunc = function(state) { return state.slice();};\n\t\t}\n\t\telse if ((shaVariant.lastIndexOf(\"SHA-\", 0) === 0) && ((6 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\troundFunc = function (block, H) {\n\t\t\t\treturn roundSHA2(block, H, shaVariant);\n\t\t\t};\n\t\t\tfinalizeFunc = function (remainder, remainderBinLen, processedBinLen, H, outputLen)\n\t\t\t{\n\t\t\t\treturn finalizeSHA2(remainder, remainderBinLen, processedBinLen, H, shaVariant, outputLen);\n\t\t\t};\n\t\t\tstateCloneFunc = function(state) { return state.slice(); };\n\n\t\t\tif ((\"SHA-224\" === shaVariant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 512;\n\t\t\t\toutputBinLen = 224;\n\t\t\t}\n\t\t\telse if ((\"SHA-256\" === shaVariant) && ((2 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 512;\n\t\t\t\toutputBinLen = 256;\n\t\t\t}\n\t\t\telse if ((\"SHA-384\" === shaVariant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1024;\n\t\t\t\toutputBinLen = 384;\n\t\t\t}\n\t\t\telse if ((\"SHA-512\" === shaVariant) && ((4 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1024;\n\t\t\t\toutputBinLen = 512;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error(\"Chosen SHA variant is not supported\");\n\t\t\t}\n\t\t}\n\t\telse if (((shaVariant.lastIndexOf(\"SHA3-\", 0) === 0) || (shaVariant.lastIndexOf(\"SHAKE\", 0) === 0)) &&\n\t\t\t((8 & SUPPORTED_ALGS) !== 0))\n\t\t{\n\t\t\tvar delimiter = 0x06;\n\n\t\t\troundFunc = roundSHA3;\n\t\t\tstateCloneFunc = function(state) { return cloneSHA3State(state);};\n\t\t\tbigEndianMod = 1;\n\n\t\t\tif (\"SHA3-224\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1152;\n\t\t\t\toutputBinLen = 224;\n\n\t\t\t}\n\t\t\telse if (\"SHA3-256\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1088;\n\t\t\t\toutputBinLen = 256;\n\t\t\t}\n\t\t\telse if (\"SHA3-384\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 832;\n\t\t\t\toutputBinLen = 384;\n\t\t\t}\n\t\t\telse if (\"SHA3-512\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 576;\n\t\t\t\toutputBinLen = 512;\n\t\t\t}\n\t\t\telse if (\"SHAKE128\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1344;\n\t\t\t\toutputBinLen = -1;\n\t\t\t\tdelimiter = 0x1F;\n\t\t\t\tisSHAKE = true;\n\t\t\t}\n\t\t\telse if (\"SHAKE256\" === shaVariant)\n\t\t\t{\n\t\t\t\tvariantBlockSize = 1088;\n\t\t\t\toutputBinLen = -1;\n\t\t\t\tdelimiter = 0x1F;\n\t\t\t\tisSHAKE = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error(\"Chosen SHA variant is not supported\");\n\t\t\t}\n\t\t\tfinalizeFunc = function (remainder, remainderBinLen, processedBinLen, state, outputLen)\n\t\t\t{\n\t\t\t\treturn finalizeSHA3(remainder, remainderBinLen, processedBinLen, state, variantBlockSize, delimiter, outputLen);\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Chosen SHA variant is not supported\");\n\t\t}\n\t\tconverterFunc = getStrConverter(inputFormat, utfType, bigEndianMod);\n\t\tintermediateState = getNewState(shaVariant);\n\n\t\t/**\n\t\t * Sets the HMAC key for an eventual getHMAC call. Must be called\n\t\t * immediately after jsSHA object instantiation\n\t\t *\n\t\t * @expose\n\t\t * @param {string|ArrayBuffer} key The key used to calculate the HMAC\n\t\t * @param {string} inputFormat The format of key, HEX, TEXT, B64, BYTES,\n\t\t * or ARRAYBUFFER\n\t\t * @param {{encoding : (string|undefined)}=} options Associative array\n\t\t * of input format options\n\t\t */\n\t\tthis.setHMACKey = function(key, inputFormat, options)\n\t\t{\n\t\t\tvar keyConverterFunc, convertRet, keyBinLen, keyToUse, blockByteSize,\n\t\t\t\ti, lastArrayIndex, keyOptions;\n\n\t\t\tif (true === hmacKeySet)\n\t\t\t{\n\t\t\t\tthrow new Error(\"HMAC key already set\");\n\t\t\t}\n\n\t\t\tif (true === updatedCalled)\n\t\t\t{\n\t\t\t\tthrow new Error(\"Cannot set HMAC key after calling update\");\n\t\t\t}\n\n\t\t\tif ((isSHAKE === true) && ((8 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tthrow new Error(\"SHAKE is not supported for HMAC\");\n\t\t\t}\n\n\t\t\tkeyOptions = options || {};\n\t\t\tutfType = keyOptions[\"encoding\"] || \"UTF8\";\n\n\t\t\tkeyConverterFunc = getStrConverter(inputFormat, utfType, bigEndianMod);\n\n\t\t\tconvertRet = keyConverterFunc(key);\n\t\t\tkeyBinLen = convertRet[\"binLen\"];\n\t\t\tkeyToUse = convertRet[\"value\"];\n\n\t\t\tblockByteSize = variantBlockSize >>> 3;\n\n\t\t\t/* These are used multiple times, calculate and store them */\n\t\t\tlastArrayIndex = (blockByteSize / 4) - 1;\n\n\t\t\t/* Figure out what to do with the key based on its size relative to\n\t\t\t * the hash's block size */\n\t\t\tif (blockByteSize < (keyBinLen / 8))\n\t\t\t{\n\n\t\t\t\tkeyToUse = finalizeFunc(keyToUse, keyBinLen, 0,getNewState(shaVariant), outputBinLen);\n\t\t\t\t/* For all variants, the block size is bigger than the output\n\t\t\t\t * size so there will never be a useful byte at the end of the\n\t\t\t\t * string */\n\t\t\t\twhile (keyToUse.length <= lastArrayIndex)\n\t\t\t\t{\n\t\t\t\t\tkeyToUse.push(0);\n\t\t\t\t}\n\t\t\t\tkeyToUse[lastArrayIndex] &= 0xFFFFFF00;\n\t\t\t}\n\t\t\telse if (blockByteSize > (keyBinLen / 8))\n\t\t\t{\n\t\t\t\t/* If the blockByteSize is greater than the key length, there\n\t\t\t\t * will always be at LEAST one \"useless\" byte at the end of the\n\t\t\t\t * string */\n\t\t\t\twhile (keyToUse.length <= lastArrayIndex)\n\t\t\t\t{\n\t\t\t\t\tkeyToUse.push(0);\n\t\t\t\t}\n\t\t\t\tkeyToUse[lastArrayIndex] &= 0xFFFFFF00;\n\t\t\t}\n\n\t\t\t/* Create ipad and opad */\n\t\t\tfor (i = 0; i <= lastArrayIndex; i += 1)\n\t\t\t{\n\t\t\t\tkeyWithIPad[i] = keyToUse[i] ^ 0x36363636;\n\t\t\t\tkeyWithOPad[i] = keyToUse[i] ^ 0x5C5C5C5C;\n\t\t\t}\n\n\t\t\tintermediateState = roundFunc(keyWithIPad, intermediateState);\n\t\t\tprocessedLen = variantBlockSize;\n\n\t\t\thmacKeySet = true;\n\t\t};\n\n\t\t/**\n\t\t * Takes strString and hashes as many blocks as possible. Stores the\n\t\t * rest for either a future update or getHash call.\n\t\t *\n\t\t * @expose\n\t\t * @param {string|ArrayBuffer} srcString The string to be hashed\n\t\t */\n\t\tthis.update = function(srcString)\n\t\t{\n\t\t\tvar convertRet, chunkBinLen, chunkIntLen, chunk, i, updateProcessedLen = 0,\n\t\t\t\tvariantBlockIntInc = variantBlockSize >>> 5;\n\n\t\t\tconvertRet = converterFunc(srcString, remainder, remainderLen);\n\t\t\tchunkBinLen = convertRet[\"binLen\"];\n\t\t\tchunk = convertRet[\"value\"];\n\n\t\t\tchunkIntLen = chunkBinLen >>> 5;\n\t\t\tfor (i = 0; i < chunkIntLen; i += variantBlockIntInc)\n\t\t\t{\n\t\t\t\tif (updateProcessedLen + variantBlockSize <= chunkBinLen)\n\t\t\t\t{\n\t\t\t\t\tintermediateState = roundFunc(\n\t\t\t\t\t\tchunk.slice(i, i + variantBlockIntInc),\n\t\t\t\t\t\tintermediateState\n\t\t\t\t\t);\n\t\t\t\t\tupdateProcessedLen += variantBlockSize;\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocessedLen += updateProcessedLen;\n\t\t\tremainder = chunk.slice(updateProcessedLen >>> 5);\n\t\t\tremainderLen = chunkBinLen % variantBlockSize;\n\t\t\tupdatedCalled = true;\n\n\t\t};\n\n\t\t/**\n\t\t * Returns the desired SHA hash of the string specified at instantiation\n\t\t * using the specified parameters\n\t\t *\n\t\t * @expose\n\t\t * @param {string} format The desired output formatting (B64, HEX,\n\t\t * BYTES, or ARRAYBUFFER)\n\t\t * @param {{outputUpper : (boolean|undefined), b64Pad : (string|undefined),\n\t\t * shakeLen : (number|undefined)}=} options Hash list of output formatting options\n\t\t * @return {string|ArrayBuffer} The string representation of the hash\n\t\t * in the format specified.\n\t\t */\n\t\tthis.getHash = function(format, options)\n\t\t{\n\t\t\tvar formatFunc, i, outputOptions, finalizedState;\n\n\t\t\tif (true === hmacKeySet)\n\t\t\t{\n\t\t\t\tthrow new Error(\"Cannot call getHash after setting HMAC key\");\n\t\t\t}\n\n\t\t\toutputOptions = getOutputOpts(options);\n\n\t\t\tif ((isSHAKE === true) && ((8 & SUPPORTED_ALGS) !== 0))\n\t\t\t{\n\t\t\t\tif (outputOptions[\"shakeLen\"] === -1)\n\t\t\t\t{\n\t\t\t\t\tthrow new Error(\"shakeLen must be specified in options\");\n\t\t\t\t}\n\t\t\t\toutputBinLen = outputOptions[\"shakeLen\"];\n\t\t\t}\n\n\t\t\t/* Validate the output format selection */\n\t\t\tswitch (format)\n\t\t\t{\n\t\t\tcase \"HEX\":\n\t\t\t\tformatFunc = function(binarray) {return packed2hex(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"B64\":\n\t\t\t\tformatFunc = function(binarray) {return packed2b64(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"BYTES\":\n\t\t\t\tformatFunc = function(binarray) {return packed2bytes(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tcase \"ARRAYBUFFER\":\n\t\t\t\ttry {\n\t\t\t\t\ti = new ArrayBuffer(0);\n\t\t\t\t} catch (ignore) {\n\t\t\t\t\tthrow new Error(\"ARRAYBUFFER not supported by this environment\");\n\t\t\t\t}\n\t\t\t\tformatFunc = function(binarray) {return packed2arraybuffer(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"format must be HEX, B64, BYTES, or ARRAYBUFFER\");\n\t\t\t}\n\n\t\t\tfinalizedState = finalizeFunc(remainder.slice(), remainderLen, processedLen, stateCloneFunc(intermediateState), outputBinLen);\n\t\t\tfor (i = 1; i < numRounds; i += 1)\n\t\t\t{\n\t\t\t\t/* This weird fix-up is only for the case of SHAKE algorithms\n\t\t\t\t * and outputBinLen is not a multiple of 32. In this case, the\n\t\t\t\t * very last block of finalizedState has data that needs to be\n\t\t\t\t * ignored because all the finalizeFunc calls need to have\n\t\t\t\t * unneeded bits set to 0.\n\t\t\t\t */\n\t\t\t\tif (((8 & SUPPORTED_ALGS) !== 0) && (isSHAKE === true) && (outputBinLen % 32 !== 0))\n\t\t\t\t{\n\t\t\t\t\tfinalizedState[finalizedState.length - 1] &= 0x00FFFFFF >>> 24 - (outputBinLen % 32);\n\t\t\t\t}\n\t\t\t\tfinalizedState = finalizeFunc(finalizedState, outputBinLen, 0, getNewState(shaVariant), outputBinLen);\n\t\t\t}\n\n\t\t\treturn formatFunc(finalizedState);\n\t\t};\n\n\t\t/**\n\t\t * Returns the the HMAC in the specified format using the key given by\n\t\t * a previous setHMACKey call.\n\t\t *\n\t\t * @expose\n\t\t * @param {string} format The desired output formatting\n\t\t * (B64, HEX, BYTES, or ARRAYBUFFER)\n\t\t * @param {{outputUpper : (boolean|undefined), b64Pad : (string|undefined),\n\t\t * shakeLen : (number|undefined)}=} options associative array of output\n\t\t * formatting options\n\t\t * @return {string|ArrayBuffer} The string representation of the hash in the\n\t\t * format specified.\n\t\t */\n\t\tthis.getHMAC = function(format, options)\n\t\t{\n\t\t\tvar formatFunc,\tfirstHash, outputOptions, finalizedState;\n\n\t\t\tif (false === hmacKeySet)\n\t\t\t{\n\t\t\t\tthrow new Error(\"Cannot call getHMAC without first setting HMAC key\");\n\t\t\t}\n\n\t\t\toutputOptions = getOutputOpts(options);\n\n\t\t\t/* Validate the output format selection */\n\t\t\tswitch (format)\n\t\t\t{\n\t\t\tcase \"HEX\":\n\t\t\t\tformatFunc = function(binarray) {return packed2hex(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"B64\":\n\t\t\t\tformatFunc = function(binarray) {return packed2b64(binarray, outputBinLen, bigEndianMod, outputOptions);};\n\t\t\t\tbreak;\n\t\t\tcase \"BYTES\":\n\t\t\t\tformatFunc = function(binarray) {return packed2bytes(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tcase \"ARRAYBUFFER\":\n\t\t\t\ttry {\n\t\t\t\t\tformatFunc = new ArrayBuffer(0);\n\t\t\t\t} catch(ignore) {\n\t\t\t\t\tthrow new Error(\"ARRAYBUFFER not supported by this environment\");\n\t\t\t\t}\n\t\t\t\tformatFunc = function(binarray) {return packed2arraybuffer(binarray, outputBinLen, bigEndianMod);};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER\");\n\t\t\t}\n\n\t\t\tfirstHash = finalizeFunc(remainder.slice(), remainderLen, processedLen, stateCloneFunc(intermediateState), outputBinLen);\n\t\t\tfinalizedState = roundFunc(keyWithOPad, getNewState(shaVariant));\n\t\t\tfinalizedState = finalizeFunc(firstHash, outputBinLen, variantBlockSize, finalizedState, outputBinLen);\n\n\t\t\treturn formatFunc(finalizedState);\n\t\t};\n\t};\n\n\tif ((\"function\" === typeof define) && (define[\"amd\"])) /* AMD Support */\n\t{\n\t\tdefine(function()\n\t\t{\n\t\t\treturn jsSHA;\n\t\t});\n\t} else if (\"undefined\" !== typeof exports) /* Node Support */\n\t{\n\t\tif ((\"undefined\" !== typeof module) && module[\"exports\"])\n\t\t{\n\t\t module[\"exports\"] = jsSHA;\n\t\t exports = jsSHA;\n\t\t}\n\t\telse {\n\t\t\texports = jsSHA;\n\t\t}\n\t} else { /* Browsers and Web Workers*/\n\t\tglobal[\"jsSHA\"] = jsSHA;\n\t}\n}(this));\n"]} \ No newline at end of file diff --git a/package.json b/package.json index eddc704..022618e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "qoopido.demand", "title": "Qoopido.demand", "description": "Promise like module loader using XHR requests and localStorage caching to dynamically load JavaScript and CSS + dynamic dependency resolution + support for custom handlers", - "version": "4.2.4-alpha.1", + "version": "4.2.4-alpha.2", "homepage": "https://github.com/dlueth/qoopido.demand", "author": { "name": "Dirk Lueth",