http://git-wip-us.apache.org/repos/asf/atlas-website/blob/58bb55a6/api/v2/ui/css/style.css
----------------------------------------------------------------------
diff --git a/api/v2/ui/css/style.css b/api/v2/ui/css/style.css
index fc21a31..52907e4 100644
--- a/api/v2/ui/css/style.css
+++ b/api/v2/ui/css/style.css
@@ -1,250 +1 @@
-.swagger-section #header a#logo {
-  font-size: 1.5em;
-  font-weight: bold;
-  text-decoration: none;
-  background: transparent url(../images/logo.png) no-repeat left center;
-  padding: 20px 0 20px 40px;
-}
-#text-head {
-  font-size: 80px;
-  font-family: 'Roboto', sans-serif;
-  color: #ffffff;
-  float: right;
-  margin-right: 20%;
-}
-.navbar-fixed-top .navbar-nav {
-  height: auto;
-}
-.navbar-fixed-top .navbar-brand {
-  height: auto;
-}
-.navbar-header {
-  height: auto;
-}
-.navbar-inverse {
-  background-color: #000;
-  border-color: #000;
-}
-#navbar-brand {
-  margin-left: 20%;
-}
-.navtext {
-  font-size: 10px;
-}
-.h1,
-h1 {
-  font-size: 60px;
-}
-.navbar-default .navbar-header .navbar-brand {
-  color: #a2dfee;
-}
-/* tag titles */
-.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a {
-  color: #393939;
-  font-family: 'Arvo', serif;
-  font-size: 1.5em;
-}
-.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 
a:hover {
-  color: black;
-}
-.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 {
-  color: #525252;
-  padding-left: 0px;
-  display: block;
-  clear: none;
-  float: left;
-  font-family: 'Arvo', serif;
-  font-weight: bold;
-}
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-  border-color: #0A0A0A;
-}
-.container1 {
-  width: 1500px;
-  margin: auto;
-  margin-top: 0;
-  background-image: url('../images/shield.png');
-  background-repeat: no-repeat;
-  background-position: -40px -20px;
-  margin-bottom: 210px;
-}
-.container-inner {
-  width: 1200px;
-  margin: auto;
-  background-color: rgba(223, 227, 228, 0.75);
-  padding-bottom: 40px;
-  padding-top: 40px;
-  border-radius: 15px;
-}
-.header-content {
-  padding: 0;
-  width: 1000px;
-}
-.title1 {
-  font-size: 80px;
-  font-family: 'Vollkorn', serif;
-  color: #404040;
-  text-align: center;
-  padding-top: 40px;
-  padding-bottom: 100px;
-}
-#icon {
-  margin-top: -18px;
-}
-.subtext {
-  font-size: 25px;
-  font-style: italic;
-  color: #08b;
-  text-align: right;
-  padding-right: 250px;
-}
-.bg-primary {
-  background-color: #00468b;
-}
-.navbar-default .nav > li > a,
-.navbar-default .nav > li > a:focus {
-  color: #08b;
-}
-.navbar-default .nav > li > a,
-.navbar-default .nav > li > a:hover {
-  color: #08b;
-}
-.navbar-default .nav > li > a,
-.navbar-default .nav > li > a:focus:hover {
-  color: #08b;
-}
-.text-faded {
-  font-size: 25px;
-  font-family: 'Vollkorn', serif;
-}
-.section-heading {
-  font-family: 'Vollkorn', serif;
-  font-size: 45px;
-  padding-bottom: 10px;
-}
-hr {
-  border-color: #00468b;
-  padding-bottom: 10px;
-}
-.description {
-  margin-top: 20px;
-  padding-bottom: 200px;
-}
-.description li {
-  font-family: 'Vollkorn', serif;
-  font-size: 25px;
-  color: #525252;
-  margin-left: 28%;
-  padding-top: 5px;
-}
-.gap {
-  margin-top: 200px;
-}
-.troubleshootingtext {
-  color: rgba(255, 255, 255, 0.7);
-  padding-left: 30%;
-}
-.troubleshootingtext li {
-  list-style-type: circle;
-  font-size: 25px;
-  padding-bottom: 5px;
-}
-.overlay {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  z-index: 1000;
-}
-.block.response_body.json:hover {
-  cursor: pointer;
-}
-.backdrop {
-  color: blue;
-}
-#myModal {
-  height: 100%;
-}
-.modal-backdrop {
-  bottom: 0;
-  position: fixed;
-}
-.curl {
-  padding: 10px;
-  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans 
Mono", "Courier New", monospace;
-  font-size: 0.9em;
-  max-height: 400px;
-  margin-top: 5px;
-  overflow-y: auto;
-  background-color: #fcf6db;
-  border: 1px solid #e5e0c6;
-  border-radius: 4px;
-}
-.curl_title {
-  font-size: 1.1em;
-  margin: 0;
-  padding: 15px 0 5px;
-  font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
-  font-weight: 500;
-  line-height: 1.1;
-}
-.footer {
-  display: none;
-}
-.swagger-section .swagger-ui-wrap h2 {
-  padding: 0;
-}
-h2 {
-  margin: 0;
-  margin-bottom: 5px;
-}
-.markdown p {
-  font-size: 15px;
-  font-family: 'Arvo', serif;
-}
-.swagger-section .swagger-ui-wrap .code {
-  font-size: 15px;
-  font-family: 'Arvo', serif;
-}
-.swagger-section .swagger-ui-wrap b {
-  font-family: 'Arvo', serif;
-}
-#signin:hover {
-  cursor: pointer;
-}
-.dropdown-menu {
-  padding: 15px;
-}
-.navbar-right .dropdown-menu {
-  left: 0;
-  right: auto;
-}
-#signinbutton {
-  width: 100%;
-  height: 32px;
-  font-size: 13px;
-  font-weight: bold;
-  color: #08b;
-}
-.navbar-default .nav > li .details {
-  color: #000000;
-  text-transform: none;
-  font-size: 15px;
-  font-weight: normal;
-  font-family: 'Open Sans', sans-serif;
-  font-style: italic;
-  line-height: 20px;
-  top: -2px;
-}
-.navbar-default .nav > li .details:hover {
-  color: black;
-}
-#signout {
-  width: 100%;
-  height: 32px;
-  font-size: 13px;
-  font-weight: bold;
-  color: #08b;
-}
+.swagger-section #header 
a#logo{font-size:1.5em;font-weight:700;text-decoration:none;padding:20px 0 20px 
40px}#text-head{font-size:80px;font-family:Roboto,sans-serif;color:#fff;float:right;margin-right:20%}.navbar-fixed-top
 .navbar-brand,.navbar-fixed-top 
.navbar-nav,.navbar-header{height:auto}.navbar-inverse{background-color:#000;border-color:#000}#navbar-brand{margin-left:20%}.navtext{font-size:10px}.h1,h1{font-size:60px}.navbar-default
 .navbar-header .navbar-brand{color:#a2dfee}.swagger-section .swagger-ui-wrap 
ul#resources li.resource div.heading h2 
a{color:#393939;font-family:Arvo,serif;font-size:1.5em}.swagger-section 
.swagger-ui-wrap ul#resources li.resource div.heading h2 
a:hover{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource 
div.heading 
h2{color:#525252;padding-left:0;display:block;clear:none;float:left;font-family:Arvo,serif;font-weight:700}.navbar-default
 .navbar-collapse,.navbar-default 
.navbar-form{border-color:#0a0a0a}.container1{width:1500px;mar
 gin:auto;margin-top:0;background-repeat:no-repeat;background-position:-40px 
-20px;margin-bottom:210px}.container-inner{width:1200px;margin:auto;background-color:hsla(192,8%,88%,.75);padding-bottom:40px;padding-top:40px;border-radius:15px}.header-content{padding:0;width:1000px}.title1{font-size:80px;font-family:Vollkorn,serif;color:#404040;text-align:center;padding-top:40px;padding-bottom:100px}#icon{margin-top:-18px}.subtext{font-size:25px;font-style:italic;color:#08b;text-align:right;padding-right:250px}.bg-primary{background-color:#00468b}.navbar-default
 .nav>li>a,.navbar-default .nav>li>a:focus,.navbar-default 
.nav>li>a:focus:hover,.navbar-default 
.nav>li>a:hover{color:#08b}.text-faded{font-size:25px;font-family:Vollkorn,serif}.section-heading{font-family:Vollkorn,serif;font-size:45px;padding-bottom:10px}hr{border-color:#00468b;padding-bottom:10px}.description{margin-top:20px;padding-bottom:200px}.description
 li{font-family:Vollkorn,serif;font-size:25px;color:#525252;margin-left:
 
28%;padding-top:5px}.gap{margin-top:200px}.troubleshootingtext{color:hsla(0,0%,100%,.7);padding-left:30%}.troubleshootingtext
 
li{list-style-type:circle;font-size:25px;padding-bottom:5px}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.block.response_body.json:hover{cursor:pointer}.backdrop{color:blue}#myModal{height:100%}.modal-backdrop{bottom:0;position:fixed}.curl{padding:10px;font-family:Anonymous
 Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier 
New,monospace;font-size:.9em;max-height:400px;margin-top:5px;overflow-y:auto;background-color:#fcf6db;border:1px
 solid 
#e5e0c6;border-radius:4px}.curl_title{font-size:1.1em;margin:0;padding:15px 0 
5px;font-family:Open Sans,Helvetica 
Neue,Arial,sans-serif;font-weight:500;line-height:1.1}.footer{display:none}.swagger-section
 .swagger-ui-wrap h2{padding:0}h2{margin:0;margin-bottom:5px}.markdown 
p,.swagger-section .swagger-ui-wrap 
.code{font-size:15px;font-family:Arvo,serif}.swagger-section .swagger-ui-wrap 
b{font-
 
family:Arvo,serif}#signin:hover{cursor:pointer}.dropdown-menu{padding:15px}.navbar-right
 
.dropdown-menu{left:0;right:auto}#signinbutton{width:100%;height:32px;font-size:13px;font-weight:700;color:#08b}.navbar-default
 .nav>li 
.details{color:#000;text-transform:none;font-size:15px;font-weight:400;font-family:Open
 Sans,sans-serif;font-style:italic;line-height:20px;top:-2px}.navbar-default 
.nav>li 
.details:hover{color:#000}#signout{width:100%;height:32px;font-size:13px;font-weight:700;color:#08b}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/atlas-website/blob/58bb55a6/api/v2/ui/css/typography.css
----------------------------------------------------------------------
diff --git a/api/v2/ui/css/typography.css b/api/v2/ui/css/typography.css
index efb785f..e69de29 100644
--- a/api/v2/ui/css/typography.css
+++ b/api/v2/ui/css/typography.css
@@ -1,14 +0,0 @@
-/* Google Font's Droid Sans */
-@font-face {
-  font-family: 'Droid Sans';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Droid Sans'), local('DroidSans'), url('../fonts/DroidSans.ttf'), 
format('truetype');
-}
-/* Google Font's Droid Sans Bold */
-@font-face {
-  font-family: 'Droid Sans';
-  font-style: normal;
-  font-weight: 700;
-  src: local('Droid Sans Bold'), local('DroidSans-Bold'), 
url('../fonts/DroidSans-Bold.ttf'), format('truetype');
-}

http://git-wip-us.apache.org/repos/asf/atlas-website/blob/58bb55a6/api/v2/ui/index.html
----------------------------------------------------------------------
diff --git a/api/v2/ui/index.html b/api/v2/ui/index.html
index 3adca7d..21d6b05 100644
--- a/api/v2/ui/index.html
+++ b/api/v2/ui/index.html
@@ -2,6 +2,7 @@
 <html>
 <head>
   <meta charset="UTF-8">
+  <meta http-equiv="x-ua-compatible" content="IE=edge">
   <title>Swagger UI</title>
   <link rel="icon" type="image/png" href="images/favicon-32x32.png" 
sizes="32x32" />
   <link rel="icon" type="image/png" href="images/favicon-16x16.png" 
sizes="16x16" />
@@ -86,7 +87,8 @@
         docExpansion: "none",
         jsonEditor: false,
         defaultModelRendering: 'schema',
-        showRequestHeaders: false
+        showRequestHeaders: false,
+        showOperationIds: false
       });
 
       window.swaggerUi.load();

http://git-wip-us.apache.org/repos/asf/atlas-website/blob/58bb55a6/api/v2/ui/lang/ja.js
----------------------------------------------------------------------
diff --git a/api/v2/ui/lang/ja.js b/api/v2/ui/lang/ja.js
index 3207bfc..1cbeb37 100644
--- a/api/v2/ui/lang/ja.js
+++ b/api/v2/ui/lang/ja.js
@@ -26,22 +26,25 @@ window.SwaggerTranslator.learn({
     "Show/Hide":"表示/非表示",
     "List Operations":"操作一覧",
     "Expand Operations":"操作の展開",
-    "Raw":"Raw",
+    "Raw":"未加工",
     "can't parse JSON.  Raw result":"JSONへ解釈できません.  未加
工の結果",
+    "Example Value":"値の例",
     "Model Schema":"モデルスキーマ",
     "Model":"モデル",
+    "Click to set as parameter 
value":"パラメータ値と設定するにはクリック",
     "apply":"実行",
     "Username":"ユーザ名",
     "Password":"パスワード",
     "Terms of service":"サービス利用規約",
     "Created by":"Created by",
-    "See more at":"See more at",
+    "See more at":"詳細を見る",
     "Contact the developer":"開発者に連絡",
     "api version":"APIバージョン",
     "Response Content Type":"レスポンス コンテンツタイプ",
+    "Parameter content type:":"パラメータコンテンツタイプ:",
     "fetching resource":"リソースの取得",
     "fetching resource list":"リソース一覧の取得",
-    "Explore":"Explore",
+    "Explore":"調査",
     "Show Swagger Petstore Example 
Apis":"SwaggerペットストアAPIの表示",
     "Can't read from server.  It may not have the appropriate 
access-control-origin settings.":"サーバから読み込めません.  
適切なaccess-control-origin設定を持っていない可能性があります.",
     "Please specify the protocol for":"プロトコルを指定してくだ
さい",

http://git-wip-us.apache.org/repos/asf/atlas-website/blob/58bb55a6/api/v2/ui/lang/zh-cn.js
----------------------------------------------------------------------
diff --git a/api/v2/ui/lang/zh-cn.js b/api/v2/ui/lang/zh-cn.js
index 570319b..3af61ad 100644
--- a/api/v2/ui/lang/zh-cn.js
+++ b/api/v2/ui/lang/zh-cn.js
@@ -28,6 +28,8 @@ window.SwaggerTranslator.learn({
     "Expand Operations":"展开操作",
     "Raw":"原始",
     "can't parse JSON.  Raw result":"无法解析JSON. 原始结果",
+    "Example Value":"示例",
+    "Click to set as parameter value":"点击设置参数",
     "Model Schema":"模型架构",
     "Model":"模型",
     "apply":"应用",
@@ -39,6 +41,7 @@ window.SwaggerTranslator.learn({
     "Contact the developer":"联系开发者",
     "api version":"api版本",
     "Response Content Type":"响应Content Type",
+    "Parameter content type:":"参数类型:",
     "fetching resource":"正在获取资源",
     "fetching resource list":"正在获取资源列表",
     "Explore":"浏览",

http://git-wip-us.apache.org/repos/asf/atlas-website/blob/58bb55a6/api/v2/ui/lib/backbone-min.js
----------------------------------------------------------------------
diff --git a/api/v2/ui/lib/backbone-min.js b/api/v2/ui/lib/backbone-min.js
index a3f544b..8eff02e 100644
--- a/api/v2/ui/lib/backbone-min.js
+++ b/api/v2/ui/lib/backbone-min.js
@@ -1,15 +1 @@
-// Backbone.js 1.1.2
-
-(function(t,e){if(typeof 
define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else
 if(typeof exports!=="undefined"){var 
i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var
 s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var 
h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return 
this};e.emulateHTTP=false;e.emulateJSON=false;var 
u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return 
this;this._events||(this._events={});var 
r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return
 this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var 
s=this;var 
n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return 
this.on(t,n,r)},off:function(t,e,r){var 
s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return 
this;if(!t&&!e&&!r){this._events=void 0;
 return 
this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete
 this._events[t]}}return this},trigger:function(t){if(!this._events)return 
this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var 
i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return 
this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return 
this;var n=!e&&!r;if(!r&&typeof 
e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in 
s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete 
this._listeningTo[a]}return this}};var l=/\s+/;var 
c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in 
i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var 
n=i.split(l);for(var 
a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}re
 turn true};var f=function(t,e){var 
i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 
0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 
1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 
2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 
3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var
 
d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var
 n=this._listeningTo||(this._listeningTo={});var 
a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof 
r==="object")s=this;e[t](r,s,this);return 
this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var 
p=e.Model=function(t,e){var 
r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{cha
 
nged:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return
 i.clone(this.attributes)},sync:function(){return 
e.sync.apply(this,arguments)},get:function(t){return 
this.attributes[t]},escape:function(t){return 
i.escape(this.get(t))},has:function(t){return 
this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return 
this;if(typeof 
t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return 
false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute
 in n)this.id=n[this.idAttribute];for(s in 
n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete
 this.changed[s]}a?delete 
c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var 
f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return
 this;if(!h){while(this._pend
 
ing){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return
 this},unset:function(t,e){return this.set(t,void 
0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in 
this.attributes)e[r]=void 0;return 
this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return
 i.has(this.changed,t)},changedAttributes:function(t){if(!t)return 
this.hasChanged()?i.clone(this.changed):false;var e,r=false;var 
s=this._changing?this._previousAttributes:this.attributes;for(var n in 
t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return 
r},previous:function(t){if(t==null||!this._previousAttributes)return 
null;return this._previousAttributes[t]},previousAttributes:function(){return 
i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void
 0)t.parse=true;var e=this;var 
r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r
 (e,i,t);e.trigger("sync",e,i,t)};q(this,t);return 
this.sync("read",this,t)},save:function(t,e,r){var 
s,n,a,o=this.attributes;if(t==null||typeof 
t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return
 false}else{if(!this._validate(s,r))return 
false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 
0)r.parse=true;var h=this;var 
u=r.success;r.success=function(t){h.attributes=o;var 
e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return
 
false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return
 a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var 
s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return
 false}q(this,t);
 var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var 
t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return
 t;return 
t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return
 t},clone:function(){return new 
this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return
 
this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return
 true;t=i.extend({},this.attributes,t);var 
r=this.validationError=this.validate(t,e)||null;if(!r)return 
true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return 
false}});var 
v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var
 e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var 
g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void
 0)this.comparator=
 
e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var
 m={add:true,remove:true,merge:true};var 
y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return
 this.map(function(e){return e.toJSON(t)})},sync:function(){return 
e.sync.apply(this,arguments)},add:function(t,e){return 
this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var 
r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var 
s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete 
this._byId[o.id];delete 
this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return
 
r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var
 r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var 
f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(t
 his.comparator)?this.comparator:null;var g=[],y=[],_={};var 
b=e.add,w=e.merge,x=e.remove;var 
E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof 
p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else
 
if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var
 
k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}retu
 rn r?t[0]:t},reset:function(t,e){e||(e={});for(var 
r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return
 t},push:function(t,e){return 
this.add(t,i.extend({at:this.length},e))},pop:function(t){var 
e=this.at(this.length-1);this.remove(e,t);return 
e},unshift:function(t,e){return 
this.add(t,i.extend({at:0},e))},shift:function(t){var 
e=this.at(0);this.remove(e,t);return e},slice:function(){return 
o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return 
this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return 
this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return 
this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return 
false}return true})},findWhere:function(t){return 
this.where(t,true)},sort:function(t){if(!this.comparator)throw new 
Error("Cannot sort a se
 t without a 
comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return
 this},pluck:function(t){return 
i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void
 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var 
s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return
 
this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return
 false;if(!e.wait)this.add(t,e);var r=this;var 
s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return
 t},parse:function(t,e){return t},clone:function(){return new 
this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t
 instanceof p)return t;e=e?i.clone(e):{};e.collectio
 n=this;var r=new this.model(t,e);if(!r.validationError)return 
r;this.trigger("invalid",this,r.validationError,e);return 
false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete
 
t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete
 
this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var
 
_=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty
 ","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var 
e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var 
b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var
 s=i.isFunction(e)?e:function(t){return t.get(e)};return 
i[t](this.models,s,r)}});var 
w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var
 x=/^(\S+)\s*(.*)$/;var 
E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return
 this.$el.find(t)},initialize:function(){},render:function(){return 
this},remove:function(){this.$el.remove();this.stopListening();return 
this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t 
instanceof 
e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return 
this},delegateEvents:function(t){if(
 !(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var 
e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var 
s=e.match(x);var 
n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return
 
this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return
 this},_ensureElement:function(){if(!this.el){var 
t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var
 
r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var
 
n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var
 
a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSO
 
N(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var
 
o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return
 
o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return
 new ActiveXObject("Microsoft.XMLHTTP")}}var 
h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof 
window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new 
XMLHttpRequest).dispatchEvent);var 
T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return
 e.$.ajax.apply(e.$,arguments)};var 
$=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var
 S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=
 
/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var
 n=this;e.history.route(t,function(i){var 
a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return
 
this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return
 
this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var
 
t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return
 e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new 
RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var 
r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return 
t||null;return t?decodeURIComponent(t):n
 ull})}});var 
N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof 
window!=="undefined"){this.location=window.location;this.history=window.history}};var
 R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var 
j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return
 
this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var
 e=(t||this).location.href.match(/#(.*)$/);return 
e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var
 
i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return
 t.replace(R,"")},start:function(t){if(N.started)throw new 
Error("Backbone.history has already been 
started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!
 
!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var
 r=this.getFragment();var s=document.documentMode;var 
n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var
 a=e.$('<iframe src="javascript:0" 
tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else
 if(this._wantsHashChange&&"onhashchange"in 
window&&!n){e.$(window).on("hashchange",this.checkUrl)}else 
if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var
 
o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return
 true}else 
if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().repl
 
ace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return
 
this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var
 
e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return
 
false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return
 i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return 
true}})},navigate:function(t,e){if(!N.started)return 
false;if(!e||e===true)e={trigger:!!e};var 
i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceSta
 te":"pushState"]({},document.title,i)}else 
if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return
 this.location.assign(i)}if(e.trigger)return 
this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var 
r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new
 N;var U=function(t,e){var r=this;var 
s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return 
r.apply(this,arguments)}}i.extend(s,r,e);var 
n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new 
n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return 
s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new 
Error('A "url" property or function must be specified')};var 
q=function(t,e){var 
i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error"
 ,t,r,e)}};return e});
-
-// From http://stackoverflow.com/a/19431552
-// Compatibility override - Backbone 1.1 got rid of the 'options' binding
-// automatically to views in the constructor - we need to keep that.
-Backbone.View = (function(View) {
-   return View.extend({
-        constructor: function(options) {
-            this.options = options || {};
-            View.apply(this, arguments);
-        }
-    });
-})(Backbone.View);
\ No newline at end of file
+!function(t,e){if("function"==typeof 
define&&define.amd)define(["underscore","jquery","exports"],function(i,n,s){t.Backbone=e(t,s,i,n)});else
 if("undefined"!=typeof exports){var 
i=require("underscore");e(t,exports,i)}else 
t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}(this,function(t,e,i,n){var
 
s=t.Backbone,r=[],a=(r.push,r.slice);r.splice;e.VERSION="1.1.2",e.$=n,e.noConflict=function(){return
 t.Backbone=s,this},e.emulateHTTP=!1,e.emulateJSON=!1;var 
o=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return 
this;this._events||(this._events={});var 
n=this._events[t]||(this._events[t]=[]);return 
n.push({callback:e,context:i,ctx:i||this}),this},once:function(t,e,n){if(!c(this,"once",t,[e,n])||!e)return
 this;var 
s=this,r=i.once(function(){s.off(t,r),e.apply(this,arguments)});return 
r._callback=e,this.on(t,r,n)},off:function(t,e,n){var 
s,r,a,o,h,u,l,d;if(!this._events||!c(this,"off",t,[e,n]))return 
this;if(!t&&!e&&!n)return this._events=void 0,this;for(o=t?[t]:i.keys(thi
 
s._events),h=0,u=o.length;h<u;h++)if(t=o[h],a=this._events[t]){if(this._events[t]=s=[],e||n)for(l=0,d=a.length;l<d;l++)r=a[l],(e&&e!==r.callback&&e!==r.callback._callback||n&&n!==r.context)&&s.push(r);s.length||delete
 this._events[t]}return this},trigger:function(t){if(!this._events)return 
this;var e=a.call(arguments,1);if(!c(this,"trigger",t,e))return this;var 
i=this._events[t],n=this._events.all;return 
i&&u(i,e),n&&u(n,arguments),this},stopListening:function(t,e,n){var 
s=this._listeningTo;if(!s)return this;var r=!e&&!n;n||"object"!=typeof 
e||(n=this),t&&((s={})[t._listenId]=t);for(var a in 
s)t=s[a],t.off(e,n,this),(r||i.isEmpty(t._events))&&delete 
this._listeningTo[a];return 
this}},h=/\s+/,c=function(t,e,i,n){if(!i)return!0;if("object"==typeof 
i){for(var s in 
i)t[e].apply(t,[s,i[s]].concat(n));return!1}if(h.test(i)){for(var 
r=i.split(h),a=0,o=r.length;a<o;a++)t[e].apply(t,[r[a]].concat(n));return!1}return!0},u=function(t,e){var
 i,n=-1,s=t.length,r=e[0],a=e[1],o=e[2];switch(e.lengt
 h){case 0:for(;++n<s;)(i=t[n]).callback.call(i.ctx);return;case 
1:for(;++n<s;)(i=t[n]).callback.call(i.ctx,r);return;case 
2:for(;++n<s;)(i=t[n]).callback.call(i.ctx,r,a);return;case 
3:for(;++n<s;)(i=t[n]).callback.call(i.ctx,r,a,o);return;default:for(;++n<s;)(i=t[n]).callback.apply(i.ctx,e);return}},l={listenTo:"on",listenToOnce:"once"};i.each(l,function(t,e){o[e]=function(e,n,s){var
 
r=this._listeningTo||(this._listeningTo={}),a=e._listenId||(e._listenId=i.uniqueId("l"));return
 r[a]=e,s||"object"!=typeof 
n||(s=this),e[t](n,s,this),this}}),o.bind=o.on,o.unbind=o.off,i.extend(e,o);var 
d=e.Model=function(t,e){var 
n=t||{};e||(e={}),this.cid=i.uniqueId("c"),this.attributes={},e.collection&&(this.collection=e.collection),e.parse&&(n=this.parse(n,e)||{}),n=i.defaults({},n,i.result(this,"defaults")),this.set(n,e),this.changed={},this.initialize.apply(this,arguments)};i.extend(d.prototype,o,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return
 
 i.clone(this.attributes)},sync:function(){return 
e.sync.apply(this,arguments)},get:function(t){return 
this.attributes[t]},escape:function(t){return 
i.escape(this.get(t))},has:function(t){return 
null!=this.get(t)},set:function(t,e,n){var s,r,a,o,h,c,u,l;if(null==t)return 
this;if("object"==typeof 
t?(r=t,n=e):(r={})[t]=e,n||(n={}),!this._validate(r,n))return!1;a=n.unset,h=n.silent,o=[],c=this._changing,this._changing=!0,c||(this._previousAttributes=i.clone(this.attributes),this.changed={}),l=this.attributes,u=this._previousAttributes,this.idAttribute
 in r&&(this.id=r[this.idAttribute]);for(s in 
r)e=r[s],i.isEqual(l[s],e)||o.push(s),i.isEqual(u[s],e)?delete 
this.changed[s]:this.changed[s]=e,a?delete 
l[s]:l[s]=e;if(!h){o.length&&(this._pending=n);for(var 
d=0,f=o.length;d<f;d++)this.trigger("change:"+o[d],this,l[o[d]],n)}if(c)return 
this;if(!h)for(;this._pending;)n=this._pending,this._pending=!1,this.trigger("change",this,n);return
 this._pending=!1,this._changing=!1,this},unset:function(t
 ,e){return this.set(t,void 0,i.extend({},e,{unset:!0}))},clear:function(t){var 
e={};for(var n in this.attributes)e[n]=void 0;return 
this.set(e,i.extend({},t,{unset:!0}))},hasChanged:function(t){return 
null==t?!i.isEmpty(this.changed):i.has(this.changed,t)},changedAttributes:function(t){if(!t)return!!this.hasChanged()&&i.clone(this.changed);var
 e,n=!1,s=this._changing?this._previousAttributes:this.attributes;for(var r in 
t)i.isEqual(s[r],e=t[r])||((n||(n={}))[r]=e);return 
n},previous:function(t){return 
null!=t&&this._previousAttributes?this._previousAttributes[t]:null},previousAttributes:function(){return
 i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{},void 
0===t.parse&&(t.parse=!0);var e=this,n=t.success;return 
t.success=function(i){return!!e.set(e.parse(i,t),t)&&(n&&n(e,i,t),void 
e.trigger("sync",e,i,t))},U(this,t),this.sync("read",this,t)},save:function(t,e,n){var
 s,r,a,o=this.attributes;if(null==t||"object"==typeof 
t?(s=t,n=e):(s={})[t]=e,n=i.extend({valida
 te:!0},n),s&&!n.wait){if(!this.set(s,n))return!1}else 
if(!this._validate(s,n))return!1;s&&n.wait&&(this.attributes=i.extend({},o,s)),void
 0===n.parse&&(n.parse=!0);var h=this,c=n.success;return 
n.success=function(t){h.attributes=o;var e=h.parse(t,n);return 
n.wait&&(e=i.extend(s||{},e)),!(i.isObject(e)&&!h.set(e,n))&&(c&&c(h,t,n),void 
h.trigger("sync",h,t,n))},U(this,n),r=this.isNew()?"create":n.patch?"patch":"update","patch"===r&&(n.attrs=s),a=this.sync(r,this,n),s&&n.wait&&(this.attributes=o),a},destroy:function(t){t=t?i.clone(t):{};var
 
e=this,n=t.success,s=function(){e.trigger("destroy",e,e.collection,t)};if(t.success=function(i){(t.wait||e.isNew())&&s(),n&&n(e,i,t),e.isNew()||e.trigger("sync",e,i,t)},this.isNew())return
 t.success(),!1;U(this,t);var r=this.sync("delete",this,t);return 
t.wait||s(),r},url:function(){var 
t=i.result(this,"urlRoot")||i.result(this.collection,"url")||j();return 
this.isNew()?t:t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){r
 eturn t},clone:function(){return new 
this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return
 
this._validate({},i.extend(t||{},{validate:!0}))},_validate:function(t,e){if(!e.validate||!this.validate)return!0;t=i.extend({},this.attributes,t);var
 
n=this.validationError=this.validate(t,e)||null;return!n||(this.trigger("invalid",this,n,i.extend(e,{validationError:n})),!1)}});var
 
f=["keys","values","pairs","invert","pick","omit"];i.each(f,function(t){d.prototype[t]=function(){var
 e=a.call(arguments);return e.unshift(this.attributes),i[t].apply(i,e)}});var 
p=e.Collection=function(t,e){e||(e={}),e.model&&(this.model=e.model),void 
0!==e.comparator&&(this.comparator=e.comparator),this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,i.extend({silent:!0},e))},g={add:!0,remove:!0,merge:!0},v={add:!0,remove:!1};i.extend(p.prototype,o,{model:d,initialize:function(){},toJSON:function(t){return
 this.map(function(e){return e.toJ
 SON(t)})},sync:function(){return 
e.sync.apply(this,arguments)},add:function(t,e){return 
this.set(t,i.extend({merge:!1},e,v))},remove:function(t,e){var 
n=!i.isArray(t);t=n?[t]:i.clone(t),e||(e={});var 
s,r,a,o;for(s=0,r=t.length;s<r;s++)o=t[s]=this.get(t[s]),o&&(delete 
this._byId[o.id],delete 
this._byId[o.cid],a=this.indexOf(o),this.models.splice(a,1),this.length--,e.silent||(e.index=a,o.trigger("remove",o,this,e)),this._removeReference(o,e));return
 
n?t[0]:t},set:function(t,e){e=i.defaults({},e,g),e.parse&&(t=this.parse(t,e));var
 n=!i.isArray(t);t=n?t?[t]:[]:i.clone(t);var 
s,r,a,o,h,c,u,l=e.at,f=this.model,p=this.comparator&&null==l&&e.sort!==!1,v=i.isString(this.comparator)?this.comparator:null,m=[],y=[],_={},b=e.add,w=e.merge,x=e.remove,E=!(p||!b||!x)&&[];for(s=0,r=t.length;s<r;s++){if(h=t[s]||{},a=h
 instanceof 
d?o=h:h[f.prototype.idAttribute||"id"],c=this.get(a))x&&(_[c.cid]=!0),w&&(h=h===o?o.attributes:h,e.parse&&(h=c.parse(h,e)),c.set(h,e),p&&!u&&c.hasChanged(v)&&(u=!0)),t[s]=c;e
 lse 
if(b){if(o=t[s]=this._prepareModel(h,e),!o)continue;m.push(o),this._addReference(o,e)}o=c||o,!E||!o.isNew()&&_[o.id]||E.push(o),_[o.id]=!0}if(x){for(s=0,r=this.length;s<r;++s)_[(o=this.models[s]).cid]||y.push(o);y.length&&this.remove(y,e)}if(m.length||E&&E.length)if(p&&(u=!0),this.length+=m.length,null!=l)for(s=0,r=m.length;s<r;s++)this.models.splice(l+s,0,m[s]);else{E&&(this.models.length=0);var
 
k=E||m;for(s=0,r=k.length;s<r;s++)this.models.push(k[s])}if(u&&this.sort({silent:!0}),!e.silent){for(s=0,r=m.length;s<r;s++)(o=m[s]).trigger("add",o,this,e);(u||E&&E.length)&&this.trigger("sort",this,e)}return
 n?t[0]:t},reset:function(t,e){e||(e={});for(var 
n=0,s=this.models.length;n<s;n++)this._removeReference(this.models[n],e);return 
e.previousModels=this.models,this._reset(),t=this.add(t,i.extend({silent:!0},e)),e.silent||this.trigger("reset",this,e),t},push:function(t,e){return
 this.add(t,i.extend({at:this.length},e))},pop:function(t){var 
e=this.at(this.length-1);return this.remove(
 e,t),e},unshift:function(t,e){return 
this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);return 
this.remove(e,t),e},slice:function(){return 
a.apply(this.models,arguments)},get:function(t){if(null!=t)return 
this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return 
this.models[t]},where:function(t,e){return i.isEmpty(t)?e?void 
0:[]:this[e?"find":"filter"](function(e){for(var i in 
t)if(t[i]!==e.get(i))return!1;return!0})},findWhere:function(t){return 
this.where(t,!0)},sort:function(t){if(!this.comparator)throw new Error("Cannot 
sort a set without a comparator");return 
t||(t={}),i.isString(this.comparator)||1===this.comparator.length?this.models=this.sortBy(this.comparator,this):this.models.sort(i.bind(this.comparator,this)),t.silent||this.trigger("sort",this,t),this},pluck:function(t){return
 i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{},void 
0===t.parse&&(t.parse=!0);var e=t.success,n=this;return 
t.success=function(i){var s=t.reset?"r
 
eset":"set";n[s](i,t),e&&e(n,i,t),n.trigger("sync",n,i,t)},U(this,t),this.sync("read",this,t)},create:function(t,e){if(e=e?i.clone(e):{},!(t=this._prepareModel(t,e)))return!1;e.wait||this.add(t,e);var
 n=this,s=e.success;return 
e.success=function(t,i){e.wait&&n.add(t,e),s&&s(t,i,e)},t.save(null,e),t},parse:function(t,e){return
 t},clone:function(){return new 
this.constructor(this.models)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(t,e){if(t
 instanceof d)return t;e=e?i.clone(e):{},e.collection=this;var n=new 
this.model(t,e);return 
n.validationError?(this.trigger("invalid",this,n.validationError,e),!1):n},_addReference:function(t,e){this._byId[t.cid]=t,null!=t.id&&(this._byId[t.id]=t),t.collection||(t.collection=this),t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){this===t.collection&&delete
 
t.collection,t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,n){("add"!==t&&"remove"!==t||i===this)&&("destroy"===t&
 &this.remove(e,n),e&&t==="change:"+e.idAttribute&&(delete 
this._byId[e.previous(e.idAttribute)],null!=e.id&&(this._byId[e.id]=e)),this.trigger.apply(this,arguments))}});var
 
m=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(m,function(t){p.prototype[t]=function(){var
 e=a.call(arguments);return e.unshift(this.models),i[t].apply(i,e)}});var 
y=["groupBy","countBy","sortBy","indexBy"];i.each(y,function(t){p.prototype[t]=function(e,n){var
 s=i.isFunction(e)?e:function(t){return t.get(e)};return 
i[t](this.models,s,n)}});var 
_=e.View=function(t){this.cid=i.uniqueId("view"),t||(t={}),i.extend(this,i.pick(t,w)),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateE
 
vents()},b=/^(\S+)\s*(.*)$/,w=["model","collection","el","id","attributes","className","tagName","events"];i.extend(_.prototype,o,{tagName:"div",$:function(t){return
 this.$el.find(t)},initialize:function(){},render:function(){return 
this},remove:function(){return 
this.$el.remove(),this.stopListening(),this},setElement:function(t,i){return 
this.$el&&this.undelegateEvents(),this.$el=t instanceof 
e.$?t:e.$(t),this.el=this.$el[0],i!==!1&&this.delegateEvents(),this},delegateEvents:function(t){if(!t&&!(t=i.result(this,"events")))return
 this;this.undelegateEvents();for(var e in t){var 
n=t[e];if(i.isFunction(n)||(n=this[t[e]]),n){var 
s=e.match(b),r=s[1],a=s[2];n=i.bind(n,this),r+=".delegateEvents"+this.cid,""===a?this.$el.on(r,n):this.$el.on(r,a,n)}}return
 this},undelegateEvents:function(){return 
this.$el.off(".delegateEvents"+this.cid),this},_ensureElement:function(){if(this.el)this.setElement(i.result(this,"el"),!1);else{var
 t=i.extend({},i.result(this,"attributes"));this.id&&(t.id=i.resu
 lt(this,"id")),this.className&&(t["class"]=i.result(this,"className"));var 
n=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(n,!1)}}}),e.sync=function(t,n,s){var
 
r=E[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var
 
a={type:r,dataType:"json"};if(s.url||(a.url=i.result(n,"url")||j()),null!=s.data||!n||"create"!==t&&"update"!==t&&"patch"!==t||(a.contentType="application/json",a.data=JSON.stringify(s.attrs||n.toJSON(s))),s.emulateJSON&&(a.contentType="application/x-www-form-urlencoded",a.data=a.data?{model:a.data}:{}),s.emulateHTTP&&("PUT"===r||"DELETE"===r||"PATCH"===r)){a.type="POST",s.emulateJSON&&(a.data._method=r);var
 
o=s.beforeSend;s.beforeSend=function(t){if(t.setRequestHeader("X-HTTP-Method-Override",r),o)return
 
o.apply(this,arguments)}}"GET"===a.type||s.emulateJSON||(a.processData=!1),"PATCH"===a.type&&x&&(a.xhr=function(){return
 new ActiveXObject("Microsoft.XMLHTTP")});var 
h=s.xhr=e.ajax(i.extend(a,s));return n.trigger("request",
 n,h,s),h};var x=!("undefined"==typeof 
window||!window.ActiveXObject||window.XMLHttpRequest&&(new 
XMLHttpRequest).dispatchEvent),E={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return
 e.$.ajax.apply(e.$,arguments)};var 
k=e.Router=function(t){t||(t={}),t.routes&&(this.routes=t.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},T=/\((.*?)\)/g,$=/(\(\?)?:\w+/g,S=/\*\w+/g,H=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend(k.prototype,o,{initialize:function(){},route:function(t,n,s){i.isRegExp(t)||(t=this._routeToRegExp(t)),i.isFunction(n)&&(s=n,n=""),s||(s=this[n]);var
 r=this;return e.history.route(t,function(i){var 
a=r._extractParameters(t,i);r.execute(s,a),r.trigger.apply(r,["route:"+n].concat(a)),r.trigger("route",n,a),e.history.trigger("route",r,n,a)}),this},execute:function(t,e){t&&t.apply(this,e)},navigate:function(t,i){return
 
e.history.navigate(t,i),this},_bindRoutes:function(){if(this.routes){this.routes=i.result(this,"routes");for(va
 r 
t,e=i.keys(this.routes);null!=(t=e.pop());)this.route(t,this.routes[t])}},_routeToRegExp:function(t){return
 t=t.replace(H,"\\$&").replace(T,"(?:$1)?").replace($,function(t,e){return 
e?t:"([^/?]+)"}).replace(S,"([^?]*?)"),new 
RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var 
n=t.exec(e).slice(1);return i.map(n,function(t,e){return 
e===n.length-1?t||null:t?decodeURIComponent(t):null})}});var 
A=e.History=function(){this.handlers=[],i.bindAll(this,"checkUrl"),"undefined"!=typeof
 
window&&(this.location=window.location,this.history=window.history)},I=/^[#\/]|\s+$/g,N=/^\/+|\/+$/g,R=/msie
 
[\w.]+/,O=/\/$/,P=/#.*$/;A.started=!1,i.extend(A.prototype,o,{interval:50,atRoot:function(){return
 
this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var
 e=(t||this).location.href.match(/#(.*)$/);return 
e?e[1]:""},getFragment:function(t,e){if(null==t)if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.se
 arch);var i=this.root.replace(O,"");t.indexOf(i)||(t=t.slice(i.length))}else 
t=this.getHash();return t.replace(I,"")},start:function(t){if(A.started)throw 
new Error("Backbone.history has already been 
started");A.started=!0,this.options=i.extend({root:"/"},this.options,t),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var
 
n=this.getFragment(),s=document.documentMode,r=R.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);if(this.root=("/"+this.root+"/").replace(N,"/"),r&&this._wantsHashChange){var
 a=e.$('<iframe src="javascript:0" 
tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow,this.navigate(n)}this._hasPushState?e.$(window).on("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in
 
window&&!r?e.$(window).on("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterv
 al(this.checkUrl,this.interval)),this.fragment=n;var 
o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot())return
 
this.fragment=this.getFragment(null,!0),this.location.replace(this.root+"#"+this.fragment),!0;this._hasPushState&&this.atRoot()&&o.hash&&(this.fragment=this.getHash().replace(I,""),this.history.replaceState({},document.title,this.root+this.fragment))}if(!this.options.silent)return
 
this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),A.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var
 e=this.getFragment();return 
e===this.fragment&&this.iframe&&(e=this.getFragment(this.getHash(this.iframe))),e!==this.fragment&&(this.iframe&&this.navigate(e),void
 this.loadUrl())},loadUrl:function(t){return 
t=this.fragment=this.getFragment(t),i.any(this.handlers,function(e){if(e.
 route.test(t))return 
e.callback(t),!0})},navigate:function(t,e){if(!A.started)return!1;e&&e!==!0||(e={trigger:!!e});var
 
i=this.root+(t=this.getFragment(t||""));if(t=t.replace(P,""),this.fragment!==t){if(this.fragment=t,""===t&&"/"!==i&&(i=i.slice(0,-1)),this._hasPushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return
 
this.location.assign(i);this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getFragment(this.getHash(this.iframe))&&(e.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,t,e.replace))}return
 e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,i){if(i){var 
n=t.href.replace(/(javascript:|#).*$/,"");t.replace(n+"#"+e)}else 
t.hash="#"+e}}),e.history=new A;var C=function(t,e){var 
n,s=this;n=t&&i.has(t,"constructor")?t.constructor:function(){return 
s.apply(this,arguments)},i.extend(n,s,e);var 
r=function(){this.constructor=n};return r.prototype=s.prototype,n.pr
 ototype=new 
r,t&&i.extend(n.prototype,t),n.__super__=s.prototype,n};d.extend=p.extend=k.extend=_.extend=A.extend=C;var
 j=function(){throw new Error('A "url" property or function must be 
specified')},U=function(t,e){var 
i=e.error;e.error=function(n){i&&i(t,n,e),t.trigger("error",t,n,e)}};return 
e}),Backbone.View=function(t){return 
t.extend({constructor:function(e){this.options=e||{},t.apply(this,arguments)}})}(Backbone.View);
\ No newline at end of file

Reply via email to