(function(){var n=!0;(function(t){var u=this||eval("this"),i=u.document,e=u.navigator,r=u.jQuery,f=u.JSON;(function(n){typeof define=="function"&&define.amd?define(["exports","require"],n):typeof exports=="object"&&typeof module=="object"?n(module.exports||exports):n(u.ko={})})(function(o,s){function nt(n,t){var i=n===null||typeof n in ft;return i?n===t:!1}function et(n,i){var r;return function(){r||(r=h.utils.setTimeout(function(){r=t;n()},i))}}function ot(n,t){var i;return function(){clearTimeout(i);i=h.utils.setTimeout(n,t)}}function st(n){var t=this;return n&&h.utils.objectForEach(n,function(n,i){var r=h.extenders[n];typeof r=="function"&&(t=r(t,i)||t)}),t}function ht(n,t){t&&t!==y?t==="beforeChange"?this._limitBeforeChange(n):this._origNotifySubscribers(n,t):this._limitChange(n)}function ct(n,t){t!==null&&t.dispose&&t.dispose()}function lt(n,t){var i=this.computedObservable,r=i[c];r.isDisposed||(this.disposalCount&&this.disposalCandidates[t]?(i.addDependencyTracking(t,n,this.disposalCandidates[t]),this.disposalCandidates[t]=null,--this.disposalCount):r.dependencyTracking[t]||i.addDependencyTracking(t,n,r.isSleeping?{_target:n}:i.subscribeToDependency(n)),n._notificationIsPending&&n._notifyNextChangeIfValueIsDifferent())}function yt(n){h.bindingHandlers[n]={init:function(t,i,r,u,f){var e=function(){var t={};return t[n]=i(),t};return h.bindingHandlers.event.init.call(this,t,e,r,u,f)}}}function ut(n,t,i,r){h.bindingHandlers[n]={init:function(n,u,f,e,o){var c,s;return h.computed(function(){var l=u(),a=h.utils.unwrapObservable(l),f=!i!=!a,e=!s,v=e||t||f!==c;v&&(e&&h.computedContext.getDependenciesCount()&&(s=h.utils.cloneNodes(h.virtualElements.childNodes(n),!0)),f?(e||h.virtualElements.setDomNodeChildren(n,h.utils.cloneNodes(s)),h.applyBindingsToDescendants(r?r(o,l):o,n)):h.virtualElements.emptyNode(n),c=f)},null,{disposeWhenNodeIsRemoved:n}),{controlsDescendantBindings:!0}}};h.expressionRewriting.bindingRewriteValidators[n]=!1;h.virtualElements.allowedBindings[n]=!0}var h=typeof o!="undefined"?o:{},ft,y,a,p,v,w,b,c,tt,it,rt,k,d,g;h.exportSymbol=function(n,t){for(var i=n.split("."),r=h,u=0;u<i.length-1;u++)r=r[i[u]];r[i[i.length-1]]=t};h.exportProperty=function(n,t,i){n[t]=i};h.version="3.4.2";h.exportSymbol("version",h.version);h.options={deferUpdates:!1,useOnlyNativeEvents:!1};h.utils=function(){function c(n,t){for(var i in n)n.hasOwnProperty(i)&&t(i,n[i])}function a(n,t){if(t)for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return n}function v(n,t){return n.__proto__=t,n}function tt(n,t){if(h.utils.tagNameLower(n)!=="input"||!n.type||t.toLowerCase()!="click")return!1;var i=n.type;return i=="checkbox"||i=="radio"}function it(n,t,i){var r;t&&(typeof n.classList=="object"?(r=n.classList[i?"add":"remove"],h.utils.arrayForEach(t.match(s),function(t){r.call(n.classList,t)})):typeof n.className.baseVal=="string"?w(n.className,"baseVal",t,i):w(n,"className",t,i))}function w(n,t,i,r){var u=n[t].match(s)||[];h.utils.arrayForEach(i.match(s),function(n){h.utils.addOrRemoveItem(u,n,r)});n[t]=u.join(" ")}var y={__proto__:[]}instanceof Array,b=!n&&typeof Symbol=="function",l={},p={},k=e&&/Firefox\/2/i.test(e.userAgent)?"KeyboardEvent":"UIEvents",s;l[k]=["keyup","keydown","keypress"];l.MouseEvents=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave"];c(l,function(n,t){if(t.length)for(var i=0,r=t.length;i<r;i++)p[t[i]]=n});var d={propertychange:!0},o=i&&function(){for(var n=3,r=i.createElement("div"),u=r.getElementsByTagName("i");r.innerHTML="<!--[if gt IE "+ ++n+"]><i><\/i><![endif]-->",u[0];);return n>4?n:t}(),g=o===6,nt=o===7;return s=/\S+/g,{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(n,t){for(var i=0,r=n.length;i<r;i++)t(n[i],i)},arrayIndexOf:function(n,t){if(typeof Array.prototype.indexOf=="function")return Array.prototype.indexOf.call(n,t);for(var i=0,r=n.length;i<r;i++)if(n[i]===t)return i;return-1},arrayFirst:function(n,t,i){for(var r=0,u=n.length;r<u;r++)if(t.call(i,n[r],r))return n[r];return null},arrayRemoveItem:function(n,t){var i=h.utils.arrayIndexOf(n,t);i>0?n.splice(i,1):i===0&&n.shift()},arrayGetDistinctValues:function(n){var i,t,r;for(n=n||[],i=[],t=0,r=n.length;t<r;t++)h.utils.arrayIndexOf(i,n[t])<0&&i.push(n[t]);return i},arrayMap:function(n,t){var r,i,u;for(n=n||[],r=[],i=0,u=n.length;i<u;i++)r.push(t(n[i],i));return r},arrayFilter:function(n,t){var r,i,u;for(n=n||[],r=[],i=0,u=n.length;i<u;i++)t(n[i],i)&&r.push(n[i]);return r},arrayPushAll:function(n,t){if(t instanceof Array)n.push.apply(n,t);else for(var i=0,r=t.length;i<r;i++)n.push(t[i]);return n},addOrRemoveItem:function(n,t,i){var r=h.utils.arrayIndexOf(h.utils.peekObservable(n),t);r<0?i&&n.push(t):i||n.splice(r,1)},canSetPrototype:y,extend:a,setPrototypeOf:v,setPrototypeOfOrExtend:y?v:a,objectForEach:c,objectMap:function(n,t){var r,i;if(!n)return n;r={};for(i in n)n.hasOwnProperty(i)&&(r[i]=t(n[i],i,n));return r},emptyDomNode:function(n){while(n.firstChild)h.removeNode(n.firstChild)},moveCleanedNodesToContainerElement:function(n){for(var t=h.utils.makeArray(n),f=t[0]&&t[0].ownerDocument||i,u=f.createElement("div"),r=0,e=t.length;r<e;r++)u.appendChild(h.cleanNode(t[r]));return u},cloneNodes:function(n,t){for(var r,i=0,f=n.length,u=[];i<f;i++)r=n[i].cloneNode(!0),u.push(t?h.cleanNode(r):r);return u},setDomNodeChildren:function(n,t){if(h.utils.emptyDomNode(n),t)for(var i=0,r=t.length;i<r;i++)n.appendChild(t[i])},replaceDomNodes:function(n,t){var r=n.nodeType?[n]:n,f,e,i,u;if(r.length>0){for(f=r[0],e=f.parentNode,i=0,u=t.length;i<u;i++)e.insertBefore(t[i],f);for(i=0,u=r.length;i<u;i++)h.removeNode(r[i])}},fixUpContinuousNodeArray:function(n,t){if(n.length){for(t=t.nodeType===8&&t.parentNode||t;n.length&&n[0].parentNode!==t;)n.splice(0,1);while(n.length>1&&n[n.length-1].parentNode!==t)n.length--;if(n.length>1){var i=n[0],r=n[n.length-1];for(n.length=0;i!==r;)n.push(i),i=i.nextSibling;n.push(r)}}return n},setOptionNodeSelectionState:function(n,t){o<7?n.setAttribute("selected",t):n.selected=t},stringTrim:function(n){return n===null||n===t?"":n.trim?n.trim():n.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},stringStartsWith:function(n,t){return(n=n||"",t.length>n.length)?!1:n.substring(0,t.length)===t},domNodeIsContainedBy:function(n,t){if(n===t)return!0;if(n.nodeType===11)return!1;if(t.contains)return t.contains(n.nodeType===3?n.parentNode:n);if(t.compareDocumentPosition)return(t.compareDocumentPosition(n)&16)==16;while(n&&n!=t)n=n.parentNode;return!!n},domNodeIsAttachedToDocument:function(n){return h.utils.domNodeIsContainedBy(n,n.ownerDocument.documentElement)},anyDomNodeIsAttachedToDocument:function(n){return!!h.utils.arrayFirst(n,h.utils.domNodeIsAttachedToDocument)},tagNameLower:function(n){return n&&n.tagName&&n.tagName.toLowerCase()},catchFunctionErrors:function(n){return h.onError?function(){try{return n.apply(this,arguments)}catch(t){h.onError&&h.onError(t);throw t;}}:n},setTimeout:function(n,t){return setTimeout(h.utils.catchFunctionErrors(n),t)},deferError:function(n){setTimeout(function(){h.onError&&h.onError(n);throw n;},0)},registerEventHandler:function(n,t,i){var u=h.utils.catchFunctionErrors(i),s=o&&d[t],f,e;if(h.options.useOnlyNativeEvents||s||!r)if(s||typeof n.addEventListener!="function")if(typeof n.attachEvent!="undefined")f=function(t){u.call(n,t)},e="on"+t,n.attachEvent(e,f),h.utils.domNodeDisposal.addDisposeCallback(n,function(){n.detachEvent(e,f)});else throw new Error("Browser doesn't support addEventListener or attachEvent");else n.addEventListener(t,u,!1);else r(n).bind(t,u)},triggerEvent:function(n,t){var f,o,e;if(!(n&&n.nodeType))throw new Error("element must be a DOM node when calling triggerEvent");if(f=tt(n,t),h.options.useOnlyNativeEvents||!r||f)if(typeof i.createEvent=="function")if(typeof n.dispatchEvent=="function")o=p[t]||"HTMLEvents",e=i.createEvent(o),e.initEvent(t,!0,!0,u,0,0,0,0,0,!1,!1,!1,!1,0,n),n.dispatchEvent(e);else throw new Error("The supplied element doesn't support dispatchEvent");else if(f&&n.click)n.click();else if(typeof n.fireEvent!="undefined")n.fireEvent("on"+t);else throw new Error("Browser doesn't support triggering events");else r(n).trigger(t)},unwrapObservable:function(n){return h.isObservable(n)?n():n},peekObservable:function(n){return h.isObservable(n)?n.peek():n},toggleDomNodeCssClass:it,setTextContent:function(n,i){var r=h.utils.unwrapObservable(i),u;(r===null||r===t)&&(r="");u=h.virtualElements.firstChild(n);!u||u.nodeType!=3||h.virtualElements.nextSibling(u)?h.virtualElements.setDomNodeChildren(n,[n.ownerDocument.createTextNode(r)]):u.data=r;h.utils.forceRefresh(n)},setElementName:function(n,t){if(n.name=t,o<=7)try{n.mergeAttributes(i.createElement("<input name='"+n.name+"'/>"),!1)}catch(r){}},forceRefresh:function(n){if(o>=9){var t=n.nodeType==1?n:n.parentNode;t.style&&(t.style.zoom=t.style.zoom)}},ensureSelectElementIsRenderedCorrectly:function(n){if(o){var t=n.style.width;n.style.width=0;n.style.width=t}},range:function(n,t){var r,i;for(n=h.utils.unwrapObservable(n),t=h.utils.unwrapObservable(t),r=[],i=n;i<=t;i++)r.push(i);return r},makeArray:function(n){for(var i=[],t=0,r=n.length;t<r;t++)i.push(n[t]);return i},createSymbolOrString:function(n){return b?Symbol(n):n},isIe6:g,isIe7:nt,ieVersion:o,getFormFields:function(n,t){for(var r=h.utils.makeArray(n.getElementsByTagName("input")).concat(h.utils.makeArray(n.getElementsByTagName("textarea"))),f=typeof t=="string"?function(n){return n.name===t}:function(n){return t.test(n.name)},u=[],i=r.length-1;i>=0;i--)f(r[i])&&u.push(r[i]);return u},parseJson:function(n){return typeof n=="string"&&(n=h.utils.stringTrim(n),n)?f&&f.parse?f.parse(n):new Function("return "+n)():null},stringifyJson:function(n,t,i){if(!f||!f.stringify)throw new Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return f.stringify(h.utils.unwrapObservable(n),t,i)},postJson:function(n,t,r){var l,o,s,f,u,a,e;r=r||{};var v=r.params||{},y=r.includeFields||this.fieldsIncludedWithJsonPost,p=n;if(typeof n=="object"&&h.utils.tagNameLower(n)==="form")for(l=n,p=l.action,o=y.length-1;o>=0;o--)for(s=h.utils.getFormFields(l,y[o]),f=s.length-1;f>=0;f--)v[s[f].name]=s[f].value;t=h.utils.unwrapObservable(t);u=i.createElement("form");u.style.display="none";u.action=p;u.method="post";for(a in t)e=i.createElement("input"),e.type="hidden",e.name=a,e.value=h.utils.stringifyJson(h.utils.unwrapObservable(t[a])),u.appendChild(e);c(v,function(n,t){var r=i.createElement("input");r.type="hidden";r.name=n;r.value=t;u.appendChild(r)});i.body.appendChild(u);r.submitter?r.submitter(u):u.submit();setTimeout(function(){u.parentNode.removeChild(u)},0)}}}();h.exportSymbol("utils",h.utils);h.exportSymbol("utils.arrayForEach",h.utils.arrayForEach);h.exportSymbol("utils.arrayFirst",h.utils.arrayFirst);h.exportSymbol("utils.arrayFilter",h.utils.arrayFilter);h.exportSymbol("utils.arrayGetDistinctValues",h.utils.arrayGetDistinctValues);h.exportSymbol("utils.arrayIndexOf",h.utils.arrayIndexOf);h.exportSymbol("utils.arrayMap",h.utils.arrayMap);h.exportSymbol("utils.arrayPushAll",h.utils.arrayPushAll);h.exportSymbol("utils.arrayRemoveItem",h.utils.arrayRemoveItem);h.exportSymbol("utils.extend",h.utils.extend);h.exportSymbol("utils.fieldsIncludedWithJsonPost",h.utils.fieldsIncludedWithJsonPost);h.exportSymbol("utils.getFormFields",h.utils.getFormFields);h.exportSymbol("utils.peekObservable",h.utils.peekObservable);h.exportSymbol("utils.postJson",h.utils.postJson);h.exportSymbol("utils.parseJson",h.utils.parseJson);h.exportSymbol("utils.registerEventHandler",h.utils.registerEventHandler);h.exportSymbol("utils.stringifyJson",h.utils.stringifyJson);h.exportSymbol("utils.range",h.utils.range);h.exportSymbol("utils.toggleDomNodeCssClass",h.utils.toggleDomNodeCssClass);h.exportSymbol("utils.triggerEvent",h.utils.triggerEvent);h.exportSymbol("utils.unwrapObservable",h.utils.unwrapObservable);h.exportSymbol("utils.objectForEach",h.utils.objectForEach);h.exportSymbol("utils.addOrRemoveItem",h.utils.addOrRemoveItem);h.exportSymbol("utils.setTextContent",h.utils.setTextContent);h.exportSymbol("unwrap",h.utils.unwrapObservable);Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,i;return arguments.length===1?function(){return t.apply(n,arguments)}:(i=Array.prototype.slice.call(arguments,1),function(){var r=i.slice(0);return r.push.apply(r,arguments),t.apply(n,r)})});h.utils.domData=new function(){function r(r,f){var e=r[n],o=e&&e!=="null"&&i[e];if(!o){if(!f)return t;e=r[n]="ko"+u++;i[e]={}}return i[e]}var u=0,n="__ko__"+(new Date).getTime(),i={};return{get:function(n,i){var u=r(n,!1);return u===t?t:u[i]},set:function(n,i,u){if(u!==t||r(n,!1)!==t){var f=r(n,!0);f[i]=u}},clear:function(t){var r=t[n];return r?(delete i[r],t[n]=null,!0):!1},nextKey:function(){return u+++n}}};h.exportSymbol("utils.domData",h.utils.domData);h.exportSymbol("utils.domData.clear",h.utils.domData.clear);h.utils.domNodeDisposal=new function(){function i(i,r){var u=h.utils.domData.get(i,n);return u===t&&r&&(u=[],h.utils.domData.set(i,n,u)),u}function o(i){h.utils.domData.set(i,n,t)}function u(n){var t=i(n,!1),r;if(t)for(t=t.slice(0),r=0;r<t.length;r++)t[r](n);h.utils.domData.clear(n);h.utils.domNodeDisposal.cleanExternalData(n);f[n.nodeType]&&s(n)}function s(n){for(var t,i=n.firstChild;t=i;)i=t.nextSibling,t.nodeType===8&&u(t)}var n=h.utils.domData.nextKey(),e={1:!0,8:!0,9:!0},f={1:!0,9:!0};return{addDisposeCallback:function(n,t){if(typeof t!="function")throw new Error("Callback must be a function");i(n,!0).push(t)},removeDisposeCallback:function(n,t){var r=i(n,!1);r&&(h.utils.arrayRemoveItem(r,t),r.length==0&&o(n))},cleanNode:function(n){var t,i,r;if(e[n.nodeType]&&(u(n),f[n.nodeType]))for(t=[],h.utils.arrayPushAll(t,n.getElementsByTagName("*")),i=0,r=t.length;i<r;i++)u(t[i]);return n},removeNode:function(n){h.cleanNode(n);n.parentNode&&n.parentNode.removeChild(n)},cleanExternalData:function(n){r&&typeof r.cleanData=="function"&&r.cleanData([n])}}};h.cleanNode=h.utils.domNodeDisposal.cleanNode;h.removeNode=h.utils.domNodeDisposal.removeNode;h.exportSymbol("cleanNode",h.cleanNode);h.exportSymbol("removeNode",h.removeNode);h.exportSymbol("utils.domNodeDisposal",h.utils.domNodeDisposal);h.exportSymbol("utils.domNodeDisposal.addDisposeCallback",h.utils.domNodeDisposal.addDisposeCallback);h.exportSymbol("utils.domNodeDisposal.removeDisposeCallback",h.utils.domNodeDisposal.removeDisposeCallback),function(){function l(n){var t=n.match(/^<([a-z]+)[ >]/);return t&&c[t[1]]||s}function a(n,t){t||(t=i);var e=t.parentWindow||t.defaultView||u,c=h.utils.stringTrim(n).toLowerCase(),r=t.createElement("div"),f=l(c),a=f[0],s="ignored<div>"+f[1]+n+f[2]+"<\/div>";for(typeof e.innerShiv=="function"?r.appendChild(e.innerShiv(s)):(o&&t.appendChild(r),r.innerHTML=s,o&&r.parentNode.removeChild(r));a--;)r=r.lastChild;return h.utils.makeArray(r.lastChild.childNodes)}function v(n,t){var u,i;if(r.parseHTML)return r.parseHTML(n,t)||[];if(u=r.clean([n],t),u&&u[0]){for(i=u[0];i.parentNode&&i.parentNode.nodeType!==11;)i=i.parentNode;i.parentNode&&i.parentNode.removeChild(i)}return u}var s=[0,"",""],n=[1,"<table>","<\/table>"],f=[3,"<table><tbody><tr>","<\/tr><\/tbody><\/table>"],e=[1,"<select multiple='multiple'>","<\/select>"],c={thead:n,tbody:n,tfoot:n,tr:[2,"<table><tbody>","<\/tbody><\/table>"],td:f,th:f,option:e,optgroup:e},o=h.utils.ieVersion<=8;h.utils.parseHtmlFragment=function(n,t){return r?v(n,t):a(n,t)};h.utils.setHtml=function(n,i){var f,u;if(h.utils.emptyDomNode(n),i=h.utils.unwrapObservable(i),i!==null&&i!==t)if(typeof i!="string"&&(i=i.toString()),r)r(n).html(i);else for(f=h.utils.parseHtmlFragment(i,n.ownerDocument),u=0;u<f.length;u++)n.appendChild(f[u])}}();h.exportSymbol("utils.parseHtmlFragment",h.utils.parseHtmlFragment);h.exportSymbol("utils.setHtml",h.utils.setHtml);h.memoization=function(){function i(){return((1+Math.random())*4294967296|0).toString(16).substring(1)}function u(){return i()+i()}function r(n,t){var i;if(n)if(n.nodeType==8)i=h.memoization.parseMemoText(n.nodeValue),i!=null&&t.push({domNode:n,memoId:i});else if(n.nodeType==1)for(var u=0,f=n.childNodes,e=f.length;u<e;u++)r(f[u],t)}var n={};return{memoize:function(t){if(typeof t!="function")throw new Error("You can only pass a function to ko.memoization.memoize()");var i=u();return n[i]=t,"<!--[ko_memo:"+i+"]-->"},unmemoize:function(i,r){var u=n[i];if(u===t)throw new Error("Couldn't find any memo with ID "+i+". Perhaps it's already been unmemoized.");try{return u.apply(null,r||[]),!0}finally{delete n[i]}},unmemoizeDomNodeAndDescendants:function(n,t){var f=[],u,o,i,e;for(r(n,f),u=0,o=f.length;u<o;u++)i=f[u].domNode,e=[i],t&&h.utils.arrayPushAll(e,t),h.memoization.unmemoize(f[u].memoId,e),i.nodeValue="",i.parentNode&&i.parentNode.removeChild(i)},parseMemoText:function(n){var t=n.match(/^\[ko_memo\:(.*?)\]$/);return t?t[1]:null}}}();h.exportSymbol("memoization",h.memoization);h.exportSymbol("memoization.memoize",h.memoization.memoize);h.exportSymbol("memoization.unmemoize",h.memoization.unmemoize);h.exportSymbol("memoization.parseMemoText",h.memoization.parseMemoText);h.exportSymbol("memoization.unmemoizeDomNodeAndDescendants",h.memoization.unmemoizeDomNodeAndDescendants);h.tasks=function(){function o(){var i,u,f;if(n)for(i=n,u=0;t<n;)if(f=r[t++]){if(t>i){if(++u>=5e3){t=n;h.utils.deferError(Error("'Too much recursion' after processing "+u+" task groups."));break}i=n}try{f()}catch(e){h.utils.deferError(e)}}}function s(){o();t=n=r.length=0}function c(){h.tasks.scheduler(s)}var f,r=[],n=0,e=1,t=0;return f=u.MutationObserver?function(n){var t=i.createElement("div");return new MutationObserver(n).observe(t,{attributes:!0}),function(){t.classList.toggle("foo")}}(s):i&&"onreadystatechange"in i.createElement("script")?function(n){var t=i.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null;i.documentElement.removeChild(t);t=null;n()};i.documentElement.appendChild(t)}:function(n){setTimeout(n,0)},{scheduler:f,schedule:function(t){return n||c(),r[n++]=t,e++},cancel:function(i){var u=i-(e-n);u>=t&&u<n&&(r[u]=null)},resetForTesting:function(){var i=n-t;return t=n=r.length=0,i},runEarly:o}}();h.exportSymbol("tasks",h.tasks);h.exportSymbol("tasks.schedule",h.tasks.schedule);h.exportSymbol("tasks.runEarly",h.tasks.runEarly);h.extenders={throttle:function(n,t){n.throttleEvaluation=t;var i=null;return h.dependentObservable({read:n,write:function(r){clearTimeout(i);i=h.utils.setTimeout(function(){n(r)},t)}})},rateLimit:function(n,t){var i,r,u;typeof t=="number"?i=t:(i=t.timeout,r=t.method);n._deferUpdates=!1;u=r=="notifyWhenChangesStop"?ot:et;n.limit(function(n){return u(n,i)})},deferred:function(n,i){if(i!==!0)throw new Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");n._deferUpdates||(n._deferUpdates=!0,n.limit(function(i){var u,r=!1;return function(){if(!r){h.tasks.cancel(u);u=h.tasks.schedule(i);try{r=!0;n.notifySubscribers(t,"dirty")}finally{r=!1}}}}))},notify:function(n,t){n.equalityComparer=t=="always"?null:nt}};ft={undefined:1,boolean:1,number:1,string:1};h.exportSymbol("extenders",h.extenders);h.subscription=function(n,t,i){this._target=n;this.callback=t;this.disposeCallback=i;this.isDisposed=!1;h.exportProperty(this,"dispose",this.dispose)};h.subscription.prototype.dispose=function(){this.isDisposed=!0;this.disposeCallback()};h.subscribable=function(){h.utils.setPrototypeOfOrExtend(this,a);a.init(this)};y="change";a={init:function(n){n._subscriptions={change:[]};n._versionNumber=1},subscribe:function(n,t,i){var r=this,f,u;return i=i||y,f=t?n.bind(t):n,u=new h.subscription(r,f,function(){h.utils.arrayRemoveItem(r._subscriptions[i],u);r.afterSubscriptionRemove&&r.afterSubscriptionRemove(i)}),r.beforeSubscriptionAdd&&r.beforeSubscriptionAdd(i),r._subscriptions[i]||(r._subscriptions[i]=[]),r._subscriptions[i].push(u),u},notifySubscribers:function(n,t){var u,i,r;if(t=t||y,t===y&&this.updateVersion(),this.hasSubscriptionsForEvent(t)){u=t===y&&this._changeSubscriptions||this._subscriptions[t].slice(0);try{for(h.dependencyDetection.begin(),i=0;r=u[i];++i)r.isDisposed||r.callback(n)}finally{h.dependencyDetection.end()}}},getVersion:function(){return this._versionNumber},hasChanged:function(n){return this.getVersion()!==n},updateVersion:function(){++this._versionNumber},limit:function(n){var t=this,o=h.isObservable(t),u,f,r,i,s="beforeChange",e;t._origNotifySubscribers||(t._origNotifySubscribers=t.notifySubscribers,t.notifySubscribers=ht);e=n(function(){t._notificationIsPending=!1;o&&i===t&&(i=t._evalIfChanged?t._evalIfChanged():t());var n=f||t.isDifferent(r,i);f=u=!1;n&&t._origNotifySubscribers(r=i)});t._limitChange=function(n){t._changeSubscriptions=t._subscriptions[y].slice(0);t._notificationIsPending=u=!0;i=n;e()};t._limitBeforeChange=function(n){u||(r=n,t._origNotifySubscribers(n,s))};t._notifyNextChangeIfValueIsDifferent=function(){t.isDifferent(r,t.peek(!0))&&(f=!0)}},hasSubscriptionsForEvent:function(n){return this._subscriptions[n]&&this._subscriptions[n].length},getSubscriptionsCount:function(n){if(n)return this._subscriptions[n]&&this._subscriptions[n].length||0;var t=0;return h.utils.objectForEach(this._subscriptions,function(n,i){n!=="dirty"&&(t+=i.length)}),t},isDifferent:function(n,t){return!this.equalityComparer||!this.equalityComparer(n,t)},extend:st};h.exportProperty(a,"subscribe",a.subscribe);h.exportProperty(a,"extend",a.extend);h.exportProperty(a,"getSubscriptionsCount",a.getSubscriptionsCount);h.utils.canSetPrototype&&h.utils.setPrototypeOf(a,Function.prototype);h.subscribable.fn=a;h.isSubscribable=function(n){return n!=null&&typeof n.subscribe=="function"&&typeof n.notifySubscribers=="function"};h.exportSymbol("subscribable",h.subscribable);h.exportSymbol("isSubscribable",h.isSubscribable);h.computedContext=h.dependencyDetection=function(){function f(){return++u}function i(i){t.push(n);n=i}function r(){n=t.pop()}var t=[],n,u=0;return{begin:i,end:r,registerDependency:function(t){if(n){if(!h.isSubscribable(t))throw new Error("Only subscribable things can act as dependencies");n.callback.call(n.callbackTarget,t,t._id||(t._id=f()))}},ignore:function(n,t,u){try{return i(),n.apply(t,u||[])}finally{r()}},getDependenciesCount:function(){if(n)return n.computed.getDependenciesCount()},isInitial:function(){if(n)return n.isInitial}}}();h.exportSymbol("computedContext",h.computedContext);h.exportSymbol("computedContext.getDependenciesCount",h.computedContext.getDependenciesCount);h.exportSymbol("computedContext.isInitial",h.computedContext.isInitial);h.exportSymbol("ignoreDependencies",h.ignoreDependencies=h.dependencyDetection.ignore);p=h.utils.createSymbolOrString("_latestValue");h.observable=function(n){function t(){return arguments.length>0?(t.isDifferent(t[p],arguments[0])&&(t.valueWillMutate(),t[p]=arguments[0],t.valueHasMutated()),this):(h.dependencyDetection.registerDependency(t),t[p])}return t[p]=n,h.utils.canSetPrototype||h.utils.extend(t,h.subscribable.fn),h.subscribable.fn.init(t),h.utils.setPrototypeOfOrExtend(t,v),h.options.deferUpdates&&h.extenders.deferred(t,!0),t};v={equalityComparer:nt,peek:function(){return this[p]},valueHasMutated:function(){this.notifySubscribers(this[p])},valueWillMutate:function(){this.notifySubscribers(this[p],"beforeChange")}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(v,h.subscribable.fn);w=h.observable.protoProperty="__ko_proto__";v[w]=h.observable;h.hasPrototype=function(n,i){return n===null||n===t||n[w]===t?!1:n[w]===i?!0:h.hasPrototype(n[w],i)};h.isObservable=function(n){return h.hasPrototype(n,h.observable)};h.isWriteableObservable=function(n){return typeof n=="function"&&n[w]===h.observable?!0:typeof n=="function"&&n[w]===h.dependentObservable&&n.hasWriteFunction?!0:!1};h.exportSymbol("observable",h.observable);h.exportSymbol("isObservable",h.isObservable);h.exportSymbol("isWriteableObservable",h.isWriteableObservable);h.exportSymbol("isWritableObservable",h.isWriteableObservable);h.exportSymbol("observable.fn",v);h.exportProperty(v,"peek",v.peek);h.exportProperty(v,"valueHasMutated",v.valueHasMutated);h.exportProperty(v,"valueWillMutate",v.valueWillMutate);h.observableArray=function(n){if(n=n||[],typeof n!="object"||!("length"in n))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var t=h.observable(n);return h.utils.setPrototypeOfOrExtend(t,h.observableArray.fn),t.extend({trackArrayChanges:!0})};h.observableArray.fn={remove:function(n){for(var u,r=this.peek(),i=[],f=typeof n=="function"&&!h.isObservable(n)?n:function(t){return t===n},t=0;t<r.length;t++)u=r[t],f(u)&&(i.length===0&&this.valueWillMutate(),i.push(u),r.splice(t,1),t--);return i.length&&this.valueHasMutated(),i},removeAll:function(n){if(n===t){var i=this.peek(),r=i.slice(0);return this.valueWillMutate(),i.splice(0,i.length),this.valueHasMutated(),r}return n?this.remove(function(t){return h.utils.arrayIndexOf(n,t)>=0}):[]},destroy:function(n){var i=this.peek(),u=typeof n=="function"&&!h.isObservable(n)?n:function(t){return t===n},t,r;for(this.valueWillMutate(),t=i.length-1;t>=0;t--)r=i[t],u(r)&&(i[t]._destroy=!0);this.valueHasMutated()},destroyAll:function(n){return n===t?this.destroy(function(){return!0}):n?this.destroy(function(t){return h.utils.arrayIndexOf(n,t)>=0}):[]},indexOf:function(n){var t=this();return h.utils.arrayIndexOf(t,n)},replace:function(n,t){var i=this.indexOf(n);i>=0&&(this.valueWillMutate(),this.peek()[i]=t,this.valueHasMutated())}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(h.observableArray.fn,h.observable.fn);h.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(n){h.observableArray.fn[n]=function(){var t=this.peek(),i;return this.valueWillMutate(),this.cacheDiffForKnownOperation(t,n,arguments),i=t[n].apply(t,arguments),this.valueHasMutated(),i===t?this:i}});h.utils.arrayForEach(["slice"],function(n){h.observableArray.fn[n]=function(){var t=this();return t[n].apply(t,arguments)}});h.exportSymbol("observableArray",h.observableArray);b="arrayChange";h.extenders.trackArrayChanges=function(n,i){function l(){if(!f){f=!0;u=n.notifySubscribers;n.notifySubscribers=function(n,t){return t&&t!==y||++e,u.apply(this,arguments)};var t=[].concat(n.peek()||[]);r=null;o=n.subscribe(function(i){if(i=[].concat(i||[]),n.hasSubscriptionsForEvent(b))var u=a(t,i);t=i;r=null;e=0;u&&u.length&&n.notifySubscribers(u,b)})}}function a(t,i){return(!r||e>1)&&(r=h.utils.compareArrays(t,i,n.compareArrayOptions)),r}if(n.compareArrayOptions={},i&&typeof i=="object"&&h.utils.extend(n.compareArrayOptions,i),n.compareArrayOptions.sparse=!0,!n.cacheDiffForKnownOperation){var f=!1,r=null,o,e=0,u,s=n.beforeSubscriptionAdd,c=n.afterSubscriptionRemove;n.beforeSubscriptionAdd=function(t){s&&s.call(n,t);t===b&&l()};n.afterSubscriptionRemove=function(i){c&&c.call(n,i);i!==b||n.hasSubscriptionsForEvent(b)||(u&&(n.notifySubscribers=u,u=t),o.dispose(),f=!1)};n.cacheDiffForKnownOperation=function(n,t,i){function c(n,t,i){return l[l.length]={status:n,value:t,index:i}}var u,y;if(f&&!e){var l=[],o=n.length,a=i.length,s=0;switch(t){case"push":s=o;case"unshift":for(u=0;u<a;u++)c("added",i[u],s+u);break;case"pop":s=o-1;case"shift":o&&c("deleted",n[s],s);break;case"splice":var v=Math.min(Math.max(0,i[0]<0?o+i[0]:i[0]),o),p=a===1?o:Math.min(v+(i[1]||0),o),w=v+a-2,d=Math.max(p,w),b=[],k=[];for(u=v,y=2;u<d;++u,++y)u<p&&k.push(c("deleted",n[u],u)),u<w&&b.push(c("added",i[y],u));h.utils.findMovesInArrayComparison(k,b);break;default:return}r=l}}}};c=h.utils.createSymbolOrString("_state");h.computed=h.dependentObservable=function(i,r,u){function f(){if(arguments.length>0){if(typeof o=="function")o.apply(e.evaluatorFunctionTarget,arguments);else throw new Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return h.dependencyDetection.registerDependency(f),(e.isDirty||e.isSleeping&&f.haveDependenciesChanged())&&f.evaluateImmediate(),e.latestValue}if(typeof i=="object"?u=i:(u=u||{},i&&(u.read=i)),typeof u.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var o=u.write,e={latestValue:t,isStale:!0,isDirty:!0,isBeingEvaluated:!1,suppressDisposalUntilDisposeWhenReturnsFalse:!1,isDisposed:!1,pure:!1,isSleeping:!1,readFunction:u.read,evaluatorFunctionTarget:r||u.owner,disposeWhenNodeIsRemoved:u.disposeWhenNodeIsRemoved||u.disposeWhenNodeIsRemoved||null,disposeWhen:u.disposeWhen||u.disposeWhen,domNodeDisposalCallback:null,dependencyTracking:{},dependenciesCount:0,evaluationTimeoutInstance:null};return f[c]=e,f.hasWriteFunction=typeof o=="function",h.utils.canSetPrototype||h.utils.extend(f,h.subscribable.fn),h.subscribable.fn.init(f),h.utils.setPrototypeOfOrExtend(f,l),u.pure?(e.pure=!0,e.isSleeping=!0,h.utils.extend(f,at)):u.deferEvaluation&&h.utils.extend(f,vt),h.options.deferUpdates&&h.extenders.deferred(f,!0),n&&(f._options=u),e.disposeWhenNodeIsRemoved&&(e.suppressDisposalUntilDisposeWhenReturnsFalse=!0,e.disposeWhenNodeIsRemoved.nodeType||(e.disposeWhenNodeIsRemoved=null)),e.isSleeping||u.deferEvaluation||f.evaluateImmediate(),e.disposeWhenNodeIsRemoved&&f.isActive()&&h.utils.domNodeDisposal.addDisposeCallback(e.disposeWhenNodeIsRemoved,e.domNodeDisposalCallback=function(){f.dispose()}),f};var l={equalityComparer:nt,getDependenciesCount:function(){return this[c].dependenciesCount},addDependencyTracking:function(n,t,i){if(this[c].pure&&t===this)throw Error("A 'pure' computed must not be called recursively");this[c].dependencyTracking[n]=i;i._order=this[c].dependenciesCount++;i._version=t.getVersion()},haveDependenciesChanged:function(){var t,n,i=this[c].dependencyTracking;for(t in i)if(i.hasOwnProperty(t)&&(n=i[t],this._evalDelayed&&n._target._notificationIsPending||n._target.hasChanged(n._version)))return!0},markDirty:function(){this._evalDelayed&&!this[c].isBeingEvaluated&&this._evalDelayed(!1)},isActive:function(){var n=this[c];return n.isDirty||n.dependenciesCount>0},respondToChange:function(){this._notificationIsPending?this[c].isDirty&&(this[c].isStale=!0):this.evaluatePossiblyAsync()},subscribeToDependency:function(n){if(n._deferUpdates&&!this[c].disposeWhenNodeIsRemoved){var t=n.subscribe(this.markDirty,this,"dirty"),i=n.subscribe(this.respondToChange,this);return{_target:n,dispose:function(){t.dispose();i.dispose()}}}return n.subscribe(this.evaluatePossiblyAsync,this)},evaluatePossiblyAsync:function(){var n=this,t=n.throttleEvaluation;t&&t>=0?(clearTimeout(this[c].evaluationTimeoutInstance),this[c].evaluationTimeoutInstance=h.utils.setTimeout(function(){n.evaluateImmediate(!0)},t)):n._evalDelayed?n._evalDelayed(!0):n.evaluateImmediate(!0)},evaluateImmediate:function(n){var i=this,t=i[c],r=t.disposeWhen,u=!1;if(!t.isBeingEvaluated&&!t.isDisposed){if(t.disposeWhenNodeIsRemoved&&!h.utils.domNodeIsAttachedToDocument(t.disposeWhenNodeIsRemoved)||r&&r()){if(!t.suppressDisposalUntilDisposeWhenReturnsFalse){i.dispose();return}}else t.suppressDisposalUntilDisposeWhenReturnsFalse=!1;t.isBeingEvaluated=!0;try{u=this.evaluateImmediate_CallReadWithDependencyDetection(n)}finally{t.isBeingEvaluated=!1}return t.dependenciesCount||i.dispose(),u}},evaluateImmediate_CallReadWithDependencyDetection:function(i){var u=this,r=u[c],e=!1,o=r.pure?t:!r.dependenciesCount,s={computedObservable:u,disposalCandidates:r.dependencyTracking,disposalCount:r.dependenciesCount},f;return h.dependencyDetection.begin({callbackTarget:s,callback:lt,computed:u,isInitial:o}),r.dependencyTracking={},r.dependenciesCount=0,f=this.evaluateImmediate_CallReadThenEndDependencyDetection(r,s),u.isDifferent(r.latestValue,f)&&(r.isSleeping||u.notifySubscribers(r.latestValue,"beforeChange"),r.latestValue=f,n&&(u._latestValue=f),r.isSleeping?u.updateVersion():i&&u.notifySubscribers(r.latestValue),e=!0),o&&u.notifySubscribers(r.latestValue,"awake"),e},evaluateImmediate_CallReadThenEndDependencyDetection:function(n,t){try{var i=n.readFunction;return n.evaluatorFunctionTarget?i.call(n.evaluatorFunctionTarget):i()}finally{h.dependencyDetection.end();t.disposalCount&&!n.isSleeping&&h.utils.objectForEach(t.disposalCandidates,ct);n.isStale=n.isDirty=!1}},peek:function(n){var t=this[c];return(t.isDirty&&(n||!t.dependenciesCount)||t.isSleeping&&this.haveDependenciesChanged())&&this.evaluateImmediate(),t.latestValue},limit:function(n){h.subscribable.fn.limit.call(this,n);this._evalIfChanged=function(){return this[c].isStale?this.evaluateImmediate():this[c].isDirty=!1,this[c].latestValue};this._evalDelayed=function(n){this._limitBeforeChange(this[c].latestValue);this[c].isDirty=!0;n&&(this[c].isStale=!0);this._limitChange(this)}},dispose:function(){var n=this[c];!n.isSleeping&&n.dependencyTracking&&h.utils.objectForEach(n.dependencyTracking,function(n,t){t.dispose&&t.dispose()});n.disposeWhenNodeIsRemoved&&n.domNodeDisposalCallback&&h.utils.domNodeDisposal.removeDisposeCallback(n.disposeWhenNodeIsRemoved,n.domNodeDisposalCallback);n.dependencyTracking=null;n.dependenciesCount=0;n.isDisposed=!0;n.isStale=!1;n.isDirty=!1;n.isSleeping=!1;n.disposeWhenNodeIsRemoved=null}},at={beforeSubscriptionAdd:function(n){var i=this,t=i[c],r;!t.isDisposed&&t.isSleeping&&n=="change"&&(t.isSleeping=!1,t.isStale||i.haveDependenciesChanged()?(t.dependencyTracking=null,t.dependenciesCount=0,i.evaluateImmediate()&&i.updateVersion()):(r=[],h.utils.objectForEach(t.dependencyTracking,function(n,t){r[t._order]=n}),h.utils.arrayForEach(r,function(n,r){var f=t.dependencyTracking[n],u=i.subscribeToDependency(f._target);u._order=r;u._version=f._version;t.dependencyTracking[n]=u})),t.isDisposed||i.notifySubscribers(t.latestValue,"awake"))},afterSubscriptionRemove:function(n){var i=this[c];i.isDisposed||n!="change"||this.hasSubscriptionsForEvent("change")||(h.utils.objectForEach(i.dependencyTracking,function(n,t){t.dispose&&(i.dependencyTracking[n]={_target:t._target,_order:t._order,_version:t._version},t.dispose())}),i.isSleeping=!0,this.notifySubscribers(t,"asleep"))},getVersion:function(){var n=this[c];return n.isSleeping&&(n.isStale||this.haveDependenciesChanged())&&this.evaluateImmediate(),h.subscribable.fn.getVersion.call(this)}},vt={beforeSubscriptionAdd:function(n){(n=="change"||n=="beforeChange")&&this.peek()}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(l,h.subscribable.fn);tt=h.observable.protoProperty;h.computed[tt]=h.observable;l[tt]=h.computed;h.isComputed=function(n){return h.hasPrototype(n,h.computed)};h.isPureComputed=function(n){return h.hasPrototype(n,h.computed)&&n[c]&&n[c].pure};h.exportSymbol("computed",h.computed);h.exportSymbol("dependentObservable",h.computed);h.exportSymbol("isComputed",h.isComputed);h.exportSymbol("isPureComputed",h.isPureComputed);h.exportSymbol("computed.fn",l);h.exportProperty(l,"peek",l.peek);h.exportProperty(l,"dispose",l.dispose);h.exportProperty(l,"isActive",l.isActive);h.exportProperty(l,"getDependenciesCount",l.getDependenciesCount);h.pureComputed=function(n,t){return typeof n=="function"?h.computed(n,t,{pure:!0}):(n=h.utils.extend({},n),n.pure=!0,h.computed(n,t))};h.exportSymbol("pureComputed",h.pureComputed),function(){function i(r,f,e){var s,o;return(e=e||new n,r=f(r),s=typeof r=="object"&&r!==null&&r!==t&&!(r instanceof RegExp)&&!(r instanceof Date)&&!(r instanceof String)&&!(r instanceof Number)&&!(r instanceof Boolean),!s)?r:(o=r instanceof Array?[]:{},e.save(r,o),u(r,function(n){var u=f(r[n]),s;switch(typeof u){case"boolean":case"number":case"string":case"function":o[n]=u;break;case"object":case"undefined":s=e.get(u);o[n]=s!==t?s:i(u,f,e)}}),o)}function u(n,t){var i,r;if(n instanceof Array){for(i=0;i<n.length;i++)t(i);typeof n.toJSON=="function"&&t("toJSON")}else for(r in n)t(r)}function n(){this.keys=[];this.values=[]}var r=10;h.toJS=function(n){if(arguments.length==0)throw new Error("When calling ko.toJS, pass the object you want to convert.");return i(n,function(n){for(var t=0;h.isObservable(n)&&t<r;t++)n=n();return n})};h.toJSON=function(n,t,i){var r=h.toJS(n);return h.utils.stringifyJson(r,t,i)};n.prototype={constructor:n,save:function(n,t){var i=h.utils.arrayIndexOf(this.keys,n);i>=0?this.values[i]=t:(this.keys.push(n),this.values.push(t))},get:function(n){var i=h.utils.arrayIndexOf(this.keys,n);return i>=0?this.values[i]:t}}}();h.exportSymbol("toJS",h.toJS);h.exportSymbol("toJSON",h.toJSON),function(){var n="__ko__hasDomDataOptionValue__";h.selectExtensions={readValue:function(i){switch(h.utils.tagNameLower(i)){case"option":return i[n]===!0?h.utils.domData.get(i,h.bindingHandlers.options.optionValueDomDataKey):h.utils.ieVersion<=7?i.getAttributeNode("value")&&i.getAttributeNode("value").specified?i.value:i.text:i.value;case"select":return i.selectedIndex>=0?h.selectExtensions.readValue(i.options[i.selectedIndex]):t;default:return i.value}},writeValue:function(i,r,u){var e,f,s,o;switch(h.utils.tagNameLower(i)){case"option":switch(typeof r){case"string":h.utils.domData.set(i,h.bindingHandlers.options.optionValueDomDataKey,t);n in i&&delete i[n];i.value=r;break;default:h.utils.domData.set(i,h.bindingHandlers.options.optionValueDomDataKey,r);i[n]=!0;i.value=typeof r=="number"?r:""}break;case"select":for((r===""||r===null)&&(r=t),e=-1,f=0,s=i.options.length;f<s;++f)if(o=h.selectExtensions.readValue(i.options[f]),o==r||o==""&&r===t){e=f;break}(u||e>=0||r===t&&i.size>1)&&(i.selectedIndex=e);break;default:(r===null||r===t)&&(r="");i.value=r}}}}();h.exportSymbol("selectExtensions",h.selectExtensions);h.exportSymbol("selectExtensions.readValue",h.selectExtensions.readValue);h.exportSymbol("selectExtensions.writeValue",h.selectExtensions.writeValue);h.expressionRewriting=function(){function e(n){if(h.utils.arrayIndexOf(u,n)>=0)return!1;var t=n.match(f);return t===null?!1:t[1]?"Object("+t[1]+")"+t[2]:n}function i(n){var r=h.utils.stringTrim(n),l,f,i,v;r.charCodeAt(0)===123&&(r=r.slice(1,-1));var y=[],o=r.match(t),e,u=[],a=0;if(o)for(o.push(","),l=0;f=o[l];++l){if(i=f.charCodeAt(0),i===44){if(a<=0){y.push(e&&u.length?{key:e,value:u.join("")}:{unknown:e||u.join("")});e=a=0;u=[];continue}}else if(i===58){if(!a&&!e&&u.length===1){e=u.pop();continue}}else i===47&&l&&f.length>1?(v=o[l-1].match(s),v&&!c[v[0]]&&(r=r.substr(r.indexOf(f)+1),o=r.match(t),o.push(","),l=-1,f="/")):i===40||i===123||i===91?++a:i===41||i===125||i===93?--a:e||u.length||i!==34&&i!==39||(f=f.slice(1,-1));u.push(f)}return y}function l(n,t){function u(n,t){function l(i){return i&&i.preprocess?t=i.preprocess(t,n,u):!0}var i;if(!c){if(!l(h.getBindingHandler(n)))return;r[n]&&(i=e(t))&&f.push("'"+n+"':function(_z){"+i+"=_z}")}s&&(t="function(){return "+t+" }");o.push("'"+n+"':"+t)}t=t||{};var o=[],f=[],s=t.valueAccessors,c=t.bindingParams,l=typeof n=="string"?i(n):n;return h.utils.arrayForEach(l,function(n){u(n.key||n.unknown,n.value)}),f.length&&u("_ko_property_writers","{"+f.join(",")+" }"),o.join(",")}var u=["true","false","null","undefined"],f=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,n=",\"'{}()/:[\\]",o="[^\\s:,/][^"+n+"]*[^\\s"+n+"]",t=RegExp("\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|/(?:[^/\\\\]|\\\\.)*/w*|"+o+"|[^\\s]","g"),s=/[\])"'A-Za-z0-9_$]+$/,c={"in":1,"return":1,"typeof":1},r={};return{bindingRewriteValidators:[],twoWayBindings:r,parseObjectLiteral:i,preProcessBindings:l,keyValueArrayContainsKey:function(n,t){for(var i=0;i<n.length;i++)if(n[i].key==t)return!0;return!1},writeValueToProperty:function(n,t,i,r,u){if(n&&h.isObservable(n))h.isWriteableObservable(n)&&(!u||n.peek()!==r)&&n(r);else{var f=t.get("_ko_property_writers");f&&f[i]&&f[i](r)}}}}();h.exportSymbol("expressionRewriting",h.expressionRewriting);h.exportSymbol("expressionRewriting.bindingRewriteValidators",h.expressionRewriting.bindingRewriteValidators);h.exportSymbol("expressionRewriting.parseObjectLiteral",h.expressionRewriting.parseObjectLiteral);h.exportSymbol("expressionRewriting.preProcessBindings",h.expressionRewriting.preProcessBindings);h.exportSymbol("expressionRewriting._twoWayBindings",h.expressionRewriting.twoWayBindings);h.exportSymbol("jsonExpressionRewriting",h.expressionRewriting);h.exportSymbol("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",h.expressionRewriting.preProcessBindings),function(){function n(n){return n.nodeType==8&&u.test(t?n.text:n.nodeValue)}function r(n){return n.nodeType==8&&o.test(t?n.text:n.nodeValue)}function f(t,i){for(var u=t,f=1,e=[];u=u.nextSibling;){if(r(u)&&(f--,f===0))return e;e.push(u);n(u)&&f++}if(!i)throw new Error("Cannot find closing comment tag to match: "+t.nodeValue);return null}function e(n,t){var i=f(n,t);return i?i.length>0?i[i.length-1].nextSibling:n.nextSibling:null}function c(t){var i=t.firstChild,u=null,f;if(i)do u?u.push(i):n(i)?(f=e(i,!0),f?i=f:u=[i]):r(i)&&(u=[i]);while(i=i.nextSibling);return u}var t=i&&i.createComment("test").text==="<!--test-->",u=t?/^<!--\s*ko(?:\s+([\s\S]+))?\s*-->$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,o=t?/^<!--\s*\/ko\s*-->$/:/^\s*\/ko\s*$/,s={ul:!0,ol:!0};h.virtualElements={allowedBindings:{},childNodes:function(t){return n(t)?f(t):t.childNodes},emptyNode:function(t){var r,i,u;if(n(t))for(r=h.virtualElements.childNodes(t),i=0,u=r.length;i<u;i++)h.removeNode(r[i]);else h.utils.emptyDomNode(t)},setDomNodeChildren:function(t,i){var u,r,f;if(n(t))for(h.virtualElements.emptyNode(t),u=t.nextSibling,r=0,f=i.length;r<f;r++)u.parentNode.insertBefore(i[r],u);else h.utils.setDomNodeChildren(t,i)},prepend:function(t,i){n(t)?t.parentNode.insertBefore(i,t.nextSibling):t.firstChild?t.insertBefore(i,t.firstChild):t.appendChild(i)},insertAfter:function(t,i,r){r?n(t)?t.parentNode.insertBefore(i,r.nextSibling):r.nextSibling?t.insertBefore(i,r.nextSibling):t.appendChild(i):h.virtualElements.prepend(t,i)},firstChild:function(t){return n(t)?!t.nextSibling||r(t.nextSibling)?null:t.nextSibling:t.firstChild},nextSibling:function(t){return(n(t)&&(t=e(t)),t.nextSibling&&r(t.nextSibling))?null:t.nextSibling},hasBindingValue:n,virtualNodeBindingValue:function(n){var i=(t?n.text:n.nodeValue).match(u);return i?i[1]:null},normaliseVirtualElementDomStructure:function(n){var t,i,u,r;if(s[h.utils.tagNameLower(n)]&&(t=n.firstChild,t))do if(t.nodeType===1&&(i=c(t),i))for(u=t.nextSibling,r=0;r<i.length;r++)u?n.insertBefore(i[r],u):n.appendChild(i[r]);while(t=t.nextSibling)}}}();h.exportSymbol("virtualElements",h.virtualElements);h.exportSymbol("virtualElements.allowedBindings",h.virtualElements.allowedBindings);h.exportSymbol("virtualElements.emptyNode",h.virtualElements.emptyNode);h.exportSymbol("virtualElements.insertAfter",h.virtualElements.insertAfter);h.exportSymbol("virtualElements.prepend",h.virtualElements.prepend);h.exportSymbol("virtualElements.setDomNodeChildren",h.virtualElements.setDomNodeChildren),function(){function t(n,t,r){var u=n+(r&&r.valueAccessors||"");return t[u]||(t[u]=i(n,r))}function i(n,t){var i=h.expressionRewriting.preProcessBindings(n,t),r="with($context){with($data||{}){return{"+i+"}}}";return new Function("$context","$element",r)}var n="data-bind";h.bindingProvider=function(){this.bindingCache={}};h.utils.extend(h.bindingProvider.prototype,{nodeHasBindings:function(t){switch(t.nodeType){case 1:return t.getAttribute(n)!=null||h.components.getComponentNameForNode(t);case 8:return h.virtualElements.hasBindingValue(t);default:return!1}},getBindings:function(n,t){var i=this.getBindingsString(n,t),r=i?this.parseBindingsString(i,t,n):null;return h.components.addBindingsForCustomElement(r,n,t,!1)},getBindingAccessors:function(n,t){var i=this.getBindingsString(n,t),r=i?this.parseBindingsString(i,t,n,{valueAccessors:!0}):null;return h.components.addBindingsForCustomElement(r,n,t,!0)},getBindingsString:function(t){switch(t.nodeType){case 1:return t.getAttribute(n);case 8:return h.virtualElements.virtualNodeBindingValue(t);default:return null}},parseBindingsString:function(n,i,r,u){try{var e=t(n,this.bindingCache,u);return e(i,r)}catch(f){f.message="Unable to parse bindings.\nBindings value: "+n+"\nMessage: "+f.message;throw f;}}});h.bindingProvider.instance=new h.bindingProvider}();h.exportSymbol("bindingProvider",h.bindingProvider),function(){function v(n){return function(){return n}}function i(n){return n()}function s(n){return h.utils.objectMap(h.dependencyDetection.ignore(n),function(t,i){return function(){return n()[i]}})}function y(n,t,i){return typeof n=="function"?s(n.bind(null,t,i)):h.utils.objectMap(n,v)}function p(n,t){return s(this.getBindings.bind(this,n,t))}function w(n){var t=h.virtualElements.allowedBindings[n];if(!t)throw new Error("The binding '"+n+"' cannot be used with virtual elements");}function c(n,t,i){var r,u=h.virtualElements.firstChild(t),f=h.bindingProvider.instance,e=f.preprocessNode;if(e){while(r=u)u=h.virtualElements.nextSibling(r),e.call(f,r);u=h.virtualElements.firstChild(t)}while(r=u)u=h.virtualElements.nextSibling(r),l(n,r,i)}function l(n,t,i){var u=!0,r=t.nodeType===1,f;r&&h.virtualElements.normaliseVirtualElementDomStructure(t);f=r&&i||h.bindingProvider.instance.nodeHasBindings(t);f&&(u=a(t,null,n,i).shouldBindDescendants);u&&!o[h.utils.tagNameLower(t)]&&c(n,t,!r)}function b(n){var i=[],r={},t=[];return h.utils.objectForEach(n,function u(f){if(!r[f]){var e=h.getBindingHandler(f);e&&(e.after&&(t.push(f),h.utils.arrayForEach(e.after,function(i){if(n[i])if(h.utils.arrayIndexOf(t,i)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+t.join(", "));else u(i)}),t.length--),i.push({key:f,handler:e}));r[f]=!0}}),i}function a(n,r,u,e){var v=h.utils.domData.get(n,f),o,c,l,k;if(!r){if(v)throw Error("You cannot apply bindings multiple times to the same element.");h.utils.domData.set(n,f,!0)}if(!v&&e&&h.storedBindingContextForNode(n,u),r&&typeof r!="function")o=r;else{var y=h.bindingProvider.instance,d=y.getBindingAccessors||p,s=h.dependentObservable(function(){return o=r?r(u,n):d.call(y,n,u),o&&u._subscribable&&u._subscribable(),o},null,{disposeWhenNodeIsRemoved:n});o&&s.isActive()||(s=null)}if(o){l=s?function(n){return function(){return i(s()[n])}}:function(n){return o[n]};function a(){return h.utils.objectMap(s?s():o,i)}a.get=function(n){return o[n]&&i(l(n))};a.has=function(n){return n in o};k=b(o);h.utils.arrayForEach(k,function(i){var e=i.handler.init,s=i.handler.update,r=i.key;n.nodeType===8&&w(r);try{typeof e=="function"&&h.dependencyDetection.ignore(function(){var i=e(n,l(r),a,u.$data,u);if(i&&i.controlsDescendantBindings){if(c!==t)throw new Error("Multiple bindings ("+c+" and "+r+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");c=r}});typeof s=="function"&&h.dependentObservable(function(){s(n,l(r),a,u.$data,u)},null,{disposeWhenNodeIsRemoved:n})}catch(f){f.message='Unable to process binding "'+r+": "+o[r]+'"\nMessage: '+f.message;throw f;}})}return{shouldBindDescendants:c===t}}function n(n){return n&&n instanceof h.bindingContext?n:new h.bindingContext(n)}var o,f,e;h.bindingHandlers={};o={script:!0,textarea:!0,template:!0};h.getBindingHandler=function(n){return h.bindingHandlers[n]};h.bindingContext=function(n,i,r,u,f){function c(){var f=a?n():n,t=h.utils.unwrapObservable(f);return i?(i._subscribable&&i._subscribable(),h.utils.extend(e,i),e._subscribable=o):(e.$parents=[],e.$root=t,e.ko=h),e.$rawData=f,e.$data=t,r&&(e[r]=t),u&&u(e,i,t),e.$data}function l(){return s&&!h.utils.anyDomNodeIsAttachedToDocument(s)}var e=this,a=typeof n=="function"&&!h.isObservable(n),s,o;f&&f.exportDependencies?c():(o=h.dependentObservable(c,null,{disposeWhen:l,disposeWhenNodeIsRemoved:!0}),o.isActive()&&(e._subscribable=o,o.equalityComparer=null,s=[],o._addNode=function(n){s.push(n);h.utils.domNodeDisposal.addDisposeCallback(n,function(n){h.utils.arrayRemoveItem(s,n);s.length||(o.dispose(),e._subscribable=o=t)})}))};h.bindingContext.prototype.createChildContext=function(n,t,i,r){return new h.bindingContext(n,this,t,function(n,t){n.$parentContext=t;n.$parent=t.$data;n.$parents=(t.$parents||[]).slice(0);n.$parents.unshift(n.$parent);i&&i(n)},r)};h.bindingContext.prototype.extend=function(n){return new h.bindingContext(this._subscribable||this.$data,this,null,function(t,i){t.$rawData=i.$rawData;h.utils.extend(t,typeof n=="function"?n():n)})};h.bindingContext.prototype.createStaticChildContext=function(n,t){return this.createChildContext(n,t,null,{exportDependencies:!0})};f=h.utils.domData.nextKey();e=h.utils.domData.nextKey();h.storedBindingContextForNode=function(n,t){if(arguments.length==2)h.utils.domData.set(n,e,t),t._subscribable&&t._subscribable._addNode(n);else return h.utils.domData.get(n,e)};h.applyBindingAccessorsToNode=function(t,i,r){return t.nodeType===1&&h.virtualElements.normaliseVirtualElementDomStructure(t),a(t,i,n(r),!0)};h.applyBindingsToNode=function(t,i,r){var u=n(r);return h.applyBindingAccessorsToNode(t,y(i,u,t),u)};h.applyBindingsToDescendants=function(t,i){(i.nodeType===1||i.nodeType===8)&&c(n(t),i,!0)};h.applyBindings=function(t,i){if(!r&&u.jQuery&&(r=u.jQuery),i&&i.nodeType!==1&&i.nodeType!==8)throw new Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");i=i||u.document.body;l(n(t),i,!0)};h.contextFor=function(n){switch(n.nodeType){case 1:case 8:var i=h.storedBindingContextForNode(n);if(i)return i;if(n.parentNode)return h.contextFor(n.parentNode)}return t};h.dataFor=function(n){var i=h.contextFor(n);return i?i.$data:t};h.exportSymbol("bindingHandlers",h.bindingHandlers);h.exportSymbol("applyBindings",h.applyBindings);h.exportSymbol("applyBindingsToDescendants",h.applyBindingsToDescendants);h.exportSymbol("applyBindingAccessorsToNode",h.applyBindingAccessorsToNode);h.exportSymbol("applyBindingsToNode",h.applyBindingsToNode);h.exportSymbol("contextFor",h.contextFor);h.exportSymbol("dataFor",h.dataFor)}(),function(n){function u(t,i){return t.hasOwnProperty(i)?t[i]:n}function f(n,t){var f=u(i,n),o;f?f.subscribe(t):(f=i[n]=new h.subscribable,f.subscribe(t),e(n,function(t,u){var e=!!(u&&u.synchronous);r[n]={definition:t,isSynchronousComponent:e};delete i[n];o||e?f.notifySubscribers(t):h.tasks.schedule(function(){f.notifySubscribers(t)})}),o=!0)}function e(n,i){t("getConfig",[n],function(r){r?t("loadComponent",[n,r],function(n){i(n,r)}):i(null,null)})}function t(i,r,u,f){var e,o,s,c;if(f||(f=h.components.loaders.slice(0)),e=f.shift(),e)if(o=e[i],o){if(s=!1,c=o.apply(e,r.concat(function(n){s?u(null):n!==null?u(n):t(i,r,u,f)})),c!==n&&(s=!0,!e.suppressLoaderExceptions))throw new Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else t(i,r,u,f);else u(null)}var i={},r={};h.components={get:function(n,t){var i=u(r,n);i?i.isSynchronousComponent?h.dependencyDetection.ignore(function(){t(i.definition)}):h.tasks.schedule(function(){t(i.definition)}):f(n,t)},clearCachedDefinition:function(n){delete r[n]},_getFirstResultFromLoaders:t};h.components.loaders=[];h.exportSymbol("components",h.components);h.exportSymbol("components.get",h.components.get);h.exportSymbol("components.clearCachedDefinition",h.components.clearCachedDefinition)}(),function(){function l(n,i,u,f){var o={},l=2,e=function(){--l==0&&f(o)},s=u.template,c=u.viewModel;s?r(i,s,function(t){h.components._getFirstResultFromLoaders("loadTemplate",[n,t],function(n){o.template=n;e()})}):e();c?r(i,c,function(i){h.components._getFirstResultFromLoaders("loadViewModel",[n,i],function(n){o[t]=n;e()})}):e()}function a(n,t,r){var u,f;typeof t=="string"?r(h.utils.parseHtmlFragment(t)):t instanceof Array?r(t):c(t)?r(h.utils.makeArray(t.childNodes)):t.element?(u=t.element,v(u)?r(o(u)):typeof u=="string"?(f=i.getElementById(u),f?r(o(f)):n("Cannot find element with ID "+u)):n("Unknown element type: "+u)):n("Unknown template value: "+t)}function e(n,i,r){if(typeof i=="function")r(function(n){return new i(n)});else if(typeof i[t]=="function")r(i[t]);else if("instance"in i){var u=i.instance;r(function(){return u})}else"viewModel"in i?e(n,i.viewModel,r):n("Unknown viewModel value: "+i)}function o(n){switch(h.utils.tagNameLower(n)){case"script":return h.utils.parseHtmlFragment(n.text);case"textarea":return h.utils.parseHtmlFragment(n.value);case"template":if(c(n.content))return h.utils.cloneNodes(n.content.childNodes)}return h.utils.cloneNodes(n.childNodes)}function v(n){return u.HTMLElement?n instanceof HTMLElement:n&&n.tagName&&n.nodeType===1}function c(n){return u.DocumentFragment?n instanceof DocumentFragment:n&&n.nodeType===11}function r(n,t,i){typeof t.require=="string"?s||u.require?(s||u.require)([t.require],i):n("Uses require, but no AMD loader is present"):i(t)}function f(n){return function(t){throw new Error("Component '"+n+"': "+t);}}var n={},t;h.components.register=function(t,i){if(!i)throw new Error("Invalid configuration for "+t);if(h.components.isRegistered(t))throw new Error("Component "+t+" is already registered");n[t]=i};h.components.isRegistered=function(t){return n.hasOwnProperty(t)};h.components.unregister=function(t){delete n[t];h.components.clearCachedDefinition(t)};h.components.defaultLoader={getConfig:function(t,i){var r=n.hasOwnProperty(t)?n[t]:null;i(r)},loadComponent:function(n,t,i){var u=f(n);r(u,t,function(t){l(n,u,t,i)})},loadTemplate:function(n,t,i){a(f(n),t,i)},loadViewModel:function(n,t,i){e(f(n),t,i)}};t="createViewModel";h.exportSymbol("components.register",h.components.register);h.exportSymbol("components.isRegistered",h.components.isRegistered);h.exportSymbol("components.unregister",h.components.unregister);h.exportSymbol("components.defaultLoader",h.components.defaultLoader);h.components.loaders.push(h.components.defaultLoader);h.components._allRegisteredComponents=n}(),function(){function t(t,i){var u=t.getAttribute("params");if(u){var e=n.parseBindingsString(u,i,t,{valueAccessors:!0,bindingParams:!0}),f=h.utils.objectMap(e,function(n){return h.computed(n,null,{disposeWhenNodeIsRemoved:t})}),r=h.utils.objectMap(f,function(n){var i=n.peek();return n.isActive()?h.computed({read:function(){return h.utils.unwrapObservable(n())},write:h.isWriteableObservable(i)&&function(t){n()(t)},disposeWhenNodeIsRemoved:t}):i});return r.hasOwnProperty("$raw")||(r.$raw=f),r}return{$raw:{}}}h.components.getComponentNameForNode=function(n){var t=h.utils.tagNameLower(n);if(h.components.isRegistered(t)&&(t.indexOf("-")!=-1||""+n=="[object HTMLUnknownElement]"||h.utils.ieVersion<=8&&n.tagName===t))return t};h.components.addBindingsForCustomElement=function(n,i,r,u){var f,e;if(i.nodeType===1&&(f=h.components.getComponentNameForNode(i),f)){if(n=n||{},n.component)throw new Error('Cannot use the "component" binding on a custom element matching a component');e={name:f,params:t(i,r)};n.component=u?function(){return e}:e}return n};var n=new h.bindingProvider;h.utils.ieVersion<9&&(h.components.register=function(n){return function(t){return i.createElement(t),n.apply(this,arguments)}}(h.components.register),i.createDocumentFragment=function(n){return function(){var t=n(),i=h.components._allRegisteredComponents;for(var r in i)i.hasOwnProperty(r)&&t.createElement(r);return t}}(i.createDocumentFragment))}(),function(n){function i(n,t,i){var r=t.template,u;if(!r)throw new Error("Component '"+n+"' has no template");u=h.utils.cloneNodes(r);h.virtualElements.setDomNodeChildren(i,u)}function r(n,t,i,r){var u=n.createViewModel;return u?u.call(n,r,{element:t,templateNodes:i}):r}var t=0;h.bindingHandlers.component={init:function(u,f,e,o,s){var c,l,a=function(){var n=c&&c.dispose;typeof n=="function"&&n.call(c);c=null;l=null},v=h.utils.makeArray(h.virtualElements.childNodes(u));return h.utils.domNodeDisposal.addDisposeCallback(u,a),h.computed(function(){var o=h.utils.unwrapObservable(f()),e,y,p;if(typeof o=="string"?e=o:(e=h.utils.unwrapObservable(o.name),y=h.utils.unwrapObservable(o.params)),!e)throw new Error("No component name specified");p=l=++t;h.components.get(e,function(t){if(l===p){if(a(),!t)throw new Error("Unknown component '"+e+"'");i(e,t,u);var f=r(t,u,v,y),o=s.createChildContext(f,n,function(n){n.$component=f;n.$componentTemplateNodes=v});c=f;h.applyBindingsToDescendants(o,u)}})},null,{disposeWhenNodeIsRemoved:u}),{controlsDescendantBindings:!0}}};h.virtualElements.allowedBindings.component=!0}();it={"class":"className","for":"htmlFor"};h.bindingHandlers.attr={update:function(n,i){var r=h.utils.unwrapObservable(i())||{};h.utils.objectForEach(r,function(i,r){r=h.utils.unwrapObservable(r);var u=r===!1||r===null||r===t;u&&n.removeAttribute(i);h.utils.ieVersion<=8&&i in it?(i=it[i],u?n.removeAttribute(i):n[i]=r):u||n.setAttribute(i,r.toString());i==="name"&&h.utils.setElementName(n,u?"":r.toString())})}},function(){h.bindingHandlers.checked={after:["value","attr"],init:function(n,i,r){function l(){var l=n.checked,o=y?f():l,t,s;h.computedContext.isInitial()||(!e||l)&&(t=h.dependencyDetection.ignore(i),u?(s=a?t.peek():t,c!==o?(l&&(h.utils.addOrRemoveItem(s,o,!0),h.utils.addOrRemoveItem(s,c,!1)),c=o):h.utils.addOrRemoveItem(s,o,l),a&&h.isWriteableObservable(t)&&t(s)):h.expressionRewriting.writeValueToProperty(t,r,"checked",o,!0))}function v(){var t=h.utils.unwrapObservable(i());n.checked=u?h.utils.arrayIndexOf(t,f())>=0:s?t:f()===t}var f=h.pureComputed(function(){return r.has("checkedValue")?h.utils.unwrapObservable(r.get("checkedValue")):r.has("value")?h.utils.unwrapObservable(r.get("value")):n.value}),s=n.type=="checkbox",e=n.type=="radio";if(s||e){var o=i(),u=s&&h.utils.unwrapObservable(o)instanceof Array,a=!(u&&o.push&&o.splice),c=u?f():t,y=e||u;e&&!n.name&&h.bindingHandlers.uniqueName.init(n,function(){return!0});h.computed(l,null,{disposeWhenNodeIsRemoved:n});h.utils.registerEventHandler(n,"click",l);h.computed(v,null,{disposeWhenNodeIsRemoved:n});o=t}}};h.expressionRewriting.twoWayBindings.checked=!0;h.bindingHandlers.checkedValue={update:function(n,t){n.value=h.utils.unwrapObservable(t())}}}();rt="__ko__cssValue";h.bindingHandlers.css={update:function(n,t){var i=h.utils.unwrapObservable(t());i!==null&&typeof i=="object"?h.utils.objectForEach(i,function(t,i){i=h.utils.unwrapObservable(i);h.utils.toggleDomNodeCssClass(n,t,i)}):(i=h.utils.stringTrim(String(i||"")),h.utils.toggleDomNodeCssClass(n,n[rt],!1),n[rt]=i,h.utils.toggleDomNodeCssClass(n,i,!0))}};h.bindingHandlers.enable={update:function(n,t){var i=h.utils.unwrapObservable(t());i&&n.disabled?n.removeAttribute("disabled"):i||n.disabled||(n.disabled=!0)}};h.bindingHandlers.disable={update:function(n,t){h.bindingHandlers.enable.update(n,function(){return!h.utils.unwrapObservable(t())})}};h.bindingHandlers.event={init:function(n,t,i,r,u){var f=t()||{};h.utils.objectForEach(f,function(f){typeof f=="string"&&h.utils.registerEventHandler(n,f,function(n){var o,s=t()[f],e,c;if(s){try{e=h.utils.makeArray(arguments);r=u.$data;e.unshift(r);o=s.apply(r,e)}finally{o!==!0&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}c=i.get(f+"Bubble")!==!1;c||(n.cancelBubble=!0,n.stopPropagation&&n.stopPropagation())}})})}};h.bindingHandlers.foreach={makeTemplateValueAccessor:function(n){return function(){var i=n(),t=h.utils.peekObservable(i);return!t||typeof t.length=="number"?{foreach:i,templateEngine:h.nativeTemplateEngine.instance}:(h.utils.unwrapObservable(i),{foreach:t.data,as:t.as,includeDestroyed:t.includeDestroyed,afterAdd:t.afterAdd,beforeRemove:t.beforeRemove,afterRender:t.afterRender,beforeMove:t.beforeMove,afterMove:t.afterMove,templateEngine:h.nativeTemplateEngine.instance})}},init:function(n,t){return h.bindingHandlers.template.init(n,h.bindingHandlers.foreach.makeTemplateValueAccessor(t))},update:function(n,t,i,r,u){return h.bindingHandlers.template.update(n,h.bindingHandlers.foreach.makeTemplateValueAccessor(t),i,r,u)}};h.expressionRewriting.bindingRewriteValidators.foreach=!1;h.virtualElements.allowedBindings.foreach=!0;k="__ko_hasfocusUpdating";d="__ko_hasfocusLastValue";h.bindingHandlers.hasfocus={init:function(n,t,i){var r=function(r){var u,f,e;if(n[k]=!0,u=n.ownerDocument,"activeElement"in u){try{f=u.activeElement}catch(o){f=u.body}r=f===n}e=t();h.expressionRewriting.writeValueToProperty(e,i,"hasfocus",r,!0);n[d]=r;n[k]=!1},u=r.bind(null,!0),f=r.bind(null,!1);h.utils.registerEventHandler(n,"focus",u);h.utils.registerEventHandler(n,"focusin",u);h.utils.registerEventHandler(n,"blur",f);h.utils.registerEventHandler(n,"focusout",f)},update:function(n,t){var i=!!h.utils.unwrapObservable(t());n[k]||n[d]===i||(i?n.focus():n.blur(),!i&&n[d]&&n.ownerDocument.body.focus(),h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,i?"focusin":"focusout"]))}};h.expressionRewriting.twoWayBindings.hasfocus=!0;h.bindingHandlers.hasFocus=h.bindingHandlers.hasfocus;h.expressionRewriting.twoWayBindings.hasFocus=!0;h.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){h.utils.setHtml(n,t())}};ut("if");ut("ifnot",!1,!0);ut("with",!0,!1,function(n,t){return n.createStaticChildContext(t)});g={};h.bindingHandlers.options={init:function(n){if(h.utils.tagNameLower(n)!=="select")throw new Error("options binding applies only to SELECT elements");while(n.length>0)n.remove(0);return{controlsDescendantBindings:!0}},update:function(n,i,r){function y(){return h.utils.arrayFilter(n.options,function(n){return n.selected})}function w(n,t,i){var r=typeof t;return r=="function"?t(n):r=="string"?n[t]:i}function nt(i,f,s){var c,l,a;return s.length&&(u=!e&&s[0].selected?[h.selectExtensions.readValue(s[0])]:[],o=!0),c=n.ownerDocument.createElement("option"),i===g?(h.utils.setTextContent(c,r.get("optionsCaption")),h.selectExtensions.writeValue(c,t)):(l=w(i,r.get("optionsValue"),i),h.selectExtensions.writeValue(c,h.utils.unwrapObservable(l)),a=w(i,r.get("optionsText"),l),h.utils.setTextContent(c,a)),[c]}function b(t,i){if(o&&e)h.selectExtensions.writeValue(n,h.utils.unwrapObservable(r.get("value")),!0);else if(u.length){var f=h.utils.arrayIndexOf(u,h.selectExtensions.readValue(i[0]))>=0;h.utils.setOptionNodeSelectionState(i[0],f);o&&!f&&h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,"change"])}}var k=n.length==0,s=n.multiple,c=!k&&s?n.scrollTop:null,f=h.utils.unwrapObservable(i()),e=r.get("valueAllowUnset")&&r.has("value"),d=r.get("optionsIncludeDestroyed"),p={},l,a,u=[],o,v;e||(s?u=h.utils.arrayMap(y(),h.selectExtensions.readValue):n.selectedIndex>=0&&u.push(h.selectExtensions.readValue(n.options[n.selectedIndex])));f&&(typeof f.length=="undefined"&&(f=[f]),a=h.utils.arrayFilter(f,function(n){return d||n===t||n===null||!h.utils.unwrapObservable(n._destroy)}),r.has("optionsCaption")&&(l=h.utils.unwrapObservable(r.get("optionsCaption")),l!==null&&l!==t&&a.unshift(g)));o=!1;p.beforeRemove=function(t){n.removeChild(t)};v=b;r.has("optionsAfterRender")&&typeof r.get("optionsAfterRender")=="function"&&(v=function(n,i){b(n,i);h.dependencyDetection.ignore(r.get("optionsAfterRender"),null,[i[0],n!==g?n:t])});h.utils.setDomNodeChildrenFromArrayMapping(n,a,nt,p,v);h.dependencyDetection.ignore(function(){if(e)h.selectExtensions.writeValue(n,h.utils.unwrapObservable(r.get("value")),!0);else{var t;t=s?u.length&&y().length<u.length:u.length&&n.selectedIndex>=0?h.selectExtensions.readValue(n.options[n.selectedIndex])!==u[0]:u.length||n.selectedIndex>=0;t&&h.utils.triggerEvent(n,"change")}});h.utils.ensureSelectElementIsRenderedCorrectly(n);c&&Math.abs(c-n.scrollTop)>20&&(n.scrollTop=c)}};h.bindingHandlers.options.optionValueDomDataKey=h.utils.domData.nextKey();h.bindingHandlers.selectedOptions={after:["options","foreach"],init:function(n,t,i){h.utils.registerEventHandler(n,"change",function(){var u=t(),r=[];h.utils.arrayForEach(n.getElementsByTagName("option"),function(n){n.selected&&r.push(h.selectExtensions.readValue(n))});h.expressionRewriting.writeValueToProperty(u,i,"selectedOptions",r)})},update:function(n,t){if(h.utils.tagNameLower(n)!="select")throw new Error("values binding applies only to SELECT elements");var i=h.utils.unwrapObservable(t()),r=n.scrollTop;i&&typeof i.length=="number"&&h.utils.arrayForEach(n.getElementsByTagName("option"),function(n){var t=h.utils.arrayIndexOf(i,h.selectExtensions.readValue(n))>=0;n.selected!=t&&h.utils.setOptionNodeSelectionState(n,t)});n.scrollTop=r}};h.expressionRewriting.twoWayBindings.selectedOptions=!0;h.bindingHandlers.style={update:function(n,i){var r=h.utils.unwrapObservable(i()||{});h.utils.objectForEach(r,function(i,r){r=h.utils.unwrapObservable(r);(r===null||r===t||r===!1)&&(r="");n.style[i]=r})}};h.bindingHandlers.submit={init:function(n,t,i,r,u){if(typeof t()!="function")throw new Error("The value for a submit binding must be a function");h.utils.registerEventHandler(n,"submit",function(i){var r,f=t();try{r=f.call(u.$data,n)}finally{r!==!0&&(i.preventDefault?i.preventDefault():i.returnValue=!1)}})}};h.bindingHandlers.text={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){h.utils.setTextContent(n,t())}};h.virtualElements.allowedBindings.text=!0,function(){if(u&&u.navigator)var i=function(n){if(n)return parseFloat(n[1])},o=u.opera&&u.opera.version&&parseInt(u.opera.version()),r=u.navigator.userAgent,s=i(r.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),c=i(r.match(/Firefox\/([^ ]*)/));if(h.utils.ieVersion<10)var f=h.utils.domData.nextKey(),e=h.utils.domData.nextKey(),l=function(n){var t=this.activeElement,i=t&&h.utils.domData.get(t,e);i&&i(n)},a=function(n,t){var i=n.ownerDocument;h.utils.domData.get(i,f)||(h.utils.domData.set(i,f,!0),h.utils.registerEventHandler(i,"selectionchange",l));h.utils.domData.set(n,e,t)};h.bindingHandlers.textInput={init:function(i,r,u){var p=i.value,v,y,e=function(f){clearTimeout(v);y=v=t;var e=i.value;p!==e&&(n&&f&&(i._ko_textInputProcessedEvent=f.type),p=e,h.expressionRewriting.writeValueToProperty(r(),u,"textInput",e))},l=function(t){if(!v){y=i.value;var r=n?e.bind(i,{type:t.type}):e;v=h.utils.setTimeout(r,4)}},w=h.utils.ieVersion==9?l:e,b=function(){var n=h.utils.unwrapObservable(r());if((n===null||n===t)&&(n=""),y!==t&&n===y){h.utils.setTimeout(b,4);return}i.value!==n&&(p=n,i.value=n)},f=function(n,t){h.utils.registerEventHandler(i,n,t)};n&&h.bindingHandlers.textInput._forceUpdateOn?h.utils.arrayForEach(h.bindingHandlers.textInput._forceUpdateOn,function(n){n.slice(0,5)=="after"?f(n.slice(5),l):f(n,e)}):h.utils.ieVersion<10?(f("propertychange",function(n){n.propertyName==="value"&&w(n)}),h.utils.ieVersion==8&&(f("keyup",e),f("keydown",e)),h.utils.ieVersion>=8&&(a(i,w),f("dragend",l))):(f("input",e),s<5&&h.utils.tagNameLower(i)==="textarea"?(f("keydown",l),f("paste",l),f("cut",l)):o<11?f("keydown",l):c<4&&(f("DOMAutoComplete",e),f("dragdrop",e),f("drop",e)));f("change",e);h.computed(b,null,{disposeWhenNodeIsRemoved:i})}};h.expressionRewriting.twoWayBindings.textInput=!0;h.bindingHandlers.textinput={preprocess:function(n,t,i){i("textInput",n)}}}();h.bindingHandlers.uniqueName={init:function(n,t){if(t()){var i="ko_unique_"+ ++h.bindingHandlers.uniqueName.currentIndex;h.utils.setElementName(n,i)}}};h.bindingHandlers.uniqueName.currentIndex=0;h.bindingHandlers.value={after:["options","foreach"],init:function(n,t,i){var o,c,s;if(n.tagName.toLowerCase()=="input"&&(n.type=="checkbox"||n.type=="radio")){h.applyBindingAccessorsToNode(n,{checkedValue:t});return}var r=["change"],u=i.get("valueUpdate"),f=!1,e=null;u&&(typeof u=="string"&&(u=[u]),h.utils.arrayPushAll(r,u),r=h.utils.arrayGetDistinctValues(r));o=function(){e=null;f=!1;var r=t(),u=h.selectExtensions.readValue(n);h.expressionRewriting.writeValueToProperty(r,i,"value",u)};c=h.utils.ieVersion&&n.tagName.toLowerCase()=="input"&&n.type=="text"&&n.autocomplete!="off"&&(!n.form||n.form.autocomplete!="off");c&&h.utils.arrayIndexOf(r,"propertychange")==-1&&(h.utils.registerEventHandler(n,"propertychange",function(){f=!0}),h.utils.registerEventHandler(n,"focus",function(){f=!1}),h.utils.registerEventHandler(n,"blur",function(){f&&o()}));h.utils.arrayForEach(r,function(t){var i=o;h.utils.stringStartsWith(t,"after")&&(i=function(){e=h.selectExtensions.readValue(n);h.utils.setTimeout(o,0)},t=t.substring(5));h.utils.registerEventHandler(n,t,i)});s=function(){var r=h.utils.unwrapObservable(t()),c=h.selectExtensions.readValue(n),o,u,f;if(e!==null&&r===e){h.utils.setTimeout(s,0);return}o=r!==c;o&&(h.utils.tagNameLower(n)==="select"?(u=i.get("valueAllowUnset"),f=function(){h.selectExtensions.writeValue(n,r,u)},f(),u||r===h.selectExtensions.readValue(n)?h.utils.setTimeout(f,0):h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,"change"])):h.selectExtensions.writeValue(n,r))};h.computed(s,null,{disposeWhenNodeIsRemoved:n})},update:function(){}};h.expressionRewriting.twoWayBindings.value=!0;h.bindingHandlers.visible={update:function(n,t){var i=h.utils.unwrapObservable(t()),r=!(n.style.display=="none");i&&!r?n.style.display="":!i&&r&&(n.style.display="none")}};yt("click");h.templateEngine=function(){};h.templateEngine.prototype.renderTemplateSource=function(){throw new Error("Override renderTemplateSource");};h.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(){throw new Error("Override createJavaScriptEvaluatorBlock");};h.templateEngine.prototype.makeTemplateSource=function(n,t){if(typeof n=="string"){t=t||i;var r=t.getElementById(n);if(!r)throw new Error("Cannot find template with ID "+n);return new h.templateSources.domElement(r)}if(n.nodeType==1||n.nodeType==8)return new h.templateSources.anonymousTemplate(n);throw new Error("Unknown template type: "+n);};h.templateEngine.prototype.renderTemplate=function(n,t,i,r){var u=this.makeTemplateSource(n,r);return this.renderTemplateSource(u,t,i,r)};h.templateEngine.prototype.isTemplateRewritten=function(n,t){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(n,t).data("isRewritten")};h.templateEngine.prototype.rewriteTemplate=function(n,t,i){var r=this.makeTemplateSource(n,i),u=t(r.text());r.text(u);r.data("isRewritten",!0)};h.exportSymbol("templateEngine",h.templateEngine);h.templateRewriting=function(){function r(n){for(var i,r,u,f=h.expressionRewriting.bindingRewriteValidators,t=0;t<n.length;t++)if(i=n[t].key,f.hasOwnProperty(i))if(r=f[i],typeof r=="function"){if(u=r(n[t].value),u)throw new Error(u);}else if(!r)throw new Error("This template engine does not support the '"+i+"' binding within its templates");}function n(n,t,i,u){var f=h.expressionRewriting.parseObjectLiteral(n),e,o;return r(f),e=h.expressionRewriting.preProcessBindings(f,{valueAccessors:!0}),o="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+e+" } })()},'"+i.toLowerCase()+"')",u.createJavaScriptEvaluatorBlock(o)+t}var t=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,i=/<!--\s*ko\b\s*([\s\S]*?)\s*-->/g;return{ensureTemplateIsRewritten:function(n,t,i){t.isTemplateRewritten(n,i)||t.rewriteTemplate(n,function(n){return h.templateRewriting.memoizeBindingAttributeSyntax(n,t)},i)},memoizeBindingAttributeSyntax:function(r,u){return r.replace(t,function(){return n(arguments[4],arguments[1],arguments[2],u)}).replace(i,function(){return n(arguments[1],"<!-- ko -->","#comment",u)})},applyMemoizedBindingsToNextSibling:function(n,t){return h.memoization.memoize(function(i,r){var u=i.nextSibling;u&&u.nodeName.toLowerCase()===t&&h.applyBindingAccessorsToNode(u,n,r)})}}}();h.exportSymbol("__tr_ambtns",h.templateRewriting.applyMemoizedBindingsToNextSibling),function(){function o(n){return h.utils.domData.get(n,i)||{}}function s(n,t){h.utils.domData.set(n,i,t)}var n,i;h.templateSources={};var r=1,u=2,f=3,e=4;h.templateSources.domElement=function(n){if(this.domElement=n,n){var t=h.utils.tagNameLower(n);this.templateType=t==="script"?r:t==="textarea"?u:t=="template"&&n.content&&n.content.nodeType===11?f:e}};h.templateSources.domElement.prototype.text=function(){var n=this.templateType===r?"text":this.templateType===u?"value":"innerHTML",t;if(arguments.length==0)return this.domElement[n];t=arguments[0];n==="innerHTML"?h.utils.setHtml(this.domElement,t):this.domElement[n]=t};n=h.utils.domData.nextKey()+"_";h.templateSources.domElement.prototype.data=function(t){if(arguments.length===1)return h.utils.domData.get(this.domElement,n+t);h.utils.domData.set(this.domElement,n+t,arguments[1])};i=h.utils.domData.nextKey();h.templateSources.domElement.prototype.nodes=function(){var n=this.domElement,i,r,u;if(arguments.length==0)return i=o(n),r=i.containerData,r||(this.templateType===f?n.content:this.templateType===e?n:t);u=arguments[0];s(n,{containerData:u})};h.templateSources.anonymousTemplate=function(n){this.domElement=n};h.templateSources.anonymousTemplate.prototype=new h.templateSources.domElement;h.templateSources.anonymousTemplate.prototype.constructor=h.templateSources.anonymousTemplate;h.templateSources.anonymousTemplate.prototype.text=function(){var n,i;if(arguments.length==0)return n=o(this.domElement),n.textData===t&&n.containerData&&(n.textData=n.containerData.innerHTML),n.textData;i=arguments[0];s(this.domElement,{textData:i})};h.exportSymbol("templateSources",h.templateSources);h.exportSymbol("templateSources.domElement",h.templateSources.domElement);h.exportSymbol("templateSources.anonymousTemplate",h.templateSources.anonymousTemplate)}(),function(){function i(n,t,i){for(var u,r=n,f=h.virtualElements.nextSibling(t);r&&(u=r)!==f;)r=h.virtualElements.nextSibling(u),i(u,r)}function f(n,t){if(n.length){var r=n[0],u=n[n.length-1],f=r.parentNode,e=h.bindingProvider.instance,o=e.preprocessNode;if(o){if(i(r,u,function(n,t){var f=n.previousSibling,i=o.call(e,n);i&&(n===r&&(r=i[0]||t),n===u&&(u=i[i.length-1]||f))}),n.length=0,!r)return;r===u?n.push(r):(n.push(r,u),h.utils.fixUpContinuousNodeArray(n,f))}i(r,u,function(n){(n.nodeType===1||n.nodeType===8)&&h.applyBindings(t,n)});i(r,u,function(n){(n.nodeType===1||n.nodeType===8)&&h.memoization.unmemoizeDomNodeAndDescendants(n,[t])});h.utils.fixUpContinuousNodeArray(n,f)}}function r(n){return n.nodeType?n:n.length>0?n[0]:null}function e(t,i,u,e,o){var s,c;o=o||{};var v=t&&r(t),l=(v||u||{}).ownerDocument,a=o.templateEngine||n;if(h.templateRewriting.ensureTemplateIsRewritten(u,a,l),s=a.renderTemplate(u,e,o,l),typeof s.length!="number"||s.length>0&&typeof s[0].nodeType!="number")throw new Error("Template engine must return an array of DOM nodes");c=!1;switch(i){case"replaceChildren":h.virtualElements.setDomNodeChildren(t,s);c=!0;break;case"replaceNode":h.utils.replaceDomNodes(t,s);c=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+i);}return c&&(f(s,e),o.afterRender&&h.dependencyDetection.ignore(o.afterRender,null,[s,e.$data])),s}function o(n,t,i){return h.isObservable(n)?n():typeof n=="function"?n(t,i):n}function s(n,i){var r=h.utils.domData.get(n,u);r&&typeof r.dispose=="function"&&r.dispose();h.utils.domData.set(n,u,i&&i.isActive()?i:t)}var n,u;h.setTemplateEngine=function(i){if(i!=t&&!(i instanceof h.templateEngine))throw new Error("templateEngine must inherit from ko.templateEngine");n=i};h.renderTemplate=function(i,u,f,s,c){if(f=f||{},(f.templateEngine||n)==t)throw new Error("Set a template engine before calling renderTemplate");if(c=c||"replaceChildren",s){var l=r(s),a=function(){return!l||!h.utils.domNodeIsAttachedToDocument(l)},v=l&&c=="replaceNode"?l.parentNode:l;return h.dependentObservable(function(){var n=u&&u instanceof h.bindingContext?u:new h.bindingContext(u,null,null,null,{exportDependencies:!0}),t=o(i,n.$data,n),a=e(s,c,t,n,f);c=="replaceNode"&&(s=a,l=r(s))},null,{disposeWhen:a,disposeWhenNodeIsRemoved:v})}return h.memoization.memoize(function(n){h.renderTemplate(i,u,f,n,"replaceNode")})};h.renderTemplateForEach=function(n,i,r,u,s){var c,l=function(t,i){c=s.createChildContext(t,r.as,function(n){n.$index=i});var u=o(n,t,c);return e(null,"ignoreTargetNode",u,c,r)},a=function(n,t){f(t,c);r.afterRender&&r.afterRender(t,n);c=null};return h.dependentObservable(function(){var n=h.utils.unwrapObservable(i)||[],f;typeof n.length=="undefined"&&(n=[n]);f=h.utils.arrayFilter(n,function(n){return r.includeDestroyed||n===t||n===null||!h.utils.unwrapObservable(n._destroy)});h.dependencyDetection.ignore(h.utils.setDomNodeChildrenFromArrayMapping,null,[u,f,l,r,a])},null,{disposeWhenNodeIsRemoved:u})};u=h.utils.domData.nextKey();h.bindingHandlers.template={init:function(n,t){var i=h.utils.unwrapObservable(t()),u,f,r;if(typeof i=="string"||i.name)h.virtualElements.emptyNode(n);else if("nodes"in i){if(u=i.nodes||[],h.isObservable(u))throw new Error('The "nodes" option must be a plain, non-observable array.');r=h.utils.moveCleanedNodesToContainerElement(u);new h.templateSources.anonymousTemplate(n).nodes(r)}else f=h.virtualElements.childNodes(n),r=h.utils.moveCleanedNodesToContainerElement(f),new h.templateSources.anonymousTemplate(n).nodes(r);return{controlsDescendantBindings:!0}},update:function(n,t,i,r,u){var l=t(),f=h.utils.unwrapObservable(l),e=!0,c=null,o,a,v;typeof f=="string"?(o=l,f={}):(o=f.name,"if"in f&&(e=h.utils.unwrapObservable(f["if"])),e&&"ifnot"in f&&(e=!h.utils.unwrapObservable(f.ifnot)));"foreach"in f?(a=e&&f.foreach||[],c=h.renderTemplateForEach(o||n,a,f,n,u)):e?(v="data"in f?u.createStaticChildContext(f.data,f.as):u,c=h.renderTemplate(o||n,v,f,n)):h.virtualElements.emptyNode(n);s(n,c)}};h.expressionRewriting.bindingRewriteValidators.template=function(n){var t=h.expressionRewriting.parseObjectLiteral(n);return t.length==1&&t[0].unknown?null:h.expressionRewriting.keyValueArrayContainsKey(t,"name")?null:"This template engine does not support anonymous templates nested within its templates"};h.virtualElements.allowedBindings.template=!0}();h.exportSymbol("setTemplateEngine",h.setTemplateEngine);h.exportSymbol("renderTemplate",h.renderTemplate);h.utils.findMovesInArrayComparison=function(n,t,i){if(n.length&&t.length)for(var o,r,f,e,u=o=0;(!i||u<i)&&(f=n[o]);++o){for(r=0;e=t[r];++r)if(f.value===e.value){f.moved=e.index;e.moved=f.index;t.splice(r,1);u=r=0;break}u+=r}};h.utils.compareArrays=function(){function r(r,u,f){return f=typeof f=="boolean"?{dontLimitMoves:f}:f||{},r=r||[],u=u||[],r.length<u.length?i(r,u,n,t,f):i(u,r,t,n,f)}function i(n,t,i,r,u){for(var p=Math.min,it=Math.max,l=[],c=n.length,f,a=t.length,rt=a-c||1,w=c+a+1,o,v,b,k,d,g,e=0;e<=c;e++)for(v=o,l.push(o=[]),b=p(a,e+rt),k=it(0,e-1),f=k;f<=b;f++)f?e?n[e-1]===t[f-1]?o[f]=v[f-1]:(d=v[f]||w,g=o[f-1]||w,o[f]=p(d,g)+1):o[f]=f+1:o[f]=e+1;var s=[],y,nt=[],tt=[];for(e=c,f=a;e||f;)y=l[e][f]-1,f&&y===l[e][f-1]?nt.push(s[s.length]={status:i,value:t[--f],index:f}):e&&y===l[e-1][f]?tt.push(s[s.length]={status:r,value:n[--e],index:e}):(--f,--e,u.sparse||s.push({status:"retained",value:t[f]}));return h.utils.findMovesInArrayComparison(tt,nt,!u.dontLimitMoves&&c*10),s.reverse()}var n="added",t="deleted";return r}();h.exportSymbol("utils.compareArrays",h.utils.compareArrays),function(){function r(n,i,r,u,f){var e=[],o=h.dependentObservable(function(){var t=i(r,f,h.utils.fixUpContinuousNodeArray(e,n))||[];e.length>0&&(h.utils.replaceDomNodes(e,t),u&&h.dependencyDetection.ignore(u,null,[r,t,f]));e.length=0;h.utils.arrayPushAll(e,t)},null,{disposeWhenNodeIsRemoved:n,disposeWhen:function(){return!h.utils.anyDomNodeIsAttachedToDocument(e)}});return{mappedNodes:e,dependentObservable:o.isActive()?o:t}}var n=h.utils.domData.nextKey(),i=h.utils.domData.nextKey();h.utils.setDomNodeChildrenFromArrayMapping=function(u,f,e,o,s){function et(n,t){c=d[t];nt!==t&&(it[n]=c);c.indexObservable(nt++);h.utils.fixUpContinuousNodeArray(c.mappedNodes,u);y.push(c);p.push(c)}function w(n,t){if(n)for(var i=0,r=t.length;i<r;i++)t[i]&&h.utils.arrayForEach(t[i].mappedNodes,function(r){n(r,i,t[i].arrayEntry)})}var b,k,l,rt,ot,v,ut;f=f||[];o=o||{};var st=h.utils.domData.get(u,n)===t,d=h.utils.domData.get(u,n)||[],ht=h.utils.arrayMap(d,function(n){return n.arrayEntry}),ct=h.utils.compareArrays(ht,f,o.dontLimitMoves),y=[],g=0,nt=0,tt=[],p=[],a=[],it=[],ft=[],c;for(l=0;b=ct[l];l++){k=b.moved;switch(b.status){case"deleted":k===t&&(c=d[g],c.dependentObservable&&(c.dependentObservable.dispose(),c.dependentObservable=t),h.utils.fixUpContinuousNodeArray(c.mappedNodes,u).length&&(o.beforeRemove&&(y.push(c),p.push(c),c.arrayEntry===i?c=null:a[l]=c),c&&tt.push.apply(tt,c.mappedNodes)));g++;break;case"retained":et(l,g++);break;case"added":k!==t?et(l,k):(c={arrayEntry:b.value,indexObservable:h.observable(nt++)},y.push(c),p.push(c),st||(ft[l]=c))}}for(h.utils.domData.set(u,n,y),w(o.beforeMove,it),h.utils.arrayForEach(tt,o.beforeRemove?h.cleanNode:h.removeNode),l=0,rt=h.virtualElements.firstChild(u);c=p[l];l++){for(c.mappedNodes||h.utils.extend(c,r(u,e,c.arrayEntry,s,c.indexObservable)),ut=0;v=c.mappedNodes[ut];rt=v.nextSibling,ot=v,ut++)v!==rt&&h.virtualElements.insertAfter(u,v,ot);!c.initialized&&s&&(s(c.arrayEntry,c.mappedNodes,c.indexObservable),c.initialized=!0)}for(w(o.beforeRemove,a),l=0;l<a.length;++l)a[l]&&(a[l].arrayEntry=i);w(o.afterMove,it);w(o.afterAdd,ft)}}();h.exportSymbol("utils.setDomNodeChildrenFromArrayMapping",h.utils.setDomNodeChildrenFromArrayMapping);h.nativeTemplateEngine=function(){this.allowTemplateRewriting=!1};h.nativeTemplateEngine.prototype=new h.templateEngine;h.nativeTemplateEngine.prototype.constructor=h.nativeTemplateEngine;h.nativeTemplateEngine.prototype.renderTemplateSource=function(n,t,i,r){var e=!(h.utils.ieVersion<9),o=e?n.nodes:null,u=o?n.nodes():null,f;return u?h.utils.makeArray(u.cloneNode(!0).childNodes):(f=n.text(),h.utils.parseHtmlFragment(f,r))};h.nativeTemplateEngine.instance=new h.nativeTemplateEngine;h.setTemplateEngine(h.nativeTemplateEngine.instance);h.exportSymbol("nativeTemplateEngine",h.nativeTemplateEngine),function(){h.jqueryTmplTemplateEngine=function(){function t(){if(n<2)throw new Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");}function u(n,t,i){return r.tmpl(n,t,i)}var n=this.jQueryTmplVersion=function(){if(!r||!r.tmpl)return 0;try{if(r.tmpl.tag.tmpl.open.toString().indexOf("__")>=0)return 2}catch(n){}return 1}();this.renderTemplateSource=function(n,f,e,o){var s,h;o=o||i;e=e||{};t();s=n.data("precompiled");s||(h=n.text()||"",h="{{ko_with $item.koBindingContext}}"+h+"{{/ko_with}}",s=r.template(null,h),n.data("precompiled",s));var l=[f.$data],a=r.extend({koBindingContext:f},e.templateOptions),c=u(s,l,a);return c.appendTo(o.createElement("div")),r.fragments={},c};this.createJavaScriptEvaluatorBlock=function(n){return"{{ko_code ((function() { return "+n+" })()) }}"};this.addTemplate=function(n,t){i.write("<script type='text/html' id='"+n+"'>"+t+"<\/script>")};n>0&&(r.tmpl.tag.ko_code={open:"__.push($1 || '');"},r.tmpl.tag.ko_with={open:"with($1) {",close:"} "})};h.jqueryTmplTemplateEngine.prototype=new h.templateEngine;h.jqueryTmplTemplateEngine.prototype.constructor=h.jqueryTmplTemplateEngine;var n=new h.jqueryTmplTemplateEngine;n.jQueryTmplVersion>0&&h.setTemplateEngine(n);h.exportSymbol("jqueryTmplTemplateEngine",h.jqueryTmplTemplateEngine)}()})})()})()