(function(n,t){function s(n){var u=this,r,t;if(n)for(r in n)t=i.extenders[r],typeof t=="function"&&(u=t(u,n[r]));return u}function o(n,t,i){n&&typeof n=="object"?i=n:(i=i||{},i.read=n||i.read);if(typeof i.read!="function")throw"Pass a function that returns the value of the dependentObservable";return i}function e(n,t,r){r&&t!==i.selectExtensions.readValue(n)&&i.selectExtensions.writeValue(n,t),t!==i.selectExtensions.readValue(n)&&i.utils.triggerEvent(n,"change")}var i=n.ko={},r,f,u;i.exportSymbol=function(t,i){for(var u=t.split("."),f=n,r=0;r<u.length-1;r++)f=f[u[r]];f[u[u.length-1]]=i},i.exportProperty=function(n,t,i){n[t]=i},i.utils=new function(){function c(n,t){if(n.tagName!="INPUT"||!n.type)return!1;if(t.toLowerCase()!="click")return!1;var i=n.type.toLowerCase();return i=="checkbox"||i=="radio"}var a=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,e={},h={},v=/Firefox\/2/i.test(navigator.userAgent)?"KeyboardEvent":"UIEvents",o,f,u,s;e[v]=["keyup","keydown","keypress"],e.MouseEvents=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave"];for(o in e){f=e[o];if(f.length)for(u=0,s=f.length;u<s;u++)h[f[u]]=o}var r=function(){var n=3,i=document.createElement("div"),r=i.getElementsByTagName("i");while(i.innerHTML="<!--[if gt IE "+ ++n+"]><i></i><![endif]-->",r[0]);return n>4?n:t}(),y=r===6,l=r===7;return{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(n,t){for(var i=0,r=n.length;i<r;i++)t(n[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]))return n[r];return null},arrayRemoveItem:function(n,t){var r=i.utils.arrayIndexOf(n,t);r>=0&&n.splice(r,1)},arrayGetDistinctValues:function(n){var r,t,u;for(n=n||[],r=[],t=0,u=n.length;t<u;t++)i.utils.arrayIndexOf(r,n[t])<0&&r.push(n[t]);return r},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]));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])&&r.push(n[i]);return r},arrayPushAll:function(n,t){for(var i=0,r=t.length;i<r;i++)n.push(t[i]);return n},extend:function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return n},emptyDomNode:function(n){while(n.firstChild)i.removeNode(n.firstChild)},setDomNodeChildren:function(n,t){i.utils.emptyDomNode(n),t&&i.utils.arrayForEach(t,function(t){n.appendChild(t)})},replaceDomNodes:function(n,t){var f=n.nodeType?[n]:n,e,o,r,u;if(f.length>0){for(e=f[0],o=e.parentNode,r=0,u=t.length;r<u;r++)o.insertBefore(t[r],e);for(r=0,u=f.length;r<u;r++)i.removeNode(f[r])}},setOptionNodeSelectionState:function(n,t){navigator.userAgent.indexOf("MSIE 6")>=0?n.setAttribute("selected",t):n.selected=t},stringTrim:function(n){return(n||"").replace(a,"")},stringTokenize:function(n,t){for(var o=[],f=(n||"").split(t),u,r=0,e=f.length;r<e;r++)u=i.utils.stringTrim(f[r]),u!==""&&o.push(u);return o},stringStartsWith:function(n,t){return n=n||"",t.length>n.length?!1:n.substring(0,t.length)===t},evalWithinScope:function(n){for(var i=Array.prototype.slice.call(arguments,1),r="return ("+n+")",t=0;t<i.length;t++)i[t]&&typeof i[t]=="object"&&(r="with(sc["+t+"]) { "+r+" } ");return new Function("sc",r)(i)},domNodeIsContainedBy:function(n,t){if(t.compareDocumentPosition)return(t.compareDocumentPosition(n)&16)==16;while(n!=null){if(n==t)return!0;n=n.parentNode}return!1},domNodeIsAttachedToDocument:function(n){return i.utils.domNodeIsContainedBy(n,document)},registerEventHandler:function(n,t,i){if(typeof jQuery!="undefined"){if(c(n,t)){var r=i;i=function(n,t){var i=this.checked;t&&(this.checked=t.checkedStateBeforeEvent!==!0),r.call(this,n),this.checked=i}}jQuery(n).bind(t,i)}else if(typeof n.addEventListener=="function")n.addEventListener(t,i,!1);else if(typeof n.attachEvent!="undefined")n.attachEvent("on"+t,function(t){i.call(n,t)});else throw new Error("Browser doesn't support addEventListener or attachEvent");},triggerEvent:function(t,i){var u,f,r;if(!(t&&t.nodeType))throw new Error("element must be a DOM node when calling triggerEvent");if(typeof jQuery!="undefined")u=[],c(t,i)&&u.push({checkedStateBeforeEvent:t.checked}),jQuery(t).trigger(i,u);else if(typeof document.createEvent=="function")if(typeof t.dispatchEvent=="function")f=h[i]||"HTMLEvents",r=document.createEvent(f),r.initEvent(i,!0,!0,n,0,0,0,0,0,!1,!1,!1,!1,0,t),t.dispatchEvent(r);else throw new Error("The supplied element doesn't support dispatchEvent");else if(typeof t.fireEvent!="undefined")i=="click"&&t.tagName=="INPUT"&&(t.type.toLowerCase()=="checkbox"||t.type.toLowerCase()=="radio")&&(t.checked=t.checked!==!0),t.fireEvent("on"+i);else throw new Error("Browser doesn't support triggering events");},unwrapObservable:function(n){return i.isObservable(n)?n():n},domNodeHasCssClass:function(n,t){var r=(n.className||"").split(/\s+/);return i.utils.arrayIndexOf(r,t)>=0},toggleDomNodeCssClass:function(n,t,r){var o=i.utils.domNodeHasCssClass(n,t),f,e,u;if(r&&!o)n.className=(n.className||"")+" "+t;else if(o&&!r){for(f=(n.className||"").split(/\s+/),e="",u=0;u<f.length;u++)f[u]!=t&&(e+=f[u]+" ");n.className=i.utils.stringTrim(e)}},outerHTML:function(i){var f,u;if(r===t){f=i.outerHTML;if(typeof f=="string")return f}return u=n.document.createElement("div"),u.appendChild(i.cloneNode(!0)),u.innerHTML},setTextContent:function(n,u){var f=i.utils.unwrapObservable(u);(f===null||f===t)&&(f=""),"innerText"in n?n.innerText=f:n.textContent=f,r>=9&&(n.innerHTML=n.innerHTML)},range:function(n,t){var u,r;for(n=i.utils.unwrapObservable(n),t=i.utils.unwrapObservable(t),u=[],r=n;r<=t;r++)u.push(r);return u},makeArray:function(n){for(var r=[],t=0,i=n.length;t<i;t++)r.push(n[t]);return r},isIe6:y,isIe7:l,getFormFields:function(n,t){for(var u=i.utils.makeArray(n.getElementsByTagName("INPUT")).concat(i.utils.makeArray(n.getElementsByTagName("TEXTAREA"))),e=typeof t=="string"?function(n){return n.name===t}:function(n){return t.test(n.name)},f=[],r=u.length-1;r>=0;r--)e(u[r])&&f.push(u[r]);return f},parseJson:function(t){if(typeof t=="string"){t=i.utils.stringTrim(t);if(t)return n.JSON&&n.JSON.parse?n.JSON.parse(t):new Function("return "+t)()}return null},stringifyJson:function(n){if(typeof JSON=="undefined"||typeof JSON.stringify=="undefined")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 JSON.stringify(i.utils.unwrapObservable(n))},postJson:function(n,t,r){var l,h,s,o,u,e,f;r=r||{};var c=r.params||{},v=r.includeFields||this.fieldsIncludedWithJsonPost,a=n;if(typeof n=="object"&&n.tagName=="FORM")for(l=n,a=l.action,h=v.length-1;h>=0;h--)for(s=i.utils.getFormFields(l,v[h]),o=s.length-1;o>=0;o--)c[s[o].name]=s[o].value;t=i.utils.unwrapObservable(t),u=document.createElement("FORM"),u.style.display="none",u.action=a,u.method="post";for(e in t)f=document.createElement("INPUT"),f.name=e,f.value=i.utils.stringifyJson(i.utils.unwrapObservable(t[e])),u.appendChild(f);for(e in c)f=document.createElement("INPUT"),f.name=e,f.value=c[e],u.appendChild(f);document.body.appendChild(u),r.submitter?r.submitter(u):u.submit(),setTimeout(function(){u.parentNode.removeChild(u)},0)}}},i.exportSymbol("ko.utils",i.utils),i.utils.arrayForEach([["arrayForEach",i.utils.arrayForEach],["arrayFirst",i.utils.arrayFirst],["arrayFilter",i.utils.arrayFilter],["arrayGetDistinctValues",i.utils.arrayGetDistinctValues],["arrayIndexOf",i.utils.arrayIndexOf],["arrayMap",i.utils.arrayMap],["arrayPushAll",i.utils.arrayPushAll],["arrayRemoveItem",i.utils.arrayRemoveItem],["extend",i.utils.extend],["fieldsIncludedWithJsonPost",i.utils.fieldsIncludedWithJsonPost],["getFormFields",i.utils.getFormFields],["postJson",i.utils.postJson],["parseJson",i.utils.parseJson],["registerEventHandler",i.utils.registerEventHandler],["stringifyJson",i.utils.stringifyJson],["range",i.utils.range],["toggleDomNodeCssClass",i.utils.toggleDomNodeCssClass],["triggerEvent",i.utils.triggerEvent],["unwrapObservable",i.utils.unwrapObservable]],function(n){i.exportSymbol("ko.utils."+n[0],n[1])}),Function.prototype.bind||(Function.prototype.bind=function(n){var i=this,t=Array.prototype.slice.call(arguments),n=t.shift();return function(){return i.apply(n,t.concat(Array.prototype.slice.call(arguments)))}}),i.utils.domData=new function(){var u=0,n="__ko__"+ +new Date,r={};return{get:function(n,r){var u=i.utils.domData.getAll(n,!1);return u===t?t:u[r]},set:function(n,r,u){if(u===t)if(i.utils.domData.getAll(n,!1)===t)return;var f=i.utils.domData.getAll(n,!0);f[r]=u},getAll:function(i,f){var e=i[n],o=e&&e!=="null";if(!o){if(!f)return t;e=i[n]="ko"+u++,r[e]={}}return r[e]},clear:function(t){var i=t[n];i&&(delete r[i],t[n]=null)}}},i.exportSymbol("ko.utils.domData",i.utils.domData),i.exportSymbol("ko.utils.domData.clear",i.utils.domData.clear),i.utils.domNodeDisposal=new function(){function n(n,u){var f=i.utils.domData.get(n,r);return f===t&&u&&(f=[],i.utils.domData.set(n,r,f)),f}function f(n){i.utils.domData.set(n,r,t)}function u(t){var r=n(t,!1),u;if(r)for(r=r.slice(0),u=0;u<r.length;u++)r[u](t);i.utils.domData.clear(t),typeof jQuery=="function"&&typeof jQuery.cleanData=="function"&&jQuery.cleanData([t])}var r="__ko_domNodeDisposal__"+ +new Date;return{addDisposeCallback:function(t,i){if(typeof i!="function")throw new Error("Callback must be a function");n(t,!0).push(i)},removeDisposeCallback:function(t,r){var u=n(t,!1);u&&(i.utils.arrayRemoveItem(u,r),u.length==0&&f(t))},cleanNode:function(n){var r,t,f;if(n.nodeType!=1&&n.nodeType!=9)return;for(u(n),r=[],i.utils.arrayPushAll(r,n.getElementsByTagName("*")),t=0,f=r.length;t<f;t++)u(r[t])},removeNode:function(n){i.cleanNode(n),n.parentNode&&n.parentNode.removeChild(n)}}},i.cleanNode=i.utils.domNodeDisposal.cleanNode,i.removeNode=i.utils.domNodeDisposal.removeNode,i.exportSymbol("ko.cleanNode",i.cleanNode),i.exportSymbol("ko.removeNode",i.removeNode),i.exportSymbol("ko.utils.domNodeDisposal",i.utils.domNodeDisposal),i.exportSymbol("ko.utils.domNodeDisposal.addDisposeCallback",i.utils.domNodeDisposal.addDisposeCallback),i.exportSymbol("ko.utils.domNodeDisposal.removeDisposeCallback",i.utils.domNodeDisposal.removeDisposeCallback),function(){function u(t){var u=i.utils.stringTrim(t).toLowerCase(),r=document.createElement("div"),f=u.match(/^<(thead|tbody|tfoot)/)&&[1,"<table>","</table>"]||!u.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!u.indexOf("<td")||!u.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||[0,"",""],e="ignored<div>"+f[1]+t+f[2]+"</div>";typeof n.innerShiv=="function"?r.appendChild(n.innerShiv(e)):r.innerHTML=e;while(f[0]--)r=r.lastChild;return i.utils.makeArray(r.lastChild.childNodes)}function r(n){var i=jQuery.clean([n]),t;if(i&&i[0]){t=i[0];while(t.parentNode&&t.parentNode.nodeType!==11)t=t.parentNode;t.parentNode&&t.parentNode.removeChild(t)}return i}var f=/^(\s*)<!--(.*?)-->/;i.utils.parseHtmlFragment=function(n){return typeof jQuery!="undefined"?r(n):u(n)},i.utils.setHtml=function(n,r){var f,u;i.utils.emptyDomNode(n);if(r!==null&&r!==t){typeof r!="string"&&(r=r.toString());if(typeof jQuery!="undefined")jQuery(n).html(r);else for(f=i.utils.parseHtmlFragment(r),u=0;u<f.length;u++)n.appendChild(f[u])}}}(),i.exportSymbol("ko.utils.parseHtmlFragment",i.utils.parseHtmlFragment),i.exportSymbol("ko.utils.setHtml",i.utils.setHtml),i.memoization=function(){function u(){return((1+Math.random())*4294967296|0).toString(16).substring(1)}function f(){return u()+u()}function r(n,t){var f;if(!n)return;if(n.nodeType==8)f=i.memoization.parseMemoText(n.nodeValue),f!=null&&t.push({domNode:n,memoId:f});else if(n.nodeType==1)for(var u=0,e=n.childNodes,o=e.length;u<o;u++)r(e[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=f();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 e=[],f,s,u,o;for(r(n,e),f=0,s=e.length;f<s;f++)u=e[f].domNode,o=[u],t&&i.utils.arrayPushAll(o,t),i.memoization.unmemoize(e[f].memoId,o),u.nodeValue="",u.parentNode&&u.parentNode.removeChild(u)},parseMemoText:function(n){var t=n.match(/^\[ko_memo\:(.*?)\]$/);return t?t[1]:null}}}(),i.exportSymbol("ko.memoization",i.memoization),i.exportSymbol("ko.memoization.memoize",i.memoization.memoize),i.exportSymbol("ko.memoization.unmemoize",i.memoization.unmemoize),i.exportSymbol("ko.memoization.parseMemoText",i.memoization.parseMemoText),i.exportSymbol("ko.memoization.unmemoizeDomNodeAndDescendants",i.memoization.unmemoizeDomNodeAndDescendants),i.extenders={throttle:function(n,t){n.throttleEvaluation=t;var r=null;return i.dependentObservable({read:n,write:function(i){clearTimeout(r),r=setTimeout(function(){n(i)},t)}})},notify:function(n,t){return n.equalityComparer=t=="always"?function(){return!1}:i.observable.fn.equalityComparer,n}},i.exportSymbol("ko.extenders",i.extenders),i.subscription=function(n,t){this.callback=n,this.disposeCallback=t,i.exportProperty(this,"dispose",this.dispose)},i.subscription.prototype.dispose=function(){this.isDisposed=!0,this.disposeCallback()},i.subscribable=function(){this._subscriptions={},i.utils.extend(this,i.subscribable.fn),i.exportProperty(this,"subscribe",this.subscribe),i.exportProperty(this,"extend",this.extend),i.exportProperty(this,"getSubscriptionsCount",this.getSubscriptionsCount)},r="change",i.subscribable.fn={subscribe:function(n,t,u){u=u||r;var e=t?n.bind(t):n,f=new i.subscription(e,function(){i.utils.arrayRemoveItem(this._subscriptions[u],f)}.bind(this));return this._subscriptions[u]||(this._subscriptions[u]=[]),this._subscriptions[u].push(f),f},notifySubscribers:function(n,t){t=t||r,this._subscriptions[t]&&i.utils.arrayForEach(this._subscriptions[t].slice(0),function(t){t&&t.isDisposed!==!0&&t.callback(n)})},getSubscriptionsCount:function(){var t=0,n;for(n in this._subscriptions)this._subscriptions.hasOwnProperty(n)&&(t+=this._subscriptions[n].length);return t},extend:s},i.isSubscribable=function(n){return typeof n.subscribe=="function"&&typeof n.notifySubscribers=="function"},i.exportSymbol("ko.subscribable",i.subscribable),i.exportSymbol("ko.isSubscribable",i.isSubscribable),i.dependencyDetection=function(){var n=[];return{begin:function(t){n.push({callback:t,distinctDependencies:[]})},end:function(){n.pop()},registerDependency:function(t){if(!i.isSubscribable(t))throw"Only subscribable things can act as dependencies";if(n.length>0){var r=n[n.length-1];if(i.utils.arrayIndexOf(r.distinctDependencies,t)>=0)return;r.distinctDependencies.push(t),r.callback(t)}}}}(),f={undefined:!0,boolean:!0,number:!0,string:!0},i.observable=function(n){function t(){return arguments.length>0?(t.equalityComparer&&t.equalityComparer(r,arguments[0])||(t.valueWillMutate(),r=arguments[0],t.valueHasMutated()),this):(i.dependencyDetection.registerDependency(t),r)}var r=n;return i.subscribable.call(t),t.valueHasMutated=function(){t.notifySubscribers(r)},t.valueWillMutate=function(){t.notifySubscribers(r,"beforeChange")},i.utils.extend(t,i.observable.fn),i.exportProperty(t,"valueHasMutated",t.valueHasMutated),i.exportProperty(t,"valueWillMutate",t.valueWillMutate),t},i.observable.fn={__ko_proto__:i.observable,equalityComparer:function(n,t){var i=n===null||typeof n in f;return i?n===t:!1}},i.isObservable=function(n){return n===null||n===t||n.__ko_proto__===t?!1:n.__ko_proto__===i.observable?!0:i.isObservable(n.__ko_proto__)},i.isWriteableObservable=function(n){return typeof n=="function"&&n.__ko_proto__===i.observable?!0:typeof n=="function"&&n.__ko_proto__===i.dependentObservable&&n.hasWriteFunction?!0:!1},i.exportSymbol("ko.observable",i.observable),i.exportSymbol("ko.isObservable",i.isObservable),i.exportSymbol("ko.isWriteableObservable",i.isWriteableObservable),i.observableArray=function(n){arguments.length==0&&(n=[]);if(n!==null&&n!==t&&!("length"in n))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var r=new i.observable(n);return i.utils.extend(r,i.observableArray.fn),i.exportProperty(r,"remove",r.remove),i.exportProperty(r,"removeAll",r.removeAll),i.exportProperty(r,"destroy",r.destroy),i.exportProperty(r,"destroyAll",r.destroyAll),i.exportProperty(r,"indexOf",r.indexOf),i.exportProperty(r,"replace",r.replace),r},i.observableArray.fn={remove:function(n){for(var u=this(),i=[],f=typeof n=="function"?n:function(t){return t===n},r,t=0;t<u.length;t++)r=u[t],f(r)&&(i.length===0&&this.valueWillMutate(),i.push(r),u.splice(t,1),t--);return i.length&&this.valueHasMutated(),i},removeAll:function(n){if(n===t){var r=this(),u=r.slice(0);return this.valueWillMutate(),r.splice(0,r.length),this.valueHasMutated(),u}return n?this.remove(function(t){return i.utils.arrayIndexOf(n,t)>=0}):[]},destroy:function(n){var i=this(),u=typeof n=="function"?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 i.utils.arrayIndexOf(n,t)>=0}):[]},indexOf:function(n){var t=this();return i.utils.arrayIndexOf(t,n)},replace:function(n,t){var i=this.indexOf(n);i>=0&&(this.valueWillMutate(),this()[i]=t,this.valueHasMutated())}},i.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(n){i.observableArray.fn[n]=function(){var i=this(),t;return this.valueWillMutate(),t=i[n].apply(i,arguments),this.valueHasMutated(),t}}),i.utils.arrayForEach(["slice"],function(n){i.observableArray.fn[n]=function(){var t=this();return t[n].apply(t,arguments)}}),i.exportSymbol("ko.observableArray",i.observableArray),i.dependentObservable=function(n,t,r){function y(){i.utils.arrayForEach(e,function(n){n.dispose()}),e=[]}function p(){var n=u.throttleEvaluation;n&&n>=0?(clearTimeout(c),c=setTimeout(s,n)):s()}function s(){if(a&&typeof r.disposeWhen=="function")if(r.disposeWhen()){u.dispose();return}try{y(),i.dependencyDetection.begin(function(n){e.push(n.subscribe(p))});var f=r.owner||t,n=r.read.call(f);u.notifySubscribers(h,"beforeChange"),h=n}finally{i.dependencyDetection.end()}u.notifySubscribers(h),a=!0}function u(){if(arguments.length>0)if(typeof r.write=="function"){var n=r.owner||t;r.write.apply(n,arguments)}else throw"Cannot write a value to a dependentObservable unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.";else return a||s(),i.dependencyDetection.registerDependency(u),h}var h,a=!1,r=o(n,t,r),f=typeof r.disposeWhenNodeIsRemoved=="object"?r.disposeWhenNodeIsRemoved:null,l=null,v,e,c;return f&&(l=function(){u.dispose()},i.utils.domNodeDisposal.addDisposeCallback(f,l),v=r.disposeWhen,r.disposeWhen=function(){return!i.utils.domNodeIsAttachedToDocument(f)||typeof v=="function"&&v()}),e=[],c=null,u.getDependenciesCount=function(){return e.length},u.hasWriteFunction=typeof r.write=="function",u.dispose=function(){f&&i.utils.domNodeDisposal.removeDisposeCallback(f,l),y()},i.subscribable.call(u),i.utils.extend(u,i.dependentObservable.fn),r.deferEvaluation!==!0&&s(),i.exportProperty(u,"dispose",u.dispose),i.exportProperty(u,"getDependenciesCount",u.getDependenciesCount),u},i.dependentObservable.fn={__ko_proto__:i.dependentObservable},i.dependentObservable.__ko_proto__=i.observable,i.exportSymbol("ko.dependentObservable",i.dependentObservable),i.exportSymbol("ko.computed",i.dependentObservable),function(){function n(i,f,e){var s,o;return e=e||new r,i=f(i),s=typeof i=="object"&&i!==null&&i!==t&&!(i instanceof Date),s?(o=i instanceof Array?[]:{},e.save(i,o),u(i,function(r){var u=f(i[r]),s;switch(typeof u){case"boolean":case"number":case"string":case"function":o[r]=u;break;case"object":case"undefined":s=e.get(u),o[r]=s!==t?s:n(u,f,e)}}),o):i}function u(n,t){var i,r;if(n instanceof Array)for(i=0;i<n.length;i++)t(i);else for(r in n)t(r)}function r(){var r=[],n=[];this.save=function(t,u){var f=i.utils.arrayIndexOf(r,t);f>=0?n[f]=u:(r.push(t),n.push(u))},this.get=function(u){var f=i.utils.arrayIndexOf(r,u);return f>=0?n[f]:t}}var f=10;i.toJS=function(t){if(arguments.length==0)throw new Error("When calling ko.toJS, pass the object you want to convert.");return n(t,function(n){for(var t=0;i.isObservable(n)&&t<f;t++)n=n();return n})},i.toJSON=function(n){var t=i.toJS(n);return i.utils.stringifyJson(t)}}(),i.exportSymbol("ko.toJS",i.toJS),i.exportSymbol("ko.toJSON",i.toJSON),function(){var n="__ko__hasDomDataOptionValue__";i.selectExtensions={readValue:function(r){return r.tagName=="OPTION"?r[n]===!0?i.utils.domData.get(r,i.bindingHandlers.options.optionValueDomDataKey):r.getAttribute("value"):r.tagName=="SELECT"?r.selectedIndex>=0?i.selectExtensions.readValue(r.options[r.selectedIndex]):t:r.value},writeValue:function(r,u){if(r.tagName=="OPTION")switch(typeof u){case"string":i.utils.domData.set(r,i.bindingHandlers.options.optionValueDomDataKey,t),n in r&&delete r[n],r.value=u;break;default:i.utils.domData.set(r,i.bindingHandlers.options.optionValueDomDataKey,u),r[n]=!0,r.value=typeof u=="number"?u:""}else if(r.tagName=="SELECT"){for(var f=r.options.length-1;f>=0;f--)if(i.selectExtensions.readValue(r.options[f])==u){r.selectedIndex=f;break}}else(u===null||u===t)&&(u=""),r.value=u}}}(),i.exportSymbol("ko.selectExtensions",i.selectExtensions),i.exportSymbol("ko.selectExtensions.readValue",i.selectExtensions.readValue),i.exportSymbol("ko.selectExtensions.writeValue",i.selectExtensions.writeValue),i.jsonExpressionRewriting=function(){function n(n,t){var i=null;while(n!=i)i=n,n=n.replace(u,function(n,i){return t[i]});return n}function r(n){return i.utils.arrayIndexOf(e,i.utils.stringTrim(n).toLowerCase())>=0?!1:n.match(f)!==null}function t(n){var t=i.utils.stringTrim(n);switch(t.length&&t.charAt(0)){case"'":case'"':return n;default:return"'"+t+"'"}}var u=/\@ko_token_(\d+)\@/g,f=/^[\_$a-z][\_$a-z0-9]*(\[.*?\])*(\.[\_$a-z][\_$a-z0-9]*(\[.*?\])*)*$/i,e=["true","false"];return{bindingRewriteValidators:[],parseObjectLiteral:function(t){var u=i.utils.stringTrim(t),o,f,s,p,a,r,e,l,c,w,b,y,g,h,v,d,k;if(u.length<3)return[];for(u.charAt(0)==="{"&&(u=u.substring(1,u.length-1)),o=[],f=null,r=0;r<u.length;r++){e=u.charAt(r);if(f===null)switch(e){case'"':case"'":case"/":f=r,s=e}else e==s&&u.charAt(r-1)!=="\\"&&(l=u.substring(f,r+1),o.push(l),c="@ko_token_"+(o.length-1)+"@",u=u.substring(0,f)+c+u.substring(r+1),r-=l.length-c.length,f=null)}for(f=null,s=null,p=0,a=null,r=0;r<u.length;r++){e=u.charAt(r);if(f===null)switch(e){case"{":f=r,a=e,s="}";break;case"(":f=r,a=e,s=")";break;case"[":f=r,a=e,s="]"}e===a?p++:e===s&&(p--,p===0&&(l=u.substring(f,r+1),o.push(l),c="@ko_token_"+(o.length-1)+"@",u=u.substring(0,f)+c+u.substring(r+1),r-=l.length-c.length,f=null))}for(w=[],b=u.split(","),y=0,g=b.length;y<g;y++)h=b[y],v=h.indexOf(":"),v>0&&v<h.length-1?(d=h.substring(0,v),k=h.substring(v+1),w.push({key:n(d,o),value:n(k,o)})):w.push({unknown:n(h,o)});return w},insertPropertyAccessorsIntoJson:function(n){for(var a=typeof n=="string"?i.jsonExpressionRewriting.parseObjectLiteral(n):n,u=[],e=[],f,h,o,s,l,c=0;f=a[c];c++)u.length>0&&u.push(","),f.key?(h=t(f.key),o=f.value,u.push(h),u.push(":"),u.push(o),r(i.utils.stringTrim(o))&&(e.length>0&&e.push(", "),e.push(h+" : function(__ko_value) { "+o+" = __ko_value; }"))):f.unknown&&u.push(f.unknown);return s=u.join(""),e.length>0&&(l=e.join(""),s=s+", '_ko_property_writers' : { "+l+" } "),s},keyValueArrayContainsKey:function(n,t){for(var r=0;r<n.length;r++)if(i.utils.stringTrim(n[r].key)==t)return!0;return!1}}}(),i.exportSymbol("ko.jsonExpressionRewriting",i.jsonExpressionRewriting),i.exportSymbol("ko.jsonExpressionRewriting.bindingRewriteValidators",i.jsonExpressionRewriting.bindingRewriteValidators),i.exportSymbol("ko.jsonExpressionRewriting.parseObjectLiteral",i.jsonExpressionRewriting.parseObjectLiteral),i.exportSymbol("ko.jsonExpressionRewriting.insertPropertyAccessorsIntoJson",i.jsonExpressionRewriting.insertPropertyAccessorsIntoJson),function(){function n(n){return n.nodeType==8&&(r?n.text:n.nodeValue).match(c)}function u(n){return n.nodeType==8&&(r?n.text:n.nodeValue).match(l)}function e(t,i){var r=t,f=1,e=[];while(r=r.nextSibling){if(u(r)){f--;if(f===0)return e}e.push(r),n(r)&&f++}if(!i)throw new Error("Cannot find closing comment tag to match: "+t.nodeValue);return null}function f(n,t){var i=e(n,t);return i?i.length>0?i[i.length-1].nextSibling:n.nextSibling:null}function o(n,t){for(var f=[],r=0,u=n.length;r<u;r++)t&&i.utils.domNodeDisposal.cleanNode(n[r]),f.push(i.utils.outerHTML(n[r]));return String.prototype.concat.apply("",f)}function s(t){var i=t.firstChild,r=null,e;if(i)do r?r.push(i):n(i)?(e=f(i,!0),e?i=e:r=[i]):u(i)&&(r=[i]);while(i=i.nextSibling);return r}var r=document.createComment("test").text==="<!--test-->",c=r?/^<!--\s*ko\s+(.*\:.*)\s*-->$/:/^\s*ko\s+(.*\:.*)\s*$/,l=r?/^<!--\s*\/ko\s*-->$/:/^\s*\/ko\s*$/,h={ul:!0,ol:!0};i.virtualElements={allowedBindings:{},childNodes:function(t){return n(t)?e(t):t.childNodes},emptyNode:function(t){var u,r,f;if(n(t))for(u=i.virtualElements.childNodes(t),r=0,f=u.length;r<f;r++)i.removeNode(u[r]);else i.utils.emptyDomNode(t)},setDomNodeChildren:function(t,r){var f,u,e;if(n(t))for(i.virtualElements.emptyNode(t),f=t.nextSibling,u=0,e=r.length;u<e;u++)f.parentNode.insertBefore(r[u],f);else i.utils.setDomNodeChildren(t,r)},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){n(t)?t.parentNode.insertBefore(i,r.nextSibling):r.nextSibling?t.insertBefore(i,r.nextSibling):t.appendChild(i)},nextSibling:function(i){return n(i)?f(i).nextSibling:i.nextSibling&&u(i.nextSibling)?t:i.nextSibling},virtualNodeBindingValue:function(t){var i=n(t);return i?i[1]:null},extractAnonymousTemplateIfVirtualElement:function(n){if(i.virtualElements.virtualNodeBindingValue(n)){var r=i.virtualElements.childNodes(n),t=o(r,!0);i.virtualElements.emptyNode(n),new i.templateSources.anonymousTemplate(n).text(t)}},normaliseVirtualElementDomStructure:function(n){var t,r,u,i;if(!h[n.tagName.toLowerCase()])return;t=n.firstChild;if(t)do if(t.nodeType===1){r=s(t);if(r)for(u=t.nextSibling,i=0;i<r.length;i++)u?n.insertBefore(r[i],u):n.appendChild(r[i])}while(t=t.nextSibling)}}}(),function(){var t="data-bind";i.bindingProvider=function(){},i.utils.extend(i.bindingProvider.prototype,{nodeHasBindings:function(n){switch(n.nodeType){case 1:return n.getAttribute(t)!=null;case 8:return i.virtualElements.virtualNodeBindingValue(n)!=null;default:return!1}},getBindings:function(n,t){var i=this.getBindingsString(n,t);return i?this.parseBindingsString(i,t):null},getBindingsString:function(n){switch(n.nodeType){case 1:return n.getAttribute(t);case 8:return i.virtualElements.virtualNodeBindingValue(n);default:return null}},parseBindingsString:function(t,r){try{var u=r.$data,f=" { "+i.jsonExpressionRewriting.insertPropertyAccessorsIntoJson(t)+" } ";return i.utils.evalWithinScope(f,u===null?n:u,r)}catch(e){throw new Error("Unable to parse bindings.\nMessage: "+e+";\nBindings value: "+t);}}}),i.bindingProvider.instance=new i.bindingProvider}(),i.exportSymbol("ko.bindingProvider",i.bindingProvider),function(){function o(n){var t=i.virtualElements.allowedBindings[n];if(!t)throw new Error("The binding '"+n+"' cannot be used with virtual elements");}function e(n,t){var r,u=t.childNodes[0];while(r=u)u=i.virtualElements.nextSibling(r),f(n,r,!1)}function f(n,t,r){var s=!0,f=t.nodeType==1,o;f&&i.virtualElements.normaliseVirtualElementDomStructure(t),o=f&&r||i.bindingProvider.instance.nodeHasBindings(t),o&&(s=u(t,null,n,r).shouldBindDescendants),f&&s&&e(n,t)}function u(n,r,u,f){function c(n){return function(){return e[n]}}function l(){return e}var h=0,e,s;return i.virtualElements.extractAnonymousTemplateIfVirtualElement(n),new i.dependentObservable(function(){var y=u&&u instanceof i.bindingContext?u:new i.bindingContext(i.utils.unwrapObservable(u)),d=y.$data,k,b,p,v,a,w;f&&i.storedBindingContextForNode(n,y),k=typeof r=="function"?r():r,e=k||i.bindingProvider.instance.getBindings(n,y);if(e){if(h===0){h=1;for(v in e){a=i.bindingHandlers[v],a&&n.nodeType===8&&o(v);if(a&&typeof a.init=="function"){b=a.init,p=b(n,c(v),l,d,y);if(p&&p.controlsDescendantBindings){if(s!==t)throw new Error("Multiple bindings ("+s+" and "+v+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");s=v}}}h=2}if(h===2)for(v in e)a=i.bindingHandlers[v],a&&typeof a.update=="function"&&(w=a.update,w(n,c(v),l,d,y))}},null,{disposeWhenNodeIsRemoved:n}),{shouldBindDescendants:s===t}}i.bindingHandlers={},i.bindingContext=function(n,t){this.$data=n,t?(this.$parent=t.$data,this.$parents=(t.$parents||[]).slice(0),this.$parents.unshift(this.$parent),this.$root=t.$root):(this.$parents=[],this.$root=n)},i.bindingContext.prototype.createChildContext=function(n){return new i.bindingContext(n,this)};var r="__ko_bindingContext__";i.storedBindingContextForNode=function(n,t){if(arguments.length==2)i.utils.domData.set(n,r,t);else return i.utils.domData.get(n,r)},i.applyBindingsToNode=function(n,t,r){return n.nodeType===1&&i.virtualElements.normaliseVirtualElementDomStructure(n),u(n,t,r,!0)},i.applyBindingsToDescendants=function(n,t){t.nodeType===1&&e(n,t)},i.applyBindings=function(t,i){if(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||n.document.body,f(t,i,!0)},i.contextFor=function(n){switch(n.nodeType){case 1:case 8:var r=i.storedBindingContextForNode(n);if(r)return r;if(n.parentNode)return i.contextFor(n.parentNode)}return t},i.dataFor=function(n){var r=i.contextFor(n);return r?r.$data:t},i.exportSymbol("ko.bindingHandlers",i.bindingHandlers),i.exportSymbol("ko.applyBindings",i.applyBindings),i.exportSymbol("ko.applyBindingsToDescendants",i.applyBindingsToDescendants),i.exportSymbol("ko.applyBindingsToNode",i.applyBindingsToNode),i.exportSymbol("ko.contextFor",i.contextFor),i.exportSymbol("ko.dataFor",i.dataFor)}(),u=["click"],i.utils.arrayForEach(u,function(n){i.bindingHandlers[n]={init:function(t,r,u,f){var e=function(){var t={};return t[n]=r(),t};return i.bindingHandlers.event.init.call(this,t,e,u,f)}}}),i.bindingHandlers.event={init:function(n,t,r,u){var e=t()||{},f;for(f in e)(function(){var e=f;typeof e=="string"&&i.utils.registerEventHandler(n,e,function(n){var h,c=t()[e],s,f,o;if(!c)return;s=r();try{f=i.utils.makeArray(arguments),f.unshift(u),h=c.apply(u,f)}finally{h!==!0&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}o=s[e+"Bubble"]!==!1,o||(n.cancelBubble=!0,n.stopPropagation&&n.stopPropagation())})})()}},i.bindingHandlers.submit={init:function(n,t,r,u){if(typeof t()!="function")throw new Error("The value for a submit binding must be a function");i.utils.registerEventHandler(n,"submit",function(i){var r,f=t();try{r=f.call(u,n)}finally{r!==!0&&(i.preventDefault?i.preventDefault():i.returnValue=!1)}})}},i.bindingHandlers.visible={update:function(n,t){var u=i.utils.unwrapObservable(t()),r=!(n.style.display=="none");u&&!r?n.style.display="":!u&&r&&(n.style.display="none")}},i.bindingHandlers.enable={update:function(n,t){var r=i.utils.unwrapObservable(t());r&&n.disabled?n.removeAttribute("disabled"):r||n.disabled||(n.disabled=!0)}},i.bindingHandlers.disable={update:function(n,t){i.bindingHandlers.enable.update(n,function(){return!i.utils.unwrapObservable(t())})}},i.bindingHandlers.value={init:function(n,t,r){var f=["change"],u=r().valueUpdate;u&&(typeof u=="string"&&(u=[u]),i.utils.arrayPushAll(f,u),f=i.utils.arrayGetDistinctValues(f)),i.utils.arrayForEach(f,function(u){var e=!1,f;i.utils.stringStartsWith(u,"after")&&(e=!0,u=u.substring("after".length)),f=e?function(n){setTimeout(n,0)}:function(n){n()},i.utils.registerEventHandler(n,u,function(){f(function(){var f=t(),e=i.selectExtensions.readValue(n),u;i.isWriteableObservable(f)?f(e):(u=r(),u._ko_property_writers&&u._ko_property_writers.value&&u._ko_property_writers.value(e))})})})},update:function(n,t){var r=i.utils.unwrapObservable(t()),f=i.selectExtensions.readValue(n),s=r!=f,u,o;r===0&&f!==0&&f!=="0"&&(s=!0),s&&(u=function(){i.selectExtensions.writeValue(n,r)},u(),o=n.tagName=="SELECT",o&&setTimeout(u,0)),n.tagName=="SELECT"&&n.length>0&&e(n,r,!1)}},i.bindingHandlers.options={update:function(n,r,u){var o,b,h,s,a,l,c,y,w,f,v;if(n.tagName!="SELECT")throw new Error("options binding applies only to SELECT elements");var k=n.length==0,d=i.utils.arrayMap(i.utils.arrayFilter(n.childNodes,function(n){return n.tagName&&n.tagName=="OPTION"&&n.selected}),function(n){return i.selectExtensions.readValue(n)||n.innerText||n.textContent}),p=n.scrollTop;n.scrollTop=0,o=i.utils.unwrapObservable(r()),b=n.value;while(n.length>0)i.cleanNode(n.options[0]),n.remove(0);if(o){for(h=u(),typeof o.length!="number"&&(o=[o]),h.optionsCaption&&(s=document.createElement("OPTION"),i.utils.setHtml(s,h.optionsCaption),i.selectExtensions.writeValue(s,t),n.appendChild(s)),f=0,v=o.length;f<v;f++)s=document.createElement("OPTION"),a=typeof h.optionsValue=="string"?o[f][h.optionsValue]:o[f],a=i.utils.unwrapObservable(a),i.selectExtensions.writeValue(s,a),l=h.optionsText,c=typeof l=="function"?l(o[f]):typeof l=="string"?o[f][l]:a,(c===null||c===t)&&(c=""),i.utils.setTextContent(s,c),n.appendChild(s);for(y=n.getElementsByTagName("OPTION"),w=0,f=0,v=y.length;f<v;f++)i.utils.arrayIndexOf(d,i.selectExtensions.readValue(y[f]))>=0&&(i.utils.setOptionNodeSelectionState(y[f],!0),w++);p&&(n.scrollTop=p),k&&"value"in h&&e(n,i.utils.unwrapObservable(h.value),!0)}}},i.bindingHandlers.options.optionValueDomDataKey="__ko.optionValueDomData__",i.bindingHandlers.selectedOptions={getSelectedValuesFromSelectNode:function(n){for(var e=[],u=n.childNodes,r,t=0,f=u.length;t<f;t++)r=u[t],r.tagName=="OPTION"&&r.selected&&e.push(i.selectExtensions.readValue(r));return e},init:function(n,t,r){i.utils.registerEventHandler(n,"change",function(){var u=t(),n;i.isWriteableObservable(u)?u(i.bindingHandlers.selectedOptions.getSelectedValuesFromSelectNode(this)):(n=r(),n._ko_property_writers&&n._ko_property_writers.value&&n._ko_property_writers.value(i.bindingHandlers.selectedOptions.getSelectedValuesFromSelectNode(this)))})},update:function(n,t){var f,e,r,o,u;if(n.tagName!="SELECT")throw new Error("values binding applies only to SELECT elements");f=i.utils.unwrapObservable(t());if(f&&typeof f.length=="number")for(e=n.childNodes,r=0,o=e.length;r<o;r++)u=e[r],u.tagName=="OPTION"&&i.utils.setOptionNodeSelectionState(u,i.utils.arrayIndexOf(f,i.selectExtensions.readValue(u))>=0)}},i.bindingHandlers.text={update:function(n,t){i.utils.setTextContent(n,t())}},i.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){var r=i.utils.unwrapObservable(t());i.utils.setHtml(n,r)}},i.bindingHandlers.css={update:function(n,t){var f=i.utils.unwrapObservable(t()||{}),r,u;for(r in f)typeof r=="string"&&(u=i.utils.unwrapObservable(f[r]),i.utils.toggleDomNodeCssClass(n,r,u))}},i.bindingHandlers.style={update:function(n,t){var f=i.utils.unwrapObservable(t()||{}),r,u;for(r in f)typeof r=="string"&&(u=i.utils.unwrapObservable(f[r]),n.style[r]=u||"")}},i.bindingHandlers.uniqueName={init:function(n,t){t()&&(n.name="ko_unique_"+ ++i.bindingHandlers.uniqueName.currentIndex,(i.utils.isIe6||i.utils.isIe7)&&n.mergeAttributes(document.createElement("<input name='"+n.name+"'/>"),!1))}},i.bindingHandlers.uniqueName.currentIndex=0,i.bindingHandlers.checked={init:function(n,t,r){var u=function(){var f,u,o,e;if(n.type=="checkbox")f=n.checked;else if(n.type=="radio"&&n.checked)f=n.value;else return;u=t(),n.type=="checkbox"&&i.utils.unwrapObservable(u)instanceof Array?(o=i.utils.arrayIndexOf(i.utils.unwrapObservable(u),n.value),n.checked&&o<0?u.push(n.value):!n.checked&&o>=0&&u.splice(o,1)):i.isWriteableObservable(u)?u()!==f&&u(f):(e=r(),e._ko_property_writers&&e._ko_property_writers.checked&&e._ko_property_writers.checked(f))};i.utils.registerEventHandler(n,"click",u),n.type!="radio"||n.name||i.bindingHandlers.uniqueName.init(n,function(){return!0})},update:function(n,t){var r=i.utils.unwrapObservable(t());n.type=="checkbox"?n.checked=r instanceof Array?i.utils.arrayIndexOf(r,n.value)>=0:r:n.type=="radio"&&(n.checked=n.value==r)}},i.bindingHandlers.attr={update:function(n,r){var o=i.utils.unwrapObservable(r())||{},e,f;for(e in o)typeof e=="string"&&(f=i.utils.unwrapObservable(o[e]),f===!1||f===null||f===t?n.removeAttribute(e):n.setAttribute(e,f.toString()))}},i.bindingHandlers.hasfocus={init:function(n,t,r){var u=function(n){var f=t(),u;if(n==i.utils.unwrapObservable(f))return;i.isWriteableObservable(f)?f(n):(u=r(),u._ko_property_writers&&u._ko_property_writers.hasfocus&&u._ko_property_writers.hasfocus(n))};i.utils.registerEventHandler(n,"focus",function(){u(!0)}),i.utils.registerEventHandler(n,"focusin",function(){u(!0)}),i.utils.registerEventHandler(n,"blur",function(){u(!1)}),i.utils.registerEventHandler(n,"focusout",function(){u(!1)})},update:function(n,t){var r=i.utils.unwrapObservable(t());r?n.focus():n.blur(),i.utils.triggerEvent(n,r?"focusin":"focusout")}},i.bindingHandlers["with"]={makeTemplateValueAccessor:function(n){return function(){var t=n();return{"if":t,data:t,templateEngine:i.nativeTemplateEngine.instance}}},init:function(n,t){return i.bindingHandlers.template.init(n,i.bindingHandlers["with"].makeTemplateValueAccessor(t))},update:function(n,t,r,u,f){return i.bindingHandlers.template.update(n,i.bindingHandlers["with"].makeTemplateValueAccessor(t),r,u,f)}},i.jsonExpressionRewriting.bindingRewriteValidators["with"]=!1,i.virtualElements.allowedBindings["with"]=!0,i.bindingHandlers["if"]={makeTemplateValueAccessor:function(n){return function(){return{"if":n(),templateEngine:i.nativeTemplateEngine.instance}}},init:function(n,t){return i.bindingHandlers.template.init(n,i.bindingHandlers["if"].makeTemplateValueAccessor(t))},update:function(n,t,r,u,f){return i.bindingHandlers.template.update(n,i.bindingHandlers["if"].makeTemplateValueAccessor(t),r,u,f)}},i.jsonExpressionRewriting.bindingRewriteValidators["if"]=!1,i.virtualElements.allowedBindings["if"]=!0,i.bindingHandlers.ifnot={makeTemplateValueAccessor:function(n){return function(){return{ifnot:n(),templateEngine:i.nativeTemplateEngine.instance}}},init:function(n,t){return i.bindingHandlers.template.init(n,i.bindingHandlers.ifnot.makeTemplateValueAccessor(t))},update:function(n,t,r,u,f){return i.bindingHandlers.template.update(n,i.bindingHandlers.ifnot.makeTemplateValueAccessor(t),r,u,f)}},i.jsonExpressionRewriting.bindingRewriteValidators.ifnot=!1,i.virtualElements.allowedBindings.ifnot=!0,i.bindingHandlers.foreach={makeTemplateValueAccessor:function(n){return function(){var t=i.utils.unwrapObservable(n());return!t||typeof t.length=="number"?{foreach:t,templateEngine:i.nativeTemplateEngine.instance}:{foreach:t.data,includeDestroyed:t.includeDestroyed,afterAdd:t.afterAdd,beforeRemove:t.beforeRemove,afterRender:t.afterRender,templateEngine:i.nativeTemplateEngine.instance}}},init:function(n,t){return i.bindingHandlers.template.init(n,i.bindingHandlers.foreach.makeTemplateValueAccessor(t))},update:function(n,t,r,u,f){return i.bindingHandlers.template.update(n,i.bindingHandlers.foreach.makeTemplateValueAccessor(t),r,u,f)}},i.jsonExpressionRewriting.bindingRewriteValidators.foreach=!1,i.virtualElements.allowedBindings.foreach=!0,i.exportSymbol("ko.allowedVirtualElementBindings",i.virtualElements.allowedBindings),i.templateEngine=function(){},i.templateEngine.prototype.renderTemplateSource=function(){throw"Override renderTemplateSource";},i.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(){throw"Override createJavaScriptEvaluatorBlock";},i.templateEngine.prototype.makeTemplateSource=function(n){if(typeof n=="string"){var t=document.getElementById(n);if(!t)throw new Error("Cannot find template with ID "+n);return new i.templateSources.domElement(t)}if(n.nodeType==1||n.nodeType==8)return new i.templateSources.anonymousTemplate(n);throw new Error("Unknown template type: "+n);},i.templateEngine.prototype.renderTemplate=function(n,t,i){var r=this.makeTemplateSource(n);return this.renderTemplateSource(r,t,i)},i.templateEngine.prototype.isTemplateRewritten=function(n){return this.allowTemplateRewriting===!1?!0:this.knownRewrittenTemplates&&this.knownRewrittenTemplates[n]?!0:this.makeTemplateSource(n).data("isRewritten")},i.templateEngine.prototype.rewriteTemplate=function(n,t){var i=this.makeTemplateSource(n),r=t(i.text());i.text(r),i.data("isRewritten",!0),typeof n=="string"&&(this.knownRewrittenTemplates=this.knownRewrittenTemplates||{},this.knownRewrittenTemplates[n]=!0)},i.exportSymbol("ko.templateEngine",i.templateEngine),i.templateRewriting=function(){function r(n){for(var e=i.jsonExpressionRewriting.bindingRewriteValidators,u,r,f,t=0;t<n.length;t++){u=n[t].key;if(e.hasOwnProperty(u)){r=e[u];if(typeof r=="function"){f=r(n[t].value);if(f)throw new Error(f);}else if(!r)throw new Error("This template engine does not support the '"+u+"' binding within its templates");}}}function n(n,t,u){var o=i.jsonExpressionRewriting.parseObjectLiteral(n),e,f;return r(o),e=i.jsonExpressionRewriting.insertPropertyAccessorsIntoJson(o),f="ko.templateRewriting.applyMemoizedBindingsToNextSibling(function() {             return (function() { return { "+e+" } })()         })",u.createJavaScriptEvaluatorBlock(f)+t}var t=/(<[a-z]+\d*(\s+(?!data-bind=)[a-z0-9\-]+(=(\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind=(["'])([\s\S]*?)\5/gi,u=/<!--\s*ko\b\s*([\s\S]*?)\s*-->/g;return{ensureTemplateIsRewritten:function(n,t){t.isTemplateRewritten(n)||t.rewriteTemplate(n,function(n){return i.templateRewriting.memoizeBindingAttributeSyntax(n,t)})},memoizeBindingAttributeSyntax:function(i,r){return i.replace(t,function(){return n(arguments[6],arguments[1],r)}).replace(u,function(){return n(arguments[1],"<!-- ko -->",r)})},applyMemoizedBindingsToNextSibling:function(n){return i.memoization.memoize(function(t,r){t.nextSibling&&i.applyBindingsToNode(t.nextSibling,n,r)})}}}(),i.exportSymbol("ko.templateRewriting",i.templateRewriting),i.exportSymbol("ko.templateRewriting.applyMemoizedBindingsToNextSibling",i.templateRewriting.applyMemoizedBindingsToNextSibling),function(){i.templateSources={},i.templateSources.domElement=function(n){this.domElement=n},i.templateSources.domElement.prototype.text=function(){if(arguments.length==0)return this.domElement.tagName.toLowerCase()=="script"?this.domElement.text:this.domElement.innerHTML;var n=arguments[0];this.domElement.tagName.toLowerCase()=="script"?this.domElement.text=n:i.utils.setHtml(this.domElement,n)},i.templateSources.domElement.prototype.data=function(n){if(arguments.length===1)return i.utils.domData.get(this.domElement,"templateSourceData_"+n);i.utils.domData.set(this.domElement,"templateSourceData_"+n,arguments[1])};var n="__ko_anon_template__";i.templateSources.anonymousTemplate=function(n){this.domElement=n},i.templateSources.anonymousTemplate.prototype=new i.templateSources.domElement,i.templateSources.anonymousTemplate.prototype.text=function(){if(arguments.length==0)return i.utils.domData.get(this.domElement,n);var t=arguments[0];i.utils.domData.set(this.domElement,n,t)},i.exportSymbol("ko.templateSources",i.templateSources),i.exportSymbol("ko.templateSources.domElement",i.templateSources.domElement),i.exportSymbol("ko.templateSources.anonymousTemplate",i.templateSources.anonymousTemplate)}(),function(){function f(n,t,i){for(var r=0;node=n[r];r++){if(node.parentNode!==t)continue;(node.nodeType===1||node.nodeType===8)&&i(node)}}function e(n){return n.nodeType?n:n.length>0?n[0]:null}function u(n,t,u,f,e){var h,o,s;e=e||{},h=e.templateEngine||r,i.templateRewriting.ensureTemplateIsRewritten(u,h),o=h.renderTemplate(u,f,e);if(typeof o.length!="number"||o.length>0&&typeof o[0].nodeType!="number")throw"Template engine must return an array of DOM nodes";s=!1;switch(t){case"replaceChildren":i.virtualElements.setDomNodeChildren(n,o),s=!0;break;case"replaceNode":i.utils.replaceDomNodes(n,o),s=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+t);}return s&&(i.activateBindingsOnTemplateRenderedNodes(o,f),e.afterRender&&e.afterRender(o,f.$data)),o}function o(t,r){var u=i.utils.domData.get(t,n);u&&typeof u.dispose=="function"&&u.dispose(),i.utils.domData.set(t,n,r)}var r,n;i.setTemplateEngine=function(n){if(n!=t&&!(n instanceof i.templateEngine))throw"templateEngine must inherit from ko.templateEngine";r=n},i.activateBindingsOnTemplateRenderedNodes=function(n,t){var u=i.utils.arrayPushAll([],n),r=n.length>0?n[0].parentNode:null;f(u,r,function(n){i.applyBindings(t,n)}),f(u,r,function(n){i.memoization.unmemoizeDomNodeAndDescendants(n,[t])})},i.renderTemplate=function(n,f,o,s,h){o=o||{};if((o.templateEngine||r)==t)throw"Set a template engine before calling renderTemplate";h=h||"replaceChildren";if(s){var c=e(s),a=function(){return!c||!i.utils.domNodeIsAttachedToDocument(c)},l=c&&h=="replaceNode"?c.parentNode:c;return new i.dependentObservable(function(){var t=f&&f instanceof i.bindingContext?f:new i.bindingContext(i.utils.unwrapObservable(f)),l=typeof n=="function"?n(t.$data):n,r=u(s,h,l,t,o);h=="replaceNode"&&(s=r,c=e(s))},null,{disposeWhen:a,disposeWhenNodeIsRemoved:l})}return i.memoization.memoize(function(t){i.renderTemplate(n,f,o,t,"replaceNode")})},i.renderTemplateForEach=function(n,r,f,e,o){var s=function(n){return o.createChildContext(i.utils.unwrapObservable(n))},h=function(n,t){var r=s(n);i.activateBindingsOnTemplateRenderedNodes(t,r),f.afterRender&&f.afterRender(t,r.$data)};return new i.dependentObservable(function(){var o=i.utils.unwrapObservable(r)||[],c;typeof o.length=="undefined"&&(o=[o]),c=i.utils.arrayFilter(o,function(n){return f.includeDestroyed||n===t||n===null||!i.utils.unwrapObservable(n._destroy)}),i.utils.setDomNodeChildrenFromArrayMapping(e,c,function(t){var i=typeof n=="function"?n(t):n;return u(null,"ignoreTargetNode",i,s(t),f)},f,h)},null,{disposeWhenNodeIsRemoved:e})},n="__ko__templateSubscriptionDomDataKey__",i.bindingHandlers.template={init:function(n,t){var r=i.utils.unwrapObservable(t());return typeof r=="string"||r.name||n.nodeType!=1||(new i.templateSources.anonymousTemplate(n).text(n.innerHTML),i.utils.emptyDomNode(n)),{controlsDescendantBindings:!0}},update:function(n,t,r,u,f){var e=i.utils.unwrapObservable(t()),c,s=!0,h,a,l;typeof e=="string"?c=e:(c=e.name,"if"in e&&(s=s&&i.utils.unwrapObservable(e["if"])),"ifnot"in e&&(s=s&&!i.utils.unwrapObservable(e.ifnot))),h=null,typeof e=="object"&&"foreach"in e?(a=s&&e.foreach||[],h=i.renderTemplateForEach(c||n,a,e,n,f)):s?(l=typeof e=="object"&&"data"in e?f.createChildContext(i.utils.unwrapObservable(e.data)):f,h=i.renderTemplate(c||n,l,e,n)):i.virtualElements.emptyNode(n),o(n,h)}},i.jsonExpressionRewriting.bindingRewriteValidators.template=function(n){var t=i.jsonExpressionRewriting.parseObjectLiteral(n);return t.length==1&&t[0].unknown?null:i.jsonExpressionRewriting.keyValueArrayContainsKey(t,"name")?null:"This template engine does not support anonymous templates nested within its templates"},i.virtualElements.allowedBindings.template=!0}(),i.exportSymbol("ko.setTemplateEngine",i.setTemplateEngine),i.exportSymbol("ko.renderTemplate",i.renderTemplate),function(){function r(n,i,r){for(var e=[],s,f,y,o,v,w,p,c,h,a,l,u=0;u<=i.length;u++)e[u]=[];for(u=0,s=Math.min(n.length,r);u<=s;u++)e[0][u]=u;for(u=1,s=Math.min(i.length,r);u<=s;u++)e[u][0]=u;for(y=n.length,v=i.length,f=1;f<=y;f++)for(c=Math.max(1,f-r),h=Math.min(v,f+r),o=c;o<=h;o++)n[f-1]===i[o-1]?e[o][f]=e[o-1][f-1]:(a=e[o-1][f]===t?Number.MAX_VALUE:e[o-1][f]+1,l=e[o][f-1]===t?Number.MAX_VALUE:e[o][f-1]+1,e[o][f]=Math.min(a,l));return e}function n(n,i,r){var u=i.length,f=r.length,c=[],e=n[f][u];if(e===t)return null;while(u>0||f>0){var l=n[f][u],s=f>0?n[f-1][u]:e+1,o=u>0?n[f][u-1]:e+1,h=f>0&&u>0?n[f-1][u-1]:e+1;(s===t||s<l-1)&&(s=e+1),(o===t||o<l-1)&&(o=e+1),h<l-1&&(h=e+1),s<=o&&s<h?(c.push({status:"added",value:r[f-1]}),f--):o<s&&o<h?(c.push({status:"deleted",value:i[u-1]}),u--):(c.push({status:"retained",value:i[u-1]}),f--,u--)}return c.reverse()}i.utils.compareArrays=function(u,f,e){if(e===t)return i.utils.compareArrays(u,f,1)||i.utils.compareArrays(u,f,10)||i.utils.compareArrays(u,f,Number.MAX_VALUE);u=u||[],f=f||[];var o=r(u,f,e);return n(o,u,f)}}(),i.exportSymbol("ko.utils.compareArrays",i.utils.compareArrays),function(){function r(n){if(n.length>2){var t=n[0],r=n[n.length-1],i=[t];while(t!==r){t=t.nextSibling;if(!t)return;i.push(t)}Array.prototype.splice.apply(n,[0,n.length].concat(i))}}function u(n,t,u,f){var e=[],o=i.dependentObservable(function(){var n=t(u)||[];e.length>0&&(r(e),i.utils.replaceDomNodes(e,n),f&&f(u,n)),e.splice(0,e.length),i.utils.arrayPushAll(e,n)},null,{disposeWhenNodeIsRemoved:n,disposeWhen:function(){return e.length==0||!i.utils.domNodeIsAttachedToDocument(e[0])}});return{mappedNodes:e,dependentObservable:o}}var n="setDomNodeChildrenFromArrayMapping_lastMappingResult";i.utils.setDomNodeChildrenFromArrayMapping=function(f,e,o,s,h){var rt,y,d,it,w,tt,c;e=e||[],s=s||{};var ot=i.utils.domData.get(f,n)===t,k=i.utils.domData.get(f,n)||[],et=i.utils.arrayMap(k,function(n){return n.arrayEntry}),a=i.utils.compareArrays(et,e),nt=[],v=0,l=[],b=[],p=null;for(c=0,rt=a.length;c<rt;c++)switch(a[c].status){case"retained":y=k[v],nt.push(y),y.domNodes.length>0&&(p=y.domNodes[y.domNodes.length-1]),v++;break;case"deleted":k[v].dependentObservable.dispose(),r(k[v].domNodes),i.utils.arrayForEach(k[v].domNodes,function(n){l.push({element:n,index:c,value:a[c].value}),p=n}),v++;break;case"added":var ut=a[c].value,ft=u(f,o,ut,h),g=ft.mappedNodes;for(nt.push({arrayEntry:a[c].value,domNodes:g,dependentObservable:ft.dependentObservable}),d=0,it=g.length;d<it;d++)w=g[d],b.push({element:w,index:c,value:a[c].value}),p==null?i.virtualElements.prepend(f,w):i.virtualElements.insertAfter(f,w,p),p=w;h&&h(ut,g)}i.utils.arrayForEach(l,function(n){i.cleanNode(n.element)}),tt=!1;if(!ot){if(s.afterAdd)for(c=0;c<b.length;c++)s.afterAdd(b[c].element,b[c].index,b[c].value);if(s.beforeRemove){for(c=0;c<l.length;c++)s.beforeRemove(l[c].element,l[c].index,l[c].value);tt=!0}}tt||i.utils.arrayForEach(l,function(n){i.removeNode(n.element)}),i.utils.domData.set(f,n,nt)}}(),i.exportSymbol("ko.utils.setDomNodeChildrenFromArrayMapping",i.utils.setDomNodeChildrenFromArrayMapping),i.nativeTemplateEngine=function(){this.allowTemplateRewriting=!1},i.nativeTemplateEngine.prototype=new i.templateEngine,i.nativeTemplateEngine.prototype.renderTemplateSource=function(n){var u=n.text();return i.utils.parseHtmlFragment(u)},i.nativeTemplateEngine.instance=new i.nativeTemplateEngine,i.setTemplateEngine(i.nativeTemplateEngine.instance),i.exportSymbol("ko.nativeTemplateEngine",i.nativeTemplateEngine),function(){i.jqueryTmplTemplateEngine=function(){function i(){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 t(n,t,i){return jQuery.tmpl(n,t,i)}var n=this.jQueryTmplVersion=function(){if(typeof jQuery=="undefined"||!jQuery.tmpl)return 0;try{if(jQuery.tmpl.tag.tmpl.open.toString().indexOf("__")>=0)return 2}catch(n){}return 1}();this.renderTemplateSource=function(n,r,u){var f,e;u=u||{},i(),f=n.data("precompiled"),f||(e=n.text()||"",e="{{ko_with $item.koBindingContext}}"+e+"{{/ko_with}}",f=jQuery.template(null,e),n.data("precompiled",f));var s=[r.$data],h=jQuery.extend({koBindingContext:r},u.templateOptions),o=t(f,s,h);return o.appendTo(document.createElement("div")),jQuery.fragments={},o},this.createJavaScriptEvaluatorBlock=function(n){return"{{ko_code ((function() { return "+n+" })()) }}"},this.addTemplate=function(n,t){document.write("<script type='text/html' id='"+n+"'>"+t+"<\/script>")},n>0&&(jQuery.tmpl.tag.ko_code={open:"__.push($1 || '');"},jQuery.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},i.jqueryTmplTemplateEngine.prototype=new i.templateEngine;var n=new i.jqueryTmplTemplateEngine;n.jQueryTmplVersion>0&&i.setTemplateEngine(n),i.exportSymbol("ko.jqueryTmplTemplateEngine",i.jqueryTmplTemplateEngine)}()})(window)
