<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*!
  Knockout Fast Foreach v0.6.0 (2016-07-28T11:02:54.197Z)
  By: Brian M Hunt (C) 2015 | License: MIT

  Adds `fastForEach` to `ko.bindingHandlers`.
*/
!function(e,t){"function"==typeof define&amp;&amp;define.amd?define(["knockout"],t):"object"==typeof exports?module.exports=t(require("knockout")):e.KnockoutFastForeach=t(e.ko)}(this,function(e){"use strict";function t(e){return!!e&amp;&amp;"object"==typeof e&amp;&amp;e.constructor===Object}function n(e){return 8===e.nodeType&amp;&amp;h.test(u?e.text:e.nodeValue)}function s(t){var n,s=document.createElement("div");return t.content?n=t.content:"SCRIPT"===t.tagName?(n=document.createElement("div"),n.innerHTML=t.text):n=t,e.utils.arrayForEach(e.virtualElements.childNodes(n),function(e){e&amp;&amp;s.insertBefore(e.cloneNode(!0),null)}),s}function i(e,t){return{status:"added",value:e,index:t}}function o(e){return"function"==typeof Symbol?Symbol(e):e}function r(t){this.element=t.element,this.container=n(this.element)?this.element.parentNode:this.element,this.$context=t.$context,this.data=t.data,this.as=t.as,this.noContext=t.noContext,this.noIndex=t.noIndex,this.afterAdd=t.afterAdd,this.beforeRemove=t.beforeRemove,this.templateNode=s(t.templateNode||(t.name?document.getElementById(t.name).cloneNode(!0):t.element)),this.afterQueueFlush=t.afterQueueFlush,this.beforeQueueFlush=t.beforeQueueFlush,this.changeQueue=[],this.firstLastNodesList=[],this.indexesToDelete=[],this.rendering_queued=!1,this.pendingDeletes=[],e.virtualElements.emptyNode(this.element);var o=e.unwrap(this.data);o.map&amp;&amp;this.onArrayChange(o.map(i),!0),e.isObservable(this.data)&amp;&amp;(this.data.indexOf||(this.data=this.data.extend({trackArrayChanges:!0})),this.changeSubs=this.data.subscribe(this.onArrayChange,this,"arrayChange"))}function a(t){t.$index=e.observable()}var d=9007199254740991,u=document&amp;&amp;"&lt;!--test--&gt;"===document.createComment("test").text,h=u?/^&lt;!--\s*ko(?:\s+([\s\S]+))?\s*--&gt;$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,l=document&amp;&amp;"function"==typeof document.createDocumentFragment,c=o("_ko_ffe_pending_delete_index");r.PENDING_DELETE_INDEX_KEY=c,r.animateFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},r.prototype.dispose=function(){this.changeSubs&amp;&amp;this.changeSubs.dispose(),this.flushPendingDeletes()},r.prototype.onArrayChange=function(e,t){for(var n=this,s={added:[],deleted:[]},i=0,o=e.length;i&lt;o;i++){if(s.added.length&amp;&amp;"added"==e[i].status){var a=s.added[s.added.length-1],d=a.isBatch?a.index+a.values.length-1:a.index;if(d+1==e[i].index){a.isBatch||(a={isBatch:!0,status:"added",index:a.index,values:[a.value]},s.added.splice(s.added.length-1,1,a)),a.values.push(e[i].value);continue}}s[e[i].status].push(e[i])}s.deleted.length&gt;0&amp;&amp;(this.changeQueue.push.apply(this.changeQueue,s.deleted),this.changeQueue.push({status:"clearDeletedIndexes"})),this.changeQueue.push.apply(this.changeQueue,s.added),this.changeQueue.length&gt;0&amp;&amp;!this.rendering_queued&amp;&amp;(this.rendering_queued=!0,t?n.processQueue():r.animateFrame.call(window,function(){n.processQueue()}))},r.prototype.processQueue=function(){var t=this,n=d;"function"==typeof this.beforeQueueFlush&amp;&amp;this.beforeQueueFlush(this.changeQueue),e.utils.arrayForEach(this.changeQueue,function(e){"number"==typeof e.index&amp;&amp;(n=Math.min(n,e.index)),t[e.status](e)}),this.flushPendingDeletes(),this.rendering_queued=!1,this.noIndex||this.updateIndexes(n),"function"==typeof this.afterQueueFlush&amp;&amp;this.afterQueueFlush(this.changeQueue),this.changeQueue=[]},r.prototype.added=function(t){for(var n=t.index,s=t.isBatch?t.values:[t.value],i=this.getLastNodeBeforeIndex(n),o=[],r=0,d=s.length;r&lt;d;++r){var u,h=this.getPendingDeleteFor(s[r]);if(h&amp;&amp;h.nodesets.length)u=h.nodesets.pop();else{var l,c=this.templateNode.cloneNode(!0);l=this.noContext?this.$context.extend({$item:s[r],$index:this.noIndex?void 0:e.observable()}):this.$context.createChildContext(s[r],this.as||null,this.noIndex?void 0:a),e.applyBindingsToDescendants(l,c),u=e.virtualElements.childNodes(c)}o.push.apply(o,Array.prototype.slice.call(u)),this.firstLastNodesList.splice(n+r,0,{first:u[0],last:u[u.length-1]})}"function"==typeof this.afterAdd?this.afterAdd({nodeOrArrayInserted:this.insertAllAfter(o,i),foreachInstance:this}):this.insertAllAfter(o,i)},r.prototype.getNodesForIndex=function(e){var t=[],n=this.firstLastNodesList[e].first,s=this.firstLastNodesList[e].last;for(t.push(n);n&amp;&amp;n!==s;)n=n.nextSibling,t.push(n);return t},r.prototype.getLastNodeBeforeIndex=function(e){return e&lt;1||e-1&gt;=this.firstLastNodesList.length?null:this.firstLastNodesList[e-1].last},r.prototype.insertAllAfter=function(t,n){var s,i,o,r=this.element;if(void 0===t.nodeType&amp;&amp;void 0===t.length)throw new Error("Expected a single node or a node array");if(void 0!==t.nodeType)return e.virtualElements.insertAfter(r,t,n),[t];if(1===t.length)e.virtualElements.insertAfter(r,t[0],n);else if(l){for(s=document.createDocumentFragment(),o=0,i=t.length;o!==i;++o)s.appendChild(t[o]);e.virtualElements.insertAfter(r,s,n)}else for(o=t.length-1;o&gt;=0;--o){var a=t[o];if(!a)break;e.virtualElements.insertAfter(r,a,n)}return t},r.prototype.shouldDelayDeletion=function(e){return e&amp;&amp;("object"==typeof e||"function"==typeof e)},r.prototype.getPendingDeleteFor=function(e){var t=e&amp;&amp;e[c];return void 0===t?null:this.pendingDeletes[t]},r.prototype.getOrCreatePendingDeleteFor=function(e){var t=this.getPendingDeleteFor(e);return t?t:(t={data:e,nodesets:[]},e[c]=this.pendingDeletes.length,this.pendingDeletes.push(t),t)},r.prototype.deleted=function(e){if(this.shouldDelayDeletion(e.value)){var t=this.getOrCreatePendingDeleteFor(e.value);t.nodesets.push(this.getNodesForIndex(e.index))}else this.removeNodes(this.getNodesForIndex(e.index));this.indexesToDelete.push(e.index)},r.prototype.removeNodes=function(t){if(t.length){var n=function(){for(var n=t[0].parentNode,s=t.length-1;s&gt;=0;--s)e.cleanNode(t[s]),n.removeChild(t[s])};if(this.beforeRemove){var s=this.beforeRemove({nodesToRemove:t,foreachInstance:this})||{};"function"==typeof s.then&amp;&amp;s.then(n,e.onError?e.onError:void 0)}else n()}},r.prototype.flushPendingDeletes=function(){for(var e=0,t=this.pendingDeletes.length;e!=t;++e){for(var n=this.pendingDeletes[e];n.nodesets.length;)this.removeNodes(n.nodesets.pop());n.data&amp;&amp;void 0!==n.data[c]&amp;&amp;delete n.data[c]}this.pendingDeletes=[]},r.prototype.clearDeletedIndexes=function(){for(var e=this.indexesToDelete.length-1;e&gt;=0;--e)this.firstLastNodesList.splice(this.indexesToDelete[e],1);this.indexesToDelete=[]},r.prototype.getContextStartingFrom=function(t){for(var n;t;){if(n=e.contextFor(t))return n;t=t.nextSibling}},r.prototype.updateIndexes=function(e){for(var t,n=e,s=this.firstLastNodesList.length;n&lt;s;++n)t=this.getContextStartingFrom(this.firstLastNodesList[n].first),t&amp;&amp;t.$index(n)},e.bindingHandlers.fastForEach={init:function(n,s,i,o,a){var d,u=s();return t(u)?(u.element=u.element||n,u.$context=a,d=new r(u)):d=new r({element:n,data:e.unwrap(a.$rawData)===u?a.$rawData:u,$context:a}),e.utils.domNodeDisposal.addDisposeCallback(n,function(){d.dispose()}),{controlsDescendantBindings:!0}},FastForEach:r},e.virtualElements.allowedBindings.fastForEach=!0});</pre></body></html>