/* knockback-full-stack.js 1.0.0 Copyright (c) 2011-2015 Kevin Malakoff. License: MIT (http://www.opensource.org/licenses/mit-license.php) Source: https://github.com/kmalakoff/knockback Dependencies: Knockout.js, Backbone.js, and Underscore.js (or LoDash.js). Optional dependencies: Backbone.ModelRef.js and BackboneORM. */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?exports.kb=t(require("jquery")):e.kb=t(e.jQuery)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){n(1),n(10),n(14),n(15),n(16),n(2),n(17),n(18),n(20),n(21),n(19),n(22),n(26),n(27),n(29),n(30),n(31),n(32),e.exports=n(34)},function(e,t,n){var r,i,o,s,a,u,l,c,d=function(e,t){return function(){return e.apply(t,arguments)}},p=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};c=u=n(2),a=c._,l=c.ko,o=0,r=-1,i=1,s=["destroy","shareOptions","filters","comparator","sortAttribute","viewModelByModel","hasViewModels"],u.compare=function(e,t){return a.isString(e)?e.localeCompare(""+t):a.isString(t)?t.localeCompare(""+e):e===t?o:t>e?r:i},u.CollectionObservable=function(){function e(e,t,n){this._onCollectionChange=d(this._onCollectionChange,this);var r;return r=Array.prototype.slice.call(a.isArguments(e)?e:arguments),u.ignore(function(t){return function(){var i,o,c,d,p;for(e=r[0]instanceof u.Collection?r.shift():a.isArray(r[0])?new u.Collection(r.shift()):new u.Collection,a.isFunction(r[0])&&(r[0]={view_model:r[0]}),n={},c=0,d=r.length;d>c;c++)i=r[c],a.extend(n,i);return p=u.utils.wrappedObservable(t,l.observableArray([])),p.__kb_is_co=!0,t.in_edit=0,t.__kb||(t.__kb={}),n=u.utils.collapseOptions(n),n.auto_compact&&(t.auto_compact=!0),n.sort_attribute?t._comparator=l.observable(t._attributeComparator(n.sort_attribute)):t._comparator=l.observable(n.comparator),n.filters?t._filters=l.observableArray(a.isArray(n.filters)?n.filters:n.filters?[n.filters]:void 0):t._filters=l.observableArray([]),o=t.create_options={store:u.Store.useOptionsOrCreate(n,e,p)},u.utils.wrappedObject(p,e),t.path=n.path,o.factory=u.utils.wrappedFactory(p,t._shareOrCreateFactory(n)),o.path=u.utils.pathJoin(n.path,"models"),o.creator=o.factory.creatorForPath(null,o.path),o.creator&&(t.models_only=o.creator.models_only),u.publishMethods(p,t,s),t._collection=l.observable(e),p.collection=t.collection=l.computed({read:function(){return t._collection()},write:function(e){return u.ignore(function(){var n;if((n=t._collection())!==e)return u.utils.wrappedObject(p,e),n&&n.unbind("all",t._onCollectionChange),e&&e.bind("all",t._onCollectionChange),t._collection(e)})}}),e&&e.bind("all",t._onCollectionChange),t._mapper=l.computed(function(){var e,n,r,i,o,s,c,d,f;if(e=t._comparator(),i=t._filters())for(o=0,s=i.length;s>o;o++)r=i[o],l.utils.unwrapObservable(r);n=t._collection(),t.in_edit||(p=u.utils.wrappedObservable(t),d=u.peek(p),n&&(c=n.models),c&&0!==n.models.length?(c=a.filter(c,function(e){return!i.length||t._selectModel(e)}),f=e?a.map(c,function(e){return t._createViewModel(e)}).sort(e):t.models_only?i.length?c:c.slice():a.map(c,function(e){return t._createViewModel(e)})):f=[],t.in_edit++,p(f),t.in_edit--)}),p.subscribe(a.bind(t._onObservableArrayChange,t)),!u.statistics||u.statistics.register("CollectionObservable",t),p}}(this))}return e.extend=u.extend,e.prototype.destroy=function(){var e,t,n;return this.__kb_released=!0,n=u.utils.wrappedObservable(this),t=u.peek(this._collection),u.utils.wrappedObject(n,null),t&&(t.unbind("all",this._onCollectionChange),e=u.peek(n),e.splice(0,e.length)),this.collection.dispose(),this._collection=n.collection=this.collection=null,this._mapper.dispose(),this._mapper=null,u.release(this._filters),this._filters=null,this._comparator(null),this._comparator=null,this.create_options=null,n.collection=null,u.utils.wrappedDestroy(this),!u.statistics||u.statistics.unregister("CollectionObservable",this)},e.prototype.shareOptions=function(){var e;return e=u.utils.wrappedObservable(this),{store:u.utils.wrappedStore(e),factory:u.utils.wrappedFactory(e)}},e.prototype.filters=function(e){return e?this._filters(a.isArray(e)?e:[e]):this._filters([])},e.prototype.comparator=function(e){return this._comparator(e)},e.prototype.sortAttribute=function(e){return this._comparator(e?this._attributeComparator(e):null)},e.prototype.viewModelByModel=function(e){var t;return this.models_only?null:(t=e.hasOwnProperty(e.idAttribute)?e.idAttribute:"cid",a.find(u.peek(u.utils.wrappedObservable(this)),function(n){var r;return(null!=n&&null!=(r=n.__kb)?r.object:void 0)?n.__kb.object[t]===e[t]:!1}))},e.prototype.hasViewModels=function(){return!this.models_only},e.prototype.compact=function(){return u.ignore(function(e){return function(){var t;return t=u.utils.wrappedObservable(e),u.utils.wrappedStoreIsOwned(t)?(u.utils.wrappedStore(t).clear(),e._collection.notifySubscribers(e._collection())):void 0}}(this))},e.prototype._shareOrCreateFactory=function(e){var t,n,r,i;if(t=u.utils.pathJoin(e.path,"models"),r=e.factories,(i=e.factory)&&(n=i.creatorForPath(null,t))&&(!r||r.models===n)){if(!r)return i;if(i.hasPathMappings(r,e.path))return i}return i=new u.Factory(e.factory),r&&i.addPathMappings(r,e.path),i.creatorForPath(null,t)||(e.hasOwnProperty("models_only")?e.models_only?i.addPathMapping(t,{models_only:!0}):i.addPathMapping(t,u.ViewModel):e.view_model?i.addPathMapping(t,e.view_model):e.create?i.addPathMapping(t,{create:e.create}):i.addPathMapping(t,u.ViewModel)),i},e.prototype._onCollectionChange=function(e,t){return u.ignore(function(n){return function(){var r,i,o,s;if(!n.in_edit&&!u.wasReleased(n))switch(e){case"reset":n.auto_compact?n.compact():n._collection.notifySubscribers(n._collection());break;case"sort":case"resort":n._collection.notifySubscribers(n._collection());break;case"new":case"add":if(!n._selectModel(t))return;if(o=u.utils.wrappedObservable(n),r=n._collection(),-1===r.indexOf(t))return;if(s=n.viewModelByModel(t))return;n.in_edit++,(i=n._comparator())?(o().push(n._createViewModel(t)),o.sort(i)):o.splice(r.indexOf(t),0,n._createViewModel(t)),n.in_edit--;break;case"remove":case"destroy":n._onModelRemove(t);break;case"change":if(!n._selectModel(t))return n._onModelRemove(t);if(s=n.models_only?t:n.viewModelByModel(t),!s)return n._onCollectionChange("add",t);if(!(i=n._comparator()))return;n.in_edit++,u.utils.wrappedObservable(n).sort(i),n.in_edit--}}}(this))},e.prototype._onModelRemove=function(e){var t,n;return(n=this.models_only?e:this.viewModelByModel(e))?(t=u.utils.wrappedObservable(this),this.in_edit++,t.remove(n),this.in_edit--):void 0},e.prototype._onObservableArrayChange=function(e){return u.ignore(function(t){return function(){var n,r,i,o,s,l,c,d,p,f;if(!t.in_edit&&(t.models_only&&(!e.length||u.isModel(e[0]))||!t.models_only&&(!e.length||a.isObject(e[0])&&!u.isModel(e[0]))||u._throwUnexpected(t,"incorrect type passed"),d=u.utils.wrappedObservable(t),n=u.peek(t._collection),i=u.peek(t._filters).length,n)){if(f=e,t.models_only)c=a.filter(e,function(e){return!i||t._selectModel(e)});else for(!i||(f=[]),c=[],o=0,s=e.length;s>o;o++){if(p=e[o],l=u.utils.wrappedObject(p),i){if(!t._selectModel(l))continue;f.push(p)}(r=t.create_options.store.find(l,t.create_options.creator))&&(r.constructor===p.constructor||u._throwUnexpected(t,"replacing different type of view model")),t.create_options.store.retain(p,l,t.create_options.creator),c.push(l)}t.in_edit++,e.length===f.length||d(f),a.isEqual(n.models,c)||n.reset(c),t.in_edit--}}}(this))},e.prototype._attributeComparator=function(e){var t;return t=function(t,n){var r;return r=l.utils.unwrapObservable(e),u.compare(t.get(r),n.get(r))},this.models_only?t:function(e,n){return t(u.utils.wrappedModel(e),u.utils.wrappedModel(n))}},e.prototype._createViewModel=function(e){return this.models_only?e:this.create_options.store.retainOrCreate(e,this.create_options)},e.prototype._selectModel=function(e){var t,n,r,i,o;for(n=u.peek(this._filters),r=0,i=n.length;i>r;r++)if(t=n[r],t=u.peek(t),a.isFunction(t)){if(!t(e))return!1}else if(a.isArray(t)){if(o=e.id,p.call(t,o)<0)return!1}else if(e.id!==t)return!1;return!0},e}(),u.collectionObservable=function(e,t,n){return new u.CollectionObservable(arguments)},u.observableCollection=u.collectionObservable},function(e,t,n){(function(t){var r,i,o,s,a,u;u=null!=u?u:t,a=n(3),i=["release","destroy","dispose"],e.exports=s=function(){function e(){}var t;return e.VERSION="1.0.0",e.TYPE_UNKNOWN=0,e.TYPE_SIMPLE=1,e.TYPE_ARRAY=2,e.TYPE_MODEL=3,e.TYPE_COLLECTION=4,e.wasReleased=function(e){return!e||e.__kb_released},e.isReleaseable=function(t,n){var r,o,s,u,l;if(null==n&&(n=0),!t||t!==Object(t)||t.__kb_released)return!1;if(a.isObservable(t)||t instanceof e.ViewModel)return!0;if("function"==typeof t||e.isModel(t)||e.isCollection(t))return!1;for(r=0,s=i.length;s>r;r++)if(u=i[r],"function"==typeof t[u])return!0;if(n>0)return!1;for(o in t)if(l=t[o],"__kb"!==o&&e.isReleaseable(l,n+1))return!0;return!1},e.release=function(t){var n,r,s,u,l,c;if(e.isReleaseable(t)){if(t.__kb_released=!0,!o.isArray(t)){if(a.isObservable(t)&&o.isArray(n=e.peek(t))){if(t.__kb_is_co||t.__kb_is_o&&t.valueType()===e.TYPE_COLLECTION)return"function"==typeof t.destroy?t.destroy():void 0;for(s in n)c=n[s],e.isReleaseable(c)&&(n[s]=null,e.release(c));return void("function"==typeof t.dispose&&t.dispose())}for(r=0,u=i.length;u>r;r++)if(l=i[r],"function"==typeof t[l])return t[l].call(t);return a.isObservable(t)?void 0:this.releaseKeys(t)}for(s in t)c=t[s],e.isReleaseable(c)&&(t[s]=null,e.release(c))}},e.releaseKeys=function(t){var n,r;for(n in t)r=t[n],"__kb"!==n&&e.isReleaseable(r)&&(t[n]=null,e.release(r))},e.releaseOnNodeRemove=function(t,n){return t||e._throwUnexpected(this,"missing view model"),n||e._throwUnexpected(this,"missing node"),a.utils.domNodeDisposal.addDisposeCallback(n,function(){return e.release(t)})},e.renderTemplate=function(t,n,r){var i,o,s;return null==r&&(r={}),(i=null!=u?u.document:void 0)?(o=i.createElement("div"),s=a.renderTemplate(t,n,r,o,"replaceChildren"),1===o.childNodes.length?o=o.childNodes[0]:o.childNodes.length&&a.storedBindingContextForNode(o,a.contextFor(o.childNodes[0])),e.releaseOnNodeRemove(n,o),s.dispose(),n.afterRender&&!r.afterRender&&n.afterRender(o),o):"undefined"!=typeof console&&null!==console?console.log("renderTemplate: document is undefined"):void 0},e.applyBindings=function(t,n){var r,i,o,s,u;if(n.length)for(u=[document.createElement("div"),n],n=u[0],i=u[1],o=0,s=i.length;s>o;o++)r=i[o],n.appendChild(r);return a.applyBindings(t,n),e.releaseOnNodeRemove(t,n),n},e.getValue=function(t,n,r){var i;if(t)return o.isFunction(t[n])&&(null!=(i=e.orm)?i.useFunction(t,n):void 0)?t[n]():r?t.get.apply(t,o.map([n].concat(r),function(t){return e.peek(t)})):t.get(n)},e.setValue=function(t,n,r){var i,s;if(t)return o.isFunction(t[n])&&(null!=(s=e.orm)?s.useFunction(t,n):void 0)?t[n](r):((i={})[n]=r,t.set(i))},e.ignore=(null!=(t=a.dependencyDetection)?t.ignore:void 0)||function(e,t,n){var r;return r=null,a.computed(function(){return r=e.apply(t,n||[])}).dispose(),r},e.extend=n(6),e._throwMissing=function(e,t){throw(o.isString(e)?e:e.constructor.name)+": "+t+" is missing"},e._throwUnexpected=function(e,t){throw(o.isString(e)?e:e.constructor.name)+": "+t+" is unexpected"},e.publishMethods=function(t,n,r){var i,o,s;for(o=0,s=r.length;s>o;o++)i=r[o],t[i]=e._.bind(n[i],n)},e.peek=function(t){return a.isObservable(t)?t.peek?t.peek():e.ignore(function(){return t()}):t},e.isModel=function(t){return t&&(t instanceof e.Model||"function"==typeof t.get&&"function"==typeof t.bind)},e.isCollection=function(t){return t&&t instanceof e.Collection},e}(),u.Parse?(r=s.Parse=u.Parse,o=s._=u.Parse._):(r=s.Backbone=n(7),o=s._=n(8)),s.ko=a,s.Collection=r.Collection,s.Model=r.Object||r.Model,s.Events=r.Events,s.$=u.jQuery||u.$;try{s.$||(s.$=n(9))}catch(l){}}).call(t,function(){return this}())},function(e,t,n){var r,i,o;(function(e){!function(){var s=!0;!function(a){var u=this||(0,eval)("this"),l=u.document,c=u.navigator,d=u.jQuery,p=u.JSON;!function(s){n(5).amd?(i=[t,n],r=s,o="function"==typeof r?r.apply(t,i):r,!(o!==a&&(e.exports=o))):s(e.exports||t)}(function(e,t){function n(e,t){var n=null===e||typeof e in m;return n?e===t:!1}function r(e,t){var n;return function(){n||(n=setTimeout(function(){n=a,e()},t))}}function i(e,t){var n;return function(){clearTimeout(n),n=setTimeout(e,t)}}function o(e){var t=this;return e&&v.utils.objectForEach(e,function(e,n){var r=v.extenders[e];"function"==typeof r&&(t=r(t,n)||t)}),t}function f(e){v.bindingHandlers[e]={init:function(t,n,r,i,o){var s=function(){var t={};return t[e]=n(),t};return v.bindingHandlers.event.init.call(this,t,s,r,i,o)}}}function h(e,t,n,r){v.bindingHandlers[e]={init:function(e,i,o,s,a){var u,l;return v.computed(function(){var o=v.utils.unwrapObservable(i()),s=!n!=!o,c=!l,d=c||t||s!==u;d&&(c&&v.computedContext.getDependenciesCount()&&(l=v.utils.cloneNodes(v.virtualElements.childNodes(e),!0)),s?(c||v.virtualElements.setDomNodeChildren(e,v.utils.cloneNodes(l)),v.applyBindingsToDescendants(r?r(a,o):a,e)):v.virtualElements.emptyNode(e),u=s)},null,{disposeWhenNodeIsRemoved:e}),{controlsDescendantBindings:!0}}},v.expressionRewriting.bindingRewriteValidators[e]=!1,v.virtualElements.allowedBindings[e]=!0}var v="undefined"!=typeof e?e:{};v.exportSymbol=function(e,t){for(var n=e.split("."),r=v,i=0;in;n++)h[t[n]]=e});var b={propertychange:!0},g=l&&function(){for(var e=3,t=l.createElement("div"),n=t.getElementsByTagName("i");t.innerHTML="",n[0];);return e>4?e:a}(),y=6===g,_=7===g,w=/\S+/g;return{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(e,t){for(var n=0,r=e.length;r>n;n++)t(e[n],n)},arrayIndexOf:function(e,t){if("function"==typeof Array.prototype.indexOf)return Array.prototype.indexOf.call(e,t);for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},arrayFirst:function(e,t,n){for(var r=0,i=e.length;i>r;r++)if(t.call(n,e[r],r))return e[r];return null},arrayRemoveItem:function(e,t){var n=v.utils.arrayIndexOf(e,t);n>0?e.splice(n,1):0===n&&e.shift()},arrayGetDistinctValues:function(e){e=e||[];for(var t=[],n=0,r=e.length;r>n;n++)v.utils.arrayIndexOf(t,e[n])<0&&t.push(e[n]);return t},arrayMap:function(e,t){e=e||[];for(var n=[],r=0,i=e.length;i>r;r++)n.push(t(e[r],r));return n},arrayFilter:function(e,t){e=e||[];for(var n=[],r=0,i=e.length;i>r;r++)t(e[r],r)&&n.push(e[r]);return n},arrayPushAll:function(e,t){if(t instanceof Array)e.push.apply(e,t);else for(var n=0,r=t.length;r>n;n++)e.push(t[n]);return e},addOrRemoveItem:function(e,t,n){var r=v.utils.arrayIndexOf(v.utils.peekObservable(e),t);0>r?n&&e.push(t):n||e.splice(r,1)},canSetPrototype:s,extend:t,setPrototypeOf:n,setPrototypeOfOrExtend:s?n:t,objectForEach:e,objectMap:function(e,t){if(!e)return e;var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r],r,e));return n},emptyDomNode:function(e){for(;e.firstChild;)v.removeNode(e.firstChild)},moveCleanedNodesToContainerElement:function(e){for(var t=v.utils.makeArray(e),n=t[0]&&t[0].ownerDocument||l,r=n.createElement("div"),i=0,o=t.length;o>i;i++)r.appendChild(v.cleanNode(t[i]));return r},cloneNodes:function(e,t){for(var n=0,r=e.length,i=[];r>n;n++){var o=e[n].cloneNode(!0);i.push(t?v.cleanNode(o):o)}return i},setDomNodeChildren:function(e,t){if(v.utils.emptyDomNode(e),t)for(var n=0,r=t.length;r>n;n++)e.appendChild(t[n])},replaceDomNodes:function(e,t){var n=e.nodeType?[e]:e;if(n.length>0){for(var r=n[0],i=r.parentNode,o=0,s=t.length;s>o;o++)i.insertBefore(t[o],r);for(var o=0,s=n.length;s>o;o++)v.removeNode(n[o])}},fixUpContinuousNodeArray:function(e,t){if(e.length){for(t=8===t.nodeType&&t.parentNode||t;e.length&&e[0].parentNode!==t;)e.splice(0,1);if(e.length>1){var n=e[0],r=e[e.length-1];for(e.length=0;n!==r;)if(e.push(n),n=n.nextSibling,!n)return;e.push(r)}}return e},setOptionNodeSelectionState:function(e,t){7>g?e.setAttribute("selected",t):e.selected=t},stringTrim:function(e){return null===e||e===a?"":e.trim?e.trim():e.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},stringStartsWith:function(e,t){return e=e||"",t.length>e.length?!1:e.substring(0,t.length)===t},domNodeIsContainedBy:function(e,t){if(e===t)return!0;if(11===e.nodeType)return!1;if(t.contains)return t.contains(3===e.nodeType?e.parentNode:e);if(t.compareDocumentPosition)return 16==(16&t.compareDocumentPosition(e));for(;e&&e!=t;)e=e.parentNode;return!!e},domNodeIsAttachedToDocument:function(e){return v.utils.domNodeIsContainedBy(e,e.ownerDocument.documentElement)},anyDomNodeIsAttachedToDocument:function(e){return!!v.utils.arrayFirst(e,v.utils.domNodeIsAttachedToDocument)},tagNameLower:function(e){return e&&e.tagName&&e.tagName.toLowerCase()},registerEventHandler:function(e,t,n){var r=g&&b[t];if(!r&&d)d(e).bind(t,n);else if(r||"function"!=typeof e.addEventListener){if("undefined"==typeof e.attachEvent)throw new Error("Browser doesn't support addEventListener or attachEvent");var i=function(t){n.call(e,t)},o="on"+t;e.attachEvent(o,i),v.utils.domNodeDisposal.addDisposeCallback(e,function(){e.detachEvent(o,i)})}else e.addEventListener(t,n,!1)},triggerEvent:function(e,t){if(!e||!e.nodeType)throw new Error("element must be a DOM node when calling triggerEvent");var n=r(e,t);if(d&&!n)d(e).trigger(t);else if("function"==typeof l.createEvent){if("function"!=typeof e.dispatchEvent)throw new Error("The supplied element doesn't support dispatchEvent");var i=h[t]||"HTMLEvents",o=l.createEvent(i);o.initEvent(t,!0,!0,u,0,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(o)}else if(n&&e.click)e.click();else{if("undefined"==typeof e.fireEvent)throw new Error("Browser doesn't support triggering events");e.fireEvent("on"+t)}},unwrapObservable:function(e){return v.isObservable(e)?e():e},peekObservable:function(e){return v.isObservable(e)?e.peek():e},toggleDomNodeCssClass:i,setTextContent:function(e,t){var n=v.utils.unwrapObservable(t);(null===n||n===a)&&(n="");var r=v.virtualElements.firstChild(e);!r||3!=r.nodeType||v.virtualElements.nextSibling(r)?v.virtualElements.setDomNodeChildren(e,[e.ownerDocument.createTextNode(n)]):r.data=n,v.utils.forceRefresh(e)},setElementName:function(e,t){if(e.name=t,7>=g)try{e.mergeAttributes(l.createElement(""),!1)}catch(n){}},forceRefresh:function(e){if(g>=9){var t=1==e.nodeType?e:e.parentNode;t.style&&(t.style.zoom=t.style.zoom)}},ensureSelectElementIsRenderedCorrectly:function(e){if(g){var t=e.style.width;e.style.width=0,e.style.width=t}},range:function(e,t){e=v.utils.unwrapObservable(e),t=v.utils.unwrapObservable(t);for(var n=[],r=e;t>=r;r++)n.push(r);return n},makeArray:function(e){for(var t=[],n=0,r=e.length;r>n;n++)t.push(e[n]);return t},isIe6:y,isIe7:_,ieVersion:g,getFormFields:function(e,t){for(var n=v.utils.makeArray(e.getElementsByTagName("input")).concat(v.utils.makeArray(e.getElementsByTagName("textarea"))),r="string"==typeof t?function(e){return e.name===t}:function(e){return t.test(e.name)},i=[],o=n.length-1;o>=0;o--)r(n[o])&&i.push(n[o]);return i},parseJson:function(e){return"string"==typeof e&&(e=v.utils.stringTrim(e))?p&&p.parse?p.parse(e):new Function("return "+e)():null},stringifyJson:function(e,t,n){if(!p||!p.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 p.stringify(v.utils.unwrapObservable(e),t,n)},postJson:function(t,n,r){r=r||{};var i=r.params||{},o=r.includeFields||this.fieldsIncludedWithJsonPost,s=t;if("object"==typeof t&&"form"===v.utils.tagNameLower(t)){var a=t;s=a.action;for(var u=o.length-1;u>=0;u--)for(var c=v.utils.getFormFields(a,o[u]),d=c.length-1;d>=0;d--)i[c[d].name]=c[d].value}n=v.utils.unwrapObservable(n);var p=l.createElement("form");p.style.display="none",p.action=s,p.method="post";for(var f in n){var h=l.createElement("input");h.type="hidden",h.name=f,h.value=v.utils.stringifyJson(v.utils.unwrapObservable(n[f])),p.appendChild(h)}e(i,function(e,t){var n=l.createElement("input");n.type="hidden",n.name=e,n.value=t,p.appendChild(n)}),l.body.appendChild(p),r.submitter?r.submitter(p):p.submit(),setTimeout(function(){p.parentNode.removeChild(p)},0)}}}(),v.exportSymbol("utils",v.utils),v.exportSymbol("utils.arrayForEach",v.utils.arrayForEach),v.exportSymbol("utils.arrayFirst",v.utils.arrayFirst),v.exportSymbol("utils.arrayFilter",v.utils.arrayFilter),v.exportSymbol("utils.arrayGetDistinctValues",v.utils.arrayGetDistinctValues),v.exportSymbol("utils.arrayIndexOf",v.utils.arrayIndexOf),v.exportSymbol("utils.arrayMap",v.utils.arrayMap),v.exportSymbol("utils.arrayPushAll",v.utils.arrayPushAll),v.exportSymbol("utils.arrayRemoveItem",v.utils.arrayRemoveItem),v.exportSymbol("utils.extend",v.utils.extend),v.exportSymbol("utils.fieldsIncludedWithJsonPost",v.utils.fieldsIncludedWithJsonPost),v.exportSymbol("utils.getFormFields",v.utils.getFormFields),v.exportSymbol("utils.peekObservable",v.utils.peekObservable),v.exportSymbol("utils.postJson",v.utils.postJson),v.exportSymbol("utils.parseJson",v.utils.parseJson),v.exportSymbol("utils.registerEventHandler",v.utils.registerEventHandler),v.exportSymbol("utils.stringifyJson",v.utils.stringifyJson),v.exportSymbol("utils.range",v.utils.range),v.exportSymbol("utils.toggleDomNodeCssClass",v.utils.toggleDomNodeCssClass),v.exportSymbol("utils.triggerEvent",v.utils.triggerEvent),v.exportSymbol("utils.unwrapObservable",v.utils.unwrapObservable),v.exportSymbol("utils.objectForEach",v.utils.objectForEach),v.exportSymbol("utils.addOrRemoveItem",v.utils.addOrRemoveItem),v.exportSymbol("utils.setTextContent",v.utils.setTextContent),v.exportSymbol("unwrap",v.utils.unwrapObservable),Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if(1===arguments.length)return function(){return t.apply(e,arguments)};var n=Array.prototype.slice.call(arguments,1);return function(){var r=n.slice(0);return r.push.apply(r,arguments),t.apply(e,r)}}),v.utils.domData=new function(){function e(e,i){var o=e[n],s=o&&"null"!==o&&r[o];if(!s){if(!i)return a;o=e[n]="ko"+t++,r[o]={}}return r[o]}var t=0,n="__ko__"+(new Date).getTime(),r={};return{get:function(t,n){var r=e(t,!1);return r===a?a:r[n]},set:function(t,n,r){if(r!==a||e(t,!1)!==a){var i=e(t,!0);i[n]=r}},clear:function(e){var t=e[n];return t?(delete r[t],e[n]=null,!0):!1},nextKey:function(){return t++ +n}}},v.exportSymbol("utils.domData",v.utils.domData),v.exportSymbol("utils.domData.clear",v.utils.domData.clear),v.utils.domNodeDisposal=new function(){function e(e,t){var n=v.utils.domData.get(e,i);return n===a&&t&&(n=[],v.utils.domData.set(e,i,n)),n}function t(e){v.utils.domData.set(e,i,a)}function n(t){var n=e(t,!1);if(n){n=n.slice(0);for(var i=0;ir;r++)n(t[r])}return e},removeNode:function(e){v.cleanNode(e),e.parentNode&&e.parentNode.removeChild(e)},cleanExternalData:function(e){d&&"function"==typeof d.cleanData&&d.cleanData([e])}}},v.cleanNode=v.utils.domNodeDisposal.cleanNode,v.removeNode=v.utils.domNodeDisposal.removeNode,v.exportSymbol("cleanNode",v.cleanNode),v.exportSymbol("removeNode",v.removeNode),v.exportSymbol("utils.domNodeDisposal",v.utils.domNodeDisposal),v.exportSymbol("utils.domNodeDisposal.addDisposeCallback",v.utils.domNodeDisposal.addDisposeCallback),v.exportSymbol("utils.domNodeDisposal.removeDisposeCallback",v.utils.domNodeDisposal.removeDisposeCallback),function(){function e(e,t){t||(t=l);var n=t.parentWindow||t.defaultView||u,r=v.utils.stringTrim(e).toLowerCase(),i=t.createElement("div"),o=r.match(/^<(thead|tbody|tfoot)/)&&[1,"","
"]||!r.indexOf("",""]||(!r.indexOf("",""]||[0,"",""],s="ignored
"+o[1]+e+o[2]+"
";for("function"==typeof n.innerShiv?i.appendChild(n.innerShiv(s)):i.innerHTML=s;o[0]--;)i=i.lastChild;return v.utils.makeArray(i.lastChild.childNodes)}function t(e,t){if(d.parseHTML)return d.parseHTML(e,t)||[];var n=d.clean([e],t);if(n&&n[0]){for(var r=n[0];r.parentNode&&11!==r.parentNode.nodeType;)r=r.parentNode;r.parentNode&&r.parentNode.removeChild(r)}return n}v.utils.parseHtmlFragment=function(n,r){return d?t(n,r):e(n,r)},v.utils.setHtml=function(e,t){if(v.utils.emptyDomNode(e),t=v.utils.unwrapObservable(t),null!==t&&t!==a)if("string"!=typeof t&&(t=t.toString()),d)d(e).html(t);else for(var n=v.utils.parseHtmlFragment(t,e.ownerDocument),r=0;ri;i++)n(o[i],t)}var r={};return{memoize:function(e){if("function"!=typeof e)throw new Error("You can only pass a function to ko.memoization.memoize()");var n=t();return r[n]=e,""},unmemoize:function(e,t){var n=r[e];if(n===a)throw new Error("Couldn't find any memo with ID "+e+". Perhaps it's already been unmemoized.");try{return n.apply(null,t||[]),!0}finally{delete r[e]}},unmemoizeDomNodeAndDescendants:function(e,t){var r=[];n(e,r);for(var i=0,o=r.length;o>i;i++){var s=r[i].domNode,a=[s];t&&v.utils.arrayPushAll(a,t),v.memoization.unmemoize(r[i].memoId,a),s.nodeValue="",s.parentNode&&s.parentNode.removeChild(s)}},parseMemoText:function(e){var t=e.match(/^\[ko_memo\:(.*?)\]$/);return t?t[1]:null}}}(),v.exportSymbol("memoization",v.memoization),v.exportSymbol("memoization.memoize",v.memoization.memoize),v.exportSymbol("memoization.unmemoize",v.memoization.unmemoize),v.exportSymbol("memoization.parseMemoText",v.memoization.parseMemoText),v.exportSymbol("memoization.unmemoizeDomNodeAndDescendants",v.memoization.unmemoizeDomNodeAndDescendants),v.extenders={throttle:function(e,t){e.throttleEvaluation=t;var n=null;return v.dependentObservable({read:e,write:function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}})},rateLimit:function(e,t){var n,o,s;"number"==typeof t?n=t:(n=t.timeout,o=t.method),s="notifyWhenChangesStop"==o?i:r,e.limit(function(e){return s(e,n)})},notify:function(e,t){e.equalityComparer="always"==t?null:n}};var m={undefined:1,"boolean":1,number:1,string:1};v.exportSymbol("extenders",v.extenders),v.subscription=function(e,t,n){this._target=e,this.callback=t,this.disposeCallback=n,this.isDisposed=!1,v.exportProperty(this,"dispose",this.dispose)},v.subscription.prototype.dispose=function(){this.isDisposed=!0,this.disposeCallback()},v.subscribable=function(){v.utils.setPrototypeOfOrExtend(this,v.subscribable.fn),this._subscriptions={},this._versionNumber=1};var b="change",g={subscribe:function(e,t,n){var r=this;n=n||b;var i=t?e.bind(t):e,o=new v.subscription(r,i,function(){v.utils.arrayRemoveItem(r._subscriptions[n],o),r.afterSubscriptionRemove&&r.afterSubscriptionRemove(n)});return r.beforeSubscriptionAdd&&r.beforeSubscriptionAdd(n),r._subscriptions[n]||(r._subscriptions[n]=[]),r._subscriptions[n].push(o),o},notifySubscribers:function(e,t){if(t=t||b,t===b&&this.updateVersion(),this.hasSubscriptionsForEvent(t))try{v.dependencyDetection.begin();for(var n,r=this._subscriptions[t].slice(0),i=0;n=r[i];++i)n.isDisposed||n.callback(e)}finally{v.dependencyDetection.end()}},getVersion:function(){return this._versionNumber},hasChanged:function(e){return this.getVersion()!==e},updateVersion:function(){++this._versionNumber},limit:function(e){var t,n,r,i=this,o=v.isObservable(i),s="beforeChange";i._origNotifySubscribers||(i._origNotifySubscribers=i.notifySubscribers,i.notifySubscribers=function(e,t){t&&t!==b?t===s?i._rateLimitedBeforeChange(e):i._origNotifySubscribers(e,t):i._rateLimitedChange(e)});var a=e(function(){o&&r===i&&(r=i()),t=!1,i.isDifferent(n,r)&&i._origNotifySubscribers(n=r)});i._rateLimitedChange=function(e){t=!0,r=e,a()},i._rateLimitedBeforeChange=function(e){t||(n=e,i._origNotifySubscribers(e,s))}},hasSubscriptionsForEvent:function(e){return this._subscriptions[e]&&this._subscriptions[e].length},getSubscriptionsCount:function(e){if(e)return this._subscriptions[e]&&this._subscriptions[e].length||0;var t=0;return v.utils.objectForEach(this._subscriptions,function(e,n){t+=n.length}),t},isDifferent:function(e,t){return!this.equalityComparer||!this.equalityComparer(e,t)},extend:o};v.exportProperty(g,"subscribe",g.subscribe),v.exportProperty(g,"extend",g.extend),v.exportProperty(g,"getSubscriptionsCount",g.getSubscriptionsCount),v.utils.canSetPrototype&&v.utils.setPrototypeOf(g,Function.prototype),v.subscribable.fn=g,v.isSubscribable=function(e){return null!=e&&"function"==typeof e.subscribe&&"function"==typeof e.notifySubscribers},v.exportSymbol("subscribable",v.subscribable),v.exportSymbol("isSubscribable",v.isSubscribable),v.computedContext=v.dependencyDetection=function(){function e(){return++o}function t(e){i.push(r),r=e}function n(){r=i.pop()}var r,i=[],o=0;return{begin:t,end:n,registerDependency:function(t){if(r){if(!v.isSubscribable(t))throw new Error("Only subscribable things can act as dependencies");r.callback(t,t._id||(t._id=e()))}},ignore:function(e,r,i){try{return t(),e.apply(r,i||[])}finally{n()}},getDependenciesCount:function(){return r?r.computed.getDependenciesCount():void 0},isInitial:function(){return r?r.isInitial:void 0}}}(),v.exportSymbol("computedContext",v.computedContext),v.exportSymbol("computedContext.getDependenciesCount",v.computedContext.getDependenciesCount),v.exportSymbol("computedContext.isInitial",v.computedContext.isInitial),v.exportSymbol("computedContext.isSleeping",v.computedContext.isSleeping),v.exportSymbol("ignoreDependencies",v.ignoreDependencies=v.dependencyDetection.ignore),v.observable=function(e){function t(){return arguments.length>0?(t.isDifferent(n,arguments[0])&&(t.valueWillMutate(),n=arguments[0],s&&(t._latestValue=n),t.valueHasMutated()),this):(v.dependencyDetection.registerDependency(t),n)}var n=e;return v.subscribable.call(t),v.utils.setPrototypeOfOrExtend(t,v.observable.fn),s&&(t._latestValue=n),t.peek=function(){ return n},t.valueHasMutated=function(){t.notifySubscribers(n)},t.valueWillMutate=function(){t.notifySubscribers(n,"beforeChange")},v.exportProperty(t,"peek",t.peek),v.exportProperty(t,"valueHasMutated",t.valueHasMutated),v.exportProperty(t,"valueWillMutate",t.valueWillMutate),t},v.observable.fn={equalityComparer:n};var y=v.observable.protoProperty="__ko_proto__";v.observable.fn[y]=v.observable,v.utils.canSetPrototype&&v.utils.setPrototypeOf(v.observable.fn,v.subscribable.fn),v.hasPrototype=function(e,t){return null===e||e===a||e[y]===a?!1:e[y]===t?!0:v.hasPrototype(e[y],t)},v.isObservable=function(e){return v.hasPrototype(e,v.observable)},v.isWriteableObservable=function(e){return"function"==typeof e&&e[y]===v.observable?!0:"function"==typeof e&&e[y]===v.dependentObservable&&e.hasWriteFunction?!0:!1},v.exportSymbol("observable",v.observable),v.exportSymbol("isObservable",v.isObservable),v.exportSymbol("isWriteableObservable",v.isWriteableObservable),v.exportSymbol("isWritableObservable",v.isWriteableObservable),v.observableArray=function(e){if(e=e||[],"object"!=typeof e||!("length"in e))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var t=v.observable(e);return v.utils.setPrototypeOfOrExtend(t,v.observableArray.fn),t.extend({trackArrayChanges:!0})},v.observableArray.fn={remove:function(e){for(var t=this.peek(),n=[],r="function"!=typeof e||v.isObservable(e)?function(t){return t===e}:e,i=0;i=0}):[]},destroy:function(e){var t=this.peek(),n="function"!=typeof e||v.isObservable(e)?function(t){return t===e}:e;this.valueWillMutate();for(var r=t.length-1;r>=0;r--){var i=t[r];n(i)&&(t[r]._destroy=!0)}this.valueHasMutated()},destroyAll:function(e){return e===a?this.destroy(function(){return!0}):e?this.destroy(function(t){return v.utils.arrayIndexOf(e,t)>=0}):[]},indexOf:function(e){var t=this();return v.utils.arrayIndexOf(t,e)},replace:function(e,t){var n=this.indexOf(e);n>=0&&(this.valueWillMutate(),this.peek()[n]=t,this.valueHasMutated())}},v.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(e){v.observableArray.fn[e]=function(){var t=this.peek();this.valueWillMutate(),this.cacheDiffForKnownOperation(t,e,arguments);var n=t[e].apply(t,arguments);return this.valueHasMutated(),n}}),v.utils.arrayForEach(["slice"],function(e){v.observableArray.fn[e]=function(){var t=this();return t[e].apply(t,arguments)}}),v.utils.canSetPrototype&&v.utils.setPrototypeOf(v.observableArray.fn,v.observable.fn),v.exportSymbol("observableArray",v.observableArray);var _="arrayChange";v.extenders.trackArrayChanges=function(e){function t(){if(!i){i=!0;var t=e.notifySubscribers;e.notifySubscribers=function(e,n){return n&&n!==b||++s,t.apply(this,arguments)};var a=[].concat(e.peek()||[]);o=null,r=e.subscribe(function(t){if(t=[].concat(t||[]),e.hasSubscriptionsForEvent(_))var r=n(a,t);a=t,o=null,s=0,r&&r.length&&e.notifySubscribers(r,_)})}}function n(e,t){return(!o||s>1)&&(o=v.utils.compareArrays(e,t,{sparse:!0})),o}if(!e.cacheDiffForKnownOperation){var r,i=!1,o=null,s=0,a=e.beforeSubscriptionAdd,u=e.afterSubscriptionRemove;e.beforeSubscriptionAdd=function(n){a&&a.call(e,n),n===_&&t()},e.afterSubscriptionRemove=function(t){u&&u.call(e,t),t!==_||e.hasSubscriptionsForEvent(_)||(r.dispose(),i=!1)},e.cacheDiffForKnownOperation=function(e,t,n){function r(e,t,n){return a[a.length]={status:e,value:t,index:n}}if(i&&!s){var a=[],u=e.length,l=n.length,c=0;switch(t){case"push":c=u;case"unshift":for(var d=0;l>d;d++)r("added",n[d],c+d);break;case"pop":c=u-1;case"shift":u&&r("deleted",e[c],c);break;case"splice":for(var p=Math.min(Math.max(0,n[0]<0?u+n[0]:n[0]),u),f=1===l?u:Math.min(p+(n[1]||0),u),h=p+l-2,m=Math.max(f,h),b=[],g=[],d=p,y=2;m>d;++d,++y)f>d&&g.push(r("deleted",e[d],d)),h>d&&b.push(r("added",n[y],d));v.utils.findMovesInArrayComparison(g,b);break;default:return}o=a}}}},v.computed=v.dependentObservable=function(e,t,n){function r(e,t,n){if(w&&t===c)throw Error("A 'pure' computed must not be called recursively");T[e]=n,n._order=N++,n._version=t.getVersion()}function i(){var e,t;for(e in T)if(T.hasOwnProperty(e)&&(t=T[e],t._target.hasChanged(t._version)))return!0}function o(){!x&&T&&v.utils.objectForEach(T,function(e,t){t.dispose&&t.dispose()}),T=null,N=0,y=!0,m=!1,x=!1}function u(){var e=c.throttleEvaluation;e&&e>=0?(clearTimeout(D),D=setTimeout(function(){l(!0)},e)):c._evalRateLimited?c._evalRateLimited():l(!0)}function l(e){if(!b&&!y){if(C&&C()){if(!g)return void S()}else g=!1;b=!0;try{var n=T,i=N,o=w?a:!N;v.dependencyDetection.begin({callback:function(e,t){y||(i&&n[t]?(r(t,e,n[t]),delete n[t],--i):T[t]||r(t,e,x?{_target:e}:e.subscribe(u)))},computed:c,isInitial:o}),T={},N=0;try{var l=t?_.call(t):_()}finally{v.dependencyDetection.end(),i&&!x&&v.utils.objectForEach(n,function(e,t){t.dispose&&t.dispose()}),m=!1}c.isDifferent(h,l)&&(x||f(h,"beforeChange"),h=l,s&&(c._latestValue=h),x?c.updateVersion():e&&f(h)),o&&f(h,"awake")}finally{b=!1}N||S()}}function c(){if(arguments.length>0){if("function"!=typeof k)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 k.apply(t,arguments),this}return v.dependencyDetection.registerDependency(c),(m||x&&i())&&l(),h}function d(){return(m&&!N||x&&i())&&l(),h}function p(){return m||N>0}function f(e,t){c.notifySubscribers(e,t)}var h,m=!0,b=!1,g=!1,y=!1,_=e,w=!1,x=!1;if(_&&"object"==typeof _?(n=_,_=n.read):(n=n||{},_||(_=n.read)),"function"!=typeof _)throw new Error("Pass a function that returns the value of the ko.computed");var k=n.write,E=n.disposeWhenNodeIsRemoved||n.disposeWhenNodeIsRemoved||null,O=n.disposeWhen||n.disposeWhen,C=O,S=o,T={},N=0,D=null;t||(t=n.owner),v.subscribable.call(c),v.utils.setPrototypeOfOrExtend(c,v.dependentObservable.fn),c.peek=d,c.getDependenciesCount=function(){return N},c.hasWriteFunction="function"==typeof k,c.dispose=function(){S()},c.isActive=p;var M=c.limit;return c.limit=function(e){M.call(c,e),c._evalRateLimited=function(){c._rateLimitedBeforeChange(h),m=!0,c._rateLimitedChange(c)}},n.pure?(w=!0,x=!0,c.beforeSubscriptionAdd=function(e){if(!y&&x&&"change"==e){if(x=!1,m||i())T=null,N=0,m=!0,l();else{var t=[];v.utils.objectForEach(T,function(e,n){t[n._order]=e}),v.utils.arrayForEach(t,function(e,t){var n=T[e],r=n._target.subscribe(u);r._order=t,r._version=n._version,T[e]=r})}y||f(h,"awake")}},c.afterSubscriptionRemove=function(e){y||"change"!=e||c.hasSubscriptionsForEvent("change")||(v.utils.objectForEach(T,function(e,t){t.dispose&&(T[e]={_target:t._target,_order:t._order,_version:t._version},t.dispose())}),x=!0,f(a,"asleep"))},c._originalGetVersion=c.getVersion,c.getVersion=function(){return x&&(m||i())&&l(),c._originalGetVersion()}):n.deferEvaluation&&(c.beforeSubscriptionAdd=function(e){("change"==e||"beforeChange"==e)&&d()}),v.exportProperty(c,"peek",c.peek),v.exportProperty(c,"dispose",c.dispose),v.exportProperty(c,"isActive",c.isActive),v.exportProperty(c,"getDependenciesCount",c.getDependenciesCount),E&&(g=!0,E.nodeType&&(C=function(){return!v.utils.domNodeIsAttachedToDocument(E)||O&&O()})),x||n.deferEvaluation||l(),E&&p()&&E.nodeType&&(S=function(){v.utils.domNodeDisposal.removeDisposeCallback(E,S),o()},v.utils.domNodeDisposal.addDisposeCallback(E,S)),c},v.isComputed=function(e){return v.hasPrototype(e,v.dependentObservable)};var w=v.observable.protoProperty;v.dependentObservable[w]=v.observable,v.dependentObservable.fn={equalityComparer:n},v.dependentObservable.fn[w]=v.dependentObservable,v.utils.canSetPrototype&&v.utils.setPrototypeOf(v.dependentObservable.fn,v.subscribable.fn),v.exportSymbol("dependentObservable",v.dependentObservable),v.exportSymbol("computed",v.dependentObservable),v.exportSymbol("isComputed",v.isComputed),v.pureComputed=function(e,t){return"function"==typeof e?v.computed(e,t,{pure:!0}):(e=v.utils.extend({},e),e.pure=!0,v.computed(e,t))},v.exportSymbol("pureComputed",v.pureComputed),function(){function e(r,i,o){o=o||new n,r=i(r);var s=!("object"!=typeof r||null===r||r===a||r instanceof Date||r instanceof String||r instanceof Number||r instanceof Boolean);if(!s)return r;var u=r instanceof Array?[]:{};return o.save(r,u),t(r,function(t){var n=i(r[t]);switch(typeof n){case"boolean":case"number":case"string":case"function":u[t]=n;break;case"object":case"undefined":var s=o.get(n);u[t]=s!==a?s:e(n,i,o)}}),u}function t(e,t){if(e instanceof Array){for(var n=0;nt;t++)e=e();return e})},v.toJSON=function(e,t,n){var r=v.toJS(e);return v.utils.stringifyJson(r,t,n)},n.prototype={constructor:n,save:function(e,t){var n=v.utils.arrayIndexOf(this.keys,e);n>=0?this.values[n]=t:(this.keys.push(e),this.values.push(t))},get:function(e){var t=v.utils.arrayIndexOf(this.keys,e);return t>=0?this.values[t]:a}}}(),v.exportSymbol("toJS",v.toJS),v.exportSymbol("toJSON",v.toJSON),function(){var e="__ko__hasDomDataOptionValue__";v.selectExtensions={readValue:function(t){switch(v.utils.tagNameLower(t)){case"option":return t[e]===!0?v.utils.domData.get(t,v.bindingHandlers.options.optionValueDomDataKey):v.utils.ieVersion<=7?t.getAttributeNode("value")&&t.getAttributeNode("value").specified?t.value:t.text:t.value;case"select":return t.selectedIndex>=0?v.selectExtensions.readValue(t.options[t.selectedIndex]):a;default:return t.value}},writeValue:function(t,n,r){switch(v.utils.tagNameLower(t)){case"option":switch(typeof n){case"string":v.utils.domData.set(t,v.bindingHandlers.options.optionValueDomDataKey,a),e in t&&delete t[e],t.value=n;break;default:v.utils.domData.set(t,v.bindingHandlers.options.optionValueDomDataKey,n),t[e]=!0,t.value="number"==typeof n?n:""}break;case"select":(""===n||null===n)&&(n=a);for(var i,o=-1,s=0,u=t.options.length;u>s;++s)if(i=v.selectExtensions.readValue(t.options[s]),i==n||""==i&&n===a){o=s;break}(r||o>=0||n===a&&t.size>1)&&(t.selectedIndex=o);break;default:(null===n||n===a)&&(n=""),t.value=n}}}}(),v.exportSymbol("selectExtensions",v.selectExtensions),v.exportSymbol("selectExtensions.readValue",v.selectExtensions.readValue),v.exportSymbol("selectExtensions.writeValue",v.selectExtensions.writeValue),v.expressionRewriting=function(){function e(e){if(v.utils.arrayIndexOf(r,e)>=0)return!1;var t=e.match(i);return null===t?!1:t[1]?"Object("+t[1]+")"+t[2]:e}function t(e){var t=v.utils.stringTrim(e);123===t.charCodeAt(0)&&(t=t.slice(1,-1));var n,r=[],i=t.match(d),o=[],s=0;if(i){i.push(",");for(var a,u=0;a=i[u];++u){var l=a.charCodeAt(0);if(44===l){if(0>=s){r.push(n&&o.length?{key:n,value:o.join("")}:{unknown:n||o.join("")}),n=s=0,o=[];continue}}else if(58===l){if(!s&&!n&&1===o.length){n=o.pop();continue}}else if(47===l&&u&&a.length>1){var c=i[u-1].match(p);c&&!f[c[0]]&&(t=t.substr(t.indexOf(a)+1),i=t.match(d),i.push(","),u=-1,a="/")}else 40===l||123===l||91===l?++s:41===l||125===l||93===l?--s:n||o.length||34!==l&&39!==l||(a=a.slice(1,-1));o.push(a)}}return r}function n(n,r){function i(t,n){function r(e){return e&&e.preprocess?n=e.preprocess(n,t,i):!0}var l;if(!u){if(!r(v.getBindingHandler(t)))return;h[t]&&(l=e(n))&&s.push("'"+t+"':function(_z){"+l+"=_z}")}a&&(n="function(){return "+n+" }"),o.push("'"+t+"':"+n)}r=r||{};var o=[],s=[],a=r.valueAccessors,u=r.bindingParams,l="string"==typeof n?t(n):n;return v.utils.arrayForEach(l,function(e){i(e.key||e.unknown,e.value)}),s.length&&i("_ko_property_writers","{"+s.join(",")+" }"),o.join(",")}var r=["true","false","null","undefined"],i=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,o='"(?:[^"\\\\]|\\\\.)*"',s="'(?:[^'\\\\]|\\\\.)*'",a="/(?:[^/\\\\]|\\\\.)*/w*",u=",\"'{}()/:[\\]",l="[^\\s:,/][^"+u+"]*[^\\s"+u+"]",c="[^\\s]",d=RegExp(o+"|"+s+"|"+a+"|"+l+"|"+c,"g"),p=/[\])"'A-Za-z0-9_$]+$/,f={"in":1,"return":1,"typeof":1},h={};return{bindingRewriteValidators:[],twoWayBindings:h,parseObjectLiteral:t,preProcessBindings:n,keyValueArrayContainsKey:function(e,t){for(var n=0;n0?r[r.length-1].nextSibling:e.nextSibling:null}function i(n){var i=n.firstChild,o=null;if(i)do if(o)o.push(i);else if(e(i)){var s=r(i,!0);s?i=s:o=[i]}else t(i)&&(o=[i]);while(i=i.nextSibling);return o}var o=l&&""===l.createComment("test").text,s=o?/^$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,a=o?/^$/:/^\s*\/ko\s*$/,u={ul:!0,ol:!0};v.virtualElements={allowedBindings:{},childNodes:function(t){return e(t)?n(t):t.childNodes},emptyNode:function(t){if(e(t))for(var n=v.virtualElements.childNodes(t),r=0,i=n.length;i>r;r++)v.removeNode(n[r]);else v.utils.emptyDomNode(t)},setDomNodeChildren:function(t,n){if(e(t)){v.virtualElements.emptyNode(t);for(var r=t.nextSibling,i=0,o=n.length;o>i;i++)r.parentNode.insertBefore(n[i],r)}else v.utils.setDomNodeChildren(t,n)},prepend:function(t,n){e(t)?t.parentNode.insertBefore(n,t.nextSibling):t.firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)},insertAfter:function(t,n,r){r?e(t)?t.parentNode.insertBefore(n,r.nextSibling):r.nextSibling?t.insertBefore(n,r.nextSibling):t.appendChild(n):v.virtualElements.prepend(t,n)},firstChild:function(n){return e(n)?!n.nextSibling||t(n.nextSibling)?null:n.nextSibling:n.firstChild},nextSibling:function(n){return e(n)&&(n=r(n)),n.nextSibling&&t(n.nextSibling)?null:n.nextSibling},hasBindingValue:e,virtualNodeBindingValue:function(e){var t=(o?e.text:e.nodeValue).match(s);return t?t[1]:null},normaliseVirtualElementDomStructure:function(e){if(u[v.utils.tagNameLower(e)]){var t=e.firstChild;if(t)do if(1===t.nodeType){var n=i(t);if(n)for(var r=t.nextSibling,o=0;o=0:s?e.checked=n:e.checked=o()===n}var o=v.pureComputed(function(){return n.has("checkedValue")?v.utils.unwrapObservable(n.get("checkedValue")):n.has("value")?v.utils.unwrapObservable(n.get("value")):e.value}),s="checkbox"==e.type,u="radio"==e.type;if(s||u){var l=s&&v.utils.unwrapObservable(t())instanceof Array,c=l?o():a,d=u||l;u&&!e.name&&v.bindingHandlers.uniqueName.init(e,function(){return!0}),v.computed(r,null,{disposeWhenNodeIsRemoved:e}),v.utils.registerEventHandler(e,"click",r),v.computed(i,null,{disposeWhenNodeIsRemoved:e})}}},v.expressionRewriting.twoWayBindings.checked=!0,v.bindingHandlers.checkedValue={update:function(e,t){e.value=v.utils.unwrapObservable(t())}}}();var k="__ko__cssValue";v.bindingHandlers.css={update:function(e,t){var n=v.utils.unwrapObservable(t());null!==n&&"object"==typeof n?v.utils.objectForEach(n,function(t,n){n=v.utils.unwrapObservable(n),v.utils.toggleDomNodeCssClass(e,t,n)}):(n=String(n||""),v.utils.toggleDomNodeCssClass(e,e[k],!1),e[k]=n,v.utils.toggleDomNodeCssClass(e,n,!0))}},v.bindingHandlers.enable={update:function(e,t){var n=v.utils.unwrapObservable(t());n&&e.disabled?e.removeAttribute("disabled"):n||e.disabled||(e.disabled=!0)}},v.bindingHandlers.disable={update:function(e,t){v.bindingHandlers.enable.update(e,function(){return!v.utils.unwrapObservable(t())})}},v.bindingHandlers.event={init:function(e,t,n,r,i){var o=t()||{};v.utils.objectForEach(o,function(o){"string"==typeof o&&v.utils.registerEventHandler(e,o,function(e){var s,a=t()[o];if(a){try{var u=v.utils.makeArray(arguments);r=i.$data,u.unshift(r),s=a.apply(r,u)}finally{s!==!0&&(e.preventDefault?e.preventDefault():e.returnValue=!1)}var l=n.get(o+"Bubble")!==!1;l||(e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation())}})})}},v.bindingHandlers.foreach={makeTemplateValueAccessor:function(e){return function(){var t=e(),n=v.utils.peekObservable(t);return n&&"number"!=typeof n.length?(v.utils.unwrapObservable(t),{foreach:n.data, as:n.as,includeDestroyed:n.includeDestroyed,afterAdd:n.afterAdd,beforeRemove:n.beforeRemove,afterRender:n.afterRender,beforeMove:n.beforeMove,afterMove:n.afterMove,templateEngine:v.nativeTemplateEngine.instance}):{foreach:t,templateEngine:v.nativeTemplateEngine.instance}}},init:function(e,t,n,r,i){return v.bindingHandlers.template.init(e,v.bindingHandlers.foreach.makeTemplateValueAccessor(t))},update:function(e,t,n,r,i){return v.bindingHandlers.template.update(e,v.bindingHandlers.foreach.makeTemplateValueAccessor(t),n,r,i)}},v.expressionRewriting.bindingRewriteValidators.foreach=!1,v.virtualElements.allowedBindings.foreach=!0;var E="__ko_hasfocusUpdating",O="__ko_hasfocusLastValue";v.bindingHandlers.hasfocus={init:function(e,t,n){var r=function(r){e[E]=!0;var i=e.ownerDocument;if("activeElement"in i){var o;try{o=i.activeElement}catch(s){o=i.body}r=o===e}var a=t();v.expressionRewriting.writeValueToProperty(a,n,"hasfocus",r,!0),e[O]=r,e[E]=!1},i=r.bind(null,!0),o=r.bind(null,!1);v.utils.registerEventHandler(e,"focus",i),v.utils.registerEventHandler(e,"focusin",i),v.utils.registerEventHandler(e,"blur",o),v.utils.registerEventHandler(e,"focusout",o)},update:function(e,t){var n=!!v.utils.unwrapObservable(t());e[E]||e[O]===n||(n?e.focus():e.blur(),v.dependencyDetection.ignore(v.utils.triggerEvent,null,[e,n?"focusin":"focusout"]))}},v.expressionRewriting.twoWayBindings.hasfocus=!0,v.bindingHandlers.hasFocus=v.bindingHandlers.hasfocus,v.expressionRewriting.twoWayBindings.hasFocus=!0,v.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(e,t){v.utils.setHtml(e,t())}},h("if"),h("ifnot",!1,!0),h("with",!0,!1,function(e,t){return e.createChildContext(t)});var C={};v.bindingHandlers.options={init:function(e){if("select"!==v.utils.tagNameLower(e))throw new Error("options binding applies only to SELECT elements");for(;e.length>0;)e.remove(0);return{controlsDescendantBindings:!0}},update:function(e,t,n){function r(){return v.utils.arrayFilter(e.options,function(e){return e.selected})}function i(e,t,n){var r=typeof t;return"function"==r?t(e):"string"==r?e[t]:n}function o(t,r,o){o.length&&(g=!h&&o[0].selected?[v.selectExtensions.readValue(o[0])]:[],y=!0);var s=e.ownerDocument.createElement("option");if(t===C)v.utils.setTextContent(s,n.get("optionsCaption")),v.selectExtensions.writeValue(s,a);else{var u=i(t,n.get("optionsValue"),t);v.selectExtensions.writeValue(s,v.utils.unwrapObservable(u));var l=i(t,n.get("optionsText"),u);v.utils.setTextContent(s,l)}return[s]}function s(t,r){if(y&&h)v.selectExtensions.writeValue(e,v.utils.unwrapObservable(n.get("value")),!0);else if(g.length){var i=v.utils.arrayIndexOf(g,v.selectExtensions.readValue(r[0]))>=0;v.utils.setOptionNodeSelectionState(r[0],i),y&&!i&&v.dependencyDetection.ignore(v.utils.triggerEvent,null,[e,"change"])}}var u,l,c=0==e.length,d=e.multiple,p=!c&&d?e.scrollTop:null,f=v.utils.unwrapObservable(t()),h=n.get("valueAllowUnset")&&n.has("value"),m=n.get("optionsIncludeDestroyed"),b={},g=[];h||(d?g=v.utils.arrayMap(r(),v.selectExtensions.readValue):e.selectedIndex>=0&&g.push(v.selectExtensions.readValue(e.options[e.selectedIndex]))),f&&("undefined"==typeof f.length&&(f=[f]),l=v.utils.arrayFilter(f,function(e){return m||e===a||null===e||!v.utils.unwrapObservable(e._destroy)}),n.has("optionsCaption")&&(u=v.utils.unwrapObservable(n.get("optionsCaption")),null!==u&&u!==a&&l.unshift(C)));var y=!1;b.beforeRemove=function(t){e.removeChild(t)};var _=s;n.has("optionsAfterRender")&&"function"==typeof n.get("optionsAfterRender")&&(_=function(e,t){s(e,t),v.dependencyDetection.ignore(n.get("optionsAfterRender"),null,[t[0],e!==C?e:a])}),v.utils.setDomNodeChildrenFromArrayMapping(e,l,o,b,_),v.dependencyDetection.ignore(function(){if(h)v.selectExtensions.writeValue(e,v.utils.unwrapObservable(n.get("value")),!0);else{var t;t=d?g.length&&r().length=0?v.selectExtensions.readValue(e.options[e.selectedIndex])!==g[0]:g.length||e.selectedIndex>=0,t&&v.utils.triggerEvent(e,"change")}}),v.utils.ensureSelectElementIsRenderedCorrectly(e),p&&Math.abs(p-e.scrollTop)>20&&(e.scrollTop=p)}},v.bindingHandlers.options.optionValueDomDataKey=v.utils.domData.nextKey(),v.bindingHandlers.selectedOptions={after:["options","foreach"],init:function(e,t,n){v.utils.registerEventHandler(e,"change",function(){var r=t(),i=[];v.utils.arrayForEach(e.getElementsByTagName("option"),function(e){e.selected&&i.push(v.selectExtensions.readValue(e))}),v.expressionRewriting.writeValueToProperty(r,n,"selectedOptions",i)})},update:function(e,t){if("select"!=v.utils.tagNameLower(e))throw new Error("values binding applies only to SELECT elements");var n=v.utils.unwrapObservable(t());n&&"number"==typeof n.length&&v.utils.arrayForEach(e.getElementsByTagName("option"),function(e){var t=v.utils.arrayIndexOf(n,v.selectExtensions.readValue(e))>=0;v.utils.setOptionNodeSelectionState(e,t)})}},v.expressionRewriting.twoWayBindings.selectedOptions=!0,v.bindingHandlers.style={update:function(e,t){var n=v.utils.unwrapObservable(t()||{});v.utils.objectForEach(n,function(t,n){n=v.utils.unwrapObservable(n),(null===n||n===a||n===!1)&&(n=""),e.style[t]=n})}},v.bindingHandlers.submit={init:function(e,t,n,r,i){if("function"!=typeof t())throw new Error("The value for a submit binding must be a function");v.utils.registerEventHandler(e,"submit",function(n){var r,o=t();try{r=o.call(i.$data,e)}finally{r!==!0&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}})}},v.bindingHandlers.text={init:function(){return{controlsDescendantBindings:!0}},update:function(e,t){v.utils.setTextContent(e,t())}},v.virtualElements.allowedBindings.text=!0,function(){if(u&&u.navigator)var e=function(e){return e?parseFloat(e[1]):void 0},t=u.opera&&u.opera.version&&parseInt(u.opera.version()),n=u.navigator.userAgent,r=e(n.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),i=e(n.match(/Firefox\/([^ ]*)/));if(v.utils.ieVersion<10)var o=v.utils.domData.nextKey(),l=v.utils.domData.nextKey(),c=function(e){var t=this.activeElement,n=t&&v.utils.domData.get(t,l);n&&n(e)},d=function(e,t){var n=e.ownerDocument;v.utils.domData.get(n,o)||(v.utils.domData.set(n,o,!0),v.utils.registerEventHandler(n,"selectionchange",c)),v.utils.domData.set(e,l,t)};v.bindingHandlers.textInput={init:function(e,n,o){var u,l,c=e.value,p=function(t){clearTimeout(u),l=u=a;var r=e.value;c!==r&&(s&&t&&(e._ko_textInputProcessedEvent=t.type),c=r,v.expressionRewriting.writeValueToProperty(n(),o,"textInput",r))},f=function(t){if(!u){l=e.value;var n=s?p.bind(e,{type:t.type}):p;u=setTimeout(n,4)}},h=function(){var t=v.utils.unwrapObservable(n());return(null===t||t===a)&&(t=""),l!==a&&t===l?void setTimeout(h,4):void(e.value!==t&&(c=t,e.value=t))},m=function(t,n){v.utils.registerEventHandler(e,t,n)};s&&v.bindingHandlers.textInput._forceUpdateOn?v.utils.arrayForEach(v.bindingHandlers.textInput._forceUpdateOn,function(e){"after"==e.slice(0,5)?m(e.slice(5),f):m(e,p)}):v.utils.ieVersion<10?(m("propertychange",function(e){"value"===e.propertyName&&p(e)}),8==v.utils.ieVersion&&(m("keyup",p),m("keydown",p)),v.utils.ieVersion>=8&&(d(e,p),m("dragend",f))):(m("input",p),5>r&&"textarea"===v.utils.tagNameLower(e)?(m("keydown",f),m("paste",f),m("cut",f)):11>t?m("keydown",f):4>i&&(m("DOMAutoComplete",p),m("dragdrop",p),m("drop",p))),m("change",p),v.computed(h,null,{disposeWhenNodeIsRemoved:e})}},v.expressionRewriting.twoWayBindings.textInput=!0,v.bindingHandlers.textinput={preprocess:function(e,t,n){n("textInput",e)}}}(),v.bindingHandlers.uniqueName={init:function(e,t){if(t()){var n="ko_unique_"+ ++v.bindingHandlers.uniqueName.currentIndex;v.utils.setElementName(e,n)}}},v.bindingHandlers.uniqueName.currentIndex=0,v.bindingHandlers.value={after:["options","foreach"],init:function(e,t,n){if("input"==e.tagName.toLowerCase()&&("checkbox"==e.type||"radio"==e.type))return void v.applyBindingAccessorsToNode(e,{checkedValue:t});var r=["change"],i=n.get("valueUpdate"),o=!1,s=null;i&&("string"==typeof i&&(i=[i]),v.utils.arrayPushAll(r,i),r=v.utils.arrayGetDistinctValues(r));var a=function(){s=null,o=!1;var r=t(),i=v.selectExtensions.readValue(e);v.expressionRewriting.writeValueToProperty(r,n,"value",i)},u=v.utils.ieVersion&&"input"==e.tagName.toLowerCase()&&"text"==e.type&&"off"!=e.autocomplete&&(!e.form||"off"!=e.form.autocomplete);u&&-1==v.utils.arrayIndexOf(r,"propertychange")&&(v.utils.registerEventHandler(e,"propertychange",function(){o=!0}),v.utils.registerEventHandler(e,"focus",function(){o=!1}),v.utils.registerEventHandler(e,"blur",function(){o&&a()})),v.utils.arrayForEach(r,function(t){var n=a;v.utils.stringStartsWith(t,"after")&&(n=function(){s=v.selectExtensions.readValue(e),setTimeout(a,0)},t=t.substring("after".length)),v.utils.registerEventHandler(e,t,n)});var l=function(){var r=v.utils.unwrapObservable(t()),i=v.selectExtensions.readValue(e);if(null!==s&&r===s)return void setTimeout(l,0);var o=r!==i;if(o)if("select"===v.utils.tagNameLower(e)){var a=n.get("valueAllowUnset"),u=function(){v.selectExtensions.writeValue(e,r,a)};u(),a||r===v.selectExtensions.readValue(e)?setTimeout(u,0):v.dependencyDetection.ignore(v.utils.triggerEvent,null,[e,"change"])}else v.selectExtensions.writeValue(e,r)};v.computed(l,null,{disposeWhenNodeIsRemoved:e})},update:function(){}},v.expressionRewriting.twoWayBindings.value=!0,v.bindingHandlers.visible={update:function(e,t){var n=v.utils.unwrapObservable(t()),r=!("none"==e.style.display);n&&!r?e.style.display="":!n&&r&&(e.style.display="none")}},f("click"),v.templateEngine=function(){},v.templateEngine.prototype.renderTemplateSource=function(e,t,n,r){throw new Error("Override renderTemplateSource")},v.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(e){throw new Error("Override createJavaScriptEvaluatorBlock")},v.templateEngine.prototype.makeTemplateSource=function(e,t){if("string"==typeof e){t=t||l;var n=t.getElementById(e);if(!n)throw new Error("Cannot find template with ID "+e);return new v.templateSources.domElement(n)}if(1==e.nodeType||8==e.nodeType)return new v.templateSources.anonymousTemplate(e);throw new Error("Unknown template type: "+e)},v.templateEngine.prototype.renderTemplate=function(e,t,n,r){var i=this.makeTemplateSource(e,r);return this.renderTemplateSource(i,t,n,r)},v.templateEngine.prototype.isTemplateRewritten=function(e,t){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(e,t).data("isRewritten")},v.templateEngine.prototype.rewriteTemplate=function(e,t,n){var r=this.makeTemplateSource(e,n),i=t(r.text());r.text(i),r.data("isRewritten",!0)},v.exportSymbol("templateEngine",v.templateEngine),v.templateRewriting=function(){function e(e){for(var t=v.expressionRewriting.bindingRewriteValidators,n=0;n]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,r=//g;return{ensureTemplateIsRewritten:function(e,t,n){t.isTemplateRewritten(e,n)||t.rewriteTemplate(e,function(e){return v.templateRewriting.memoizeBindingAttributeSyntax(e,t)},n)},memoizeBindingAttributeSyntax:function(e,i){return e.replace(n,function(){return t(arguments[4],arguments[1],arguments[2],i)}).replace(r,function(){return t(arguments[1],"","#comment",i)})},applyMemoizedBindingsToNextSibling:function(e,t){return v.memoization.memoize(function(n,r){var i=n.nextSibling;i&&i.nodeName.toLowerCase()===t&&v.applyBindingAccessorsToNode(i,e,r)})}}}(),v.exportSymbol("__tr_ambtns",v.templateRewriting.applyMemoizedBindingsToNextSibling),function(){v.templateSources={},v.templateSources.domElement=function(e){this.domElement=e},v.templateSources.domElement.prototype.text=function(){var e=v.utils.tagNameLower(this.domElement),t="script"===e?"text":"textarea"===e?"value":"innerHTML";if(0==arguments.length)return this.domElement[t];var n=arguments[0];"innerHTML"===t?v.utils.setHtml(this.domElement,n):this.domElement[t]=n};var e=v.utils.domData.nextKey()+"_";v.templateSources.domElement.prototype.data=function(t){return 1===arguments.length?v.utils.domData.get(this.domElement,e+t):void v.utils.domData.set(this.domElement,e+t,arguments[1])};var t=v.utils.domData.nextKey();v.templateSources.anonymousTemplate=function(e){this.domElement=e},v.templateSources.anonymousTemplate.prototype=new v.templateSources.domElement,v.templateSources.anonymousTemplate.prototype.constructor=v.templateSources.anonymousTemplate,v.templateSources.anonymousTemplate.prototype.text=function(){if(0==arguments.length){var e=v.utils.domData.get(this.domElement,t)||{};return e.textData===a&&e.containerData&&(e.textData=e.containerData.innerHTML),e.textData}var n=arguments[0];v.utils.domData.set(this.domElement,t,{textData:n})},v.templateSources.domElement.prototype.nodes=function(){if(0==arguments.length){var e=v.utils.domData.get(this.domElement,t)||{};return e.containerData}var n=arguments[0];v.utils.domData.set(this.domElement,t,{containerData:n})},v.exportSymbol("templateSources",v.templateSources),v.exportSymbol("templateSources.domElement",v.templateSources.domElement),v.exportSymbol("templateSources.anonymousTemplate",v.templateSources.anonymousTemplate)}(),function(){function e(e,t,n){for(var r,i=e,o=v.virtualElements.nextSibling(t);i&&(r=i)!==o;)i=v.virtualElements.nextSibling(r),n(r,i)}function t(t,n){if(t.length){var r=t[0],i=t[t.length-1],o=r.parentNode,s=v.bindingProvider.instance,a=s.preprocessNode;if(a){if(e(r,i,function(e,t){var n=e.previousSibling,o=a.call(s,e);o&&(e===r&&(r=o[0]||t),e===i&&(i=o[o.length-1]||n))}),t.length=0,!r)return;r===i?t.push(r):(t.push(r,i),v.utils.fixUpContinuousNodeArray(t,o))}e(r,i,function(e){(1===e.nodeType||8===e.nodeType)&&v.applyBindings(n,e)}),e(r,i,function(e){(1===e.nodeType||8===e.nodeType)&&v.memoization.unmemoizeDomNodeAndDescendants(e,[n])}),v.utils.fixUpContinuousNodeArray(t,o)}}function n(e){return e.nodeType?e:e.length>0?e[0]:null}function r(e,r,i,o,a){a=a||{};var u=e&&n(e),l=(u||i||{}).ownerDocument,c=a.templateEngine||s;v.templateRewriting.ensureTemplateIsRewritten(i,c,l);var d=c.renderTemplate(i,o,a,l);if("number"!=typeof d.length||d.length>0&&"number"!=typeof d[0].nodeType)throw new Error("Template engine must return an array of DOM nodes");var p=!1;switch(r){case"replaceChildren":v.virtualElements.setDomNodeChildren(e,d),p=!0;break;case"replaceNode":v.utils.replaceDomNodes(e,d),p=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+r)}return p&&(t(d,o),a.afterRender&&v.dependencyDetection.ignore(a.afterRender,null,[d,o.$data])),d}function i(e,t,n){return v.isObservable(e)?e():"function"==typeof e?e(t,n):e}function o(e,t){var n=v.utils.domData.get(e,u);n&&"function"==typeof n.dispose&&n.dispose(),v.utils.domData.set(e,u,t&&t.isActive()?t:a)}var s;v.setTemplateEngine=function(e){if(e!=a&&!(e instanceof v.templateEngine))throw new Error("templateEngine must inherit from ko.templateEngine");s=e},v.renderTemplate=function(e,t,o,u,l){if(o=o||{},(o.templateEngine||s)==a)throw new Error("Set a template engine before calling renderTemplate");if(l=l||"replaceChildren",u){var c=n(u),d=function(){return!c||!v.utils.domNodeIsAttachedToDocument(c)},p=c&&"replaceNode"==l?c.parentNode:c;return v.dependentObservable(function(){var s=t&&t instanceof v.bindingContext?t:new v.bindingContext(v.utils.unwrapObservable(t)),a=i(e,s.$data,s),d=r(u,l,a,s,o);"replaceNode"==l&&(u=d,c=n(u))},null,{disposeWhen:d,disposeWhenNodeIsRemoved:p})}return v.memoization.memoize(function(n){v.renderTemplate(e,t,o,n,"replaceNode")})},v.renderTemplateForEach=function(e,n,o,s,u){var l,c=function(t,n){l=u.createChildContext(t,o.as,function(e){e.$index=n});var s=i(e,t,l);return r(null,"ignoreTargetNode",s,l,o)},d=function(e,n,r){t(n,l),o.afterRender&&o.afterRender(n,e),l=null};return v.dependentObservable(function(){var e=v.utils.unwrapObservable(n)||[];"undefined"==typeof e.length&&(e=[e]);var t=v.utils.arrayFilter(e,function(e){return o.includeDestroyed||e===a||null===e||!v.utils.unwrapObservable(e._destroy)});v.dependencyDetection.ignore(v.utils.setDomNodeChildrenFromArrayMapping,null,[s,t,c,o,d])},null,{disposeWhenNodeIsRemoved:s})};var u=v.utils.domData.nextKey();v.bindingHandlers.template={init:function(e,t){var n=v.utils.unwrapObservable(t());if("string"==typeof n||n.name)v.virtualElements.emptyNode(e);else if("nodes"in n){var r=n.nodes||[];if(v.isObservable(r))throw new Error('The "nodes" option must be a plain, non-observable array.');var i=v.utils.moveCleanedNodesToContainerElement(r);new v.templateSources.anonymousTemplate(e).nodes(i)}else{var o=v.virtualElements.childNodes(e),i=v.utils.moveCleanedNodesToContainerElement(o);new v.templateSources.anonymousTemplate(e).nodes(i)}return{controlsDescendantBindings:!0}},update:function(e,t,n,r,i){var s,a,u=t(),l=v.utils.unwrapObservable(u),c=!0,d=null;if("string"==typeof l?(a=u,l={}):(a=l.name,"if"in l&&(c=v.utils.unwrapObservable(l["if"])),c&&"ifnot"in l&&(c=!v.utils.unwrapObservable(l.ifnot)),s=v.utils.unwrapObservable(l.data)),"foreach"in l){var p=c&&l.foreach||[];d=v.renderTemplateForEach(a||e,p,l,e,i)}else if(c){var f="data"in l?i.createChildContext(s,l.as):i;d=v.renderTemplate(a||e,f,l,e)}else v.virtualElements.emptyNode(e);o(e,d)}},v.expressionRewriting.bindingRewriteValidators.template=function(e){var t=v.expressionRewriting.parseObjectLiteral(e);return 1==t.length&&t[0].unknown?null:v.expressionRewriting.keyValueArrayContainsKey(t,"name")?null:"This template engine does not support anonymous templates nested within its templates"},v.virtualElements.allowedBindings.template=!0}(),v.exportSymbol("setTemplateEngine",v.setTemplateEngine),v.exportSymbol("renderTemplate",v.renderTemplate),v.utils.findMovesInArrayComparison=function(e,t,n){if(e.length&&t.length){var r,i,o,s,a;for(r=i=0;(!n||n>r)&&(s=e[i]);++i){for(o=0;a=t[o];++o)if(s.value===a.value){s.moved=a.index,a.moved=s.index,t.splice(o,1),r=o=0;break}r+=o}}},v.utils.compareArrays=function(){function e(e,i,o){return o="boolean"==typeof o?{dontLimitMoves:o}:o||{},e=e||[],i=i||[],e.length<=i.length?t(e,i,n,r,o):t(i,e,r,n,o)}function t(e,t,n,r,i){var o,s,a,u,l,c,d=Math.min,p=Math.max,f=[],h=e.length,m=t.length,b=m-h||1,g=h+m+1;for(o=0;h>=o;o++)for(u=a,f.push(a=[]),l=d(m,o+b),c=p(0,o-1),s=c;l>=s;s++)if(s)if(o)if(e[o-1]===t[s-1])a[s]=u[s-1];else{var y=u[s]||g,_=a[s-1]||g;a[s]=d(y,_)+1}else a[s]=s+1;else a[s]=o+1;var w,x=[],k=[],E=[];for(o=h,s=m;o||s;)w=f[o][s]-1,s&&w===f[o][s-1]?k.push(x[x.length]={status:n,value:t[--s],index:s}):o&&w===f[o-1][s]?E.push(x[x.length]={status:r,value:e[--o],index:o}):(--s,--o,i.sparse||x.push({status:"retained",value:t[s]}));return v.utils.findMovesInArrayComparison(k,E,10*h),x.reverse()}var n="added",r="deleted";return e}(),v.exportSymbol("utils.compareArrays",v.utils.compareArrays),function(){function e(e,t,n,r,i){var o=[],s=v.dependentObservable(function(){var s=t(n,i,v.utils.fixUpContinuousNodeArray(o,e))||[];o.length>0&&(v.utils.replaceDomNodes(o,s),r&&v.dependencyDetection.ignore(r,null,[n,s,i])),o.length=0,v.utils.arrayPushAll(o,s)},null,{disposeWhenNodeIsRemoved:e,disposeWhen:function(){return!v.utils.anyDomNodeIsAttachedToDocument(o)}});return{mappedNodes:o,dependentObservable:s.isActive()?s:a}}var t=v.utils.domData.nextKey();v.utils.setDomNodeChildrenFromArrayMapping=function(n,r,i,o,s){function u(e,t){c=h[t],_!==t&&(E[e]=c),c.indexObservable(_++),v.utils.fixUpContinuousNodeArray(c.mappedNodes,n),g.push(c),x.push(c)}function l(e,t){if(e)for(var n=0,r=t.length;r>n;n++)t[n]&&v.utils.arrayForEach(t[n].mappedNodes,function(r){e(r,n,t[n].arrayEntry)})}r=r||[],o=o||{};for(var c,d,p,f=v.utils.domData.get(n,t)===a,h=v.utils.domData.get(n,t)||[],m=v.utils.arrayMap(h,function(e){return e.arrayEntry}),b=v.utils.compareArrays(m,r,o.dontLimitMoves),g=[],y=0,_=0,w=[],x=[],k=[],E=[],O=[],C=0;d=b[C];C++)switch(p=d.moved,d.status){case"deleted":p===a&&(c=h[y],c.dependentObservable&&c.dependentObservable.dispose(),w.push.apply(w,v.utils.fixUpContinuousNodeArray(c.mappedNodes,n)),o.beforeRemove&&(k[C]=c,x.push(c))),y++;break;case"retained":u(C,y++);break;case"added":p!==a?u(C,p):(c={arrayEntry:d.value,indexObservable:v.observable(_++)},g.push(c),x.push(c),f||(O[C]=c))}l(o.beforeMove,E),v.utils.arrayForEach(w,o.beforeRemove?v.cleanNode:v.removeNode);for(var S,T,C=0,N=v.virtualElements.firstChild(n);c=x[C];C++){c.mappedNodes||v.utils.extend(c,e(n,i,c.arrayEntry,s,c.indexObservable));for(var D=0;T=c.mappedNodes[D];N=T.nextSibling,S=T,D++)T!==N&&v.virtualElements.insertAfter(n,T,S);!c.initialized&&s&&(s(c.arrayEntry,c.mappedNodes,c.indexObservable),c.initialized=!0)}l(o.beforeRemove,k),l(o.afterMove,E),l(o.afterAdd,O),v.utils.domData.set(n,t,g)}}(),v.exportSymbol("utils.setDomNodeChildrenFromArrayMapping",v.utils.setDomNodeChildrenFromArrayMapping),v.nativeTemplateEngine=function(){this.allowTemplateRewriting=!1},v.nativeTemplateEngine.prototype=new v.templateEngine,v.nativeTemplateEngine.prototype.constructor=v.nativeTemplateEngine,v.nativeTemplateEngine.prototype.renderTemplateSource=function(e,t,n,r){var i=!(v.utils.ieVersion<9),o=i?e.nodes:null,s=o?e.nodes():null;if(s)return v.utils.makeArray(s.cloneNode(!0).childNodes);var a=e.text();return v.utils.parseHtmlFragment(a,r)},v.nativeTemplateEngine.instance=new v.nativeTemplateEngine,v.setTemplateEngine(v.nativeTemplateEngine.instance),v.exportSymbol("nativeTemplateEngine",v.nativeTemplateEngine),function(){v.jqueryTmplTemplateEngine=function(){function e(){if(2>n)throw new Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.")}function t(e,t,n){return d.tmpl(e,t,n)}var n=this.jQueryTmplVersion=function(){if(!d||!d.tmpl)return 0;try{if(d.tmpl.tag.tmpl.open.toString().indexOf("__")>=0)return 2}catch(e){}return 1}();this.renderTemplateSource=function(n,r,i,o){o=o||l,i=i||{},e();var s=n.data("precompiled");if(!s){var a=n.text()||"";a="{{ko_with $item.koBindingContext}}"+a+"{{/ko_with}}",s=d.template(null,a),n.data("precompiled",s)}var u=[r.$data],c=d.extend({koBindingContext:r},i.templateOptions),p=t(s,u,c);return p.appendTo(o.createElement("div")),d.fragments={},p},this.createJavaScriptEvaluatorBlock=function(e){return"{{ko_code ((function() { return "+e+" })()) }}"},this.addTemplate=function(e,t){l.write("")},n>0&&(d.tmpl.tag.ko_code={open:"__.push($1 || '');"},d.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},v.jqueryTmplTemplateEngine.prototype=new v.templateEngine,v.jqueryTmplTemplateEngine.prototype.constructor=v.jqueryTmplTemplateEngine;var e=new v.jqueryTmplTemplateEngine;e.jQueryTmplVersion>0&&v.setTemplateEngine(e),v.exportSymbol("jqueryTmplTemplateEngine",v.jqueryTmplTemplateEngine)}()})}()}()}).call(t,n(4)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){var n;n=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e};var r=function(){},i=function(e,t,i){var o;return o=t&&t.hasOwnProperty("constructor")?t.constructor:function(){e.apply(this,arguments)},n(o,e),r.prototype=e.prototype,o.prototype=new r,t&&n(o.prototype,t),i&&n(o,i),o.prototype.constructor=o,o.__super__=e.prototype,o},o=function(e,t){var n=i(this,e,t);return n.extend=this.extend,n};e.exports=o},function(e,t,n){var r,i;(function(o){!function(s){var a="object"==typeof self&&self.self==self&&self||"object"==typeof o&&o.global==o&&o;r=[n(8),n(9),t],i=function(e,t,n){a.Backbone=s(a,n,e,t)}.apply(t,r),!(void 0!==i&&(e.exports=i))}(function(e,t,n,r){var i=e.Backbone,o=Array.prototype.slice;t.VERSION="1.2.3",t.$=r,t.noConflict=function(){return e.Backbone=i,this},t.emulateHTTP=!1,t.emulateJSON=!1;var s=function(e,t,r){switch(e){case 1:return function(){return n[t](this[r])};case 2:return function(e){return n[t](this[r],e)};case 3:return function(e,i){return n[t](this[r],u(e,this),i)};case 4:return function(e,i,o){return n[t](this[r],u(e,this),i,o)};default:return function(){var e=o.call(arguments);return e.unshift(this[r]),n[t].apply(n,e)}}},a=function(e,t,r){n.each(t,function(t,i){n[i]&&(e.prototype[i]=s(t,i,r))})},u=function(e,t){return n.isFunction(e)?e:n.isObject(e)&&!t._isModel(e)?l(e):n.isString(e)?function(t){return t.get(e)}:e},l=function(e){var t=n.matches(e);return function(e){return t(e.attributes)}},c=t.Events={},d=/\s+/,p=function(e,t,r,i,o){var s,a=0;if(r&&"object"==typeof r){void 0!==i&&"context"in o&&void 0===o.context&&(o.context=i);for(s=n.keys(r);ar;r++)n[r]=arguments[r+1];return p(b,this._events,e,void 0,n),this};var b=function(e,t,n,r){if(e){var i=e[t],o=e.all;i&&o&&(o=o.slice()),i&&g(i,r),o&&g(o,[t].concat(r))}return e},g=function(e,t){var n,r=-1,i=e.length,o=t[0],s=t[1],a=t[2];switch(t.length){case 0:for(;++ro;o++)e[o+n]=t[o];for(o=0;oi&&(i+=this.length+1);for(var o,s=[],a=[],u=[],l={},c=t.add,d=t.merge,p=t.remove,f=!1,h=this.comparator&&null==i&&t.sort!==!1,v=n.isString(this.comparator)?this.comparator:null,m=0;me&&(e+=this.length),this.models[e]},where:function(e,t){return this[t?"find":"filter"](e)},findWhere:function(e){return this.where(e,!0)},sort:function(e){var t=this.comparator;if(!t)throw new Error("Cannot sort a set without a comparator");e||(e={});var r=t.length;return n.isFunction(t)&&(t=n.bind(t,this)),1===r||n.isString(t)?this.models=this.sortBy(t):this.models.sort(t),e.silent||this.trigger("sort",this,e),this},pluck:function(e){return n.invoke(this.models,"get",e)},fetch:function(e){e=n.extend({parse:!0},e);var t=e.success,r=this;return e.success=function(n){var i=e.reset?"reset":"set";r[i](n,e),t&&t.call(e.context,r,n,e),r.trigger("sync",r,n,e)},H(this,e),this.sync("read",this,e)},create:function(e,t){t=t?n.clone(t):{};var r=t.wait;if(e=this._prepareModel(e,t),!e)return!1;r||this.add(e,t);var i=this,o=t.success;return t.success=function(e,t,n){r&&i.add(e,n),o&&o.call(n.context,e,t,n)},e.save(null,t),e},parse:function(e,t){return e},clone:function(){return new this.constructor(this.models,{model:this.model,comparator:this.comparator})},modelId:function(e){return e[this.model.prototype.idAttribute||"id"]},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(e,t){if(this._isModel(e))return e.collection||(e.collection=this),e;t=t?n.clone(t):{},t.collection=this;var r=new this.model(e,t);return r.validationError?(this.trigger("invalid",this,r.validationError,t),!1):r},_removeModels:function(e,t){for(var n=[],r=0;r7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(j,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var t=this.root.slice(0,-1)||"/";return this.location.replace(t+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var r=document.body,i=r.insertBefore(this.iframe,r.firstChild).contentWindow;i.document.open(),i.document.close(),i.location.hash="#"+this.fragment}var o=window.addEventListener||function(e,t){return attachEvent("on"+e,t)};return this._usePushState?o("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?o("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.options.silent?void 0:this.loadUrl()},stop:function(){var e=window.removeEventListener||function(e,t){return detachEvent("on"+e,t)};this._usePushState?e("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&e("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),F.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(e){var t=this.getFragment();return t===this.fragment&&this.iframe&&(t=this.getHash(this.iframe.contentWindow)),t===this.fragment?!1:(this.iframe&&this.navigate(t),void this.loadUrl())},loadUrl:function(e){return this.matchRoot()?(e=this.fragment=this.getFragment(e),n.some(this.handlers,function(t){return t.route.test(e)?(t.callback(e),!0):void 0})):!1},navigate:function(e,t){if(!F.started)return!1;t&&t!==!0||(t={trigger:!!t}),e=this.getFragment(e||"");var n=this.root;(""===e||"?"===e.charAt(0))&&(n=n.slice(0,-1)||"/");var r=n+e;if(e=this.decodeFragment(e.replace(V,"")),this.fragment!==e){if(this.fragment=e,this._usePushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,r);else{if(!this._wantsHashChange)return this.location.assign(r);if(this._updateHash(this.location,e,t.replace),this.iframe&&e!==this.getHash(this.iframe.contentWindow)){var i=this.iframe.contentWindow;t.replace||(i.document.open(),i.document.close()),this._updateHash(i.location,e,t.replace)}}return t.trigger?this.loadUrl(e):void 0}},_updateHash:function(e,t,n){if(n){var r=e.href.replace(/(javascript:|#).*$/,"");e.replace(r+"#"+t)}else e.hash="#"+t}}),t.history=new F;var B=function(e,t){var r,i=this;r=e&&n.has(e,"constructor")?e.constructor:function(){return i.apply(this,arguments)},n.extend(r,i,t);var o=function(){this.constructor=r};return o.prototype=i.prototype,r.prototype=new o,e&&n.extend(r.prototype,e),r.__super__=i.prototype,r};y.extend=w.extend=D.extend=C.extend=F.extend=B;var L=function(){throw new Error('A "url" property or function must be specified')},H=function(e,t){var n=t.error;t.error=function(r){n&&n.call(t.context,e,r,t),e.trigger("error",e,r,t)}};return t})}).call(t,function(){return this}())},function(e,t,n){var r,i;(function(){function n(e){function t(t,n,r,i,o,s){for(;o>=0&&s>o;o+=e){var a=i?i[o]:o;r=n(r,t[a],a,t)}return r}return function(n,r,i,o){r=k(r,o,4);var s=!D(n)&&x.keys(n),a=(s||n).length,u=e>0?0:a-1;return arguments.length<3&&(i=n[s?s[u]:u],u+=e),t(n,r,i,s,u,a)}}function o(e){return function(t,n,r){n=E(n,r);for(var i=N(t),o=e>0?0:i-1;o>=0&&i>o;o+=e)if(n(t[o],o,t))return o;return-1}}function s(e,t,n){return function(r,i,o){var s=0,a=N(r);if("number"==typeof o)e>0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return o=n(r,i),r[o]===i?o:-1;if(i!==i)return o=t(h.call(r,s,a),x.isNaN),o>=0?o+s:-1;for(o=e>0?s:a-1;o>=0&&a>o;o+=e)if(r[o]===i)return o;return-1}}function a(e,t){var n=F.length,r=e.constructor,i=x.isFunction(r)&&r.prototype||d,o="constructor";for(x.has(e,o)&&!x.contains(t,o)&&t.push(o);n--;)o=F[n],o in e&&e[o]!==i[o]&&!x.contains(t,o)&&t.push(o)}var u=this,l=u._,c=Array.prototype,d=Object.prototype,p=Function.prototype,f=c.push,h=c.slice,v=d.toString,m=d.hasOwnProperty,b=Array.isArray,g=Object.keys,y=p.bind,_=Object.create,w=function(){},x=function(e){return e instanceof x?e:this instanceof x?void(this._wrapped=e):new x(e)};"undefined"!=typeof e&&e.exports&&(t=e.exports=x),t._=x,x.VERSION="1.8.3";var k=function(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}},E=function(e,t,n){return null==e?x.identity:x.isFunction(e)?k(e,t,n):x.isObject(e)?x.matcher(e):x.property(e)};x.iteratee=function(e,t){return E(e,t,1/0)};var O=function(e,t){return function(n){var r=arguments.length;if(2>r||null==n)return n;for(var i=1;r>i;i++)for(var o=arguments[i],s=e(o),a=s.length,u=0;a>u;u++){var l=s[u];t&&void 0!==n[l]||(n[l]=o[l])}return n}},C=function(e){if(!x.isObject(e))return{};if(_)return _(e);w.prototype=e;var t=new w;return w.prototype=null,t},S=function(e){return function(t){return null==t?void 0:t[e]}},T=Math.pow(2,53)-1,N=S("length"),D=function(e){var t=N(e);return"number"==typeof t&&t>=0&&T>=t};x.each=x.forEach=function(e,t,n){t=k(t,n);var r,i;if(D(e))for(r=0,i=e.length;i>r;r++)t(e[r],r,e);else{var o=x.keys(e);for(r=0,i=o.length;i>r;r++)t(e[o[r]],o[r],e)}return e},x.map=x.collect=function(e,t,n){t=E(t,n);for(var r=!D(e)&&x.keys(e),i=(r||e).length,o=Array(i),s=0;i>s;s++){var a=r?r[s]:s;o[s]=t(e[a],a,e)}return o},x.reduce=x.foldl=x.inject=n(1),x.reduceRight=x.foldr=n(-1),x.find=x.detect=function(e,t,n){var r;return r=D(e)?x.findIndex(e,t,n):x.findKey(e,t,n),void 0!==r&&-1!==r?e[r]:void 0},x.filter=x.select=function(e,t,n){var r=[];return t=E(t,n),x.each(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r},x.reject=function(e,t,n){return x.filter(e,x.negate(E(t)),n)},x.every=x.all=function(e,t,n){t=E(t,n);for(var r=!D(e)&&x.keys(e),i=(r||e).length,o=0;i>o;o++){var s=r?r[o]:o;if(!t(e[s],s,e))return!1}return!0},x.some=x.any=function(e,t,n){t=E(t,n);for(var r=!D(e)&&x.keys(e),i=(r||e).length,o=0;i>o;o++){var s=r?r[o]:o;if(t(e[s],s,e))return!0}return!1},x.contains=x.includes=x.include=function(e,t,n,r){return D(e)||(e=x.values(e)),("number"!=typeof n||r)&&(n=0),x.indexOf(e,t,n)>=0},x.invoke=function(e,t){var n=h.call(arguments,2),r=x.isFunction(t);return x.map(e,function(e){var i=r?t:e[t];return null==i?i:i.apply(e,n)})},x.pluck=function(e,t){return x.map(e,x.property(t))},x.where=function(e,t){return x.filter(e,x.matcher(t))},x.findWhere=function(e,t){return x.find(e,x.matcher(t))},x.max=function(e,t,n){var r,i,o=-(1/0),s=-(1/0);if(null==t&&null!=e){e=D(e)?e:x.values(e);for(var a=0,u=e.length;u>a;a++)r=e[a],r>o&&(o=r)}else t=E(t,n),x.each(e,function(e,n,r){i=t(e,n,r),(i>s||i===-(1/0)&&o===-(1/0))&&(o=e,s=i)});return o},x.min=function(e,t,n){var r,i,o=1/0,s=1/0;if(null==t&&null!=e){e=D(e)?e:x.values(e);for(var a=0,u=e.length;u>a;a++)r=e[a],o>r&&(o=r)}else t=E(t,n),x.each(e,function(e,n,r){i=t(e,n,r),(s>i||i===1/0&&o===1/0)&&(o=e,s=i)});return o},x.shuffle=function(e){for(var t,n=D(e)?e:x.values(e),r=n.length,i=Array(r),o=0;r>o;o++)t=x.random(0,o),t!==o&&(i[o]=i[t]),i[t]=n[o];return i},x.sample=function(e,t,n){return null==t||n?(D(e)||(e=x.values(e)),e[x.random(e.length-1)]):x.shuffle(e).slice(0,Math.max(0,t))},x.sortBy=function(e,t,n){return t=E(t,n),x.pluck(x.map(e,function(e,n,r){return{value:e,index:n,criteria:t(e,n,r)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return e.index-t.index}),"value")};var M=function(e){return function(t,n,r){var i={};return n=E(n,r),x.each(t,function(r,o){var s=n(r,o,t);e(i,r,s)}),i}};x.groupBy=M(function(e,t,n){x.has(e,n)?e[n].push(t):e[n]=[t]}),x.indexBy=M(function(e,t,n){e[n]=t}),x.countBy=M(function(e,t,n){x.has(e,n)?e[n]++:e[n]=1}),x.toArray=function(e){return e?x.isArray(e)?h.call(e):D(e)?x.map(e,x.identity):x.values(e):[]},x.size=function(e){return null==e?0:D(e)?e.length:x.keys(e).length},x.partition=function(e,t,n){t=E(t,n);var r=[],i=[];return x.each(e,function(e,n,o){(t(e,n,o)?r:i).push(e)}),[r,i]},x.first=x.head=x.take=function(e,t,n){return null==e?void 0:null==t||n?e[0]:x.initial(e,e.length-t)},x.initial=function(e,t,n){return h.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))},x.last=function(e,t,n){return null==e?void 0:null==t||n?e[e.length-1]:x.rest(e,Math.max(0,e.length-t))},x.rest=x.tail=x.drop=function(e,t,n){return h.call(e,null==t||n?1:t)},x.compact=function(e){return x.filter(e,x.identity)};var A=function(e,t,n,r){for(var i=[],o=0,s=r||0,a=N(e);a>s;s++){var u=e[s];if(D(u)&&(x.isArray(u)||x.isArguments(u))){t||(u=A(u,t,n));var l=0,c=u.length;for(i.length+=c;c>l;)i[o++]=u[l++]}else n||(i[o++]=u)}return i};x.flatten=function(e,t){return A(e,t,!1)},x.without=function(e){return x.difference(e,h.call(arguments,1))},x.uniq=x.unique=function(e,t,n,r){x.isBoolean(t)||(r=n,n=t,t=!1),null!=n&&(n=E(n,r));for(var i=[],o=[],s=0,a=N(e);a>s;s++){var u=e[s],l=n?n(u,s,e):u;t?(s&&o===l||i.push(u),o=l):n?x.contains(o,l)||(o.push(l),i.push(u)):x.contains(i,u)||i.push(u)}return i},x.union=function(){return x.uniq(A(arguments,!0,!0))},x.intersection=function(e){for(var t=[],n=arguments.length,r=0,i=N(e);i>r;r++){var o=e[r];if(!x.contains(t,o)){for(var s=1;n>s&&x.contains(arguments[s],o);s++);s===n&&t.push(o)}}return t},x.difference=function(e){var t=A(arguments,!0,!0,1);return x.filter(e,function(e){return!x.contains(t,e)})},x.zip=function(){return x.unzip(arguments)},x.unzip=function(e){for(var t=e&&x.max(e,N).length||0,n=Array(t),r=0;t>r;r++)n[r]=x.pluck(e,r);return n},x.object=function(e,t){for(var n={},r=0,i=N(e);i>r;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},x.findIndex=o(1),x.findLastIndex=o(-1),x.sortedIndex=function(e,t,n,r){n=E(n,r,1);for(var i=n(t),o=0,s=N(e);s>o;){var a=Math.floor((o+s)/2);n(e[a])o;o++,e+=n)i[o]=e;return i};var P=function(e,t,n,r,i){if(!(r instanceof t))return e.apply(n,i);var o=C(e.prototype),s=e.apply(o,i);return x.isObject(s)?s:o};x.bind=function(e,t){if(y&&e.bind===y)return y.apply(e,h.call(arguments,1));if(!x.isFunction(e))throw new TypeError("Bind must be called on a function");var n=h.call(arguments,2),r=function(){return P(e,r,t,this,n.concat(h.call(arguments)))};return r},x.partial=function(e){var t=h.call(arguments,1),n=function(){for(var r=0,i=t.length,o=Array(i),s=0;i>s;s++)o[s]=t[s]===x?arguments[r++]:t[s];for(;r=r)throw new Error("bindAll must be passed function names");for(t=1;r>t;t++)n=arguments[t],e[n]=x.bind(e[n],e);return e},x.memoize=function(e,t){var n=function(r){var i=n.cache,o=""+(t?t.apply(this,arguments):r);return x.has(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return n.cache={},n},x.delay=function(e,t){var n=h.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},x.defer=x.partial(x.delay,x,1),x.throttle=function(e,t,n){var r,i,o,s=null,a=0;n||(n={});var u=function(){a=n.leading===!1?0:x.now(),s=null,o=e.apply(r,i),s||(r=i=null)};return function(){var l=x.now();a||n.leading!==!1||(a=l);var c=t-(l-a);return r=this,i=arguments,0>=c||c>t?(s&&(clearTimeout(s),s=null),a=l,o=e.apply(r,i),s||(r=i=null)):s||n.trailing===!1||(s=setTimeout(u,c)),o}},x.debounce=function(e,t,n){var r,i,o,s,a,u=function(){var l=x.now()-s;t>l&&l>=0?r=setTimeout(u,t-l):(r=null,n||(a=e.apply(o,i),r||(o=i=null)))};return function(){o=this,i=arguments,s=x.now();var l=n&&!r;return r||(r=setTimeout(u,t)),l&&(a=e.apply(o,i),o=i=null),a}},x.wrap=function(e,t){return x.partial(t,e)},x.negate=function(e){return function(){return!e.apply(this,arguments)}},x.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}},x.after=function(e,t){return function(){return--e<1?t.apply(this,arguments):void 0}},x.before=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),1>=e&&(t=null),n}},x.once=x.partial(x.before,2);var R=!{toString:null}.propertyIsEnumerable("toString"),F=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];x.keys=function(e){if(!x.isObject(e))return[];if(g)return g(e);var t=[];for(var n in e)x.has(e,n)&&t.push(n);return R&&a(e,t),t},x.allKeys=function(e){if(!x.isObject(e))return[];var t=[];for(var n in e)t.push(n);return R&&a(e,t),t},x.values=function(e){for(var t=x.keys(e),n=t.length,r=Array(n),i=0;n>i;i++)r[i]=e[t[i]];return r},x.mapObject=function(e,t,n){t=E(t,n);for(var r,i=x.keys(e),o=i.length,s={},a=0;o>a;a++)r=i[a],s[r]=t(e[r],r,e);return s},x.pairs=function(e){for(var t=x.keys(e),n=t.length,r=Array(n),i=0;n>i;i++)r[i]=[t[i],e[t[i]]];return r},x.invert=function(e){for(var t={},n=x.keys(e),r=0,i=n.length;i>r;r++)t[e[n[r]]]=n[r];return t},x.functions=x.methods=function(e){var t=[];for(var n in e)x.isFunction(e[n])&&t.push(n);return t.sort()},x.extend=O(x.allKeys),x.extendOwn=x.assign=O(x.keys),x.findKey=function(e,t,n){t=E(t,n);for(var r,i=x.keys(e),o=0,s=i.length;s>o;o++)if(r=i[o],t(e[r],r,e))return r},x.pick=function(e,t,n){var r,i,o={},s=e;if(null==s)return o;x.isFunction(t)?(i=x.allKeys(s),r=k(t,n)):(i=A(arguments,!1,!1,1),r=function(e,t,n){return t in n},s=Object(s));for(var a=0,u=i.length;u>a;a++){var l=i[a],c=s[l];r(c,l,s)&&(o[l]=c)}return o},x.omit=function(e,t,n){if(x.isFunction(t))t=x.negate(t);else{var r=x.map(A(arguments,!1,!1,1),String);t=function(e,t){return!x.contains(r,t)}}return x.pick(e,t,n)},x.defaults=O(x.allKeys,!0),x.create=function(e,t){var n=C(e);return t&&x.extendOwn(n,t),n},x.clone=function(e){return x.isObject(e)?x.isArray(e)?e.slice():x.extend({},e):e},x.tap=function(e,t){return t(e),e},x.isMatch=function(e,t){var n=x.keys(t),r=n.length;if(null==e)return!r;for(var i=Object(e),o=0;r>o;o++){var s=n[o];if(t[s]!==i[s]||!(s in i))return!1}return!0};var I=function(e,t,n,r){if(e===t)return 0!==e||1/e===1/t;if(null==e||null==t)return e===t;e instanceof x&&(e=e._wrapped),t instanceof x&&(t=t._wrapped);var i=v.call(e);if(i!==v.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!==+e?+t!==+t:0===+e?1/+e===1/t:+e===+t;case"[object Date]":case"[object Boolean]":return+e===+t}var o="[object Array]"===i;if(!o){if("object"!=typeof e||"object"!=typeof t)return!1;var s=e.constructor,a=t.constructor;if(s!==a&&!(x.isFunction(s)&&s instanceof s&&x.isFunction(a)&&a instanceof a)&&"constructor"in e&&"constructor"in t)return!1}n=n||[],r=r||[];for(var u=n.length;u--;)if(n[u]===e)return r[u]===t;if(n.push(e),r.push(t),o){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!I(e[u],t[u],n,r))return!1}else{var l,c=x.keys(e);if(u=c.length,x.keys(t).length!==u)return!1;for(;u--;)if(l=c[u],!x.has(t,l)||!I(e[l],t[l],n,r))return!1}return n.pop(),r.pop(),!0};x.isEqual=function(e,t){return I(e,t)},x.isEmpty=function(e){return null==e?!0:D(e)&&(x.isArray(e)||x.isString(e)||x.isArguments(e))?0===e.length:0===x.keys(e).length},x.isElement=function(e){return!(!e||1!==e.nodeType)},x.isArray=b||function(e){return"[object Array]"===v.call(e)},x.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},x.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(e){x["is"+e]=function(t){return v.call(t)==="[object "+e+"]"}}),x.isArguments(arguments)||(x.isArguments=function(e){return x.has(e,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(x.isFunction=function(e){return"function"==typeof e||!1}),x.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},x.isNaN=function(e){return x.isNumber(e)&&e!==+e},x.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"===v.call(e)},x.isNull=function(e){return null===e},x.isUndefined=function(e){return void 0===e},x.has=function(e,t){return null!=e&&m.call(e,t)},x.noConflict=function(){return u._=l,this},x.identity=function(e){return e},x.constant=function(e){return function(){return e}},x.noop=function(){},x.property=S,x.propertyOf=function(e){return null==e?function(){}:function(t){return e[t]}},x.matcher=x.matches=function(e){return e=x.extendOwn({},e),function(t){return x.isMatch(t,e)}},x.times=function(e,t,n){var r=Array(Math.max(0,e));t=k(t,n,1);for(var i=0;e>i;i++)r[i]=t(i);return r},x.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},x.now=Date.now||function(){return(new Date).getTime()};var j={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},V=x.invert(j),B=function(e){var t=function(t){return e[t]},n="(?:"+x.keys(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(i,t):e}};x.escape=B(j),x.unescape=B(V),x.result=function(e,t,n){var r=null==e?void 0:e[t];return void 0===r&&(r=n),x.isFunction(r)?r.call(e):r};var L=0;x.uniqueId=function(e){var t=++L+"";return e?e+t:t},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var H=/(.)^/,$={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,z=function(e){return"\\"+$[e]};x.template=function(e,t,n){!t&&n&&(t=n),t=x.defaults({},t,x.templateSettings);var r=RegExp([(t.escape||H).source,(t.interpolate||H).source,(t.evaluate||H).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(r,function(t,n,r,s,a){return o+=e.slice(i,a).replace(W,z),i=a+t.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),t}),o+="';\n",t.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(t.variable||"obj","_",o)}catch(a){throw a.source=o,a}var u=function(e){return s.call(this,e,x)},l=t.variable||"obj";return u.source="function("+l+"){\n"+o+"}",u},x.chain=function(e){var t=x(e);return t._chain=!0,t};var U=function(e,t){return e._chain?x(t).chain():t};x.mixin=function(e){x.each(x.functions(e),function(t){var n=x[t]=e[t];x.prototype[t]=function(){var e=[this._wrapped];return f.apply(e,arguments),U(this,n.apply(x,e))}})},x.mixin(x),x.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=c[e];x.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],U(this,n)}}),x.each(["concat","join","slice"],function(e){var t=c[e];x.prototype[e]=function(){return U(this,t.apply(this._wrapped,arguments))}}),x.prototype.value=function(){return this._wrapped},x.prototype.valueOf=x.prototype.toJSON=x.prototype.value,x.prototype.toString=function(){return""+this._wrapped},r=[],i=function(){return x}.apply(t,r),!(void 0!==i&&(e.exports=i))}).call(this)},function(t,n){t.exports=e},function(e,t,n){var r,i,o,s,a,u,l;u=o=n(2),i=u._,a=u.ko,r={"default":null,"backbone-orm":null,"backbone-associations":n(11),"backbone-relational":n(12),supermodel:n(13)},o.orm=r["default"];for(s in r)if(l=r[s],l&&l.isAvailable()){o.orm=l;break}e.exports=function(e){var t;null==e&&(e={});for(s in e)switch(l=e[s],s){case"orm":if(i.isString(l)){if(!r.hasOwnProperty(l)){console.log("Knockback configure: could not find orm: "+l+". Available: "+i.keys(r).join(", "));continue}if((t=r[l])&&!t.isAvailable()){console.log("Knockback configure: could not enable orm "+l+". Make sure it is included before Knockback");continue}o.orm=t;continue}o.orm=l;break;default:o[s]=l}}},function(e,t,n){var r,i,o,s,a,u;u=a=n(2),s=u._,i=u.Backbone,r=null,e.exports=o=function(){function e(){}return e.isAvailable=function(){return!!(r=null!=i?i.AssociatedModel:void 0)},e.keys=function(e){return e instanceof r?s.map(e.relations,function(e){return e.key}):null},e.relationType=function(e,t){var n;return e instanceof r&&(n=s.find(e.relations,function(e){return e.key===t}))?"Many"===n.type?a.TYPE_COLLECTION:a.TYPE_MODEL:null},e.useFunction=function(){return!1},e}()},function(e,t,n){var r,i,o,s,a,u;u=a=n(2),s=u._,r=u.Backbone,o=null,e.exports=i=function(){function e(){}return e.isAvailable=function(){return!!(o=null!=r?r.RelationalModel:void 0)},e.relationType=function(e,t){var n;return e instanceof o&&(n=s.find(e.getRelations(),function(e){return e.key===t}))?n.collectionType||s.isArray(n.keyContents)?a.TYPE_COLLECTION:a.TYPE_MODEL:null},e.bind=function(e,t,n,r){var i,o,s,u,l,c;if(!(c=this.relationType(e,t)))return null;if(l=function(e){return!a.statistics||a.statistics.addModelEvent({name:"update (relational)",model:e,key:t,path:r}),n()},o=a.Backbone.Relation.prototype.sanitizeOptions?["update","add","remove"]:["change","add","remove"], c===a.TYPE_COLLECTION)for(s=0,u=o.length;u>s;s++)i=o[s],e.bind(i+":"+t,l);else e.bind(o[0]+":"+t,l);return function(){var n,r;if(c===a.TYPE_COLLECTION)for(n=0,r=o.length;r>n;n++)i=o[n],e.unbind(i+":"+t,l);else e.unbind(o[0]+":"+t,l)}},e.useFunction=function(){return!1},e}()},function(e,t,n){(function(t){var r,i,o,s;s="undefined"!=typeof window&&null!==window?window:t,i=(o=n(2))._,r=null,e.exports=r=function(){function e(){}return e.isAvailable=function(){return!!(e=s.Supermodel)},e.keys=function(t){return t instanceof e.Model?i.keys(t.constructor.associations()):null},e.relationType=function(t,n){var r;return t instanceof e.Model&&(r=t.constructor.associations()[n])?r.add?o.TYPE_COLLECTION:o.TYPE_MODEL:null},e.bind=function(e,t,n,r){var i,s;return(s=this.relationType(e,t))?(i=function(e,i){var s,a;return!o.statistics||o.statistics.addModelEvent({name:"update (supermodel)",model:e,key:t,path:r}),a=e.constructor.associations()[t],s=e[a.store],e[a.store]=i,n(i),e[a.store]=s},s===o.TYPE_MODEL?(e.bind("associate:"+t,i),function(){return e.unbind("associate:"+t,i)}):void 0):null},e.useFunction=function(e,t){return!!this.relationType(e,t)},e}()}).call(t,function(){return this}())},function(e,t,n){var r,i,o,s,a=function(e,t){return function(){return e.apply(t,arguments)}};s=i=n(2),r=s._,o=s.ko,i.EventWatcher=function(){function e(e,t,n){this._unbindCallbacks=a(this._unbindCallbacks,this),this._onModelUnloaded=a(this._onModelUnloaded,this),this._onModelLoaded=a(this._onModelLoaded,this),this.__kb||(this.__kb={}),this.__kb.callbacks={},this.ee=null,n&&this.registerCallbacks(t,n),e&&this.emitter(e)}return e.useOptionsOrCreate=function(e,t,n,r){return e.event_watcher?(e.event_watcher.emitter()!==t&&e.event_watcher.model_ref!==t&&i._throwUnexpected(this,"emitter not matching"),i.utils.wrappedEventWatcher(n,e.event_watcher).registerCallbacks(n,r)):(i.utils.wrappedEventWatcherIsOwned(n,!0),i.utils.wrappedEventWatcher(n,new i.EventWatcher(t)).registerCallbacks(n,r))},e.prototype.destroy=function(){return this.emitter(null),this.__kb.callbacks=null,i.utils.wrappedDestroy(this)},e.prototype.emitter=function(e){return 0===arguments.length||this.ee===e?this.ee:(this.model_ref&&(this.model_ref.unbind("loaded",this._onModelLoaded),this.model_ref.unbind("unloaded",this._onModelUnloaded),this.model_ref.release(),this.model_ref=null),i.Backbone&&i.Backbone.ModelRef&&e instanceof i.Backbone.ModelRef?(this.model_ref=e,this.model_ref.retain(),this.model_ref.bind("loaded",this._onModelLoaded),this.model_ref.bind("unloaded",this._onModelUnloaded),e=this.model_ref.model()||null):delete this.model_ref,this.ee!==e&&(e?this._onModelLoaded(e):this._onModelUnloaded(this.ee)),e)},e.prototype.registerCallbacks=function(e,t){var n,s,a,u,l,c;for(e||i._throwMissing(this,"obj"),t||i._throwMissing(this,"callback_info"),s=t.event_selector?t.event_selector.split(" "):["change"],c=this.ee,a=function(n){return function(s){var a,u;return(a=n.__kb.callbacks[s])||(a=n.__kb.callbacks[s]={model:null,list:[],fn:function(e){var t,n,r,u;for(u=a.list,n=0,r=u.length;r>n;n++)t=u[n],t.update&&(e&&t.key&&e.hasChanged&&!e.hasChanged(o.utils.unwrapObservable(t.key))||(!i.statistics||i.statistics.addModelEvent({name:s,model:e,key:t.key,path:t.path}),t.update()));return null}}),a.list.push(u=r.defaults({obj:e},t)),c?n._onModelLoaded(c):void 0}}(this),u=0,l=s.length;l>u;u++)n=s[u],n&&a(n);return this},e.prototype.releaseCallbacks=function(e){var t,n,r;this.ee=null,r=this.__kb.callbacks;for(n in r)t=r[n],this._unbindCallbacks(n,t,i.wasReleased(e));return delete this.__kb.callbacks},e.prototype._onModelLoaded=function(e){var t,n,r,o,s,a,u,l;this.ee=e,a=this.__kb.callbacks;for(n in a)for(t=a[n],t.model&&t.model!==e&&this._unbindCallbacks(n,t,!0),t.model||(t.model=e,e.bind(n,t.fn)),u=t.list,r=0,s=u.length;s>r;r++)o=u[r],o.unbind_fn||(o.unbind_fn=null!=(l=i.orm)?l.bind(e,o.key,o.update,o.path):void 0),o.emitter&&o.emitter(e)},e.prototype._onModelUnloaded=function(e){var t,n,r;if(this.ee===e){this.ee=null,r=this.__kb.callbacks;for(n in r)t=r[n],this._unbindCallbacks(n,t)}},e.prototype._unbindCallbacks=function(e,t,n){var r,o,s,a;for(t.model&&(t.model.unbind(e,t.fn),t.model=null),a=t.list,r=0,s=a.length;s>r;r++)o=a[r],o.unbind_fn&&(o.unbind_fn(),o.unbind_fn=null),!o.emitter||n||i.wasReleased(o.obj)||o.emitter(null)},e}(),i.emitterObservable=function(e,t){return new i.EventWatcher(e,t)}},function(e,t,n){var r,i;r=(i=n(2))._,i.Factory=function(){function e(e){this.paths={},e&&(this.parent_factory=e)}return e.useOptionsOrCreate=function(e,t,n){var r;return e.factory&&(!e.factories||e.factories&&e.factory.hasPathMappings(e.factories,n))?i.utils.wrappedFactory(t,e.factory):(r=i.utils.wrappedFactory(t,new i.Factory(e.factory)),e.factories&&r.addPathMappings(e.factories,n),r)},e.prototype.hasPath=function(e){var t;return this.paths.hasOwnProperty(e)||(null!=(t=this.parent_factory)?t.hasPath(e):void 0)},e.prototype.addPathMapping=function(e,t){return this.paths[e]=t},e.prototype.addPathMappings=function(e,t){var n,r;for(r in e)n=e[r],this.paths[i.utils.pathJoin(t,r)]=n},e.prototype.hasPathMappings=function(e,t){var n,r,o,s;n=!0;for(s in e)r=e[s],n&=(o=this.creatorForPath(null,i.utils.pathJoin(t,s)))&&r===o;return n},e.prototype.creatorForPath=function(e,t){var n,r;return(n=this.paths[t])?n.view_model?n.view_model:n:(n=null!=(r=this.parent_factory)?r.creatorForPath(e,t):void 0)?n:null},e}()},function(e,t,n){(function(e){var t,r,i,o,s,a,u,l;l=null!=l?l:e,u=o=n(2),r=u._,s=u.ko,t=u.$,o.RECUSIVE_AUTO_INJECT=!0,s.bindingHandlers.inject={init:function(e,t,n,r){return o.Inject.inject(s.utils.unwrapObservable(t()),r,e,t,n)}},o.Inject=function(){function e(){}return e.inject=function(e,t,n,i,s,a){var u;return u=function(e){var u,l,c;if(r.isFunction(e))t=new e(t,n,i,s),o.releaseOnNodeRemove(t,n);else{e.view_model&&(t=new e.view_model(t,n,i,s),o.releaseOnNodeRemove(t,n));for(u in e)c=e[u],"view_model"!==u&&("create"===u?c(t,n,i,s):r.isObject(c)&&!r.isFunction(c)?(l=a||c&&c.create?{}:t,t[u]=o.Inject.inject(c,l,n,i,s,!0)):t[u]=c)}return t},a?u(e):o.ignore(function(){return u(e)})},e.injectViewModels=function(e){var t,n,i,s,a,u,c,d,p,f;for(f=[],u=function(e){var t,n,i,o,s;for(e.__kb_injected||e.attributes&&(t=r.find(e.attributes,function(e){return"kb-inject"===e.name}))&&(e.__kb_injected=!0,f.push({el:e,view_model:{},binding:t.value})),s=e.childNodes,i=0,o=s.length;o>i;i++)n=s[i],u(n)},!e&&(null!=l?l.document:void 0)&&(e=l.document),u(e),c=0,d=f.length;d>c;c++)n=f[c],(a=n.binding)&&(a.search(/[:]/)<0||(a="{"+a+"}"),s=new Function("","return ( "+a+" )")(),s||(s={}),!s.options||(p=s.options,delete s.options),p||(p={}),n.view_model=o.Inject.inject(s,n.view_model,n.el,null,null,!0),t=n.view_model.afterBinding||p.afterBinding,i=n.view_model.beforeBinding||p.beforeBinding),i&&i.call(n.view_model,n.view_model,n.el,p),o.applyBindings(n.view_model,n.el,p),t&&t.call(n.view_model,n.view_model,n.el,p);return f},e}(),i=s.applyBindings,s.applyBindings=function(e,t){var n;return n=o.RECUSIVE_AUTO_INJECT?o.injectViewModels(t):[],n.length?void 0:i.apply(this,arguments)},o.injectViewModels=o.Inject.injectViewModels,"undefined"!=typeof document&&null!==document&&(t?t(function(){return o.injectViewModels()}):(a=function(){return"complete"!==document.readyState?setTimeout(a,0):o.injectViewModels()})())}).call(t,function(){return this}())},function(e,t,n){var r,i,o,s,a;o=(i=n(2)).ko,(null!=(s=o.subscribable)&&null!=(a=s.fn)?a.extend:void 0)&&(r=o.subscribable.fn.extend,o.subscribable.fn.extend=function(){var e,t;return t=r.apply(this,arguments),t!==this&&i.isReleaseable(this)&&(e=t.dispose,t.dispose=function(n){return function(){return null!=e&&e.apply(t,arguments),i.release(n)}}(this)),t})},function(e,t,n){var r,i,o,s,a,u,l;l=a=n(2),s=l._,u=l.ko,o=n(19),i=["value","valueType","destroy"],r=["args","read","write"],a.Observable=function(){function e(e,t,n,l){return this._vm=null!=l?l:{},a.ignore(function(l){return function(){var c,d,p,f,h,v;for(t||a._throwMissing(l,"key_or_info"),l.key=t.key||t,p=0,h=r.length;h>p;p++)f=r[p],t[f]&&(l[f]=t[f]);return c=a.utils.collapseOptions(n),d=c.event_watcher,delete c.event_watcher,l._value=new o(c),l._model=u.observable(),v=a.utils.wrappedObservable(l,u.computed({read:function(){var e,t,n,r,i,o,c;for(e=l._model(),o=n=[l.key].concat(l.args||[]),r=0,i=o.length;i>r;r++)t=o[r],u.utils.unwrapObservable(t);return null!=(c=a.utils.wrappedEventWatcher(l))&&c.emitter(e||null),l.read?l.update(l.read.apply(l._vm,n)):s.isUndefined(e)||a.ignore(function(){return l.update(a.getValue(e,a.peek(l.key),l.args))}),l._value.value()},write:function(e){return a.ignore(function(){var t,n;return n=a.utils.unwrapModels(e),t=a.peek(l._model),l.write?(l.write.call(l._vm,n),e=a.getValue(t,a.peek(l.key),l.args)):t&&a.setValue(t,a.peek(l.key),n),l.update(e)})},owner:l._vm})),v.__kb_is_o=!0,c.store=a.utils.wrappedStore(v,c.store),c.path=a.utils.pathJoin(c.path,l.key),c.factories&&("function"==typeof c.factories||c.factories.create)?(c.factory=a.utils.wrappedFactory(v,new a.Factory(c.factory)),c.factory.addPathMapping(c.path,c.factories)):c.factory=a.Factory.useOptionsOrCreate(c,v,c.path),delete c.factories,a.publishMethods(v,l,i),v.model=l.model=u.computed({read:function(){return u.utils.unwrapObservable(l._model)},write:function(e){return a.ignore(function(){var t;if(!l.__kb_released&&a.peek(l._model)!==e)return t=a.getValue(e,a.peek(l.key),l.args),l._model(e),e?s.isUndefined(t)?void 0:l.update(t):l.update(null)})}}),a.EventWatcher.useOptionsOrCreate({event_watcher:d},e||null,l,{emitter:l.model,update:function(){return a.ignore(function(){return l.update()})},key:l.key,path:c.path}),l._value.rawValue()||l._value.update(),a.LocalizedObservable&&t.localizer&&(v=new t.localizer(v)),a.DefaultObservable&&t.hasOwnProperty("default")&&(v=a.defaultObservable(v,t["default"])),v}}(this))}return e.prototype.destroy=function(){var e;return e=a.utils.wrappedObservable(this),this.__kb_released=!0,this._value.destroy(),this._value=null,this.model.dispose(),this.model=e.model=null,a.utils.wrappedDestroy(this)},e.prototype.value=function(){return this._value.rawValue()},e.prototype.valueType=function(){return this._value.valueType(a.peek(this._model),a.peek(this.key))},e.prototype.update=function(e){return this.__kb_released?void 0:(arguments.length||(e=a.getValue(a.peek(this._model),a.peek(this.key))),this._value.update(e))},e}(),a.observable=function(e,t,n,r){return new a.Observable(e,t,n,r)}},function(e,t,n){var r,i,o,s,a;a=o=n(2),i=a._,s=a.ko,e.exports=r=function(){function e(e){this.create_options=e,this._vo=s.observable(null)}return e.prototype.destroy=function(){var e;return this.__kb_released=!0,(e=this.__kb_value)&&(this.__kb_value=null,this.create_options.store&&o.utils.wrappedCreator(e)?this.create_options.store.release(e):o.release(e)),this.create_options=null},e.prototype.value=function(){return s.utils.unwrapObservable(this._vo())},e.prototype.rawValue=function(){return this.__kb_value},e.prototype.valueType=function(e,t){var n;return n=o.getValue(e,t),this.value_type||this._updateValueObservable(n),this.value_type},e.prototype.update=function(e){var t,n,r;if(!this.__kb_released){switch(void 0!==e||(e=null),t=o.utils.valueType(e),(null!=(n=this.__kb_value)?n.__kb_released:void 0)&&(this.__kb_value=this.value_type=void 0),r=this.__kb_value,this.value_type){case o.TYPE_COLLECTION:if(this.value_type===o.TYPE_COLLECTION&&t===o.TYPE_ARRAY)return r(e);if(t===o.TYPE_COLLECTION||i.isNull(e))return void(e&&e instanceof o.CollectionObservable?this._updateValueObservable(o.utils.wrappedObject(e),e):o.peek(r.collection)!==e&&r.collection(e));break;case o.TYPE_MODEL:if(t===o.TYPE_MODEL||i.isNull(e))return void(e&&!o.isModel(e)?this._updateValueObservable(o.utils.wrappedObject(e),e):o.utils.wrappedObject(r)!==o.utils.resolveModel(e)&&this._updateValueObservable(e))}if(this.value_type!==t||i.isUndefined(this.value_type)){if(o.peek(r)!==e)return this._updateValueObservable(e)}else if(o.peek(r)!==e)return r(e)}},e.prototype._updateValueObservable=function(e,t){var n,r,a,u,l,c;return n=this.create_options,r=o.utils.inferCreator(e,n.factory,n.path),null!==e||r||(this.value_type===o.TYPE_MODEL?r=o.ViewModel:this.value_type===o.TYPE_COLLECTION&&(r=o.CollectionObservable)),n.creator=r,c=o.TYPE_UNKNOWN,u=[this.__kb_value,void 0],a=u[0],this.__kb_value=u[1],t?(l=t,n.store&&n.store.retain(t,e,r)):r?n.store?l=n.store.retainOrCreate(e,n):r.models_only?(l=e,c=o.TYPE_SIMPLE):l=r.create?r.create(e,n):new r(e,n):i.isArray(e)?(c=o.TYPE_ARRAY,l=s.observableArray(e)):(c=o.TYPE_SIMPLE,l=s.observable(e)),(this.value_type=c)===o.TYPE_UNKNOWN&&(s.isObservable(l)?l.__kb_is_co?(this.value_type=o.TYPE_COLLECTION,o.utils.wrappedObject(l,e)):this.value_type||(this.value_type=o.TYPE_SIMPLE):(this.value_type=o.TYPE_MODEL,o.utils.wrappedObject(l,o.utils.resolveModel(e)))),a&&(this.create_options.store?this.create_options.store.release(a):o.release(a)),this.__kb_value=l,this._vo(l)},e.prototype._inferType=function(e){},e}()},function(e,t,n){var r,i;r=(i=n(2))._,e.exports=i.Statistics=function(){function e(){this.model_events_tracker=[],this.registered_tracker={}}return e.prototype.clear=function(){return this.model_events_tracker=[]},e.prototype.addModelEvent=function(e){return this.model_events_tracker.push(e)},e.prototype.modelEventsStatsString=function(){var e,t,n,i;n="",n+="Total Count: "+this.model_events_tracker.length,e=r.groupBy(this.model_events_tracker,function(e){return"event name: '"+e.name+"', attribute name: '"+e.key+"'"});for(t in e)i=e[t],n+="\n "+t+", count: "+i.length;return n},e.prototype.register=function(e,t){return this.registeredTracker(e).push(t)},e.prototype.unregister=function(e,t){var n,i;return i=this.registeredTracker(e),(n=r.indexOf(i,t))<0?"undefined"!=typeof console&&null!==console?console.log("kb.Statistics: failed to unregister type: "+e):void 0:i.splice(n,1)},e.prototype.registeredCount=function(e){var t,n,r;if(e)return this.registeredTracker(e).length;t=0,n=this.registered_tracker[e];for(e in n)r=n[e],t+=r.length;return t},e.prototype.registeredStatsString=function(e){var t,n,r,i,o;n="",t=this.registered_tracker;for(r in t)i=t[r],i.length&&(o&&(n+="\n "),n+=(r?r:"No Name")+": "+i.length,o=!0);return n?n:e},e.prototype.registeredTracker=function(e){var t;return this.registered_tracker.hasOwnProperty(e)?this.registered_tracker[e]:(t=[],this.registered_tracker[e]=t,t)},e.eventsStats=function(e,t){var n,i,o,s,a,u,l;for(u={count:0},n=e._events||e._callbacks||{},a=t?[t]:r.keys(n),i=0,o=a.length;o>i;i++)if(t=a[i],s=n[t]){if(r.isArray(s))u[t]=r.compact(s).length;else for(u[t]=0,l=s.tail;(s=s.next)!==l;)u[t]++;u.count+=u[t]}return u},e}()},function(e,t,n){var r,i,o,s;s=i=n(2),r=s._,o=s.ko,e.exports=i.Store=function(){function e(){this.observable_records={},this.replaced_observables=[],i.Store.instances.push(this)}return e.instances=[],e.useOptionsOrCreate=function(e,t,n){var r;return e.store||i.utils.wrappedStoreIsOwned(n,!0),r=i.utils.wrappedStore(n,e.store||new i.Store),r.retain(n,t,e.creator),r},e.prototype.destroy=function(){var e;return this.__kb_released=!0,this.clear(),(e=r.indexOf(i.Store.instances,this))>=0?i.Store.instances.splice(e,1):void 0},e.prototype.clear=function(){var e,t,n,r,i,o,s,a,u,l;a=[this.observable_records,{}],o=a[0],this.observable_records=a[1];for(t in o){s=o[t];for(e in s)i=s[e],this.release(i,!0)}for(u=[this.replaced_observables,[]],l=u[0],this.replaced_observables=u[1],n=0,r=l.length;r>n;n++)i=l[n],i.__kb_released||this.release(i,!0)},e.prototype.compact=function(){var e,t,n,r,i;i=this.observable_records;for(t in i){r=i[t];for(e in r)n=r[e],n.__kb_released&&delete r[e]}},e.prototype.retain=function(e,t,n){var r;if(this._canRegister(e)){if(n||(n=e.constructor),r=this.find(t,n)){if(r===e)return this._getOrCreateStoreReferences(e).ref_count++,e;this._retire(r)}return this._add(e,t,n),this._getOrCreateStoreReferences(e).ref_count++,e}},e.prototype.retainOrCreate=function(e,t){var n,s;if(!(n=this._creator(e,t)))return i.utils.createFromDefaultCreator(e,t);if(n.models_only)return e;if(s=this.find(e,n))return s;if(!r.isFunction(n.create||n))throw new Error('Invalid factory for "'+t.path+'"');return s=i.ignore(function(i){return function(){return t=r.defaults({store:i,creator:n},t),s=n.create?n.create(e,t):new n(e,t),s||o.observable(null)}}(this)),this.retain(s,e,n),s},e.prototype.reuse=function(e,t){var n,o,s;if((o=i.utils.wrappedObject(e))!==t){if(!this._canRegister(e))throw new Error("Cannot reuse a simple observable");if(1!==this._refCount(e))throw new Error("Trying to change a shared view model. Ref count: "+this._refCount(e));n=i.utils.wrappedCreator(e)||e.constructor,r.isUndefined(o)||(s=this.find(o,n)),this.retain(e,t,n),s&&this.release(s)}},e.prototype.release=function(e,t){var n;if(!this._canRegister(e))return i.release(e);if(n=this._storeReferences(e)){if(!t&&--n.ref_count>0)return;this._clearStoreReferences(e)}return this._remove(e),e.__kb_released?void 0:t||this._refCount(e)<=1?i.release(e):void 0},e.prototype.find=function(e,t){var n,r,i;return(r=this.observable_records[this._creatorId(t)])?(null!=(i=n=r[this._cid(e)])?i.__kb_released:void 0)?(delete r[this._cid(e)],null):n:null},e.prototype._refCount=function(e){var t;return e.__kb_released?("undefined"!=typeof console&&null!==console&&console.log("Observable already released"),0):(t=i.utils.get(e,"stores_references"))?r.reduce(t,function(e,t){return e+t.ref_count},0):1},e.prototype._canRegister=function(e){return e&&!o.isObservable(e)&&!e.__kb_is_co},e.prototype._cid=function(e){var t;return t=e?e.cid||(e.cid=r.uniqueId("c")):"null"},e.prototype._creatorId=function(e){var t,n,i,o,s;for(t=e.create||e,t.__kb_cids||(t.__kb_cids=[]),s=t.__kb_cids,n=0,o=s.length;o>n;n++)if(i=s[n],i.create===t)return i.cid;return t.__kb_cids.push(i={create:t,cid:r.uniqueId("kb")}),i.cid},e.prototype._storeReferences=function(e){var t;if(t=i.utils.get(e,"stores_references"))return r.find(t,function(e){return function(t){return t.store===e}}(this))},e.prototype._getOrCreateStoreReferences=function(e){var t,n;return n=i.utils.orSet(e,"stores_references",[]),(t=r.find(n,function(e){return function(t){return t.store===e}}(this)))||n.push(t={store:this,ref_count:0,release:function(t){return function(){return t.release(e)}}(this)}),t},e.prototype._clearStoreReferences=function(e){var t,n,r,o;if(o=i.utils.get(e,"stores_references")){n=e.__kb.stores_references;for(t in n)if(r=n[t],r.store===this){e.__kb.stores_references.splice(t,1);break}}},e.prototype._retire=function(e){return this._clearStoreReferences(e),this.replaced_observables.push(e),this._remove(e)},e.prototype._add=function(e,t,n){var r,o;return n||(n=e.constructor),i.utils.wrappedObject(e,t),i.utils.wrappedCreator(e,n),((r=this.observable_records)[o=this._creatorId(n)]||(r[o]={}))[this._cid(t)]=e},e.prototype._remove=function(e){var t,n,r;return t=i.utils.wrappedCreator(e)||e.constructor,(n=this.find(r=i.utils.wrappedObject(e),t))&&n===e&&delete this.observable_records[this._creatorId(t)][this._cid(r)],i.utils.wrappedObject(e,null),i.utils.wrappedCreator(e,null)},e.prototype._creator=function(e,t){var n;return t.creator?t.creator:(n=i.utils.inferCreator(e,t.factory,t.path))?n:i.isModel(e)?i.ViewModel:void 0},e}()},function(e,t,n){var r,i,o,s;s=i=n(2),r=s._,o=s.ko,i.utils=function(){function e(){}return e.get=function(e,t,n){return e.__kb&&e.__kb.hasOwnProperty(t)?e.__kb[t]:n},e.set=function(e,t,n){return(e.__kb||(e.__kb={}))[t]=n},e.orSet=function(e,t,n){return(e.__kb||(e.__kb={})).hasOwnProperty(t)||(e.__kb[t]=n),e.__kb[t]},e.has=function(e,t){return e.__kb&&e.__kb.hasOwnProperty(t)},e.wrappedObservable=function(e,t){return 1===arguments.length?i.utils.get(e,"observable"):i.utils.set(e,"observable",t)},e.wrappedObject=function(e,t){return 1===arguments.length?i.utils.get(e,"object"):i.utils.set(e,"object",t)},e.wrappedCreator=function(e,t){return 1===arguments.length?i.utils.get(e,"creator"):i.utils.set(e,"creator",t)},e.wrappedModel=function(e,t){return 1===arguments.length?r.isUndefined(t=i.utils.get(e,"object"))?e:t:i.utils.set(e,"object",t)},e.wrappedStore=function(e,t){return 1===arguments.length?i.utils.get(e,"store"):i.utils.set(e,"store",t)},e.wrappedStoreIsOwned=function(e,t){return 1===arguments.length?i.utils.get(e,"store_is_owned"):i.utils.set(e,"store_is_owned",t)},e.wrappedFactory=function(e,t){return 1===arguments.length?i.utils.get(e,"factory"):i.utils.set(e,"factory",t)},e.wrappedEventWatcher=function(e,t){return 1===arguments.length?i.utils.get(e,"event_watcher"):i.utils.set(e,"event_watcher",t)},e.wrappedEventWatcherIsOwned=function(e,t){return 1===arguments.length?i.utils.get(e,"event_watcher_is_owned"):i.utils.set(e,"event_watcher_is_owned",t)},e.wrappedDestroy=n(23),e.valueType=function(e){return e?e.__kb_is_o?e.valueType():e.__kb_is_co||e instanceof i.Collection?i.TYPE_COLLECTION:e instanceof i.ViewModel||e instanceof i.Model?i.TYPE_MODEL:r.isArray(e)?i.TYPE_ARRAY:i.TYPE_SIMPLE:i.TYPE_UNKNOWN},e.pathJoin=function(e,t){return(e?"."!==e[e.length-1]?e+".":e:"")+t},e.optionsPathJoin=function(e,t){return r.defaults({path:this.pathJoin(e.path,t)},e)},e.inferCreator=function(e,t,n){var r;return t&&(r=t.creatorForPath(e,n))?r:e?e instanceof i.Model?i.ViewModel:e instanceof i.Collection?i.CollectionObservable:null:null},e.createFromDefaultCreator=function(e,t){return i.isModel(e)?i.viewModel(e,t):i.isCollection(e)?i.collectionObservable(e,t):r.isArray(e)?o.observableArray(e):o.observable(e)},e.collapseOptions=n(24),e.unwrapModels=n(25),e.resolveModel=function(e){return e&&i.Backbone&&i.Backbone.ModelRef&&e instanceof i.Backbone.ModelRef?e.model():e},e}()},function(e,t,n){var r,i;r=n(2)._,e.exports=i=function(e){var t,n;if(e.__kb&&(e.__kb.event_watcher&&e.__kb.event_watcher.releaseCallbacks(e),t=e.__kb,e.__kb=null,t.observable&&(t.observable.destroy=t.observable.release=null,i(t.observable),t.observable=null),t.factory=null,t.event_watcher_is_owned&&t.event_watcher.destroy(),t.event_watcher=null,t.store_is_owned&&t.store.destroy(),t.store=null,t.stores_references))for(;n=t.stores_references.pop();)n.store.__kb_released||n.store.release(e)}},function(e,t,n){var r,i,o,s,a;r=n(2)._,o=function(e,t,n){return e[t]||(e[t]=[]),r.isArray(n)||(n=[n]),e[t]=e[t].length?r.union(e[t],n):n,e},s=function(e,t,n){return e[t]||(e[t]={}),r.extend(e[t],n)},i=function(e){var t,n,r,i;for(i={},t=0,r=e.length;r>t;t++)n=e[t],i[n]={key:n};return i},a=function(e,t){var n,u;if(!t)return e;for(n in t)switch(u=t[n],n){case"internals":case"requires":case"excludes":case"statics":o(e,n,u);break;case"keys":r.isObject(u)&&!r.isArray(u)||r.isObject(e[n])&&!r.isArray(e[n])?(r.isObject(u)||(u=[u]),r.isArray(u)&&(u=i(u)),r.isArray(e[n])&&(e[n]=i(e[n])),s(e,n,u)):o(e,n,u);break;case"factories":r.isFunction(u)?e[n]=u:s(e,n,u);break;case"static_defaults":s(e,n,u);break;case"options":break;default:e[n]=u}return a(e,t.options)},e.exports=function(e){return a({},e)}},function(e,t,n){var r,i;r=n(2)._,e.exports=i=function(e){var t,n,o;if(!e)return e;if(e.__kb)return e.__kb.hasOwnProperty("object")?e.__kb.object:e;if(r.isArray(e))return r.map(e,function(e){return i(e)});if(r.isObject(e)&&e.constructor==={}.constructor){n={};for(t in e)o=e[t],n[t]=i(o);return n}return e}},function(e,t,n){var r,i,o,s,a,u,l,c;c=u=n(2),i=c._,l=c.ko,o=function(e,t){var n;return n=e.__kb.internals&&i.contains(e.__kb.internals,t)?"_"+t:t,e.__kb.view_model.hasOwnProperty(n)?void 0:(e.__kb.view_model[n]=null,n)},s=function(e,t,n,r){var s;if((!e.__kb.excludes||!i.contains(e.__kb.excludes,n))&&(!e.__kb.statics||!i.contains(e.__kb.statics,n))&&(s=o(e,n)))return e[s]=e.__kb.view_model[s]=u.observable(t,n,r,e)},a=function(e,t){var n,r,i,s,a;for(s=e.__kb.statics,n=0,i=s.length;i>n;n++)r=s[n],(a=o(e,r))&&(t.has(a)?e[a]=e.__kb.view_model[a]=t.get(a):e.__kb.static_defaults&&a in e.__kb.static_defaults?e[a]=e.__kb.view_model[a]=e.__kb.static_defaults[a]:delete e.__kb.view_model[a])},r=["keys","internals","excludes","statics","static_defaults"],u.ViewModel=function(){function e(e,t,n){var o;return null==t&&(t={}),o=Array.prototype.slice.call(i.isArguments(e)?e:arguments),u.ignore(function(n){return function(){var s,c,d,p,f,h,v,m;for(!(e=o.shift())||u.isModel(e)||u._throwUnexpected(n,"not a model"),i.isArray(o[0])&&(o[0]={keys:o[0]}),n.__kb||(n.__kb={}),n.__kb.view_model=o.length>1?o.pop():n,t={},p=0,v=o.length;v>p;p++)c=o[p],i.extend(t,c);for(t=u.utils.collapseOptions(t),f=0,m=r.length;m>f;f++)h=r[f],t.hasOwnProperty(h)&&(n.__kb[h]=t[h]);return u.Store.useOptionsOrCreate(t,e,n),n.__kb.path=t.path,u.Factory.useOptionsOrCreate(t,n,t.path),s=u.utils.set(n,"_model",l.observable()),n.model=l.computed({read:function(){return l.utils.unwrapObservable(s)},write:function(e){return u.ignore(function(){return u.utils.wrappedObject(n)!==e&&!u.wasReleased(n)&&d?(n.__kb.store.reuse(n,u.utils.resolveModel(e)),d.emitter(e),s(d.ee),!d.ee||n.createObservables(d.ee)):void 0})}}),d=u.utils.wrappedEventWatcher(n,new u.EventWatcher(e,n,{emitter:n._model,update:function(){return u.ignore(function(){return!(null!=d?d.ee:void 0)||n.createObservables(null!=d?d.ee:void 0)})}})),u.utils.wrappedObject(n,e=d.ee),s(d.ee),n.__kb.create_options={store:u.utils.wrappedStore(n),factory:u.utils.wrappedFactory(n),path:n.__kb.path,event_watcher:u.utils.wrappedEventWatcher(n)},!t.requires||n.createObservables(e,t.requires),!n.__kb.internals||n.createObservables(e,n.__kb.internals),!t.mappings||n.createObservables(e,t.mappings),!n.__kb.statics||a(n,e),n.createObservables(e,n.__kb.keys),!u.statistics||u.statistics.register("ViewModel",n),n}}(this))}return e.extend=u.extend,e.prototype.destroy=function(){var e;if(this.__kb_released=!0,this.__kb.view_model!==this)for(e in this.__kb.vm_keys)this.__kb.view_model[e]=null;return this.__kb.view_model=this.__kb.create_options=null,u.releaseKeys(this),u.utils.wrappedDestroy(this),!u.statistics||u.statistics.unregister("ViewModel",this)},e.prototype.shareOptions=function(){return{store:u.utils.wrappedStore(this),factory:u.utils.wrappedFactory(this)}},e.prototype.createObservables=function(e,t){var n,r,a,l,c,d,p,f,h;if(t)if(i.isArray(t))for(r=0,c=t.length;c>r;r++)a=t[r],s(this,e,a,this.__kb.create_options);else for(a in t)d=t[a],(h=o(this,a))&&(i.isString(d)||d.key||(d.key=h),this[h]=this.__kb.view_model[h]=u.observable(e,d,this.__kb.create_options,this));else{if(this.__kb.keys||!e)return;for(a in e.attributes)s(this,e,a,this.__kb.create_options);if(f=null!=(p=u.orm)&&"function"==typeof p.keys?p.keys(e):void 0)for(n=0,l=f.length;l>n;n++)a=f[n],s(this,e,a,this.__kb.create_options)}},e}(),u.viewModel=function(e,t,n){return new u.ViewModel(arguments)}},function(e,t,n){var r,i,o,s,a;a=o=n(2),i=a._,s=a.ko,n(28),r=["destroy","setToDefault"],e.exports=o.DefaultObservable=function(){function e(e,t){var n;return this.dv=t,n=o.utils.wrappedObservable(this,s.computed({read:function(t){return function(){var n;return n=s.utils.unwrapObservable(e()),i.isNull(n)||i.isUndefined(n)?s.utils.unwrapObservable(t.dv):n}}(this),write:function(t){return e(t)}})),o.publishMethods(n,this,r),n}return e.prototype.destroy=function(){return o.utils.wrappedDestroy(this)},e.prototype.setToDefault=function(){return o.utils.wrappedObservable(this)(this.dv)},e}(),o.defaultObservable=function(e,t){return new o.DefaultObservable(e,t)},o.observableDefault=o.defaultObservable},function(e,t,n){var r,i,o,s;s=i=n(2),r=s._,o=s.ko,i.Observable.prototype.setToDefault=function(){var e;null!=(e=this.__kb_value)&&"function"==typeof e.setToDefault&&e.setToDefault()},i.ViewModel.prototype.setToDefault=function(){var e,t;for(t in this.__kb.vm_keys)null!=(e=this[t])&&"function"==typeof e.setToDefault&&e.setToDefault()},i.utils.setToDefault=function(e){var t,n;if(e){if(o.isObservable(e))"function"==typeof e.setToDefault&&e.setToDefault();else if(r.isObject(e))for(t in e)n=e[t],!n||!o.isObservable(n)&&"function"==typeof n||"_"===t[0]&&!t.search("__kb")||this.setToDefault(n);return e}}},function(e,t,n){var r,i,o,s,a;a=o=n(2),r=a._,s=a.ko,i=Array.prototype.slice,o.toFormattedString=function(e){var t,n,o,a,u,l;u=e.slice(),n=i.call(arguments,1);for(o in n)for(t=n[o],l=s.utils.unwrapObservable(t),(r.isUndefined(l)||r.isNull(l))&&(l=""),a=e.indexOf("{"+o+"}");a>=0;)u=u.replace("{"+o+"}",l),a=e.indexOf("{"+o+"}",a+1);return u},o.parseFormattedString=function(e,t){var n,i,o,s,a,u,l,c,d,p,f,h,v;for(p=t.slice(),o=0,u=0,c={};p.search("\\{"+o+"\\}")>=0;){for(l=t.indexOf("{"+o+"}");l>=0;)p=p.replace("{"+o+"}","(.*)"),c[l]=o,u++,l=t.indexOf("{"+o+"}",l+1);o++}if(n=o,d=new RegExp(p),a=d.exec(e),a&&a.shift(),!a||a.length!==u){for(f=[];n-->0;)f.push("");return f}v=r.sortBy(r.keys(c),function(e,t){return parseInt(e,10)}),i={};for(s in v)l=v[s],o=c[l],i.hasOwnProperty(o)||(i[o]=s);for(h=[],o=0;n>o;)h.push(a[i[o]]),o++;return h},e.exports=o.FormattedObservable=function(){function e(e,t){var n,a;return r.isArray(t)?(e=e,a=t):a=i.call(arguments,1),n=o.utils.wrappedObservable(this,s.computed({read:function(){var n,r,i;for(t=[s.utils.unwrapObservable(e)],r=0,i=a.length;i>r;r++)n=a[r],t.push(s.utils.unwrapObservable(n));return o.toFormattedString.apply(null,t)},write:function(t){var n,r,i;for(r=o.parseFormattedString(t,s.utils.unwrapObservable(e)),i=Math.min(a.length,r.length),n=0;i>n;)a[n](r[n]),n++}}))}return e.prototype.destroy=function(){return o.utils.wrappedDestroy(this)},e}(),o.formattedObservable=function(e,t){return new o.FormattedObservable(e,i.call(arguments,1))},o.observableFormatted=o.formattedObservable},function(e,t,n){var r,i,o,s,a;a=o=n(2),i=a._,s=a.ko,r=["destroy","observedValue","resetToCurrent"],o.locale_manager||(o.locale_manager=void 0),e.exports=o.LocalizedObservable=function(){function e(e,t,n){var a,u;return this.value=e,this.vm=n,t||(t={}),this.vm||(this.vm={}),this.read||o._throwMissing(this,"read"),o.locale_manager||o._throwMissing(this,"kb.locale_manager"),this.__kb||(this.__kb={}),this.__kb._onLocaleChange=i.bind(this._onLocaleChange,this),this.__kb._onChange=t.onChange,this.value&&(u=s.utils.unwrapObservable(this.value)),this.vo=s.observable(u?this.read(u,null):null),a=o.utils.wrappedObservable(this,s.computed({read:function(e){return function(){return e.value&&s.utils.unwrapObservable(e.value),e.vo(),e.read(s.utils.unwrapObservable(e.value))}}(this),write:function(e){return function(t){return e.write||o._throwUnexpected(e,"writing to read-only"),e.write(t,s.utils.unwrapObservable(e.value)),e.vo(t),e.__kb._onChange?e.__kb._onChange(t):void 0}}(this),owner:this.vm})),o.publishMethods(a,this,r),o.locale_manager.bind("change",this.__kb._onLocaleChange),t.hasOwnProperty("default")&&(a=o.DefaultObservable&&s.defaultObservable(a,t["default"])),a}return e.extend=o.extend,e.prototype.destroy=function(){return o.locale_manager.unbind("change",this.__kb._onLocaleChange),this.vm=null,o.utils.wrappedDestroy(this)},e.prototype.resetToCurrent=function(){var e,t;return t=o.utils.wrappedObservable(this),e=this.value?this.read(s.utils.unwrapObservable(this.value)):null,t()!==e?t(e):void 0},e.prototype.observedValue=function(e){return 0===arguments.length?this.value:(this.value=e,void this._onLocaleChange())},e.prototype._onLocaleChange=function(){var e;return e=this.read(s.utils.unwrapObservable(this.value)),this.vo(e),this.__kb._onChange?this.__kb._onChange(e):void 0},e}(),o.localizedObservable=function(e,t,n){return new o.LocalizedObservable(e,t,n)},o.observableLocalized=o.localizedObservable},function(e,t,n){var r,i,o,s,a;a=o=n(2),i=a._,s=a.ko,r=["destroy"],e.exports=o.TriggeredObservable=function(){function e(e,t){var n;return this.event_selector=t,e||o._throwMissing(this,"emitter"),this.event_selector||o._throwMissing(this,"event_selector"),this.vo=s.observable(),n=o.utils.wrappedObservable(this,s.computed(function(e){return function(){return e.vo()}}(this))),o.publishMethods(n,this,r),o.utils.wrappedEventWatcher(this,new o.EventWatcher(e,this,{emitter:i.bind(this.emitter,this),update:i.bind(this.update,this),event_selector:this.event_selector })),n}return e.prototype.destroy=function(){return o.utils.wrappedDestroy(this)},e.prototype.emitter=function(e){return 0===arguments.length||this.ee===e?this.ee:(this.ee=e)?this.update():void 0},e.prototype.update=function(){return this.ee?this.vo()!==this.ee?this.vo(this.ee):this.vo.valueHasMutated():void 0},e}(),o.triggeredObservable=function(e,t){return new o.TriggeredObservable(e,t)},o.observableTriggered=o.triggeredObservable},function(e,t,n){var r,i,o,s,a,u;u=s=n(2),i=u._,a=u.ko,r=u.$,n(33),o=function(e){return e=a.utils.unwrapObservable(e),"function"==typeof e?e.apply(null,Array.prototype.slice.call(arguments,1)):e},e.exports=s.Validation=function(){function e(){}return e}(),s.valueValidator=function(e,t,n){return null==n&&(n={}),n&&!("function"==typeof n)||(n={}),a.computed(function(){var r,s,u,l,c,d,p,f;p={$error_count:0},s=a.utils.unwrapObservable(e),!("disable"in n)||(u=o(n.disable)),!("enable"in n)||(u=!o(n.enable)),d=n.priorities||[],i.isArray(d)||(d=[d]),r=d.length+1;for(l in t)f=t[l],p[l]=!u&&o(f,s),p[l]&&(p.$error_count++,(c=i.indexOf(d,l)>=0)||(c=d.length),p.$active_error&&r>c?(p.$active_error=l,r=c):p.$active_error||(p.$active_error=l,r=c));return p.$enabled=!u,p.$disable=!!u,p.$valid=0===p.$error_count,p})},s.inputValidator=function(e,t,n){var o,a,u,l,c,d,p,f,h,v;if(null==n&&(n={}),n&&!("function"==typeof n)||(n={}),v=s.valid,o=r(t),(l=o.attr("name"))&&!i.isString(l)&&(l=null),!(a=o.attr("data-bind")))return null;if(c=new Function("sc","with(sc[0]) { return { "+a+" } }")([e]),!c||!c.value)return null;if(!c.validation_options||(i.defaults(c.validation_options,n),n=c.validation_options),a={},!v[f=o.attr("type")]||(a[f]=v[f]),!o.attr("required")||(a.required=v.required),c.validations){d=c.validations;for(u in d)h=d[u],a[u]=h}return p=s.valueValidator(c.value,a,n),!l&&!n.no_attach||(e["$"+l]=p),p},s.formValidator=function(e,t){var n,o,u,l,c,d,p,f,h,v,m,b,g;for(v={},g=[],n=r(t),(u=n.attr("name"))&&!i.isString(u)&&(u=null),(o=n.attr("data-bind"))&&(f=new Function("sc","with(sc[0]) { return { "+o+" } }")([e]),m=f.validation_options),m||(m={}),m.no_attach=!!u,h=n.find("input"),l=0,d=h.length;d>l;l++)c=h[l],(p=r(c).attr("name"))&&(b=s.inputValidator(e,c,m),!b||g.push(v[p]=b));return v.$error_count=a.computed(function(){var e,t,n;for(e=0,t=0,n=g.length;n>t;t++)b=g[t],e+=b().$error_count;return e}),v.$valid=a.computed(function(){return 0===v.$error_count()}),v.$enabled=a.computed(function(){var e,t,n;for(e=!0,t=0,n=g.length;n>t;t++)b=g[t],e&=b().$enabled;return e}),v.$disabled=a.computed(function(){return!v.$enabled()}),u&&(e["$"+u]=v),v}},function(e,t,n){var r,i,o,s,a,u,l,c;c=u=n(2),a=c._,l=c.ko,r=c.$,s=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,i=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,o=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,u.valid={required:function(e){return!e},url:function(e){return!s.test(e)},email:function(e){return!i.test(e)},number:function(e){return!o.test(e)}},u.hasChangedFn=function(e){var t,n;return n=null,t=null,function(){var r;return n!==(r=l.utils.unwrapObservable(e))?(n=r,t=n?n.toJSON():null,!1):n&&t?!a.isEqual(n.toJSON(),t):!1}},u.minLengthFn=function(e){return function(t){return!t||t.lengthr;r++)o=a[r],i[o]&&!Object.prototype.hasOwnProperty.call(window,o)&&(window[o]=i[o])}])});