diff --git a/.gitignore b/.gitignore index fdc6b76..1433cb8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,29 +1,5 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git node_modules - -public/build \ No newline at end of file +.bower-*/ +bower_components +public/css/styles.css +public/js/scripts.js \ No newline at end of file diff --git a/Gulpfile.js b/Gulpfile.js index 20abe3d..bee3a1b 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,47 +1,66 @@ -var gulp = require("gulp"); -var uglify = require("gulp-uglify"); -var concat = require("gulp-concat"); -var streamqueue = require('streamqueue'); -var minifyCSS = require("gulp-minify-css"); - -gulp.task("js", function () { - - var stream = streamqueue({ objectMode: true }); - - stream.queue( - gulp.src([ - "public/js/vendor/*.min.js" - ]) - ); - - stream.queue( - gulp.src([ - "public/js/vendor/*.js", - "!public/js/vendor/*.min.js", - "public/js/script.js" - ]) - .pipe(uglify({preserveComments: "some"})) - ); - - return stream.done() - .pipe(concat("scripts.js")) - .pipe(gulp.dest("public/build/")); +var gulp = require('gulp'); +var uglify = require('gulp-uglify'); +var concat = require('gulp-concat'); +var minifyCSS = require('gulp-minify-css'); +var bower = require('gulp-bower'); +var mainBowerFiles = require('main-bower-files'); +var order = require('gulp-order'); + +gulp.task('js', function () { + + // Angular app + var scripts = [ + 'app/**/*.js' + ] + + return gulp + .src(scripts) + .pipe(concat('app.js')) + .pipe(gulp.dest('public/js/')) + +}); + +gulp.task('vendor', ['bower'], function () { + + // Bower dependencies + var bowerScripts = mainBowerFiles('**/*.js'); + + return gulp + .src(bowerScripts) + .pipe(order([ + '*angular.js', + '*angular-sanitize.js' + ])) + .pipe(concat('vendor.js')) + .pipe(uglify()) + .pipe(gulp.dest('public/js/')) }); -gulp.task("css", function () { +gulp.task('css', ['bower'], function () { - var stream = streamqueue({ objectMode: true }); + // Bower dependencies + var bowerStyles = mainBowerFiles('**/*.css'); - stream.queue( - gulp.src("public/css/*.css") - ); + // App styles + var styles = [ + 'public/css/style.css' + ] - return stream.done() - .pipe(concat("style.css")) + return gulp + .src(bowerStyles.concat(styles)) + .pipe(concat('styles.css')) .pipe(minifyCSS()) - .pipe(gulp.dest("public/build/")); + .pipe(gulp.dest('public/css/')) + +}); + +gulp.task('bower', function() {
 + return bower(); +}); +gulp.task('watch', function() { + gulp.watch('app/**/*.js', ['js']); }); -gulp.task('default', ['js', 'css']); \ No newline at end of file +gulp.task('default', ['bower', 'vendor', 'js', 'css']); \ No newline at end of file diff --git a/README.md b/README.md index b4dea92..d918a2f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # sendsh.it -The [sendsh.it](https://sendsh.it/) client-side javascript will read and encrypt a file in your browser using the [Triplesec](http://keybase.github.io/triplesec/) library with a random key generated by the [SJCL library](http://bitwiseshiftleft.github.io/sjcl/) PRNG. +The [sendsh.it](https://sendsh.it/) client-side javascript will read and encrypt a file in your browser using the [Triplesec](http://keybase.github.io/triplesec/) library with a random key generated by its PRNG. The encrypted file is then uploaded to the backend node.js application which stores it in mongo's [GridFS](http://docs.mongodb.org/manual/core/gridfs/) and returns a unique ID. This is combined with your generated key to produce a unique url you can share with someone else. Once they visit the url the site will download the file and decrypt it in their browser. @@ -9,12 +9,12 @@ Files are deleted after being downloaded or once they are over 24 hours old. * `git clone git@github.com:threesquared/sendsh.it.git` * `npm install` * `gulp` - * `node app.js` + * `node server.js` ## Configure -Set your mongodb and express parameters in the top of app.js. +Set your mongodb and express parameters in the top of server.js. -The app is also configured to read the env parameters from an [Openshift](https://www.openshift.com/) environment. There is also an openshift deploy hook to run gulp. +The server is also configured to read the env parameters from an [Openshift](https://www.openshift.com/) environment. There is also an openshift deploy hook to run gulp. ## Disclaimer I am not an expert in cryptography. If you have something important to keep secret please think about using a peer reviewed and audited service. This is just an experiment with in browser encryption and node.js. \ No newline at end of file diff --git a/app/app.js b/app/app.js new file mode 100644 index 0000000..7b35e00 --- /dev/null +++ b/app/app.js @@ -0,0 +1,100 @@ +var sendshit = angular.module('sendsh.it', ['ngRoute', 'ngSanitize', 'ngProgressLite']); + +sendshit.config(['$routeProvider', 'ngProgressLiteProvider', function($routeProvider, ngProgressLiteProvider) { + + if(!window.FileReader || !window.FormData || !window.Blob) { + throw new Error('Your browser does not support required features.'); + } + + $routeProvider.when('/', { + + controller: 'UploadController', + templateUrl: 'views/upload.html' + + }).when('/:downloadId/:downloadPassword', { + + controller: 'DownloadController', + templateUrl: 'views/download.html' + + }).otherwise({ + + redirectTo: '/' + + }); + + ngProgressLiteProvider.settings.speed = 1; + ngProgressLiteProvider.settings.minimum = 0.1; + ngProgressLiteProvider.settings.ease = 'linear'; + +}]); + +sendshit.factory('messages', ['$rootScope', function($rootScope){ + + var message = ''; + var messages = {}; + + messages.addMsg = function(msg, ellipsis) { + + ellipsis = typeof ellipsis !== 'undefined' ? ellipsis : false; + + if(ellipsis === true) { + msg = msg + '...'; + } + + message = msg; + + $rootScope.$broadcast('message:updated', message); + + }; + + messages.getMsg = function() { + return message; + }; + + return messages; + +}]); + +sendshit.factory('triplesecProgress', ['$log', 'ngProgressLite', function($log, ngProgressLite) { + + var triplesecProgress = {}; + + triplesecProgress.updateProgress = function(obj) { + + var percent = obj.i / obj.total; + + if(obj.what == 'pbkdf2 (pass 1)' || obj.what == 'pbkdf2 (pass 2)'){ + this.logProgress('Running PBKDF2', percent); + } + + if(obj.what == 'scrypt'){ + this.logProgress('Scrypt', percent); + } + + if(obj.what == 'salsa20'){ + this.logProgress('Salsa20', percent); + } + + if(obj.what == 'twofish'){ + this.logProgress('Twofish-CTR', percent); + } + + if(obj.what == 'aes'){ + this.logProgress('AES-256-CTR', percent); + } + + if(obj.what == 'HMAC-SHA512-SHA3'){ + this.logProgress('Generating HMAC', percent); + } + + }; + + triplesecProgress.logProgress = function(text, percent) + { + $log.log(text + ': ' + Math.round(percent * 100) + '%'); + ngProgressLite.set(parseFloat(percent.toFixed(1))); + }; + + return triplesecProgress; + +}]); \ No newline at end of file diff --git a/app/controllers/downloadController.js b/app/controllers/downloadController.js new file mode 100644 index 0000000..38d1a75 --- /dev/null +++ b/app/controllers/downloadController.js @@ -0,0 +1,30 @@ +sendshit.controller('DownloadController', ['$scope', '$routeParams', 'decryptor', 'fileReader', 'messages', function($scope, $routeParams, decryptor, fileReader, messages) { + + var password = $routeParams.downloadPassword; + + decryptor.downloadFile('download?id=' + $routeParams.downloadId).then(function(data) { + + var blob = new Blob([data], {type: 'application/octet-stream'}); + + return fileReader.readAsText(blob); + + }).then(function(file) { + + return decryptor.decryptFile(file, password); + + }).then(function(decrypted) { + + messages.addMsg('Done'); + saveAs(decrypted.blob, decrypted.name); + + }, function(error) { + + messages.addMsg(error); + + }); + + $scope.$on('message:updated', function(event, message) { + $scope.message = message; + }); + +}]); \ No newline at end of file diff --git a/app/controllers/uploadController.js b/app/controllers/uploadController.js new file mode 100644 index 0000000..6c1ce26 --- /dev/null +++ b/app/controllers/uploadController.js @@ -0,0 +1,41 @@ +sendshit.controller('UploadController', ['$scope', '$q', 'encryptor', 'fileReader', 'messages', function($scope, $q, encryptor, fileReader, messages) { + + $scope.fileUploaded = false; + + $scope.uploadFile = function(event) { + + var file = $scope.uploadedFile; + + if(file.size > 5000000) { + messages.addMsg('File must be under 5MB'); + return false; + } + + $scope.uploadFieldText = file.name; + + $q.all([fileReader.readAsDataUrl(file), encryptor.generateKey()]).then(function(data){ + + return encryptor.encryptFile(data[0].name, data[0].reader, data[1]); + + }).then(function(encrypted) { + + return encryptor.uploadFile(encrypted); + + }).then(function(link) { + + $scope.fileUploaded = true; + $scope.uploadLink = link; + + }, function(error) { + + messages.addMsg(error); + + }); + + }; + + $scope.$on('message:updated', function(event, message) { + $scope.message = message; + }); + +}]); \ No newline at end of file diff --git a/app/directives/selectOnClick.js b/app/directives/selectOnClick.js new file mode 100644 index 0000000..226487c --- /dev/null +++ b/app/directives/selectOnClick.js @@ -0,0 +1,17 @@ +sendshit.directive('selectOnClick', function () { + return { + restrict: 'A', + link: function (scope, element) { + var focusedElement; + element.on('click', function () { + if (focusedElement != this) { + this.select(); + focusedElement = this; + } + }); + element.on('blur', function () { + focusedElement = null; + }); + } + }; +}); \ No newline at end of file diff --git a/app/directives/uploadOnChange.js b/app/directives/uploadOnChange.js new file mode 100644 index 0000000..664de6c --- /dev/null +++ b/app/directives/uploadOnChange.js @@ -0,0 +1,12 @@ +sendshit.directive('uploadOnChange', function() { + return { + require:"ngModel", + restrict: 'A', + link: function($scope, el, attrs, ngModel){ + el.bind('change', function(event){ + ngModel.$setViewValue(event.target.files[0]); + $scope.$apply(); + }); + } + }; +}); \ No newline at end of file diff --git a/app/services/decryptor.js b/app/services/decryptor.js new file mode 100644 index 0000000..753b3cb --- /dev/null +++ b/app/services/decryptor.js @@ -0,0 +1,106 @@ +sendshit.service('decryptor', ['$http', '$q', 'messages', 'triplesecProgress', function ($http, $q, messages, triplesecProgress) { + + var downloadFile = function(url) { + + var deferred = $q.defer(); + + messages.addMsg('Downloading', true); + + var httpPromise = $http.get(url).then(function(response) { + + if(response.data.error){ + + deferred.reject(response.data.error); + + } else { + + messages.addMsg('Downloaded'); + deferred.resolve(response.data); + + } + + }, function(error) { + + deferred.reject(error.data); + + }); + + return deferred.promise; + + }; + + var decryptFile = function(file, password) { + + var deferred = $q.defer(); + + messages.addMsg('Decrypting', true); + + triplesec.decrypt ({ + + data: new triplesec.Buffer(file, 'hex'), + key: new triplesec.Buffer(password), + + progress_hook: function (obj) { + triplesecProgress.updateProgress(obj); + } + + }, function (err, buff) { + + if (err) { + return deferred.reject(err.message); + } + + messages.addMsg('Decrypted'); + + var decrypted = JSON.parse(buff.toString()); + var mimeString = decrypted.file.split(',')[0].split(':')[1].split(';')[0]; + var blob = b64toBlob(decrypted.file.split(',')[1], mimeString); + + deferred.resolve({ + blob: blob, + name: decrypted.name + }); + + }); + + return deferred.promise; + + }; + + // http://stackoverflow.com/a/16245768 + var b64toBlob = function (b64Data, contentType, sliceSize) { + + contentType = contentType || ''; + sliceSize = sliceSize || 512; + + var byteCharacters = atob(b64Data); + var byteArrays = []; + + for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { + + var slice = byteCharacters.slice(offset, offset + sliceSize); + + var byteNumbers = new Array(slice.length); + + for (var i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i); + } + + var byteArray = new Uint8Array(byteNumbers); + + byteArrays.push(byteArray); + + } + + var blob = new Blob(byteArrays, {type: contentType}); + + return blob; + + }; + + return { + downloadFile: downloadFile, + decryptFile: decryptFile + }; + +}]); \ No newline at end of file diff --git a/app/services/encryptor.js b/app/services/encryptor.js new file mode 100644 index 0000000..cacfbf2 --- /dev/null +++ b/app/services/encryptor.js @@ -0,0 +1,104 @@ +sendshit.service('encryptor', ['$http', '$q', 'messages', 'triplesecProgress', function ($http, $q, messages, triplesecProgress) { + + var password; + + var generateKey = function() { + + var deferred = $q.defer(); + + messages.addMsg('Generating key'); + + triplesec.prng.generate(24, function(words) { + + password = words.to_hex(); + deferred.resolve(password); + + }); + + return deferred.promise; + + }; + + var encryptFile = function(name, file, password) { + + var deferred = $q.defer(); + + messages.addMsg('Encrypting', true); + + triplesec.encrypt({ + + data: new triplesec.Buffer(JSON.stringify({ + file: file, + name: name + })), + + key: new triplesec.Buffer(password), + + progress_hook: function (obj) { + triplesecProgress.updateProgress(obj); + } + + }, function(err, buff) { + + if (err) { + return deferred.reject(err.message); + } + + messages.addMsg('Encrypted'); + deferred.resolve(buff.toString('hex')); + + }); + + return deferred.promise; + + }; + + var uploadFile = function(encrypted) { + + var deferred = $q.defer(); + + messages.addMsg('Uploading', true); + + var xhr = new XMLHttpRequest(); + var formData = new FormData(); + var blob = new Blob([encrypted], { type: 'application/octet-stream'}); + + formData.append('file', blob, 'encrypted'); + + xhr.upload.onprogress = function(e) { + + triplesecProgress.logProgress('Uploading', e.loaded/e.total); + + }; + + xhr.onreadystatechange = function(e) { + + if (xhr.readyState == 4) { + + if (xhr.status === 200) { + + messages.addMsg('Done'); + return deferred.resolve(location.origin + '/#/' + JSON.parse(xhr.response).id + '/' + password); + + } else { + + return deferred.reject("Error", xhr.statusText); + + } + } + }; + + xhr.open('POST', 'upload', true); + xhr.send(formData); + + return deferred.promise; + + }; + + return { + generateKey: generateKey, + encryptFile: encryptFile, + uploadFile: uploadFile + }; + +}]); \ No newline at end of file diff --git a/app/services/fileReader.js b/app/services/fileReader.js new file mode 100644 index 0000000..934a8b0 --- /dev/null +++ b/app/services/fileReader.js @@ -0,0 +1,53 @@ +sendshit.factory('fileReader', function($q, $window) { + + var readAsDataUrl = function(file) { + + var deferred = $q.defer(); + + var reader = new $window.FileReader(); + + reader.onload = function(reader) { + + deferred.resolve({ + name: file.name, + reader: reader.target.result + }); + + }; + + reader.onerror = function(event) { + deferred.reject(event.target.error.name); + }; + + reader.readAsDataURL(file); + + return deferred.promise; + + }; + + var readAsText = function(blob) { + + var deferred = $q.defer(); + + var reader = new $window.FileReader(); + + reader.onload = function(reader) { + deferred.resolve(reader.target.result); + }; + + reader.onerror = function(event) { + deferred.reject(event.target.error.name); + }; + + reader.readAsText(blob); + + return deferred.promise; + + }; + + return { + readAsDataUrl: readAsDataUrl, + readAsText: readAsText + }; + +}); \ No newline at end of file diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..c0961fd --- /dev/null +++ b/bower.json @@ -0,0 +1,27 @@ +{ + "name": "sendsh.it", + "version": "1.0.0", + "homepage": "https://github.com/threesquared/sendsh.it", + "authors": [ + "Ben Speakman " + ], + "description": "Send and recieve files encrypted in the browser", + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "angular": "~1.4.3", + "angular-route": "~1.4.3", + "triplesec": "~3.0.20", + "ngprogress-lite": "~1.0.7", + "bootstrap-css-only": "~3.3.4", + "file-saver.js": "~1.20150507.2", + "angular-sanitize": "~1.4.3" + }, + "main": "server.js" +} diff --git a/node_modules/.gitkeep b/node_modules/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/package.json b/package.json index 8cce5f4..08c1f59 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,9 @@ "name": "sendsh.it", "version": "1.0.0", "description": "Send and recieve files encrypted in the browser", - "main": "app.js", + "main": "server.js", "scripts": { - "start": "node app.js" + "start": "node server.js" }, "repository": { "type": "git", @@ -18,12 +18,14 @@ "express": "^4.12.4", "gridfs-stream": "^1.1.1", "gulp": "^3.8.11", + "gulp-bower": "0.0.10", "gulp-concat": "^2.5.2", "gulp-minify-css": "^1.1.1", + "gulp-order": "^1.1.1", "gulp-uglify": "^1.2.0", + "main-bower-files": "^2.9.0", "mongodb": "^2.0.33", "multiparty": "^4.1.2", - "shortid": "^2.2.2", - "streamqueue": "^0.1.3" + "shortid": "^2.2.2" } } diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css deleted file mode 100755 index 679272d..0000000 --- a/public/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.1.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/public/css/nprogress.css b/public/css/nprogress.css deleted file mode 100755 index 2f34866..0000000 --- a/public/css/nprogress.css +++ /dev/null @@ -1,81 +0,0 @@ -/* Make clicks pass-through */ -#nprogress { - pointer-events: none; - -webkit-pointer-events: none; -} - -#nprogress .bar { - background: #3cb8f1; - - position: fixed; - z-index: 100; - top: 0; - left: 0; - - width: 100%; - height: 2px; -} - -/* Fancy blur effect */ -#nprogress .peg { - display: block; - position: absolute; - right: 0px; - width: 100px; - height: 100%; - box-shadow: 0 0 10px #3cb8f1, 0 0 5px #3cb8f1; - opacity: 1.0; - - -webkit-transform: rotate(3deg) translate(0px, -4px); - -moz-transform: rotate(3deg) translate(0px, -4px); - -ms-transform: rotate(3deg) translate(0px, -4px); - -o-transform: rotate(3deg) translate(0px, -4px); - transform: rotate(3deg) translate(0px, -4px); -} - -/* Remove these to get rid of the spinner */ -#nprogress .spinner { - display: block; - position: fixed; - z-index: 100; - top: 15px; - right: 15px; -} - -#nprogress .spinner-icon { - width: 14px; - height: 14px; - - border: solid 2px transparent; - border-top-color: #3cb8f1; - border-left-color: #3cb8f1; - border-radius: 10px; - - -webkit-animation: nprogress-spinner 400ms linear infinite; - -moz-animation: nprogress-spinner 400ms linear infinite; - -ms-animation: nprogress-spinner 400ms linear infinite; - -o-animation: nprogress-spinner 400ms linear infinite; - animation: nprogress-spinner 400ms linear infinite; -} - -@-webkit-keyframes nprogress-spinner { - 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } -} -@-moz-keyframes nprogress-spinner { - 0% { -moz-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -moz-transform: rotate(360deg); transform: rotate(360deg); } -} -@-o-keyframes nprogress-spinner { - 0% { -o-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -o-transform: rotate(360deg); transform: rotate(360deg); } -} -@-ms-keyframes nprogress-spinner { - 0% { -ms-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -ms-transform: rotate(360deg); transform: rotate(360deg); } -} -@keyframes nprogress-spinner { - 0% { transform: rotate(0deg); transform: rotate(0deg); } - 100% { transform: rotate(360deg); transform: rotate(360deg); } -} - diff --git a/public/css/style.css b/public/css/style.css index 6e6d37f..ada9c08 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -101,3 +101,23 @@ a, a:visited, a:hover, a:active { 50% { opacity: 0; } 100% { opacity: 1; } } + +.btn-file { + position: relative; + overflow: hidden; +} +.btn-file input[type=file] { + position: absolute; + top: 0; + right: 0; + min-width: 100%; + min-height: 100%; + font-size: 100px; + text-align: right; + filter: alpha(opacity=0); + opacity: 0; + outline: none; + background: white; + cursor: inherit; + display: block; +} \ No newline at end of file diff --git a/public/fonts/glyphicons-halflings-regular.eot b/public/fonts/glyphicons-halflings-regular.eot deleted file mode 100755 index 4a4ca86..0000000 Binary files a/public/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/public/fonts/glyphicons-halflings-regular.svg b/public/fonts/glyphicons-halflings-regular.svg deleted file mode 100755 index e3e2dc7..0000000 --- a/public/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/public/fonts/glyphicons-halflings-regular.ttf deleted file mode 100755 index 67fa00b..0000000 Binary files a/public/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/public/fonts/glyphicons-halflings-regular.woff b/public/fonts/glyphicons-halflings-regular.woff deleted file mode 100755 index 8c54182..0000000 Binary files a/public/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/public/img/icons.svg b/public/img/icons.svg deleted file mode 100755 index bc46ef8..0000000 --- a/public/img/icons.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/index.html b/public/index.html index 841c82c..ea94682 100644 --- a/public/index.html +++ b/public/index.html @@ -29,11 +29,11 @@ - + - + Fork me on GitHub @@ -42,34 +42,15 @@ -
- -
- -
- -
- -
- - - -
- -
- -
+
-

This site will encrypt a file in your browser using the Triplesec library with a random key generated for you by the SJCL library PRNG.

+

This site will encrypt a file in your browser using the Triplesec library with a random key generated for you by its PRNG.

The encrypted data is uploaded to us and you get a unique URL that will allow someone to download and decrypt your file.

Files are removed from the server as soon as they are downloaded or once they are over 24hrs old.

Disclaimer: This is just an experiment, if you have something important to encrypt you should probably aim to know much more about encryption than me.

@@ -81,7 +62,7 @@ @@ -92,11 +73,11 @@ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-46060890-1', 'auto'); ga('send', 'pageview'); - + + \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js new file mode 100644 index 0000000..943dcc8 --- /dev/null +++ b/public/js/app.js @@ -0,0 +1,463 @@ +var sendshit = angular.module('sendsh.it', ['ngRoute', 'ngSanitize', 'ngProgressLite']); + +sendshit.config(['$routeProvider', 'ngProgressLiteProvider', function($routeProvider, ngProgressLiteProvider) { + + if(!window.FileReader || !window.FormData || !window.Blob) { + throw new Error('Your browser does not support required features.'); + } + + $routeProvider.when('/', { + + controller: 'UploadController', + templateUrl: 'views/upload.html' + + }).when('/:downloadId/:downloadPassword', { + + controller: 'DownloadController', + templateUrl: 'views/download.html' + + }).otherwise({ + + redirectTo: '/' + + }); + + ngProgressLiteProvider.settings.speed = 1; + ngProgressLiteProvider.settings.minimum = 0.1; + ngProgressLiteProvider.settings.ease = 'linear'; + +}]); + +sendshit.factory('messages', ['$rootScope', function($rootScope){ + + var message = ''; + var messages = {}; + + messages.addMsg = function(msg, ellipsis) { + + ellipsis = typeof ellipsis !== 'undefined' ? ellipsis : false; + + if(ellipsis === true) { + msg = msg + '...'; + } + + message = msg; + + $rootScope.$broadcast('message:updated', message); + + }; + + messages.getMsg = function() { + return message; + }; + + return messages; + +}]); + +sendshit.factory('triplesecProgress', ['$log', 'ngProgressLite', function($log, ngProgressLite) { + + var triplesecProgress = {}; + + triplesecProgress.updateProgress = function(obj) { + + var percent = obj.i / obj.total; + + if(obj.what == 'pbkdf2 (pass 1)' || obj.what == 'pbkdf2 (pass 2)'){ + this.logProgress('Running PBKDF2', percent); + } + + if(obj.what == 'scrypt'){ + this.logProgress('Scrypt', percent); + } + + if(obj.what == 'salsa20'){ + this.logProgress('Salsa20', percent); + } + + if(obj.what == 'twofish'){ + this.logProgress('Twofish-CTR', percent); + } + + if(obj.what == 'aes'){ + this.logProgress('AES-256-CTR', percent); + } + + if(obj.what == 'HMAC-SHA512-SHA3'){ + this.logProgress('Generating HMAC', percent); + } + + }; + + triplesecProgress.logProgress = function(text, percent) + { + $log.log(text + ': ' + Math.round(percent * 100) + '%'); + ngProgressLite.set(parseFloat(percent.toFixed(1))); + }; + + return triplesecProgress; + +}]); +sendshit.controller('DownloadController', ['$scope', '$routeParams', 'decryptor', 'fileReader', 'messages', function($scope, $routeParams, decryptor, fileReader, messages) { + + var password = $routeParams.downloadPassword; + + decryptor.downloadFile('download?id=' + $routeParams.downloadId).then(function(data) { + + var blob = new Blob([data], {type: 'application/octet-stream'}); + + return fileReader.readAsText(blob); + + }).then(function(file) { + + return decryptor.decryptFile(file, password); + + }).then(function(decrypted) { + + messages.addMsg('Done'); + saveAs(decrypted.blob, decrypted.name); + + }, function(error) { + + messages.addMsg(error); + + }); + + $scope.$on('message:updated', function(event, message) { + $scope.message = message; + }); + +}]); +sendshit.controller('UploadController', ['$scope', '$q', 'encryptor', 'fileReader', 'messages', function($scope, $q, encryptor, fileReader, messages) { + + $scope.fileUploaded = false; + + $scope.uploadFile = function(event) { + + var file = $scope.uploadedFile; + + if(file.size > 5000000) { + messages.addMsg('File must be under 5MB'); + return false; + } + + $scope.uploadFieldText = file.name; + + $q.all([fileReader.readAsDataUrl(file), encryptor.generateKey()]).then(function(data){ + + return encryptor.encryptFile(data[0].name, data[0].reader, data[1]); + + }).then(function(encrypted) { + + return encryptor.uploadFile(encrypted); + + }).then(function(link) { + + $scope.fileUploaded = true; + $scope.uploadLink = link; + + }, function(error) { + + messages.addMsg(error); + + }); + + }; + + $scope.$on('message:updated', function(event, message) { + $scope.message = message; + }); + +}]); +sendshit.directive('selectOnClick', function () { + return { + restrict: 'A', + link: function (scope, element) { + var focusedElement; + element.on('click', function () { + if (focusedElement != this) { + this.select(); + focusedElement = this; + } + }); + element.on('blur', function () { + focusedElement = null; + }); + } + }; +}); +sendshit.directive('uploadOnChange', function() { + return { + require:"ngModel", + restrict: 'A', + link: function($scope, el, attrs, ngModel){ + el.bind('change', function(event){ + ngModel.$setViewValue(event.target.files[0]); + $scope.$apply(); + }); + } + }; +}); +sendshit.service('decryptor', ['$http', '$q', 'messages', 'triplesecProgress', function ($http, $q, messages, triplesecProgress) { + + var downloadFile = function(url) { + + var deferred = $q.defer(); + + messages.addMsg('Downloading', true); + + var httpPromise = $http.get(url).then(function(response) { + + if(response.data.error){ + + deferred.reject(response.data.error); + + } else { + + messages.addMsg('Downloaded'); + deferred.resolve(response.data); + + } + + }, function(error) { + + deferred.reject(error.data); + + }); + + return deferred.promise; + + }; + + var decryptFile = function(file, password) { + + var deferred = $q.defer(); + + messages.addMsg('Decrypting', true); + + triplesec.decrypt ({ + + data: new triplesec.Buffer(file, 'hex'), + key: new triplesec.Buffer(password), + + progress_hook: function (obj) { + triplesecProgress.updateProgress(obj); + } + + }, function (err, buff) { + + if (err) { + return deferred.reject(err.message); + } + + messages.addMsg('Decrypted'); + + var decrypted = JSON.parse(buff.toString()); + var mimeString = decrypted.file.split(',')[0].split(':')[1].split(';')[0]; + var blob = b64toBlob(decrypted.file.split(',')[1], mimeString); + + deferred.resolve({ + blob: blob, + name: decrypted.name + }); + + }); + + return deferred.promise; + + }; + + // http://stackoverflow.com/a/16245768 + var b64toBlob = function (b64Data, contentType, sliceSize) { + + contentType = contentType || ''; + sliceSize = sliceSize || 512; + + var byteCharacters = atob(b64Data); + var byteArrays = []; + + for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { + + var slice = byteCharacters.slice(offset, offset + sliceSize); + + var byteNumbers = new Array(slice.length); + + for (var i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i); + } + + var byteArray = new Uint8Array(byteNumbers); + + byteArrays.push(byteArray); + + } + + var blob = new Blob(byteArrays, {type: contentType}); + + return blob; + + }; + + return { + downloadFile: downloadFile, + decryptFile: decryptFile + }; + +}]); +sendshit.service('encryptor', ['$http', '$q', 'messages', 'triplesecProgress', function ($http, $q, messages, triplesecProgress) { + + var password; + + var generateKey = function() { + + var deferred = $q.defer(); + + messages.addMsg('Generating key'); + + triplesec.prng.generate(24, function(words) { + + password = words.to_hex(); + deferred.resolve(password); + + }); + + return deferred.promise; + + }; + + var encryptFile = function(name, file, password) { + + var deferred = $q.defer(); + + messages.addMsg('Encrypting', true); + + triplesec.encrypt({ + + data: new triplesec.Buffer(JSON.stringify({ + file: file, + name: name + })), + + key: new triplesec.Buffer(password), + + progress_hook: function (obj) { + triplesecProgress.updateProgress(obj); + } + + }, function(err, buff) { + + if (err) { + return deferred.reject(err.message); + } + + messages.addMsg('Encrypted'); + deferred.resolve(buff.toString('hex')); + + }); + + return deferred.promise; + + }; + + var uploadFile = function(encrypted) { + + var deferred = $q.defer(); + + messages.addMsg('Uploading', true); + + var xhr = new XMLHttpRequest(); + var formData = new FormData(); + var blob = new Blob([encrypted], { type: 'application/octet-stream'}); + + formData.append('file', blob, 'encrypted'); + + xhr.upload.onprogress = function(e) { + + triplesecProgress.logProgress('Uploading', e.loaded/e.total); + + }; + + xhr.onreadystatechange = function(e) { + + if (xhr.readyState == 4) { + + if (xhr.status === 200) { + + messages.addMsg('Done'); + return deferred.resolve(location.origin + '/#/' + JSON.parse(xhr.response).id + '/' + password); + + } else { + + return deferred.reject("Error", xhr.statusText); + + } + } + }; + + xhr.open('POST', 'upload', true); + xhr.send(formData); + + return deferred.promise; + + }; + + return { + generateKey: generateKey, + encryptFile: encryptFile, + uploadFile: uploadFile + }; + +}]); +sendshit.factory('fileReader', function($q, $window) { + + var readAsDataUrl = function(file) { + + var deferred = $q.defer(); + + var reader = new $window.FileReader(); + + reader.onload = function(reader) { + + deferred.resolve({ + name: file.name, + reader: reader.target.result + }); + + }; + + reader.onerror = function(event) { + deferred.reject(event.target.error.name); + }; + + reader.readAsDataURL(file); + + return deferred.promise; + + }; + + var readAsText = function(blob) { + + var deferred = $q.defer(); + + var reader = new $window.FileReader(); + + reader.onload = function(reader) { + deferred.resolve(reader.target.result); + }; + + reader.onerror = function(event) { + deferred.reject(event.target.error.name); + }; + + reader.readAsText(blob); + + return deferred.promise; + + }; + + return { + readAsDataUrl: readAsDataUrl, + readAsText: readAsText + }; + +}); \ No newline at end of file diff --git a/public/js/script.js b/public/js/script.js deleted file mode 100644 index c410fcd..0000000 --- a/public/js/script.js +++ /dev/null @@ -1,326 +0,0 @@ -if(!window.FileReader || !window.FormData || !window.File || !window.Blob) { - sendshit.logMessage('Your browser does not support required features.'); -} - -var hash = location.href.substr(location.href.indexOf('#')+1); - -sjcl.random.startCollectors(); - -$(function() { - - $('#encrypt-input').bootstrapFileInput(); - - if(hash != location.href) { - - sendshit.download(hash.split('/')[0], hash.split('/')[1]); - - } else { - - $('.encrypt').removeClass('hide'); - - $('#encrypt-input').change(function(e) { - - var files = e.target.files; - - if(files.length != 1) { - sendshit.logMessage('Please select a file to encrypt!'); - return false; - } - - var file = e.target.files[0]; - - if(file.size > 5000000) { - sendshit.logMessage('File must be under 5MB'); - return false; - } - - sendshit.logMessage('Generating key', true); - - if (sjcl.random.getProgress(10)) { - sendshit.encrypt(file); - } else { - sjcl.random.addEventListener('seeded', function() { - sendshit.encrypt(file); - }); - } - - }); - - } - - NProgress.configure({ - trickle: false, - ease: 'linear', - speed: 1, - minimum: 0.1 - }); - -}); - -function SelectAll(id) { - document.getElementById(id).focus(); - document.getElementById(id).select(); -} - -var sendshit = (function () { - - var sendshit = {}, - password = '', - reader = new FileReader(); - - sendshit.encrypt = function (file) { - - reader.onload = function (e) { - - password = sjcl.random.randomWords(6,10); - - if (typeof password !== 'string') { - password = sjcl.codec.hex.fromBits(password); - } - password = password.replace(/ /g,'').replace(/(.{8})/g, "$1").replace(/ $/, ''); - - NProgress.start(); - - sendshit.logMessage('Encrypting', true); - - triplesec.encrypt ({ - - data: new triplesec.Buffer(JSON.stringify({ - file: e.target.result, - name: file.name - })), - - key: new triplesec.Buffer(password), - - progress_hook: function (obj) { - _triplesecProgress(obj); - } - - }, function(err, buff) { - - NProgress.done(); - - sendshit.logMessage('Encrypted'); - - if (! err) { - - NProgress.start(); - - sendshit.logMessage('Uploading', true); - - var encrypted = buff.toString('hex'); - var formData = new FormData(); - var blob = new Blob([encrypted], { type: 'application/octet-stream'}); - - formData.append('file', blob, 'encrypted'); - formData.append('_token', $('[name="csrf_token"]').attr('content')); - - $.ajax({ - - type: 'post', - url: 'upload', - data: formData, - xhr: function() { - - var myXhr = $.ajaxSettings.xhr(); - - if(myXhr.upload){ - - myXhr.upload.addEventListener('progress', function(e) { - - var done = e.position || e.loaded, total = e.totalSize || e.total; - sendshit.logMessage('Upload progress: ' + (Math.floor(done/total*1000)/10) + '%'); - NProgress.set(Math.floor(done/total*10)/10); - - }, false); - - } - - return myXhr; - }, - success: function (data) { - - NProgress.done(); - - sendshit.logMessage('Done'); - - $('#link').val(location.href+'#'+data.id+'/'+password); - - $('.link-group').removeClass('hide'); - $('.file-group').addClass('hide'); - - }, - error: function (jqxhr) { - - NProgress.done(); - - var error = JSON.parse(jqxhr.responseText); - - sendshit.logMessage(error.file); - - }, - - cache: false, - processData: false, - contentType: false - }); - } - }); - }; - - sendshit.logMessage('Reading file', true); - - reader.readAsDataURL(file); - - }; - - sendshit.download = function (id, key) { - - password = key; - - sendshit.logMessage('Downloading', true); - - $.get('download?id=' + id, function(data) { - - if(data.error){ - - sendshit.logMessage(data.error); - - } else { - - sendshit.logMessage('Downloaded'); - decrypt(data); - - } - }); - - }; - - var decrypt = function (data) { - - reader.onload = function(e){ - - NProgress.start(); - - sendshit.logMessage('Decrypting', true); - - triplesec.decrypt ({ - - data: new triplesec.Buffer(e.target.result, 'hex'), - key: new triplesec.Buffer(password), - - progress_hook: function (obj) { - _triplesecProgress(obj); - } - - }, function (err, buff) { - - NProgress.done(); - - sendshit.logMessage('Decrypted'); - - if (err) { - - sendshit.logMessage(err.message); - return false; - - } - - var decrypted = JSON.parse(buff.toString()); - var mimeString = decrypted.file.split(',')[0].split(':')[1].split(';')[0]; - var blob = _b64toBlob(decrypted.file.split(',')[1], mimeString); - - saveAs(blob, decrypted.name); - - sendshit.logMessage('Done'); - - }); - - }; - - var blob = new Blob([data], {type: 'application/octet-stream'}); - reader.readAsText(blob); - - - }; - - sendshit.logMessage = function (message, ellipsis) { - - ellipsis = typeof ellipsis !== 'undefined' ? ellipsis : false; - - if(ellipsis === true) { - message = message + '...'; - } - - $('#status').html(message); - - if (!window.console){ - console.log(message); - } - - }; - - var _triplesecProgress = function (obj) { - - var percent = obj.i / obj.total; - - if(obj.what == 'pbkdf2 (pass 1)' || obj.what == 'pbkdf2 (pass 2)'){ - console.log('Running PBKDF2: '+Math.round(percent * 100)+'%'); - NProgress.set(parseFloat(percent.toFixed(1))); - } - - if(obj.what == 'scrypt'){ - console.log('Scrypt: '+Math.round(percent * 100)+'%'); - NProgress.set(parseFloat(percent.toFixed(1))); - } - - if(obj.what == 'salsa20'){ - console.log('Salsa20: '+Math.round(percent * 100)+'%'); - NProgress.set(parseFloat(percent.toFixed(1))); - } - - if(obj.what == 'twofish'){ - console.log('Twofish-CTR: '+Math.round(percent * 100)+'%'); - NProgress.set(parseFloat(percent.toFixed(1))); - } - - if(obj.what == 'aes'){ - console.log('AES-256-CTR: '+Math.round(percent * 100)+'%'); - NProgress.set(parseFloat(percent.toFixed(1))); - } - - if(obj.what == 'HMAC-SHA512-SHA3'){ - console.log('Generating HMAC: '+Math.round(percent * 100)+'%'); - NProgress.set(parseFloat(percent.toFixed(1))); - } - - }; - - // http://stackoverflow.com/a/16245768 - var _b64toBlob = function (b64Data, contentType, sliceSize) { - contentType = contentType || ''; - sliceSize = sliceSize || 512; - - var byteCharacters = atob(b64Data); - var byteArrays = []; - - for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { - var slice = byteCharacters.slice(offset, offset + sliceSize); - - var byteNumbers = new Array(slice.length); - for (var i = 0; i < slice.length; i++) { - byteNumbers[i] = slice.charCodeAt(i); - } - - var byteArray = new Uint8Array(byteNumbers); - - byteArrays.push(byteArray); - } - - var blob = new Blob(byteArrays, {type: contentType}); - return blob; - }; - - return sendshit; - -}()); \ No newline at end of file diff --git a/public/js/vendor.js b/public/js/vendor.js new file mode 100644 index 0000000..b75a723 --- /dev/null +++ b/public/js/vendor.js @@ -0,0 +1,12 @@ +!function(t,e,n){"use strict";function r(t,e){return e=e||Error,function(){var n,r,i=2,o=arguments,s=o[0],u="["+(t?t+":":"")+s+"] ",a=o[1];for(u+=a.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1),n=e+i;return n0&&e-1 in t}function o(t,e,n){var r,s;if(t)if(E(t))for(r in t)"prototype"==r||"length"==r||"name"==r||t.hasOwnProperty&&!t.hasOwnProperty(r)||e.call(n,t[r],r,t);else if(Rr(t)||i(t)){var u="object"!=typeof t;for(r=0,s=t.length;s>r;r++)(u||r in t)&&e.call(n,t[r],r,t)}else if(t.forEach&&t.forEach!==o)t.forEach(e,n,t);else if(b(t))for(r in t)e.call(n,t[r],r,t);else if("function"==typeof t.hasOwnProperty)for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t);else for(r in t)wr.call(t,r)&&e.call(n,t[r],r,t);return t}function s(t,e,n){for(var r=Object.keys(t).sort(),i=0;ii;++i){var s=e[i];if(w(s)||E(s))for(var u=Object.keys(s),a=0,f=u.length;f>a;a++){var h=u[a],p=s[h];n&&w(p)?S(p)?t[h]=new Date(p.valueOf()):(w(t[h])||(t[h]=Rr(p)?[]:{}),l(t[h],[p],!0)):t[h]=p}}return c(t,r),t}function f(t){return l(t,Cr.call(arguments,1),!1)}function h(t){return l(t,Cr.call(arguments,1),!0)}function p(t){return parseInt(t,10)}function d(t,e){return f(Object.create(t),e)}function g(){}function y(t){return t}function m(t){return function(){return t}}function v(t){return E(t.toString)&&t.toString!==Object.prototype.toString}function $(t){return"undefined"==typeof t}function _(t){return"undefined"!=typeof t}function w(t){return null!==t&&"object"==typeof t}function b(t){return null!==t&&"object"==typeof t&&!Mr(t)}function k(t){return"string"==typeof t}function x(t){return"number"==typeof t}function S(t){return"[object Date]"===Dr.call(t)}function E(t){return"function"==typeof t}function A(t){return"[object RegExp]"===Dr.call(t)}function B(t){return t&&t.window===t}function C(t){return t&&t.$evalAsync&&t.$watch}function T(t){return"[object File]"===Dr.call(t)}function O(t){return"[object FormData]"===Dr.call(t)}function D(t){return"[object Blob]"===Dr.call(t)}function M(t){return"boolean"==typeof t}function P(t){return t&&E(t.then)}function I(t){return Ur.test(Dr.call(t))}function N(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function z(t){var e,n={},r=t.split(",");for(e=0;e=0&&t.splice(n,1),n}function j(t,e,n,r){if(B(t)||C(t))throw Pr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(I(e))throw Pr("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e){if(t===e)throw Pr("cpi","Can't copy! Source and destination are identical.");n=n||[],r=r||[],w(t)&&(n.push(t),r.push(e));var i;if(Rr(t)){e.length=0;for(var s=0;sn;n++)e[n]=t[n]}else if(w(t)){e=e||{};for(var i in t)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(e[i]=t[i])}return e||t}function F(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var r,i,o,s=typeof t,u=typeof e;if(s==u&&"object"==s){if(!Rr(t)){if(S(t))return S(e)?F(t.getTime(),e.getTime()):!1;if(A(t))return A(e)?t.toString()==e.toString():!1;if(C(t)||C(e)||B(t)||B(e)||Rr(e)||S(e)||A(e))return!1;o=yt();for(i in t)if("$"!==i.charAt(0)&&!E(t[i])){if(!F(t[i],e[i]))return!1;o[i]=!0}for(i in e)if(!(i in o||"$"===i.charAt(0)||e[i]===n||E(e[i])))return!1;return!0}if(!Rr(e))return!1;if((r=t.length)==e.length){for(i=0;r>i;i++)if(!F(t[i],e[i]))return!1;return!0}}return!1}function L(t,e,n){return t.concat(Cr.call(e,n))}function H(t,e){return Cr.call(t,e||0)}function q(t,e){var n=arguments.length>2?H(arguments,2):[];return!E(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,L(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function W(t,r){var i=r;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=n:B(r)?i="$WINDOW":r&&e===r?i="$DOCUMENT":C(r)&&(i="$SCOPE"),i}function K(t,e){return"undefined"==typeof t?n:(x(e)||(e=e?2:null),JSON.stringify(t,W,e))}function G(t){return k(t)?JSON.parse(t):t}function X(t,e){var n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function Y(t,e){return t=new Date(t.getTime()),t.setMinutes(t.getMinutes()+e),t}function J(t,e,n){n=n?-1:1;var r=X(e,t.getTimezoneOffset());return Y(t,n*(r-t.getTimezoneOffset()))}function Z(t){t=Er(t).clone();try{t.empty()}catch(e){}var n=Er("
").append(t).html();try{return t[0].nodeType===Xr?_r(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+_r(e)})}catch(e){return _r(n)}}function Q(t){try{return decodeURIComponent(t)}catch(e){}}function tt(t){var e,n,r={};return o((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=Q(e[0]),_(n))){var i=_(e[1])?Q(e[1]):!0;wr.call(r,n)?Rr(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function et(t){var e=[];return o(t,function(t,n){Rr(t)?o(t,function(t){e.push(rt(n,!0)+(t===!0?"":"="+rt(t,!0)))}):e.push(rt(n,!0)+(t===!0?"":"="+rt(t,!0)))}),e.length?e.join("&"):""}function nt(t){return rt(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function rt(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function it(t,e){var n,r,i=Hr.length;for(r=0;i>r;++r)if(n=Hr[r]+e,k(n=t.getAttribute(n)))return n;return null}function ot(t,e){var n,r,i={};o(Hr,function(e){var i=e+"app";!n&&t.hasAttribute&&t.hasAttribute(i)&&(n=t,r=t.getAttribute(i))}),o(Hr,function(e){var i,o=e+"app";!n&&(i=t.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==it(n,"strict-di"),e(n,r?[r]:[],i))}function st(n,r,i){w(i)||(i={});var s={strictDi:!1};i=f(s,i);var u=function(){if(n=Er(n),n.injector()){var t=n[0]===e?"document":Z(n);throw Pr("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(//,">"))}r=r||[],r.unshift(["$provide",function(t){t.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),r.unshift("ng");var o=Zt(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,r){t.$apply(function(){e.data("$injector",r),n(e)(t)})}]),o},a=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return t&&a.test(t.name)&&(i.debugInfoEnabled=!0,t.name=t.name.replace(a,"")),t&&!c.test(t.name)?u():(t.name=t.name.replace(c,""),Ir.resumeBootstrap=function(t){return o(t,function(t){r.push(t)}),u()},void(E(Ir.resumeDeferredBootstrap)&&Ir.resumeDeferredBootstrap()))}function ut(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function at(t){var e=Ir.element(t).injector();if(!e)throw Pr("test","no injector found for element argument to getTestability");return e.get("$$testability")}function ct(t,e){return e=e||"_",t.replace(qr,function(t,n){return(n?e:"")+t.toLowerCase()})}function lt(){var e;if(!Wr){var r=Lr();Ar=t.jQuery,_(r)&&(Ar=null===r?n:t[r]),Ar&&Ar.fn.on?(Er=Ar,f(Ar.fn,{scope:pi.scope,isolateScope:pi.isolateScope,controller:pi.controller,injector:pi.injector,inheritedData:pi.inheritedData}),e=Ar.cleanData,Ar.cleanData=function(t){var n;if(zr)zr=!1;else for(var r,i=0;null!=(r=t[i]);i++)n=Ar._data(r,"events"),n&&n.$destroy&&Ar(r).triggerHandler("$destroy");e(t)}):Er=Bt,Ir.element=Er,Wr=!0}}function ft(t,e,n){if(!t)throw Pr("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ht(t,e,n){return n&&Rr(t)&&(t=t[t.length-1]),ft(E(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function pt(t,e){if("hasOwnProperty"===t)throw Pr("badname","hasOwnProperty is not a valid {0} name",e)}function dt(t,e,n){if(!e)return t;for(var r,i=e.split("."),o=t,s=i.length,u=0;s>u;u++)r=i[u],t&&(t=(o=t)[r]);return!n&&E(t)?q(o,t):t}function gt(t){var e=t[0],n=t[t.length-1],r=[e];do{if(e=e.nextSibling,!e)break;r.push(e)}while(e!==n);return Er(r)}function yt(){return Object.create(null)}function mt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=r("$injector"),i=r("ng"),o=e(t,"angular",Object);return o.$$minErr=o.$$minErr||r,e(o,"module",function(){var t={};return function(r,o,s){var u=function(t,e){if("hasOwnProperty"===t)throw i("badname","hasOwnProperty is not a valid {0} name",e)};return u(r,"module"),o&&t.hasOwnProperty(r)&&(t[r]=null),e(t,r,function(){function t(t,e,n,r){return r||(r=i),function(){return r[n||"push"]([t,e,arguments]),l}}function e(t,e){return function(n,o){return o&&E(o)&&(o.$$moduleName=r),i.push([t,e,arguments]),l}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var i=[],u=[],a=[],c=t("$injector","invoke","push",u),l={_invokeQueue:i,_configBlocks:u,_runBlocks:a,requires:o,name:r,provider:e("$provide","provider"),factory:e("$provide","factory"),service:e("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),decorator:e("$provide","decorator"),animation:e("$animateProvider","register"),filter:e("$filterProvider","register"),controller:e("$controllerProvider","register"),directive:e("$compileProvider","directive"),config:c,run:function(t){return a.push(t),this}};return s&&c(s),l})}})}function vt(t){var e=[];return JSON.stringify(t,function(t,n){if(n=W(t,n),w(n)){if(e.indexOf(n)>=0)return"<>";e.push(n)}return n})}function $t(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?vt(t):t}function _t(e){f(e,{bootstrap:st,copy:j,extend:f,merge:h,equals:F,element:Er,forEach:o,injector:Zt,noop:g,bind:q,toJson:K,fromJson:G,identity:y,isUndefined:$,isDefined:_,isString:k,isFunction:E,isObject:w,isNumber:x,isElement:N,isArray:Rr,version:Qr,isDate:S,lowercase:_r,uppercase:br,callbacks:{counter:0},getTestability:at,$$minErr:r,$$csp:Fr,reloadWithDebugInfo:ut}),Br=mt(t);try{Br("ngLocale")}catch(n){Br("ngLocale",[]).provider("$locale",Oe)}Br("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:mn}),t.provider("$compile",ae).directive({a:co,input:Ao,textarea:Ao,form:go,script:$s,select:bs,style:xs,option:ks,ngBind:To,ngBindHtml:Do,ngBindTemplate:Oo,ngClass:Po,ngClassEven:No,ngClassOdd:Io,ngCloak:zo,ngController:Ro,ngForm:yo,ngHide:ps,ngIf:Vo,ngInclude:Fo,ngInit:Ho,ngNonBindable:is,ngPluralize:as,ngRepeat:cs,ngShow:hs,ngStyle:ds,ngSwitch:gs,ngSwitchWhen:ys,ngSwitchDefault:ms,ngOptions:us,ngTransclude:vs,ngModel:es,ngList:qo,ngChange:Mo,pattern:Es,ngPattern:Es,required:Ss,ngRequired:Ss,minlength:Bs,ngMinlength:Bs,maxlength:As,ngMaxlength:As,ngValue:Co,ngModelOptions:rs}).directive({ngInclude:Lo}).directive(lo).directive(Uo),t.provider({$anchorScroll:Qt,$animate:Bi,$$animateQueue:Ai,$$AnimateRunner:Ei,$browser:oe,$cacheFactory:se,$controller:pe,$document:de,$exceptionHandler:ge,$filter:On,$interpolate:Ce,$interval:Te,$http:Se,$httpParamSerializer:me,$httpParamSerializerJQLike:ve,$httpBackend:Ae,$location:qe,$log:We,$parse:fn,$rootScope:yn,$q:hn,$$q:pn,$sce:wn,$sceDelegate:_n,$sniffer:bn,$templateCache:ue,$templateRequest:kn,$$testability:xn,$timeout:Sn,$window:Bn,$$rAF:gn,$$jqLite:Kt,$$HashMap:mi,$$cookieReader:Tn})}])}function wt(){return++ei}function bt(t){return t.replace(ii,function(t,e,n,r){return r?n.toUpperCase():n}).replace(oi,"Moz$1")}function kt(t){return!ci.test(t)}function xt(t){var e=t.nodeType;return e===Kr||!e||e===Jr}function St(t){for(var e in ti[t.ng339])return!0;return!1}function Et(t,e){var n,r,i,s,u=e.createDocumentFragment(),a=[];if(kt(t))a.push(e.createTextNode(t));else{for(n=n||u.appendChild(e.createElement("div")),r=(li.exec(t)||["",""])[1].toLowerCase(),i=hi[r]||hi._default,n.innerHTML=i[1]+t.replace(fi,"<$1>")+i[2],s=i[0];s--;)n=n.lastChild;a=L(a,n.childNodes),n=u.firstChild,n.textContent=""}return u.textContent="",u.innerHTML="",o(a,function(t){u.appendChild(t)}),u}function At(t,n){n=n||e;var r;return(r=ai.exec(t))?[n.createElement(r[1])]:(r=Et(t,n))?r.childNodes:[]}function Bt(t){if(t instanceof Bt)return t;var e;if(k(t)&&(t=jr(t),e=!0),!(this instanceof Bt)){if(e&&"<"!=t.charAt(0))throw ui("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Bt(t)}e?Rt(this,At(t)):Rt(this,t)}function Ct(t){return t.cloneNode(!0)}function Tt(t,e){if(e||Dt(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Dt(n[r])}function Ot(t,e,n,r){if(_(r))throw ui("offargs","jqLite#off() does not support the `selector` argument");var i=Mt(t),s=i&&i.events,u=i&&i.handle;if(u)if(e)o(e.split(" "),function(e){if(_(n)){var r=s[e];if(U(r||[],n),r&&r.length>0)return}ri(t,e,u),delete s[e]});else for(e in s)"$destroy"!==e&&ri(t,e,u),delete s[e]}function Dt(t,e){var r=t.ng339,i=r&&ti[r];if(i){if(e)return void delete i.data[e];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),Ot(t)),delete ti[r],t.ng339=n}}function Mt(t,e){var r=t.ng339,i=r&&ti[r];return e&&!i&&(t.ng339=r=wt(),i=ti[r]={events:{},data:{},handle:n}),i}function Pt(t,e,n){if(xt(t)){var r=_(n),i=!r&&e&&!w(e),o=!e,s=Mt(t,!i),u=s&&s.data;if(r)u[e]=n;else{if(o)return u;if(i)return u&&u[e];f(u,e)}}}function It(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function Nt(t,e){e&&t.setAttribute&&o(e.split(" "),function(e){t.setAttribute("class",jr((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+jr(e)+" "," ")))})}function zt(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(e.split(" "),function(t){t=jr(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",jr(n))}}function Rt(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var r=0;n>r;r++)t[t.length++]=e[r]}else t[t.length++]=e}}function Ut(t,e){return jt(t,"$"+(e||"ngController")+"Controller")}function jt(t,e,r){t.nodeType==Jr&&(t=t.documentElement);for(var i=Rr(e)?e:[e];t;){for(var o=0,s=i.length;s>o;o++)if((r=Er.data(t,i[o]))!==n)return r;t=t.parentNode||t.nodeType===Zr&&t.host}}function Vt(t){for(Tt(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Ft(t,e){e||Tt(t);var n=t.parentNode;n&&n.removeChild(t)}function Lt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):Er(n).on("load",e)}function Ht(t,e){var n=di[e.toLowerCase()];return n&&gi[R(t)]&&n}function qt(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&yi[e]}function Wt(t,e){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=e[r||n.type],o=i?i.length:0;if(o){if($(n.immediatePropagationStopped)){var s=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),s&&s.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=V(i));for(var u=0;o>u;u++)n.isImmediatePropagationStopped()||i[u].call(t,n)}};return n.elem=t,n}function Kt(){this.$get=function(){return f(Bt,{hasClass:function(t,e){return t.attr&&(t=t[0]),It(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),zt(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),Nt(t,e)}})}}function Gt(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var r=typeof t;return n="function"==r||"object"==r&&null!==t?t.$$hashKey=r+":"+(e||a)():r+":"+t}function Xt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}o(t,this.put,this)}function Yt(t){var e=t.toString().replace(wi,""),n=e.match(vi);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Jt(t,e,n){var r,i,s,u;if("function"==typeof t){if(!(r=t.$inject)){if(r=[],t.length){if(e)throw k(n)&&n||(n=t.name||Yt(t)),bi("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=t.toString().replace(wi,""),s=i.match(vi),o(s[1].split($i),function(t){t.replace(_i,function(t,e,n){r.push(n)})})}t.$inject=r}}else Rr(t)?(u=t.length-1,ht(t[u],"fn"),r=t.slice(0,u)):ht(t,"fn",!0);return r}function Zt(t,e){function r(t){return function(e,n){return w(e)?void o(e,u(t)):t(e,n)}}function i(t,e){if(pt(t,"service"),(E(e)||Rr(e))&&(e=x.instantiate(e)),!e.$get)throw bi("pget","Provider '{0}' must define $get factory method.",t);return b[t+y]=e}function s(t,e){return function(){var n=A.invoke(e,this);if($(n))throw bi("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function a(t,e,n){return i(t,{$get:n!==!1?s(t,e):e})}function c(t,e){return a(t,["$injector",function(t){return t.instantiate(e)}])}function l(t,e){return a(t,m(e),!1)}function f(t,e){pt(t,"constant"),b[t]=e,S[t]=e}function h(t,e){var n=x.get(t+y),r=n.$get;n.$get=function(){var t=A.invoke(r,n);return A.invoke(e,null,{$delegate:t})}}function p(t){var e,n=[];return o(t,function(t){function r(t){var e,n;for(e=0,n=t.length;n>e;e++){var r=t[e],i=x.get(r[0]);i[r[1]].apply(i,r[2])}}if(!_.get(t)){_.put(t,!0);try{k(t)?(e=Br(t),n=n.concat(p(e.requires)).concat(e._runBlocks),r(e._invokeQueue),r(e._configBlocks)):E(t)?n.push(x.invoke(t)):Rr(t)?n.push(x.invoke(t)):ht(t,"module")}catch(i){throw Rr(t)&&(t=t[t.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),bi("modulerr","Failed to instantiate module {0} due to:\n{1}",t,i.stack||i.message||i)}}}),n}function d(t,n){function r(e,r){if(t.hasOwnProperty(e)){if(t[e]===g)throw bi("cdep","Circular dependency found: {0}",e+" <- "+v.join(" <- "));return t[e]}try{return v.unshift(e),t[e]=g,t[e]=n(e,r)}catch(i){throw t[e]===g&&delete t[e],i}finally{v.shift()}}function i(t,n,i,o){"string"==typeof i&&(o=i,i=null);var s,u,a,c=[],l=Zt.$$annotate(t,e,o);for(u=0,s=l.length;s>u;u++){if(a=l[u],"string"!=typeof a)throw bi("itkn","Incorrect injection token! Expected service name as string, got {0}",a);c.push(i&&i.hasOwnProperty(a)?i[a]:r(a,o))}return Rr(t)&&(t=t[s]),t.apply(n,c)}function o(t,e,n){var r=Object.create((Rr(t)?t[t.length-1]:t).prototype||null),o=i(t,r,e,n);return w(o)||E(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:Zt.$$annotate,has:function(e){return b.hasOwnProperty(e+y)||t.hasOwnProperty(e)}}}e=e===!0;var g={},y="Provider",v=[],_=new Xt([],!0),b={$provide:{provider:r(i),factory:r(a),service:r(c),value:r(l),constant:r(f),decorator:h}},x=b.$injector=d(b,function(t,e){throw Ir.isString(e)&&v.push(e),bi("unpr","Unknown provider: {0}",v.join(" <- "))}),S={},A=S.$injector=d(S,function(t,e){var r=x.get(t+y,e);return A.invoke(r.$get,r,n,t)});return o(p(t),function(t){t&&A.invoke(t)}),A}function Qt(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,r){function i(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===R(t)?(e=t,!0):void 0}),e}function o(){var t=u.yOffset;if(E(t))t=t();else if(N(t)){var n=t[0],r=e.getComputedStyle(n);t="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else x(t)||(t=0);return t}function s(t){if(t){t.scrollIntoView();var n=o();if(n){var r=t.getBoundingClientRect().top;e.scrollBy(0,r-n)}}else e.scrollTo(0,0)}function u(t){t=k(t)?t:n.hash();var e;t?(e=a.getElementById(t))?s(e):(e=i(a.getElementsByName(t)))?s(e):"top"===t&&s(null):s(null)}var a=e.document;return t&&r.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&Lt(function(){r.$evalAsync(u)})}),u}]}function te(t,e){return t||e?t?e?(Rr(t)&&(t=t.join(" ")),Rr(e)&&(e=e.join(" ")),t+" "+e):t:e:""}function ee(t){for(var e=0;ec&&this.remove(p.key),e}},get:function(t){if(c").parent()[0])});var s=M(t,e,t,n,r,i);O.$$addScopeClass(t);var u=null;return function(e,n,r){ft(e,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,a=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),u||(u=D(a));var c;if(c="html"!==u?Er(J(u,Er("
").append(t).html())):n?pi.clone.call(t):t,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return O.$$addScopeInfo(c,e),n&&n(c,e),s&&s(e,c,c,i),c}}function D(t){var e=t&&t[0];return e&&"foreignobject"!==R(e)&&e.toString().match(/SVG/)?"svg":"html"}function M(t,e,r,i,o,s){function u(t,r,i,o){var s,u,a,c,l,f,h,p,y;if(d){var m=r.length;for(y=new Array(m),l=0;ll;)if(a=y[g[l++]],s=g[l++],u=g[l++],s){if(s.scope){c=t.$new(),O.$$addScopeInfo(Er(a),c);var v=s.$$destroyBindings;v&&(s.$$destroyBindings=null,c.$on("$destroyed",v))}else c=t;p=s.transcludeOnThisElement?P(t,s.transclude,o):!s.templateOnThisElement&&o?o:!o&&e?P(t,e):null,s(u,c,a,i,p,s)}else u&&u(t,a.childNodes,n,o)}for(var a,c,l,f,h,p,d,g=[],y=0;yv;v++){var _=!1,b=!1;c=m[v],l=c.name,g=jr(c.value),d=ce(l),(y=lt.test(d))&&(l=l.replace(Ti,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var x=d.replace(/(Start|End)$/,"");q(x)&&d===x+"Start"&&(_=l,b=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6)),f=ce(l.toLowerCase()),a[f]=l,(y||!n.hasOwnProperty(f))&&(n[f]=g,Ht(t,f)&&(n[f]=!0)),tt(t,e,g,f,y),L(e,f,"A",r,i,_,b)}if(s=t.className,w(s)&&(s=s.animVal),k(s)&&""!==s)for(;o=p.exec(s);)f=ce(o[2]),L(e,f,"C",r,i)&&(n[f]=jr(o[3])),s=s.substr(o.index+o[0].length);break;case Xr:if(11===Sr)for(;t.parentNode&&t.nextSibling&&t.nextSibling.nodeType===Xr;)t.nodeValue=t.nodeValue+t.nextSibling.nodeValue,t.parentNode.removeChild(t.nextSibling);Y(e,t.nodeValue);break;case Yr:try{o=h.exec(t.nodeValue),o&&(f=ce(o[1]),L(e,f,"M",r,i)&&(n[f]=jr(o[2])))}catch(S){}}return e.sort(G),e}function N(t,e,n){var r=[],i=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Ci("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==Kr&&(t.hasAttribute(e)&&i++,t.hasAttribute(n)&&i--),r.push(t),t=t.nextSibling}while(i>0)}else r.push(t);return Er(r)}function z(t,e,n){return function(r,i,o,s,u){return i=N(i[0],e,n),t(r,i,o,s,u)}}function j(t,r,o,s,u,c,l,f,h){function p(t,e,n,r){t&&(n&&(t=z(t,n,r)),t.require=m.require,t.directiveName=v,(T===m||m.$$isolateScope)&&(t=nt(t,{isolateScope:!0})),l.push(t)),e&&(n&&(e=z(e,n,r)),e.require=m.require,e.directiveName=v,(T===m||m.$$isolateScope)&&(e=nt(e,{isolateScope:!0})),f.push(e))}function d(t,e,n,r){var i;if(k(e)){var o=e.match($),s=e.substring(o[0].length),u=o[1]||o[3],a="?"===o[2];if("^^"===u?n=n.parent():(i=r&&r[s],i=i&&i.instance),!i){var c="$"+s+"Controller";i=u?n.inheritedData(c):n.data(c)}if(!i&&!a)throw Ci("ctreq","Controller '{0}', required by directive '{1}', can't be found!",s,t)}else if(Rr(e)){i=[];for(var l=0,f=e.length;f>l;l++)i[l]=d(t,e[l],n,r)}return i||null}function g(t,e,n,r,i,o){var s=yt();for(var u in r){var c=r[u],l={$scope:c===T||c.$$isolateScope?i:o,$element:t,$attrs:e,$transclude:n},f=c.controller;"@"==f&&(f=e[c.name]);var h=a(f,l,!0,c.controllerAs);s[c.name]=h,U||t.data("$"+c.name+"Controller",h.instance)}return s}function y(t,e,i,s,u,a){function c(t,e,r){var i;return C(t)||(r=e,e=t,t=n),U&&(i=$),r||(r=U?w.parent():w),u(t,e,i,r,M)}var h,p,y,m,v,$,_,w,b;if(r===i?(b=o,w=o.$$element):(w=Er(i),b=new ot(w,o)),T&&(v=e.$new(!0)),u&&(_=c,_.$$boundTransclude=u),B&&($=g(w,b,_,B,v,e)),T&&(O.$$addScopeInfo(w,v,!0,!(D&&(D===T||D===T.$$originalDirective))),O.$$addScopeClass(w,!0),v.$$isolateBindings=T.$$isolateBindings,it(e,b,v,v.$$isolateBindings,T,v)),$){var k,x,S=T||A;S&&$[S.name]&&(k=S.$$bindings.bindToController,m=$[S.name],m&&m.identifier&&k&&(x=m,a.$$destroyBindings=it(e,b,m.instance,k,S)));for(h in $){m=$[h];var E=m();E!==m.instance&&(m.instance=E,w.data("$"+h+"Controller",E),m===x&&(a.$$destroyBindings(),a.$$destroyBindings=it(e,b,E,k,S)))}}for(h=0,p=l.length;p>h;h++)y=l[h],rt(y,y.isolateScope?v:e,w,b,y.require&&d(y.directiveName,y.require,w,$),_);var M=e;for(T&&(T.template||null===T.templateUrl)&&(M=v),t&&t(M,i.childNodes,n,u),h=f.length-1;h>=0;h--)y=f[h],rt(y,y.isolateScope?v:e,w,b,y.require&&d(y.directiveName,y.require,w,$),_)}h=h||{};for(var m,v,_,b,x,S=-Number.MAX_VALUE,A=h.newScopeDirective,B=h.controllerDirectives,T=h.newIsolateScopeDirective,D=h.templateDirective,M=h.nonTlbTranscludeDirective,P=!1,R=!1,U=h.hasElementTranscludeDirective,j=o.$$element=Er(r),F=c,L=s,q=0,G=t.length;G>q;q++){m=t[q];var Y=m.$$start,Q=m.$$end;if(Y&&(j=N(r,Y,Q)),_=n,S>m.priority)break;if((x=m.scope)&&(m.templateUrl||(w(x)?(X("new/isolated scope",T||A,m,j),T=m):X("new/isolated scope",T,m,j)),A=A||m),v=m.name,!m.templateUrl&&m.controller&&(x=m.controller,B=B||yt(),X("'"+v+"' controller",B[v],m,j),B[v]=m),(x=m.transclude)&&(P=!0,m.$$tlb||(X("transclusion",M,m,j),M=m),"element"==x?(U=!0, +S=m.priority,_=j,j=o.$$element=Er(e.createComment(" "+v+": "+o[v]+" ")),r=j[0],et(u,H(_),r),L=O(_,s,S,F&&F.name,{nonTlbTranscludeDirective:M})):(_=Er(Ct(r)).contents(),j.empty(),L=O(_,s))),m.template)if(R=!0,X("template",D,m,j),D=m,x=E(m.template)?m.template(j,o):m.template,x=at(x),m.replace){if(F=m,_=kt(x)?[]:fe(J(m.templateNamespace,jr(x))),r=_[0],1!=_.length||r.nodeType!==Kr)throw Ci("tplrt","Template for directive '{0}' must have exactly one root element. {1}",v,"");et(u,j,r);var tt={$attr:{}},st=I(r,[],tt),ut=t.splice(q+1,t.length-(q+1));T&&V(st),t=t.concat(st).concat(ut),W(o,tt),G=t.length}else j.html(x);if(m.templateUrl)R=!0,X("template",D,m,j),D=m,m.replace&&(F=m),y=K(t.splice(q,t.length-q),j,o,u,P&&L,l,f,{controllerDirectives:B,newScopeDirective:A!==m&&A,newIsolateScopeDirective:T,templateDirective:D,nonTlbTranscludeDirective:M}),G=t.length;else if(m.compile)try{b=m.compile(j,o,L),E(b)?p(null,b,Y,Q):b&&p(b.pre,b.post,Y,Q)}catch(ct){i(ct,Z(j))}m.terminal&&(y.terminal=!0,S=Math.max(S,m.priority))}return y.scope=A&&A.scope===!0,y.transcludeOnThisElement=P,y.templateOnThisElement=R,y.transclude=L,h.hasElementTranscludeDirective=U,y}function V(t){for(var e=0,n=t.length;n>e;e++)t[e]=d(t[e],{$$isolateScope:!0})}function L(e,r,o,s,u,a,f){if(r===u)return null;var h=null;if(c.hasOwnProperty(r))for(var p,g=t.get(r+l),y=0,m=g.length;m>y;y++)try{p=g[y],(s===n||s>p.priority)&&-1!=p.restrict.indexOf(o)&&(a&&(p=d(p,{$$start:a,$$end:f})),e.push(p),h=p)}catch(v){i(v)}return h}function q(e){if(c.hasOwnProperty(e))for(var n,r=t.get(e+l),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function W(t,e){var n=e.$attr,r=t.$attr,i=t.$$element;o(t,function(r,i){"$"!=i.charAt(0)&&(e[i]&&e[i]!==r&&(r+=("style"===i?";":" ")+e[i]),t.$set(i,r,!0,n[i]))}),o(e,function(e,o){"class"==o?(T(i,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==o?(i.attr("style",i.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==o.charAt(0)||t.hasOwnProperty(o)||(t[o]=e,r[o]=n[o])})}function K(t,e,n,r,i,u,a,c){var l,f,h=[],p=e[0],g=t.shift(),y=d(g,{templateUrl:null,transclude:null,replace:null,$$originalDirective:g}),m=E(g.templateUrl)?g.templateUrl(e,n):g.templateUrl,v=g.templateNamespace;return e.empty(),s(m).then(function(s){var d,$,_,b;if(s=at(s),g.replace){if(_=kt(s)?[]:fe(J(v,jr(s))),d=_[0],1!=_.length||d.nodeType!==Kr)throw Ci("tplrt","Template for directive '{0}' must have exactly one root element. {1}",g.name,m);$={$attr:{}},et(r,e,d);var k=I(d,[],$);w(g.scope)&&V(k),t=k.concat(t),W(n,$)}else d=p,e.html(s);for(t.unshift(y),l=j(t,d,n,i,e,g,u,a,c),o(r,function(t,n){t==d&&(r[n]=e[0])}),f=M(e[0].childNodes,i);h.length;){var x=h.shift(),S=h.shift(),E=h.shift(),A=h.shift(),B=e[0];if(!x.$$destroyed){if(S!==p){var C=S.className;c.hasElementTranscludeDirective&&g.replace||(B=Ct(d)),et(E,Er(S),B),T(Er(B),C)}b=l.transcludeOnThisElement?P(x,l.transclude,A):A,l(f,x,B,r,b,l)}}h=null}),function(t,e,n,r,i){var o=i;e.$$destroyed||(h?h.push(e,n,r,o):(l.transcludeOnThisElement&&(o=P(e,l.transclude,i)),l(f,e,n,r,o,l)))}}function G(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name"+n+"",r.childNodes[0].childNodes;default:return n}}function Q(t,e){if("srcdoc"==e)return S.HTML;var n=R(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?S.RESOURCE_URL:void 0}function tt(t,e,n,i,o){var s=Q(t,i);o=v[i]||o;var u=r(n,!0,s,o);if(u){if("multiple"===i&&"select"===R(t))throw Ci("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",Z(t));e.push({priority:100,compile:function(){return{pre:function(t,e,a){var c=a.$$observers||(a.$$observers={});if(b.test(i))throw Ci("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=a[i];l!==n&&(u=l&&r(l,!0,s,o),n=l),u&&(a[i]=u(t),(c[i]||(c[i]=[])).$$inter=!0,(a.$$observers&&a.$$observers[i].$$scope||t).$watch(u,function(t,e){"class"===i&&t!=e?a.$updateClass(t,e):a.$set(i,t)}))}}}})}}function et(t,n,r){var i,o,s=n[0],u=n.length,a=s.parentNode;if(t)for(i=0,o=t.length;o>i;i++)if(t[i]==s){t[i++]=r;for(var c=i,l=c+u-1,f=t.length;f>c;c++,l++)f>l?t[c]=t[l]:delete t[c];t.length-=u-1,t.context===s&&(t.context=r);break}a&&a.replaceChild(r,s);var h=e.createDocumentFragment();h.appendChild(s),Er.hasData(s)&&(Er(r).data(Er(s).data()),Ar?(zr=!0,Ar.cleanData([s])):delete Er.cache[s[Er.expando]]);for(var p=1,d=n.length;d>p;p++){var g=n[p];Er(g).remove(),h.appendChild(g),delete n[p]}n[0]=r,n.length=1}function nt(t,e){return f(function(){return t.apply(null,arguments)},t,e)}function rt(t,e,n,r,o,s){try{t(e,n,r,o,s)}catch(u){i(u,Z(n))}}function it(t,e,i,s,a,c){var l;o(s,function(o,s){var c,f,h,p,d=o.attrName,y=o.optional,m=o.mode;switch(wr.call(e,d)||(e[d]=n),m){case"@":e[d]||y||(i[s]=n),e.$observe(d,function(t){i[s]=t}),e.$$observers[d].$$scope=t,e[d]&&(i[s]=r(e[d])(t));break;case"=":if(y&&!e[d])return;f=u(e[d]),p=f.literal?F:function(t,e){return t===e||t!==t&&e!==e},h=f.assign||function(){throw c=i[s]=f(t),Ci("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",e[d],a.name)},c=i[s]=f(t);var v=function(e){return p(e,i[s])||(p(e,c)?h(t,e=i[s]):i[s]=e),c=e};v.$stateful=!0;var $;$=o.collection?t.$watchCollection(e[d],v):t.$watch(u(e[d],v),null,f.literal),l=l||[],l.push($);break;case"&":if(f=u(e[d]),f===g&&y)break;i[s]=function(e){return f(t,e)}}});var f=l?function(){for(var t=0,e=l.length;e>t;++t)l[t]()}:g;return c&&f!==g?(c.$on("$destroy",f),g):f}var ot=function(t,e){if(e){var n,r,i,o=Object.keys(e);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=e[i]}else this.$attr={};this.$$element=t};ot.prototype={$normalize:ce,$addClass:function(t){t&&t.length>0&&A.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&A.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=le(t,e);n&&n.length&&A.addClass(this.$$element,n);var r=le(e,t);r&&r.length&&A.removeClass(this.$$element,r)},$set:function(t,e,r,s){var u,a=this.$$element[0],c=Ht(a,t),l=qt(a,t),f=t;if(c?(this.$$element.prop(t,e),s=c):l&&(this[l]=e,f=l),this[t]=e,s?this.$attr[t]=s:(s=this.$attr[t],s||(this.$attr[t]=s=ct(t,"-"))),u=R(this.$$element),"a"===u&&"href"===t||"img"===u&&"src"===t)this[t]=e=B(e,"src"===t);else if("img"===u&&"srcset"===t){for(var h="",p=jr(e),d=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,g=/\s/.test(p)?d:/(,)/,y=p.split(g),m=Math.floor(y.length/2),v=0;m>v;v++){var $=2*v;h+=B(jr(y[$]),!0),h+=" "+jr(y[$+1])}var _=jr(y[2*v]).split(/\s/);h+=B(jr(_[0]),!0),2===_.length&&(h+=" "+jr(_[1])),this[t]=e=h}r!==!1&&(null===e||e===n?this.$$element.removeAttr(s):this.$$element.attr(s,e));var w=this.$$observers;w&&o(w[f],function(t){try{t(e)}catch(n){i(n)}})},$observe:function(t,e){var n=this,r=n.$$observers||(n.$$observers=yt()),i=r[t]||(r[t]=[]);return i.push(e),m.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){U(i,e)}}};var st=r.startSymbol(),ut=r.endSymbol(),at="{{"==st||"}}"==ut?y:function(t){return t.replace(/\{\{/g,st).replace(/}}/g,ut)},lt=/^ngAttr[A-Z]/;return O.$$addBindingInfo=x?function(t,e){var n=t.data("$binding")||[];Rr(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:g,O.$$addBindingClass=x?function(t){T(t,"ng-binding")}:g,O.$$addScopeInfo=x?function(t,e,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(i,e)}:g,O.$$addScopeClass=x?function(t,e){T(t,e?"ng-isolate-scope":"ng-scope")}:g,O}]}function ce(t){return bt(t.replace(Ti,""))}function le(t,e){var n="",r=t.split(/\s+/),i=e.split(/\s+/);t:for(var o=0;o0?" ":"")+s}return n}function fe(t){t=Er(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===Yr&&Tr.call(t,e,1)}return t}function he(t,e){if(e&&k(e))return e;if(k(t)){var n=Di.exec(t);if(n)return n[3]}}function pe(){var t={},e=!1;this.register=function(e,n){pt(e,"controller"),w(e)?f(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(i,o){function s(t,e,n,i){if(!t||!w(t.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,e);t.$scope[e]=n}return function(r,u,a,c){var l,h,p,d;if(a=a===!0,c&&k(c)&&(d=c),k(r)){if(h=r.match(Di),!h)throw Oi("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);p=h[1],d=d||h[3],r=t.hasOwnProperty(p)?t[p]:dt(u.$scope,p,!0)||(e?dt(o,p,!0):n),ht(r,p,!0)}if(a){var g=(Rr(r)?r[r.length-1]:r).prototype;l=Object.create(g||null),d&&s(u,d,l,p||r.name);var y;return y=f(function(){var t=i.invoke(r,l,u,p);return t!==l&&(w(t)||E(t))&&(l=t,d&&s(u,d,l,p||r.name)),l},{instance:l,identifier:d})}return l=i.instantiate(r,u,p),d&&s(u,d,l,p||r.name),l}}]}function de(){this.$get=["$window",function(t){return Er(t.document)}]}function ge(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function ye(t){return w(t)?S(t)?t.toISOString():K(t):t}function me(){this.$get=function(){return function(t){if(!t)return"";var e=[];return s(t,function(t,n){null===t||$(t)||(Rr(t)?o(t,function(t,r){e.push(rt(n)+"="+rt(ye(t)))}):e.push(rt(n)+"="+rt(ye(t))))}),e.join("&")}}}function ve(){this.$get=function(){return function(t){function e(t,r,i){null===t||$(t)||(Rr(t)?o(t,function(t){e(t,r+"[]")}):w(t)&&!S(t)?s(t,function(t,n){e(t,r+(i?"":"[")+n+(i?"":"]"))}):n.push(rt(r)+"="+rt(ye(t))))}if(!t)return"";var n=[];return e(t,"",!0),n.join("&")}}}function $e(t,e){if(k(t)){var n=t.replace(zi,"").trim();if(n){var r=e("Content-Type");(r&&0===r.indexOf(Mi)||_e(n))&&(t=G(n))}}return t}function _e(t){var e=t.match(Ii);return e&&Ni[e[0]].test(t)}function we(t){function e(t,e){t&&(r[t]=r[t]?r[t]+", "+e:e)}var n,r=yt();return k(t)?o(t.split("\n"),function(t){n=t.indexOf(":"),e(_r(jr(t.substr(0,n))),jr(t.substr(n+1)))}):w(t)&&o(t,function(t,n){e(_r(n),jr(t))}),r}function be(t){var e;return function(n){if(e||(e=we(t)),n){var r=e[_r(n)];return void 0===r&&(r=null),r}return e}}function ke(t,e,n,r){return E(r)?r(t,e,n):(o(r,function(r){t=r(t,e,n)}),t)}function xe(t){return t>=200&&300>t}function Se(){var t=this.defaults={transformResponse:[$e],transformRequest:[function(t){return!w(t)||T(t)||D(t)||O(t)?t:K(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:V(Pi),put:V(Pi),patch:V(Pi)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},e=!1;this.useApplyAsync=function(t){return _(t)?(e=!!t,this):e};var i=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,u,a,c,l,h){function p(e){function i(t){var e=f({},t);return e.data=t.data?ke(t.data,t.headers,t.status,a.transformResponse):t.data,xe(t.status)?e:l.reject(e)}function s(t,e){var n,r={};return o(t,function(t,i){E(t)?(n=t(e),null!=n&&(r[i]=n)):r[i]=t}),r}function u(e){var n,r,i,o=t.headers,u=f({},e.headers);o=f({},o.common,o[_r(e.method)]);t:for(n in o){r=_r(n);for(i in u)if(_r(i)===r)continue t;u[n]=o[n]}return s(u,V(e))}if(!Ir.isObject(e))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",e);var a=f({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse,paramSerializer:t.paramSerializer},e);a.headers=u(e),a.method=br(a.method),a.paramSerializer=k(a.paramSerializer)?h.get(a.paramSerializer):a.paramSerializer;var c=function(e){var r=e.headers,s=ke(e.data,be(r),n,e.transformRequest);return $(s)&&o(r,function(t,e){"content-type"===_r(e)&&delete r[e]}),$(e.withCredentials)&&!$(t.withCredentials)&&(e.withCredentials=t.withCredentials),y(e,s).then(i,i)},p=[c,n],d=l.when(a);for(o(b,function(t){(t.request||t.requestError)&&p.unshift(t.request,t.requestError),(t.response||t.responseError)&&p.push(t.response,t.responseError)});p.length;){var g=p.shift(),m=p.shift();d=d.then(g,m)}return d.success=function(t){return ht(t,"fn"),d.then(function(e){t(e.data,e.status,e.headers,a)}),d},d.error=function(t){return ht(t,"fn"),d.then(null,function(e){t(e.data,e.status,e.headers,a)}),d},d}function d(t){o(arguments,function(t){p[t]=function(e,n){return p(f({},n||{},{method:t,url:e}))}})}function g(t){o(arguments,function(t){p[t]=function(e,n,r){return p(f({},r||{},{method:t,url:e,data:n}))}})}function y(r,i){function o(t,n,r,i){function o(){a(n,t,r,i)}d&&(xe(t)?d.put(x,[t,n,we(r),i]):d.remove(x)),e?c.$applyAsync(o):(o(),c.$$phase||c.$apply())}function a(t,e,n,i){e=Math.max(e,0),(xe(e)?y.resolve:y.reject)({data:t,status:e,headers:be(n),config:r,statusText:i})}function f(t){a(t.data,t.status,V(t.headers()),t.statusText)}function h(){var t=p.pendingRequests.indexOf(r);-1!==t&&p.pendingRequests.splice(t,1)}var d,g,y=l.defer(),b=y.promise,k=r.headers,x=m(r.url,r.paramSerializer(r.params));if(p.pendingRequests.push(r),b.then(h,h),!r.cache&&!t.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=w(r.cache)?r.cache:w(t.cache)?t.cache:v),d&&(g=d.get(x),_(g)?P(g)?g.then(f,f):Rr(g)?a(g[1],g[0],V(g[2]),g[3]):a(g,200,{},"OK"):d.put(x,b)),$(g)){var S=An(r.url)?u()[r.xsrfCookieName||t.xsrfCookieName]:n;S&&(k[r.xsrfHeaderName||t.xsrfHeaderName]=S),s(r.method,x,i,o,k,r.timeout,r.withCredentials,r.responseType)}return b}function m(t,e){return e.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+e),t}var v=a("$http");t.paramSerializer=k(t.paramSerializer)?h.get(t.paramSerializer):t.paramSerializer;var b=[];return o(i,function(t){b.unshift(k(t)?h.get(t):h.invoke(t))}),p.pendingRequests=[],d("get","delete","head","jsonp"),g("post","put","patch"),p.defaults=t,p}]}function Ee(){return new t.XMLHttpRequest}function Ae(){this.$get=["$browser","$window","$document",function(t,e,n){return Be(t,Ee,t.defer,e.angular.callbacks,n[0])}]}function Be(t,e,r,i,s){function u(t,e,n){var r=s.createElement("script"),o=null;return r.type="text/javascript",r.src=t,r.async=!0,o=function(t){ri(r,"load",o),ri(r,"error",o),s.body.removeChild(r),r=null;var u=-1,a="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),a=t.type,u="error"===t.type?404:200),n&&n(u,a)},ni(r,"load",o),ni(r,"error",o),s.body.appendChild(r),o}return function(s,a,c,l,f,h,p,d){function y(){$&&$(),w&&w.abort()}function m(e,i,o,s,u){x!==n&&r.cancel(x),$=w=null,e(i,o,s,u),t.$$completeOutstandingRequest(g)}if(t.$$incOutstandingRequestCount(),a=a||t.url(),"jsonp"==_r(s)){var v="_"+(i.counter++).toString(36);i[v]=function(t){i[v].data=t,i[v].called=!0};var $=u(a.replace("JSON_CALLBACK","angular.callbacks."+v),v,function(t,e){m(l,t,i[v].data,"",e),i[v]=g})}else{var w=e();w.open(s,a,!0),o(f,function(t,e){_(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==En(a).protocol?404:0),m(l,n,e,w.getAllResponseHeaders(),t)};var b=function(){m(l,-1,null,null,"")};if(w.onerror=b,w.onabort=b,p&&(w.withCredentials=!0),d)try{w.responseType=d}catch(k){if("json"!==d)throw k}w.send(c)}if(h>0)var x=r(y,h);else P(h)&&h.then(y)}}function Ce(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(t){return"\\\\\\"+t}function s(n){return n.replace(h,t).replace(p,e)}function u(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=K(t)}return t}function a(o,a,h,p){function d(t){try{return t=B(t),p&&!_(t)?t:u(t)}catch(e){r(Ri.interr(o,e))}}p=!!p;for(var g,y,m,v=0,w=[],b=[],k=o.length,x=[],S=[];k>v;){if(-1==(g=o.indexOf(t,v))||-1==(y=o.indexOf(e,g+c))){v!==k&&x.push(s(o.substring(v)));break}v!==g&&x.push(s(o.substring(v,g))),m=o.substring(g+c,y),w.push(m),b.push(n(m,d)),v=y+l,S.push(x.length),x.push("")}if(h&&x.length>1&&Ri.throwNoconcat(o),!a||w.length){var A=function(t){for(var e=0,n=w.length;n>e;e++){if(p&&$(t[e]))return;x[S[e]]=t[e]}return x.join("")},B=function(t){return h?i.getTrusted(h,t):i.valueOf(t)};return f(function(t){var e=0,n=w.length,i=new Array(n);try{for(;n>e;e++)i[e]=b[e](t);return A(i)}catch(s){r(Ri.interr(o,s))}},{exp:o,expressions:w,$$watchDelegate:function(t,e){var n;return t.$watchGroup(b,function(r,i){var o=A(r);E(e)&&e.call(this,o,r!==i?n:o,t),n=o})}})}}var c=t.length,l=e.length,h=new RegExp(t.replace(/./g,o),"g"),p=new RegExp(e.replace(/./g,o),"g");return a.startSymbol=function(){return t},a.endSymbol=function(){return e},a}]}function Te(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,r){function i(i,s,u,a){var c=arguments.length>4,l=c?H(arguments,4):[],f=e.setInterval,h=e.clearInterval,p=0,d=_(a)&&!a,g=(d?r:n).defer(),y=g.promise;return u=_(u)?u:0,y.then(null,null,c?function(){i.apply(null,l)}:i),y.$$intervalId=f(function(){g.notify(p++),u>0&&p>=u&&(g.resolve(p),h(y.$$intervalId),delete o[y.$$intervalId]),d||t.$apply()},s),o[y.$$intervalId]=g,y}var o={};return i.cancel=function(t){return t&&t.$$intervalId in o?(o[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete o[t.$$intervalId],!0):!1},i}]}function Oe(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(t){return 1===t?"one":"other"}}}}function De(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=nt(e[n]);return e.join("/")}function Me(t,e){var n=En(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=p(n.port)||ji[n.protocol]||null}function Pe(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var r=En(t);e.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),e.$$search=tt(r.search),e.$$hash=decodeURIComponent(r.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function Ie(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function Ne(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function ze(t){return t.replace(/(#.+)|#$/,"$1")}function Re(t){return t.substr(0,Ne(t).lastIndexOf("/")+1)}function Ue(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function je(t,e){this.$$html5=!0,e=e||"";var r=Re(t);Me(t,this),this.$$parse=function(t){var e=Ie(r,t);if(!k(e))throw Vi("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,r);Pe(e,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=et(this.$$search),e=this.$$hash?"#"+nt(this.$$hash):"";this.$$url=De(this.$$path)+(t?"?"+t:"")+e,this.$$absUrl=r+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,o){if(o&&"#"===o[0])return this.hash(o.slice(1)),!0;var s,u,a;return(s=Ie(t,i))!==n?(u=s,a=(s=Ie(e,s))!==n?r+(Ie("/",s)||s):t+u):(s=Ie(r,i))!==n?a=r+s:r==i+"/"&&(a=r),a&&this.$$parse(a),!!a}}function Ve(t,e){var n=Re(t);Me(t,this),this.$$parse=function(r){function i(t,e,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),i.exec(e)?t:(r=i.exec(t),r?r[1]:t)}var o,s=Ie(t,r)||Ie(n,r);$(s)||"#"!==s.charAt(0)?this.$$html5?o=s:(o="",$(s)&&(t=r,this.replace())):(o=Ie(e,s),$(o)&&(o=s)),Pe(o,this),this.$$path=i(this.$$path,o,t),this.$$compose()},this.$$compose=function(){var n=et(this.$$search),r=this.$$hash?"#"+nt(this.$$hash):"";this.$$url=De(this.$$path)+(n?"?"+n:"")+r,this.$$absUrl=t+(this.$$url?e+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return Ne(t)==Ne(e)?(this.$$parse(e),!0):!1}}function Fe(t,e){this.$$html5=!0,Ve.apply(this,arguments);var n=Re(t);this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,s;return t==Ne(r)?o=r:(s=Ie(n,r))?o=t+e+s:n===r+"/"&&(o=n),o&&this.$$parse(o),!!o},this.$$compose=function(){var n=et(this.$$search),r=this.$$hash?"#"+nt(this.$$hash):"";this.$$url=De(this.$$path)+(n?"?"+n:"")+r,this.$$absUrl=t+e+this.$$url}}function Le(t){return function(){return this[t]}}function He(t,e){return function(n){return $(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function qe(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return _(e)?(t=e,this):t},this.html5Mode=function(t){return M(t)?(e.enabled=t,this):w(t)?(M(t.enabled)&&(e.enabled=t.enabled),M(t.requireBase)&&(e.requireBase=t.requireBase),M(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,s){function u(t,e,n){var i=c.url(),o=c.$$state;try{r.url(t,e,n),c.$$state=r.state()}catch(s){throw c.url(i),c.$$state=o,s}}function a(t,e){n.$broadcast("$locationChangeSuccess",c.absUrl(),t,c.$$state,e)}var c,l,f,h=r.baseHref(),p=r.url();if(e.enabled){if(!h&&e.requireBase)throw Vi("nobase","$location in HTML5 mode requires a tag to be present!");f=Ue(p)+(h||"/"),l=i.history?je:Fe}else f=Ne(p),l=Ve;c=new l(f,"#"+t),c.$$parseLinkUrl(p,p),c.$$state=r.state();var d=/^\s*(javascript|mailto):/i;o.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var i=Er(t.target);"a"!==R(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var u=i.prop("href"),a=i.attr("href")||i.attr("xlink:href");w(u)&&"[object SVGAnimatedString]"===u.toString()&&(u=En(u.animVal).href),d.test(u)||!u||i.attr("target")||t.isDefaultPrevented()||c.$$parseLinkUrl(u,a)&&(t.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),s.angular["ff-684208-preventDefault"]=!0))}}),ze(c.absUrl())!=ze(p)&&r.url(c.absUrl(),!0);var g=!0;return r.onUrlChange(function(t,e){n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(t),c.$$state=e,r=n.$broadcast("$locationChangeStart",t,i,e,o).defaultPrevented,c.absUrl()===t&&(r?(c.$$parse(i),c.$$state=o,u(i,!1,o)):(g=!1,a(i,o)))}),n.$$phase||n.$digest()}),n.$watch(function(){var t=ze(r.url()),e=ze(c.absUrl()),o=r.state(),s=c.$$replace,l=t!==e||c.$$html5&&i.history&&o!==c.$$state;(g||l)&&(g=!1,n.$evalAsync(function(){var e=c.absUrl(),r=n.$broadcast("$locationChangeStart",e,t,c.$$state,o).defaultPrevented;c.absUrl()===e&&(r?(c.$$parse(t),c.$$state=o):(l&&u(e,s,o===c.$$state?null:c.$$state),a(t,o)))})),c.$$replace=!1}),c}]}function We(){var t=!0,e=this;this.debugEnabled=function(e){return _(e)?(t=e,this):t},this.$get=["$window",function(n){function r(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function i(t){var e=n.console||{},i=e[t]||e.log||g,s=!1;try{s=!!i.apply}catch(u){}return s?function(){var t=[];return o(arguments,function(e){t.push(r(e))}),i.apply(e,t)}:function(t,e){i(t,null==e?"":e)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function Ke(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw Li("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Ge(t,e){if(t){if(t.constructor===t)throw Li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw Li("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw Li("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw Li("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function Xe(t,e){if(t){if(t.constructor===t)throw Li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===Hi||t===qi||t===Wi)throw Li("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Ye(t,e){return"undefined"!=typeof t?t:e}function Je(t,e){return"undefined"==typeof t?e:"undefined"==typeof e?t:t+e}function Ze(t,e){var n=t(e);return!n.$stateful}function Qe(t,e){var n,r;switch(t.type){case Yi.Program:n=!0,o(t.body,function(t){Qe(t.expression,e),n=n&&t.expression.constant}),t.constant=n;break;case Yi.Literal:t.constant=!0,t.toWatch=[];break;case Yi.UnaryExpression:Qe(t.argument,e),t.constant=t.argument.constant,t.toWatch=t.argument.toWatch;break;case Yi.BinaryExpression:Qe(t.left,e),Qe(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=t.left.toWatch.concat(t.right.toWatch);break;case Yi.LogicalExpression:Qe(t.left,e),Qe(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=t.constant?[]:[t];break;case Yi.ConditionalExpression:Qe(t.test,e),Qe(t.alternate,e),Qe(t.consequent,e),t.constant=t.test.constant&&t.alternate.constant&&t.consequent.constant,t.toWatch=t.constant?[]:[t];break;case Yi.Identifier:t.constant=!1,t.toWatch=[t];break;case Yi.MemberExpression:Qe(t.object,e),t.computed&&Qe(t.property,e),t.constant=t.object.constant&&(!t.computed||t.property.constant),t.toWatch=[t];break;case Yi.CallExpression:n=t.filter?Ze(e,t.callee.name):!1,r=[],o(t.arguments,function(t){Qe(t,e),n=n&&t.constant,t.constant||r.push.apply(r,t.toWatch)}),t.constant=n,t.toWatch=t.filter&&Ze(e,t.callee.name)?r:[t];break;case Yi.AssignmentExpression:Qe(t.left,e),Qe(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=[t];break;case Yi.ArrayExpression:n=!0,r=[],o(t.elements,function(t){Qe(t,e),n=n&&t.constant,t.constant||r.push.apply(r,t.toWatch)}),t.constant=n,t.toWatch=r;break;case Yi.ObjectExpression:n=!0,r=[],o(t.properties,function(t){Qe(t.value,e),n=n&&t.value.constant,t.value.constant||r.push.apply(r,t.value.toWatch)}),t.constant=n,t.toWatch=r;break;case Yi.ThisExpression:t.constant=!1,t.toWatch=[]}}function tn(t){if(1==t.length){var e=t[0].expression,r=e.toWatch;return 1!==r.length?r:r[0]!==e?r:n}}function en(t){return t.type===Yi.Identifier||t.type===Yi.MemberExpression}function nn(t){return 1===t.body.length&&en(t.body[0].expression)?{type:Yi.AssignmentExpression,left:t.body[0].expression,right:{type:Yi.NGValueParameter},operator:"="}:void 0}function rn(t){return 0===t.body.length||1===t.body.length&&(t.body[0].expression.type===Yi.Literal||t.body[0].expression.type===Yi.ArrayExpression||t.body[0].expression.type===Yi.ObjectExpression)}function on(t){return t.constant}function sn(t,e){this.astBuilder=t,this.$filter=e}function un(t,e){this.astBuilder=t,this.$filter=e}function an(t,e,n,r){Ge(t,r);for(var i,o=e.split("."),s=0;o.length>1;s++){i=Ke(o.shift(),r);var u=Ge(t[i],r);u||(u={},t[i]=u),t=u}return i=Ke(o.shift(),r),Ge(t[i],r),t[i]=n,n}function cn(t){return"constructor"==t}function ln(t){return E(t.valueOf)?t.valueOf():Zi.call(t)}function fn(){var t=yt(),e=yt();this.$get=["$filter","$sniffer",function(r,i){function s(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=ln(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function u(t,e,r,i,o){var u,a=i.inputs;if(1===a.length){var c=s;return a=a[0],t.$watch(function(t){var e=a(t);return s(e,c)||(u=i(t,n,n,[e]),c=e&&ln(e)),u},e,r,o)}for(var l=[],f=[],h=0,p=a.length;p>h;h++)l[h]=s,f[h]=null;return t.$watch(function(t){for(var e=!1,r=0,o=a.length;o>r;r++){var c=a[r](t);(e||(e=!s(c,l[r])))&&(f[r]=c,l[r]=c&&ln(c))}return e&&(u=i(t,n,n,f)),u},e,r,o)}function a(t,e,n,r){var i,o;return i=t.$watch(function(t){return r(t)},function(t,n,r){o=t,E(e)&&e.apply(this,arguments),_(t)&&r.$$postDigest(function(){_(o)&&i()})},n)}function c(t,e,n,r){function i(t){var e=!0;return o(t,function(t){_(t)||(e=!1)}),e}var s,u;return s=t.$watch(function(t){return r(t)},function(t,n,r){u=t,E(e)&&e.call(this,t,n,r),i(t)&&r.$$postDigest(function(){i(u)&&s()})},n)}function l(t,e,n,r){var i;return i=t.$watch(function(t){return r(t)},function(t,n,r){E(e)&&e.apply(this,arguments),i()},n)}function f(t,e){if(!e)return t;var n=t.$$watchDelegate,r=n!==c&&n!==a,i=r?function(n,r,i,o){var s=t(n,r,i,o);return e(s,n,r)}:function(n,r,i,o){var s=t(n,r,i,o),u=e(s,n,r);return _(s)?u:s};return t.$$watchDelegate&&t.$$watchDelegate!==u?i.$$watchDelegate=t.$$watchDelegate:e.$stateful||(i.$$watchDelegate=u,i.inputs=t.inputs?t.inputs:[t]),i}var h={csp:i.csp,expensiveChecks:!1},p={csp:i.csp,expensiveChecks:!0};return function(n,i,o){var s,d,y;switch(typeof n){case"string":n=n.trim(),y=n;var m=o?e:t;if(s=m[y],!s){":"===n.charAt(0)&&":"===n.charAt(1)&&(d=!0,n=n.substring(2));var v=o?p:h,$=new Xi(v),_=new Ji($,r,v);s=_.parse(n),s.constant?s.$$watchDelegate=l:d?s.$$watchDelegate=s.literal?c:a:s.inputs&&(s.$$watchDelegate=u),m[y]=s}return f(s,i);case"function":return f(n,i);default:return g}}}]}function hn(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return dn(function(e){t.$evalAsync(e)},e)}]}function pn(){this.$get=["$browser","$exceptionHandler",function(t,e){return dn(function(e){t.defer(e)},e)}]}function dn(t,e){function i(t,e,n){function r(e){return function(n){i||(i=!0,e.call(t,n))}}var i=!1;return[r(e),r(n)]}function s(){this.$$state={status:0}}function u(t,e){return function(n){e.call(t,n)}}function a(t){var r,i,o;o=t.pending,t.processScheduled=!1,t.pending=n;for(var s=0,u=o.length;u>s;++s){i=o[s][0],r=o[s][t.status];try{E(r)?i.resolve(r(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(a){i.reject(a),e(a)}}}function c(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){a(e)}))}function l(){this.promise=new s,this.resolve=u(this,this.resolve),this.reject=u(this,this.reject),this.notify=u(this,this.notify)}function f(t){var e=new l,n=0,r=Rr(t)?[]:{};return o(t,function(t,i){n++,m(t).then(function(t){r.hasOwnProperty(i)||(r[i]=t,--n||e.resolve(r))},function(t){r.hasOwnProperty(i)||e.reject(t)})}),0===n&&e.resolve(r),e.promise}var h=r("$q",TypeError),p=function(){return new l};s.prototype={then:function(t,e,n){var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,t,e,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return y(e,!0,t)},function(e){return y(e,!1,t)},e)}},l.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(h("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(w(t)||E(t))&&(n=t&&t.then),E(n)?(this.promise.$$state.status=-1,n.call(t,r[0],r[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),e(o)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending; + +this.promise.$$state.status<=0&&r&&r.length&&t(function(){for(var t,i,o=0,s=r.length;s>o;o++){i=r[o][0],t=r[o][3];try{i.notify(E(t)?t(n):n)}catch(u){e(u)}}})}};var d=function(t){var e=new l;return e.reject(t),e.promise},g=function(t,e){var n=new l;return e?n.resolve(t):n.reject(t),n.promise},y=function(t,e,n){var r=null;try{E(n)&&(r=n())}catch(i){return g(i,!1)}return P(r)?r.then(function(){return g(t,e)},function(t){return g(t,!1)}):g(t,e)},m=function(t,e,n,r){var i=new l;return i.resolve(t),i.promise.then(e,n,r)},v=m,$=function _(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}if(!E(t))throw h("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof _))return new _(t);var r=new l;return t(e,n),r.promise};return $.defer=p,$.reject=d,$.when=m,$.resolve=v,$.all=f,$}function gn(){this.$get=["$window","$timeout",function(t,e){function n(){for(var t=0;t=0&&(l[e]=null,e=null,0===--c&&a&&(a(),a=null,l.length=0))}}var i=t.requestAnimationFrame||t.webkitRequestAnimationFrame,o=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,s=!!i,u=s?function(t){var e=i(t);return function(){o(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};r.supported=s;var a,c=0,l=[];return r}]}function yn(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=a(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=r("$rootScope"),s=null,u=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,c,l,f){function h(t){t.currentScope.$$destroyed=!0}function p(){this.$id=a(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function d(t){if(x.$$phase)throw n("inprog","{0} already in progress",x.$$phase);x.$$phase=t}function y(){x.$$phase=null}function m(t,e){do t.$$watchersCount+=e;while(t=t.$parent)}function v(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function _(){}function b(){for(;B.length;)try{B.shift()()}catch(t){c(t)}u=null}function k(){null===u&&(u=f.defer(function(){x.$apply(b)}))}p.prototype={constructor:p,$new:function(e,n){var r;return n=n||this,e?(r=new p,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(e||n!=this)&&r.$on("$destroy",h),r},$watch:function(t,e,n,r){var i=l(t);if(i.$$watchDelegate)return i.$$watchDelegate(this,e,n,i,t);var o=this,u=o.$$watchers,a={fn:e,last:_,get:i,exp:r||t,eq:!!n};return s=null,E(e)||(a.fn=g),u||(u=o.$$watchers=[]),u.unshift(a),m(this,1),function(){U(u,a)>=0&&m(o,-1),s=null}},$watchGroup:function(t,e){function n(){a=!1,c?(c=!1,e(i,i,u)):e(i,r,u)}var r=new Array(t.length),i=new Array(t.length),s=[],u=this,a=!1,c=!0;if(!t.length){var l=!0;return u.$evalAsync(function(){l&&e(i,i,u)}),function(){l=!1}}return 1===t.length?this.$watch(t[0],function(t,n,o){i[0]=t,r[0]=n,e(i,t===n?i:r,o)}):(o(t,function(t,e){var o=u.$watch(t,function(t,o){i[e]=t,r[e]=o,a||(a=!0,u.$evalAsync(n))});s.push(o)}),function(){for(;s.length;)s.shift()()})},$watchCollection:function(t,e){function n(t){o=t;var e,n,r,u,a;if(!$(o)){if(w(o))if(i(o)){s!==p&&(s=p,y=s.length=0,f++),e=o.length,y!==e&&(f++,s.length=y=e);for(var c=0;e>c;c++)a=s[c],u=o[c],r=a!==a&&u!==u,r||a===u||(f++,s[c]=u)}else{s!==d&&(s=d={},y=0,f++),e=0;for(n in o)o.hasOwnProperty(n)&&(e++,u=o[n],a=s[n],n in s?(r=a!==a&&u!==u,r||a===u||(f++,s[n]=u)):(y++,s[n]=u,f++));if(y>e){f++;for(n in s)o.hasOwnProperty(n)||(y--,delete s[n])}}else s!==o&&(s=o,f++);return f}}function r(){if(g?(g=!1,e(o,o,a)):e(o,u,a),c)if(w(o))if(i(o)){u=new Array(o.length);for(var t=0;t1,f=0,h=l(t,n),p=[],d={},g=!0,y=0;return this.$watch(h,r)},$digest:function(){var t,r,i,o,a,l,h,p,g,m,v=e,$=this,w=[];d("$digest"),f.$$checkUrlChange(),this===x&&null!==u&&(f.defer.cancel(u),b()),s=null;do{for(l=!1,p=$;S.length;){try{m=S.shift(),m.scope.$eval(m.expression,m.locals)}catch(k){c(k)}s=null}t:do{if(o=p.$$watchers)for(a=o.length;a--;)try{if(t=o[a])if((r=t.get(p))===(i=t.last)||(t.eq?F(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(t===s){l=!1;break t}}else l=!0,s=t,t.last=t.eq?j(r,null):r,t.fn(r,i===_?r:i,p),5>v&&(g=4-v,w[g]||(w[g]=[]),w[g].push({msg:E(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:r,oldVal:i}))}catch(k){c(k)}if(!(h=p.$$watchersCount&&p.$$childHead||p!==$&&p.$$nextSibling))for(;p!==$&&!(h=p.$$nextSibling);)p=p.$parent}while(p=h);if((l||S.length)&&!v--)throw y(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,w)}while(l||S.length);for(y();A.length;)try{A.shift()()}catch(k){c(k)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===x&&f.$$applicationDestroyed(),m(this,-this.$$watchersCount);for(var e in this.$$listenerCount)v(this,this.$$listenerCount[e],e);t&&t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t&&t.$$childTail==this&&(t.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=g,this.$on=this.$watch=this.$watchGroup=function(){return g},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(t,e){return l(t)(this,e)},$evalAsync:function(t,e){x.$$phase||S.length||f.defer(function(){S.length&&x.$digest()}),S.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){A.push(t)},$apply:function(t){try{return d("$apply"),this.$eval(t)}catch(e){c(e)}finally{y();try{x.$digest()}catch(e){throw c(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&B.push(e),k()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var r=this;do r.$$listenerCount[t]||(r.$$listenerCount[t]=0),r.$$listenerCount[t]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(e);-1!==r&&(n[r]=null,v(i,1,t))}},$emit:function(t,e){var n,r,i,o=[],s=this,u=!1,a={name:t,targetScope:s,stopPropagation:function(){u=!0},preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1},l=L([a],arguments,1);do{for(n=s.$$listeners[t]||o,a.currentScope=s,r=0,i=n.length;i>r;r++)if(n[r])try{n[r].apply(null,l)}catch(f){c(f)}else n.splice(r,1),r--,i--;if(u)return a.currentScope=null,a;s=s.$parent}while(s);return a.currentScope=null,a},$broadcast:function(t,e){var n=this,r=n,i=n,o={name:t,targetScope:n,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return o;for(var s,u,a,l=L([o],arguments,1);r=i;){for(o.currentScope=r,s=r.$$listeners[t]||[],u=0,a=s.length;a>u;u++)if(s[u])try{s[u].apply(null,l)}catch(f){c(f)}else s.splice(u,1),u--,a--;if(!(i=r.$$listenerCount[t]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(i=r.$$nextSibling);)r=r.$parent}return o.currentScope=null,o}};var x=new p,S=x.$$asyncQueue=[],A=x.$$postDigestQueue=[],B=x.$$applyAsyncQueue=[];return x}]}function mn(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return _(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return _(t)?(e=t,this):e},this.$get=function(){return function(n,r){var i,o=r?e:t;return i=En(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function vn(t){if("self"===t)return t;if(k(t)){if(t.indexOf("***")>-1)throw Qi("iwcard","Illegal sequence *** in string matcher. String: {0}",t);return t=Vr(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(A(t))return new RegExp("^"+t.source+"$");throw Qi("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function $n(t){var e=[];return _(t)&&o(t,function(t){e.push(vn(t))}),e}function _n(){this.SCE_CONTEXTS=to;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=$n(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=$n(t)),e},this.$get=["$injector",function(r){function i(t,e){return"self"===t?An(e):!!t.exec(e.href)}function o(n){var r,o,s=En(n.toString()),u=!1;for(r=0,o=t.length;o>r;r++)if(i(t[r],s)){u=!0;break}if(u)for(r=0,o=e.length;o>r;r++)if(i(e[r],s)){u=!1;break}return u}function s(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function u(t,e){var r=h.hasOwnProperty(t)?h[t]:null;if(!r)throw Qi("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw Qi("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new r(e)}function a(t){return t instanceof f?t.$$unwrapTrustedValue():t}function c(t,e){if(null===e||e===n||""===e)return e;var r=h.hasOwnProperty(t)?h[t]:null;if(r&&e instanceof r)return e.$$unwrapTrustedValue();if(t===to.RESOURCE_URL){if(o(e))return e;throw Qi("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",e.toString())}if(t===to.HTML)return l(e);throw Qi("unsafe","Attempting to use an unsafe value in a safe context.")}var l=function(t){throw Qi("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(l=r.get("$sanitize"));var f=s(),h={};return h[to.HTML]=s(f),h[to.CSS]=s(f),h[to.URL]=s(f),h[to.JS]=s(f),h[to.RESOURCE_URL]=s(h[to.URL]),{trustAs:u,getTrusted:c,valueOf:a}}]}function wn(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>Sr)throw Qi("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=V(to);r.isEnabled=function(){return t},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,t||(r.trustAs=r.getTrusted=function(t,e){return e},r.valueOf=y),r.parseAs=function(t,n){var i=e(n);return i.literal&&i.constant?i:e(n,function(e){return r.getTrusted(t,e)})};var i=r.parseAs,s=r.getTrusted,u=r.trustAs;return o(to,function(t,e){var n=_r(e);r[bt("parse_as_"+n)]=function(e){return i(t,e)},r[bt("get_trusted_"+n)]=function(e){return s(t,e)},r[bt("trust_as_"+n)]=function(e){return u(t,e)}}),r}]}function bn(){this.$get=["$window","$document",function(t,e){var n,r,i={},o=p((/android (\d+)/.exec(_r((t.navigator||{}).userAgent))||[])[1]),s=/Boxee/i.test((t.navigator||{}).userAgent),u=e[0]||{},a=/^(Moz|webkit|ms)(?=[A-Z])/,c=u.body&&u.body.style,l=!1,f=!1;if(c){for(var h in c)if(r=a.exec(h)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),f=!!("animation"in c||n+"Animation"in c),!o||l&&f||(l=k(c.webkitTransition),f=k(c.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>o||s),hasEvent:function(t){if("input"===t&&11>=Sr)return!1;if($(i[t])){var e=u.createElement("div");i[t]="on"+t in e}return i[t]},csp:Fr(),vendorPrefix:n,transitions:l,animations:f,android:o}}]}function kn(){this.$get=["$templateCache","$http","$q","$sce",function(t,e,n,r){function i(o,s){function u(t){if(!s)throw Ci("tpload","Failed to load template: {0} (HTTP status: {1} {2})",o,t.status,t.statusText);return n.reject(t)}i.totalPendingRequests++,k(o)&&t.get(o)||(o=r.getTrustedResourceUrl(o));var a=e.defaults&&e.defaults.transformResponse;Rr(a)?a=a.filter(function(t){return t!==$e}):a===$e&&(a=null);var c={cache:t,transformResponse:a};return e.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(e){return t.put(o,e.data),e.data},u)}return i.totalPendingRequests=0,i}]}function xn(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var r={};return r.findBindings=function(t,e,n){var r=t.getElementsByClassName("ng-binding"),i=[];return o(r,function(t){var r=Ir.element(t).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+Vr(e)+"(\\s|\\||$)");o.test(r)&&i.push(t)}else-1!=r.indexOf(e)&&i.push(t)})}),i},r.findModels=function(t,e,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i0&&(c=e(s.substring(0,a)),i[c]===n&&(i[c]=e(s.substring(a+1))));return i}}function Tn(){this.$get=Cn}function On(t){function e(r,i){if(w(r)){var s={};return o(r,function(t,n){s[n]=e(n,t)}),s}return t.factory(r+n,i)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",Nn),e("date",Xn),e("filter",Dn),e("json",Yn),e("limitTo",Jn),e("lowercase",uo),e("number",zn),e("orderBy",Zn),e("uppercase",ao)}function Dn(){return function(t,e,n){if(!i(t)){if(null==t)return t;throw r("filter")("notarray","Expected array but received: {0}",t)}var o,s,u=In(e);switch(u){case"function":o=e;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":o=Mn(e,n,s);break;default:return t}return Array.prototype.filter.call(t,o)}}function Mn(t,e,n){var r,i=w(t)&&"$"in t;return e===!0?e=F:E(e)||(e=function(t,e){return $(t)?!1:null===t||null===e?t===e:w(e)||w(t)&&!v(t)?!1:(t=_r(""+t),e=_r(""+e),-1!==t.indexOf(e))}),r=function(r){return i&&!w(r)?Pn(r,t.$,e,!1):Pn(r,t,e,n)}}function Pn(t,e,n,r,i){var o=In(t),s=In(e);if("string"===s&&"!"===e.charAt(0))return!Pn(t,e.substring(1),n,r);if(Rr(t))return t.some(function(t){return Pn(t,e,n,r)});switch(o){case"object":var u;if(r){for(u in t)if("$"!==u.charAt(0)&&Pn(t[u],e,n,!0))return!0;return i?!1:Pn(t,e,n,!1)}if("object"===s){for(u in e){var a=e[u];if(!E(a)&&!$(a)){var c="$"===u,l=c?t:t[u];if(!Pn(l,a,n,c,c))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function In(t){return null===t?"null":typeof t}function Nn(t){var e=t.NUMBER_FORMATS;return function(t,n,r){return $(n)&&(n=e.CURRENCY_SYM),$(r)&&(r=e.PATTERNS[1].maxFrac),null==t?t:Rn(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function zn(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:Rn(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function Rn(t,e,n,r,i){if(w(t))return"";var o=0>t;t=Math.abs(t);var s=t===1/0;if(!s&&!isFinite(t))return"";var u=t+"",a="",c=!1,l=[];if(s&&(a="∞"),!s&&-1!==u.indexOf("e")){var f=u.match(/([\d\.]+)e(-?)(\d+)/);f&&"-"==f[2]&&f[3]>i+1?t=0:(a=u,c=!0)}if(s||c)i>0&&1>t&&(a=t.toFixed(i),t=parseFloat(a));else{var h=(u.split(ro)[1]||"").length;$(i)&&(i=Math.min(Math.max(e.minFrac,h),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+i)).toString()+"e"+-i);var p=(""+t).split(ro),d=p[0];p=p[1]||"";var g,y=0,m=e.lgSize,v=e.gSize;if(d.length>=m+v)for(y=d.length-m,g=0;y>g;g++)(y-g)%v===0&&0!==g&&(a+=n),a+=d.charAt(g);for(g=y;gt&&(r="-",t=-t),t=""+t;t.length0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),Un(o,e,r)}}function Vn(t,e){return function(n,r){var i=n["get"+t](),o=br(e?"SHORT"+t:t);return r[o][i]}}function Fn(t,e,n){var r=-1*n,i=r>=0?"+":"";return i+=Un(Math[r>0?"floor":"ceil"](r/60),2)+Un(Math.abs(r%60),2)}function Ln(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function Hn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function qn(t){return function(e){var n=Ln(e.getFullYear()),r=Hn(e),i=+r-+n,o=1+Math.round(i/6048e5);return Un(o,t)}}function Wn(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function Kn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Gn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function Xn(t){function e(t){var e;if(e=t.match(n)){var r=new Date(0),i=0,o=0,s=e[8]?r.setUTCFullYear:r.setFullYear,u=e[8]?r.setUTCHours:r.setHours;e[9]&&(i=p(e[9]+e[10]),o=p(e[9]+e[11])),s.call(r,p(e[1]),p(e[2])-1,p(e[3]));var a=p(e[4]||0)-i,c=p(e[5]||0)-o,l=p(e[6]||0),f=Math.round(1e3*parseFloat("0."+(e[7]||0)));return u.call(r,a,c,l,f),r}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var s,u,a="",c=[];if(r=r||"mediumDate",r=t.DATETIME_FORMATS[r]||r,k(n)&&(n=so.test(n)?p(n):e(n)),x(n)&&(n=new Date(n)),!S(n)||!isFinite(n.getTime()))return n;for(;r;)u=oo.exec(r),u?(c=L(c,u,1),r=c.pop()):(c.push(r),r=null);var l=n.getTimezoneOffset();return i&&(l=X(i,n.getTimezoneOffset()),n=J(n,i,!0)),o(c,function(e){s=io[e],a+=s?s(n,t.DATETIME_FORMATS,l):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),a}}function Yn(){return function(t,e){return $(e)&&(e=2),K(t,e)}}function Jn(){return function(t,e,n){return e=Math.abs(Number(e))===1/0?Number(e):p(e),isNaN(e)?t:(x(t)&&(t=t.toString()),Rr(t)||k(t)?(n=!n||isNaN(n)?0:p(n),n=0>n&&n>=-t.length?t.length+n:n,e>=0?t.slice(n,n+e):0===n?t.slice(e,t.length):t.slice(Math.max(0,n+e),n)):t)}}function Zn(t){function e(e,n){return n=n?-1:1,e.map(function(e){var r=1,i=y;if(E(e))i=e;else if(k(e)&&(("+"==e.charAt(0)||"-"==e.charAt(0))&&(r="-"==e.charAt(0)?-1:1,e=e.substring(1)),""!==e&&(i=t(e),i.constant))){var o=i();i=function(t){return t[o]}}return{get:i,descending:r*n}})}function n(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function r(t,e){return"function"==typeof t.valueOf&&(t=t.valueOf(),n(t))?t:v(t)&&(t=t.toString(),n(t))?t:e}function o(t,e){var n=typeof t;return null===t?(n="string",t="null"):"string"===n?t=t.toLowerCase():"object"===n&&(t=r(t,e)),{value:t,type:n}}function s(t,e){var n=0;return t.type===e.type?t.value!==e.value&&(n=t.valuer&&!(n=s(t.predicateValues[r],e.predicateValues[r])*c[r].descending);++r);return n}if(!i(t))return t;Rr(n)||(n=[n]),0===n.length&&(n=["+"]);var c=e(n,r),l=Array.prototype.map.call(t,u);return l.sort(a),t=l.map(function(t){return t.value})}}function Qn(t){return E(t)&&(t={link:t}),t.restrict=t.restrict||"AC",m(t)}function tr(t,e){t.$name=e}function er(t,e,r,i,s){var u=this,a=[],c=u.$$parentForm=t.parent().controller("form")||fo;u.$error={},u.$$success={},u.$pending=n,u.$name=s(e.name||e.ngForm||"")(r),u.$dirty=!1,u.$pristine=!0,u.$valid=!0,u.$invalid=!1,u.$submitted=!1,c.$addControl(u),u.$rollbackViewValue=function(){o(a,function(t){t.$rollbackViewValue()})},u.$commitViewValue=function(){o(a,function(t){t.$commitViewValue()})},u.$addControl=function(t){pt(t.$name,"input"),a.push(t),t.$name&&(u[t.$name]=t)},u.$$renameControl=function(t,e){var n=t.$name;u[n]===t&&delete u[n],u[e]=t,t.$name=e},u.$removeControl=function(t){t.$name&&u[t.$name]===t&&delete u[t.$name],o(u.$pending,function(e,n){u.$setValidity(n,null,t)}),o(u.$error,function(e,n){u.$setValidity(n,null,t)}),o(u.$$success,function(e,n){u.$setValidity(n,null,t)}),U(a,t)},yr({ctrl:this,$element:t,set:function(t,e,n){var r=t[e];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else t[e]=[n]},unset:function(t,e,n){var r=t[e];r&&(U(r,n),0===r.length&&delete t[e])},parentForm:c,$animate:i}),u.$setDirty=function(){i.removeClass(t,Go),i.addClass(t,Xo),u.$dirty=!0,u.$pristine=!1,c.$setDirty()},u.$setPristine=function(){i.setClass(t,Go,Xo+" "+ho),u.$dirty=!1,u.$pristine=!0,u.$submitted=!1,o(a,function(t){t.$setPristine()})},u.$setUntouched=function(){o(a,function(t){t.$setUntouched()})},u.$setSubmitted=function(){i.addClass(t,ho),u.$submitted=!0,c.$setSubmitted()}}function nr(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function rr(t,e,n,r,i,o){ir(t,e,n,r,i,o),nr(r)}function ir(t,e,n,r,i,o){var s=_r(e[0].type);if(!i.android){var u=!1;e.on("compositionstart",function(t){u=!0}),e.on("compositionend",function(){u=!1,a()})}var a=function(t){if(c&&(o.defer.cancel(c),c=null),!u){var i=e.val(),a=t&&t.type;"password"===s||n.ngTrim&&"false"===n.ngTrim||(i=jr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,a)}};if(i.hasEvent("input"))e.on("input",a);else{var c,l=function(t,e,n){c||(c=o.defer(function(){c=null,e&&e.value===n||a(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||l(t,this,this.value)}),i.hasEvent("paste")&&e.on("paste cut",l)}e.on("change",a),r.$render=function(){e.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function or(t,e){if(S(t))return t;if(k(t)){ko.lastIndex=0;var n=ko.exec(t);if(n){var r=+n[1],i=+n[2],o=0,s=0,u=0,a=0,c=Ln(r),l=7*(i-1);return e&&(o=e.getHours(),s=e.getMinutes(),u=e.getSeconds(),a=e.getMilliseconds()),new Date(r,0,c.getDate()+l,o,s,u,a)}}return 0/0}function sr(t,e){return function(n,r){var i,s;if(S(n))return n;if(k(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),mo.test(n))return new Date(n);if(t.lastIndex=0,i=t.exec(n))return i.shift(),s=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(t,n){n=y},u.$observe("min",function(t){y=p(t),a.$validate()})}if(_(u.max)||u.ngMax){var m;a.$validators.max=function(t){return!h(t)||$(m)||r(t)<=m},u.$observe("max",function(t){m=p(t),a.$validate()})}}}function ar(t,e,r,i){var o=e[0],s=i.$$hasNativeValidators=w(o.validity);s&&i.$parsers.push(function(t){var r=e.prop($r)||{};return r.badInput&&!r.typeMismatch?n:t})}function cr(t,e,r,i,o,s){if(ar(t,e,r,i),ir(t,e,r,i,o,s),i.$$parserName="number",i.$parsers.push(function(t){return i.$isEmpty(t)?null:_o.test(t)?parseFloat(t):n}),i.$formatters.push(function(t){if(!i.$isEmpty(t)){if(!x(t))throw Qo("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),_(r.min)||r.ngMin){var u;i.$validators.min=function(t){return i.$isEmpty(t)||$(u)||t>=u},r.$observe("min",function(t){_(t)&&!x(t)&&(t=parseFloat(t,10)),u=x(t)&&!isNaN(t)?t:n,i.$validate()})}if(_(r.max)||r.ngMax){var a;i.$validators.max=function(t){return i.$isEmpty(t)||$(a)||a>=t},r.$observe("max",function(t){_(t)&&!x(t)&&(t=parseFloat(t,10)),a=x(t)&&!isNaN(t)?t:n,i.$validate()})}}function lr(t,e,n,r,i,o){ir(t,e,n,r,i,o),nr(r),r.$$parserName="url",r.$validators.url=function(t,e){var n=t||e;return r.$isEmpty(n)||vo.test(n)}}function fr(t,e,n,r,i,o){ir(t,e,n,r,i,o),nr(r),r.$$parserName="email",r.$validators.email=function(t,e){var n=t||e;return r.$isEmpty(n)||$o.test(n)}}function hr(t,e,n,r){$(n.name)&&e.attr("name",a());var i=function(t){e[0].checked&&r.$setViewValue(n.value,t&&t.type)};e.on("click",i),r.$render=function(){var t=n.value;e[0].checked=t==r.$viewValue},n.$observe("value",r.$render)}function pr(t,e,n,i,o){var s;if(_(i)){if(s=t(i),!s.constant)throw r("ngModel")("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return s(e)}return o}function dr(t,e,n,r,i,o,s,u){var a=pr(u,t,"ngTrueValue",n.ngTrueValue,!0),c=pr(u,t,"ngFalseValue",n.ngFalseValue,!1),l=function(t){r.$setViewValue(e[0].checked,t&&t.type)};e.on("click",l),r.$render=function(){e[0].checked=r.$viewValue},r.$isEmpty=function(t){return t===!1},r.$formatters.push(function(t){return F(t,a)}),r.$parsers.push(function(t){return t?a:c})}function gr(t,e){return t="ngClass"+t,["$animate",function(n){function r(t,e){var n=[];t:for(var r=0;r0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&r.push(t))}),u.data("$classCounts",n),r.join(" ")}function h(t,e){var i=r(e,t),o=r(t,e);i=f(i,1),o=f(o,-1),i&&i.length&&n.addClass(u,i),o&&o.length&&n.removeClass(u,o)}function p(t){if(e===!0||s.$index%2===e){var n=i(t||[]);if(d){if(!F(t,d)){var r=i(d);h(r,n)}}else c(n)}d=V(t)}var d;s.$watch(a[t],p,!0),a.$observe("class",function(e){p(s.$eval(a[t]))}),"ngClass"!==t&&s.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var u=i(s.$eval(a[t]));o===e?c(u):l(u)}})}}}]}function yr(t){function e(t,e,a){e===n?r("$pending",t,a):i("$pending",t,a),M(e)?e?(f(u.$error,t,a),l(u.$$success,t,a)):(l(u.$error,t,a),f(u.$$success,t,a)):(f(u.$error,t,a),f(u.$$success,t,a)),u.$pending?(o(Zo,!0),u.$valid=u.$invalid=n,s("",null)):(o(Zo,!1),u.$valid=mr(u.$error),u.$invalid=!u.$valid,s("",u.$valid));var c;c=u.$pending&&u.$pending[t]?n:u.$error[t]?!1:u.$$success[t]?!0:null,s(t,c),h.$setValidity(t,c,u)}function r(t,e,n){u[t]||(u[t]={}),l(u[t],e,n)}function i(t,e,r){u[t]&&f(u[t],e,r),mr(u[t])&&(u[t]=n)}function o(t,e){e&&!c[t]?(p.addClass(a,t),c[t]=!0):!e&&c[t]&&(p.removeClass(a,t),c[t]=!1)}function s(t,e){t=t?"-"+ct(t,"-"):"",o(Wo+t,e===!0),o(Ko+t,e===!1)}var u=t.ctrl,a=t.$element,c={},l=t.set,f=t.unset,h=t.parentForm,p=t.$animate;c[Ko]=!(c[Wo]=a.hasClass(Wo)),u.$setValidity=e}function mr(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}var vr=/^\/(.+)\/([a-z]*)$/,$r="validity",_r=function(t){return k(t)?t.toLowerCase():t},wr=Object.prototype.hasOwnProperty,br=function(t){return k(t)?t.toUpperCase():t},kr=function(t){return k(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},xr=function(t){return k(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&(_r=kr,br=xr);var Sr,Er,Ar,Br,Cr=[].slice,Tr=[].splice,Or=[].push,Dr=Object.prototype.toString,Mr=Object.getPrototypeOf,Pr=r("ng"),Ir=t.angular||(t.angular={}),Nr=0;Sr=e.documentMode,g.$inject=[],y.$inject=[];var zr,Rr=Array.isArray,Ur=/^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/,jr=function(t){return k(t)?t.trim():t},Vr=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#n;++n)if(r=Hr[n],t=e.querySelector("["+r.replace(":","\\:")+"jq]")){i=t.getAttribute(r+"jq");break}return Lr.name_=i},Hr=["ng-","data-ng-","ng:","x-ng-"],qr=/[A-Z]/g,Wr=!1,Kr=1,Gr=2,Xr=3,Yr=8,Jr=9,Zr=11,Qr={full:"1.4.3",major:1,minor:4,dot:3,codeName:"foam-acceleration"};Bt.expando="ng339";var ti=Bt.cache={},ei=1,ni=function(t,e,n){t.addEventListener(e,n,!1)},ri=function(t,e,n){t.removeEventListener(e,n,!1)};Bt._data=function(t){return this.cache[t[this.expando]]||{}};var ii=/([\:\-\_]+(.))/g,oi=/^moz([A-Z])/,si={mouseleave:"mouseout",mouseenter:"mouseover"},ui=r("jqLite"),ai=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ci=/<|&#?\w+;/,li=/<([\w:]+)/,fi=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,hi={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};hi.optgroup=hi.option,hi.tbody=hi.tfoot=hi.colgroup=hi.caption=hi.thead,hi.th=hi.td;var pi=Bt.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===e.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),Bt(t).on("load",r))},toString:function(){var t=[];return o(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return Er(t>=0?this[t]:this[this.length+t])},length:0,push:Or,sort:[].sort,splice:[].splice},di={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){di[_r(t)]=t});var gi={};o("input,select,option,textarea,button,form,details".split(","),function(t){gi[t]=!0});var yi={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:Pt,removeData:Dt,hasData:St},function(t,e){Bt[e]=t}),o({data:Pt,inheritedData:jt,scope:function(t){return Er.data(t,"$scope")||jt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return Er.data(t,"$isolateScope")||Er.data(t,"$isolateScopeNoTemplate")},controller:Ut,injector:function(t){return jt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:It,css:function(t,e,n){return e=bt(e),_(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,r){var i=t.nodeType;if(i!==Xr&&i!==Gr&&i!==Yr){var o=_r(e);if(di[o]){if(!_(r))return t[e]||(t.attributes.getNamedItem(e)||g).specified?o:n;r?(t[e]=!0, +t.setAttribute(e,o)):(t[e]=!1,t.removeAttribute(o))}else if(_(r))t.setAttribute(e,r);else if(t.getAttribute){var s=t.getAttribute(e,2);return null===s?n:s}}},prop:function(t,e,n){return _(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if($(e)){var n=t.nodeType;return n===Kr||n===Xr?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if($(e)){if(t.multiple&&"select"===R(t)){var n=[];return o(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return $(e)?t.innerHTML:(Tt(t,!0),void(t.innerHTML=e))},empty:Vt},function(t,e){Bt.prototype[e]=function(e,r){var i,o,s=this.length;if(t!==Vt&&(2==t.length&&t!==It&&t!==Ut?e:r)===n){if(w(e)){for(i=0;s>i;i++)if(t===Pt)t(this[i],e);else for(o in e)t(this[i],o,e[o]);return this}for(var u=t.$dv,a=u===n?Math.min(s,1):s,c=0;a>c;c++){var l=t(this[c],e,r);u=u?u+l:l}return u}for(i=0;s>i;i++)t(this[i],e,r);return this}}),o({removeData:Dt,on:function Cs(t,e,n,r){if(_(r))throw ui("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(xt(t)){var i=Mt(t,!0),o=i.events,s=i.handle;s||(s=i.handle=Wt(t,o));for(var u=e.indexOf(" ")>=0?e.split(" "):[e],a=u.length;a--;){e=u[a];var c=o[e];c||(o[e]=[],"mouseenter"===e||"mouseleave"===e?Cs(t,si[e],function(t){var n=this,r=t.relatedTarget;(!r||r!==n&&!n.contains(r))&&s(t,e)}):"$destroy"!==e&&ni(t,e,s),c=o[e]),c.push(n)}}},off:Ot,one:function(t,e,n){t=Er(t),t.on(e,function r(){t.off(e,n),t.off(e,r)}),t.on(e,n)},replaceWith:function(t,e){var n,r=t.parentNode;Tt(t),o(new Bt(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(t){var e=[];return o(t.childNodes,function(t){t.nodeType===Kr&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===Kr||n===Zr){e=new Bt(e);for(var r=0,i=e.length;i>r;r++){var o=e[r];t.appendChild(o)}}},prepend:function(t,e){if(t.nodeType===Kr){var n=t.firstChild;o(new Bt(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=Er(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Ft,detach:function(t){Ft(t,!0)},after:function(t,e){var n=t,r=t.parentNode;e=new Bt(e);for(var i=0,o=e.length;o>i;i++){var s=e[i];r.insertBefore(s,n.nextSibling),n=s}},addClass:zt,removeClass:Nt,toggleClass:function(t,e,n){e&&o(e.split(" "),function(e){var r=n;$(r)&&(r=!It(t,e)),(r?zt:Nt)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Zr?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:Ct,triggerHandler:function(t,e,n){var r,i,s,u=e.type||e,a=Mt(t),c=a&&a.events,l=c&&c[u];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:g,type:u,target:t},e.type&&(r=f(r,e)),i=V(l),s=n?[r].concat(n):[r],o(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,s)}))}},function(t,e){Bt.prototype[e]=function(e,n,r){for(var i,o=0,s=this.length;s>o;o++)$(i)?(i=t(this[o],e,n,r),_(i)&&(i=Er(i))):Rt(i,t(this[o],e,n,r));return _(i)?i:this},Bt.prototype.bind=Bt.prototype.on,Bt.prototype.unbind=Bt.prototype.off}),Xt.prototype={put:function(t,e){this[Gt(t,this.nextUid)]=e},get:function(t){return this[Gt(t,this.nextUid)]},remove:function(t){var e=this[t=Gt(t,this.nextUid)];return delete this[t],e}};var mi=[function(){this.$get=[function(){return Xt}]}],vi=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,$i=/,/,_i=/^\s*(_?)(\S+?)\1\s*$/,wi=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,bi=r("$injector");Zt.$$annotate=Jt;var ki=r("$animate"),xi=1,Si="ng-animate",Ei=function(){this.$get=["$q","$$rAF",function(t,e){function n(){}return n.all=g,n.chain=g,n.prototype={end:g,cancel:g,resume:g,pause:g,complete:g,then:function(n,r){return t(function(t){e(function(){t()})}).then(n,r)}},n}]},Ai=function(){var t=new Xt,e=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){function i(n,i,s){var u=t.get(n);u||(t.put(n,u={}),e.push(n)),i&&o(i.split(" "),function(t){t&&(u[t]=!0)}),s&&o(s.split(" "),function(t){t&&(u[t]=!1)}),e.length>1||r.$$postDigest(function(){o(e,function(e){var n=t.get(e);if(n){var r=ne(e.attr("class")),i="",s="";o(n,function(t,e){var n=!!r[e];t!==n&&(t?i+=(i.length?" ":"")+e:s+=(s.length?" ":"")+e)}),o(e,function(t){i&&zt(t,i),s&&Nt(t,s)}),t.remove(e)}}),e.length=0})}return{enabled:g,on:g,off:g,pin:g,push:function(t,e,r,o){return o&&o(),r=r||{},r.from&&t.css(r.from),r.to&&t.css(r.to),(r.addClass||r.removeClass)&&i(t,r.addClass,r.removeClass),new n}}}]},Bi=["$provide",function(t){var e=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&"."!==n.charAt(0))throw ki("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";e.$$registeredAnimations[n.substr(1)]=i,t.factory(i,r)},this.classNameFilter=function(t){if(1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null,this.$$classNameFilter)){var e=new RegExp("(\\s+|\\/)"+Si+"(\\s+|\\/)");if(e.test(this.$$classNameFilter.toString()))throw ki("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Si)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(t){function e(t,e,n){if(n){var r=ee(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(t):e.prepend(t)}return{on:t.on,off:t.off,pin:t.pin,enabled:t.enabled,cancel:function(t){t.end&&t.end()},enter:function(n,r,i,o){return r=r&&Er(r),i=i&&Er(i),r=r||i.parent(),e(n,r,i),t.push(n,"enter",re(o))},move:function(n,r,i,o){return r=r&&Er(r),i=i&&Er(i),r=r||i.parent(),e(n,r,i),t.push(n,"move",re(o))},leave:function(e,n){return t.push(e,"leave",re(n),function(){e.remove()})},addClass:function(e,n,r){return r=re(r),r.addClass=te(r.addclass,n),t.push(e,"addClass",r)},removeClass:function(e,n,r){return r=re(r),r.removeClass=te(r.removeClass,n),t.push(e,"removeClass",r)},setClass:function(e,n,r,i){return i=re(i),i.addClass=te(i.addClass,n),i.removeClass=te(i.removeClass,r),t.push(e,"setClass",i)},animate:function(e,n,r,i,o){return o=re(o),o.from=o.from?f(o.from,n):n,o.to=o.to?f(o.to,r):r,i=i||"ng-inline-animate",o.tempClasses=te(o.tempClasses,i),t.push(e,"animate",o)}}}]}],Ci=r("$compile");ae.$inject=["$provide","$$sanitizeUriProvider"];var Ti=/^((?:x|data)[\:\-_])/i,Oi=r("$controller"),Di=/^(\S+)(\s+as\s+(\w+))?$/,Mi="application/json",Pi={"Content-Type":Mi+";charset=utf-8"},Ii=/^\[|^\{(?!\{)/,Ni={"[":/]$/,"{":/}$/},zi=/^\)\]\}',?\n/,Ri=Ir.$interpolateMinErr=r("$interpolate");Ri.throwNoconcat=function(t){throw Ri("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",t)},Ri.interr=function(t,e){return Ri("interr","Can't interpolate: {0}\n{1}",t,e.toString())};var Ui=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,ji={http:80,https:443,ftp:21},Vi=r("$location"),Fi={$$html5:!1,$$replace:!1,absUrl:Le("$$absUrl"),url:function(t){if($(t))return this.$$url;var e=Ui.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Le("$$protocol"),host:Le("$$host"),port:Le("$$port"),path:He("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(k(t)||x(t))t=t.toString(),this.$$search=tt(t);else{if(!w(t))throw Vi("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=j(t,{}),o(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:$(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:He("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Fe,Ve,je],function(t){t.prototype=Object.create(Fi),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==je||!this.$$html5)throw Vi("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=$(e)?null:e,this}});var Li=r("$parse"),Hi=Function.prototype.call,qi=Function.prototype.apply,Wi=Function.prototype.bind,Ki=yt();o("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(t){Ki[t]=!0});var Gi={n:"\n",f:"\f",r:"\r",t:" ",v:" ","'":"'",'"':'"'},Xi=function(t){this.options=t};Xi.prototype={constructor:Xi,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||" "===t||"\n"===t||" "===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var r=_(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw Li("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,r,this.text)},readNumber:function(){for(var t="",e=this.index;this.index0&&!this.peek("}",")",";","]")&&t.push(this.expressionStatement()),!this.expect(";"))return{type:Yi.Program,body:t}},expressionStatement:function(){return{type:Yi.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var t=this.ternary();return this.expect("=")&&(t={type:Yi.AssignmentExpression,left:t,right:this.assignment(),operator:"="}),t},ternary:function(){var t,e,n=this.logicalOR();return this.expect("?")&&(t=this.expression(),this.consume(":"))?(e=this.expression(),{type:Yi.ConditionalExpression,test:n,alternate:t,consequent:e}):n},logicalOR:function(){for(var t=this.logicalAND();this.expect("||");)t={type:Yi.LogicalExpression,operator:"||",left:t,right:this.logicalAND()};return t},logicalAND:function(){for(var t=this.equality();this.expect("&&");)t={type:Yi.LogicalExpression,operator:"&&",left:t,right:this.equality()};return t},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e={type:Yi.BinaryExpression,operator:t.text,left:e,right:this.relational()};return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e={type:Yi.BinaryExpression,operator:t.text,left:e,right:this.additive()};return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e={type:Yi.BinaryExpression,operator:t.text,left:e,right:this.multiplicative()};return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e={type:Yi.BinaryExpression,operator:t.text,left:e,right:this.unary()};return e},unary:function(){var t;return(t=this.expect("+","-","!"))?{type:Yi.UnaryExpression,operator:t.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.constants.hasOwnProperty(this.peek().text)?t=j(this.constants[this.consume().text]):this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e;e=this.expect("(","[",".");)"("===e.text?(t={type:Yi.CallExpression,callee:t,arguments:this.parseArguments()},this.consume(")")):"["===e.text?(t={type:Yi.MemberExpression,object:t,property:this.expression(),computed:!0},this.consume("]")):"."===e.text?t={type:Yi.MemberExpression,object:t,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return t},filter:function(t){for(var e=[t],n={type:Yi.CallExpression,callee:this.identifier(),arguments:e,filter:!0};this.expect(":");)e.push(this.expression());return n},parseArguments:function(){var t=[];if(")"!==this.peekToken().text)do t.push(this.expression());while(this.expect(","));return t},identifier:function(){var t=this.consume();return t.identifier||this.throwError("is not a valid identifier",t),{type:Yi.Identifier,name:t.text}},constant:function(){return{type:Yi.Literal,value:this.consume().value}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Yi.ArrayExpression,elements:t}},object:function(){var t,e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;t={type:Yi.Property,kind:"init"},this.peek().constant?t.key=this.constant():this.peek().identifier?t.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),t.value=this.expression(),e.push(t)}while(this.expect(","));return this.consume("}"),{type:Yi.ObjectExpression,properties:e}},throwError:function(t,e){throw Li("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},consume:function(t){if(0===this.tokens.length)throw Li("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},peekToken:function(){if(0===this.tokens.length)throw Li("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,r){return this.peekAhead(0,t,e,n,r)},peekAhead:function(t,e,n,r,i){if(this.tokens.length>t){var o=this.tokens[t],s=o.text;if(s===e||s===n||s===r||s===i||!e&&!n&&!r&&!i)return o}return!1},expect:function(t,e,n,r){var i=this.peek(t,e,n,r);return i?(this.tokens.shift(),i):!1},constants:{"true":{type:Yi.Literal,value:!0},"false":{type:Yi.Literal,value:!1},"null":{type:Yi.Literal,value:null},undefined:{type:Yi.Literal,value:n},"this":{type:Yi.ThisExpression}}},sn.prototype={compile:function(t,e){var r=this,i=this.astBuilder.ast(t);this.state={nextId:0,filters:{},expensiveChecks:e,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Qe(i,r.$filter);var s,u="";if(this.stage="assign",s=nn(i)){this.state.computing="assign";var a=this.nextId();this.recurse(s,a),u="fn.assign="+this.generateFunction("assign","s,v,l")}var c=tn(i.body);r.stage="inputs",o(c,function(t,e){var n="fn"+e;r.state[n]={vars:[],body:[],own:{}},r.state.computing=n;var i=r.nextId();r.recurse(t,i),r.return_(i),r.state.inputs.push(n),t.watchId=e}),this.state.computing="fn",this.stage="main",this.recurse(i);var l='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+u+this.watchFns()+"return fn;",f=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","ifDefined","plus","text",l)(this.$filter,Ke,Ge,Xe,Ye,Je,t);return this.state=this.stage=n,f.literal=rn(i),f.constant=on(i),f},USE:"use",STRICT:"strict",watchFns:function(){var t=[],e=this.state.inputs,n=this;return o(e,function(e){t.push("var "+e+"="+n.generateFunction(e,"s"))}),e.length&&t.push("fn.inputs=["+e.join(",")+"];"),t.join("")},generateFunction:function(t,e){return"function("+e+"){"+this.varsPrefix(t)+this.body(t)+"};"},filterPrefix:function(){var t=[],e=this;return o(this.state.filters,function(n,r){t.push(n+"=$filter("+e.escape(r)+")")}),t.length?"var "+t.join(",")+";":""},varsPrefix:function(t){return this.state[t].vars.length?"var "+this.state[t].vars.join(",")+";":""},body:function(t){return this.state[t].body.join("")},recurse:function(t,e,r,i,s,u){var a,c,l,f,h=this;if(i=i||g,!u&&_(t.watchId))return e=e||this.nextId(),void this.if_("i",this.lazyAssign(e,this.computedMember("i",t.watchId)),this.lazyRecurse(t,e,r,i,s,!0));switch(t.type){case Yi.Program:o(t.body,function(e,r){h.recurse(e.expression,n,n,function(t){c=t}),r!==t.body.length-1?h.current().body.push(c,";"):h.return_(c)});break;case Yi.Literal:f=this.escape(t.value),this.assign(e,f),i(f);break;case Yi.UnaryExpression:this.recurse(t.argument,n,n,function(t){c=t}),f=t.operator+"("+this.ifDefined(c,0)+")",this.assign(e,f),i(f);break;case Yi.BinaryExpression:this.recurse(t.left,n,n,function(t){a=t}),this.recurse(t.right,n,n,function(t){c=t}),f="+"===t.operator?this.plus(a,c):"-"===t.operator?this.ifDefined(a,0)+t.operator+this.ifDefined(c,0):"("+a+")"+t.operator+"("+c+")",this.assign(e,f),i(f);break;case Yi.LogicalExpression:e=e||this.nextId(),h.recurse(t.left,e),h.if_("&&"===t.operator?e:h.not(e),h.lazyRecurse(t.right,e)),i(e);break;case Yi.ConditionalExpression:e=e||this.nextId(),h.recurse(t.test,e),h.if_(e,h.lazyRecurse(t.alternate,e),h.lazyRecurse(t.consequent,e)),i(e);break;case Yi.Identifier:e=e||this.nextId(),r&&(r.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",t.name)+"?l:s"),r.computed=!1,r.name=t.name),Ke(t.name),h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",t.name)),function(){h.if_("inputs"===h.stage||"s",function(){s&&1!==s&&h.if_(h.not(h.nonComputedMember("s",t.name)),h.lazyAssign(h.nonComputedMember("s",t.name),"{}")),h.assign(e,h.nonComputedMember("s",t.name))})},e&&h.lazyAssign(e,h.nonComputedMember("l",t.name))),(h.state.expensiveChecks||cn(t.name))&&h.addEnsureSafeObject(e),i(e);break;case Yi.MemberExpression:a=r&&(r.context=this.nextId())||this.nextId(),e=e||this.nextId(),h.recurse(t.object,a,n,function(){h.if_(h.notNull(a),function(){t.computed?(c=h.nextId(),h.recurse(t.property,c),h.addEnsureSafeMemberName(c),s&&1!==s&&h.if_(h.not(h.computedMember(a,c)),h.lazyAssign(h.computedMember(a,c),"{}")),f=h.ensureSafeObject(h.computedMember(a,c)),h.assign(e,f),r&&(r.computed=!0,r.name=c)):(Ke(t.property.name),s&&1!==s&&h.if_(h.not(h.nonComputedMember(a,t.property.name)),h.lazyAssign(h.nonComputedMember(a,t.property.name),"{}")),f=h.nonComputedMember(a,t.property.name),(h.state.expensiveChecks||cn(t.property.name))&&(f=h.ensureSafeObject(f)),h.assign(e,f),r&&(r.computed=!1,r.name=t.property.name))},function(){h.assign(e,"undefined")}),i(e)},!!s);break;case Yi.CallExpression:e=e||this.nextId(),t.filter?(c=h.filter(t.callee.name),l=[],o(t.arguments,function(t){var e=h.nextId();h.recurse(t,e),l.push(e)}),f=c+"("+l.join(",")+")",h.assign(e,f),i(e)):(c=h.nextId(),a={},l=[],h.recurse(t.callee,c,a,function(){h.if_(h.notNull(c),function(){h.addEnsureSafeFunction(c),o(t.arguments,function(t){h.recurse(t,h.nextId(),n,function(t){l.push(h.ensureSafeObject(t))})}),a.name?(h.state.expensiveChecks||h.addEnsureSafeObject(a.context),f=h.member(a.context,a.name,a.computed)+"("+l.join(",")+")"):f=c+"("+l.join(",")+")",f=h.ensureSafeObject(f),h.assign(e,f)},function(){h.assign(e,"undefined")}),i(e)}));break;case Yi.AssignmentExpression:if(c=this.nextId(),a={},!en(t.left))throw Li("lval","Trying to assing a value to a non l-value");this.recurse(t.left,n,a,function(){h.if_(h.notNull(a.context),function(){h.recurse(t.right,c),h.addEnsureSafeObject(h.member(a.context,a.name,a.computed)),f=h.member(a.context,a.name,a.computed)+t.operator+c,h.assign(e,f),i(e||f)})},1);break;case Yi.ArrayExpression:l=[],o(t.elements,function(t){h.recurse(t,h.nextId(),n,function(t){l.push(t)})}),f="["+l.join(",")+"]",this.assign(e,f),i(f);break;case Yi.ObjectExpression:l=[],o(t.properties,function(t){h.recurse(t.value,h.nextId(),n,function(e){l.push(h.escape(t.key.type===Yi.Identifier?t.key.name:""+t.key.value)+":"+e)})}),f="{"+l.join(",")+"}",this.assign(e,f),i(f);break;case Yi.ThisExpression:this.assign(e,"s"),i("s");break;case Yi.NGValueParameter:this.assign(e,"v"),i("v")}},getHasOwnProperty:function(t,e){var n=t+"."+e,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,t+"&&("+this.escape(e)+" in "+t+")")),r[n]},assign:function(t,e){return t?(this.current().body.push(t,"=",e,";"),t):void 0},filter:function(t){return this.state.filters.hasOwnProperty(t)||(this.state.filters[t]=this.nextId(!0)),this.state.filters[t]},ifDefined:function(t,e){return"ifDefined("+t+","+this.escape(e)+")"},plus:function(t,e){return"plus("+t+","+e+")"},return_:function(t){this.current().body.push("return ",t,";")},if_:function(t,e,n){if(t===!0)e();else{var r=this.current().body;r.push("if(",t,"){"),e(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(t){return"!("+t+")"},notNull:function(t){return t+"!=null"},nonComputedMember:function(t,e){return t+"."+e},computedMember:function(t,e){return t+"["+e+"]"},member:function(t,e,n){return n?this.computedMember(t,e):this.nonComputedMember(t,e)},addEnsureSafeObject:function(t){this.current().body.push(this.ensureSafeObject(t),";")},addEnsureSafeMemberName:function(t){this.current().body.push(this.ensureSafeMemberName(t),";")},addEnsureSafeFunction:function(t){this.current().body.push(this.ensureSafeFunction(t),";")},ensureSafeObject:function(t){return"ensureSafeObject("+t+",text)"},ensureSafeMemberName:function(t){return"ensureSafeMemberName("+t+",text)"},ensureSafeFunction:function(t){return"ensureSafeFunction("+t+",text)"},lazyRecurse:function(t,e,n,r,i,o){var s=this;return function(){s.recurse(t,e,n,r,i,o)}},lazyAssign:function(t,e){var n=this;return function(){n.assign(t,e)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)},escape:function(t){if(k(t))return"'"+t.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(x(t))return t.toString();if(t===!0)return"true";if(t===!1)return"false";if(null===t)return"null";if("undefined"==typeof t)return"undefined";throw Li("esc","IMPOSSIBLE")},nextId:function(t,e){var n="v"+this.state.nextId++;return t||this.current().vars.push(n+(e?"="+e:"")),n},current:function(){return this.state[this.state.computing]}},un.prototype={compile:function(t,e){var n=this,r=this.astBuilder.ast(t);this.expression=t,this.expensiveChecks=e,Qe(r,n.$filter);var i,s;(i=nn(r))&&(s=this.recurse(i));var u,a=tn(r.body);a&&(u=[],o(a,function(t,e){var r=n.recurse(t);t.input=r,u.push(r),t.watchId=e}));var c=[];o(r.body,function(t){c.push(n.recurse(t.expression))});var l=0===r.body.length?function(){}:1===r.body.length?c[0]:function(t,e){var n;return o(c,function(r){n=r(t,e)}),n};return s&&(l.assign=function(t,e,n){return s(t,n,e)}),u&&(l.inputs=u),l.literal=rn(r),l.constant=on(r),l},recurse:function(t,e,r){var i,s,u,a=this;if(t.input)return this.inputs(t.input,t.watchId);switch(t.type){case Yi.Literal:return this.value(t.value,e);case Yi.UnaryExpression:return s=this.recurse(t.argument),this["unary"+t.operator](s,e);case Yi.BinaryExpression:return i=this.recurse(t.left),s=this.recurse(t.right),this["binary"+t.operator](i,s,e);case Yi.LogicalExpression:return i=this.recurse(t.left),s=this.recurse(t.right),this["binary"+t.operator](i,s,e);case Yi.ConditionalExpression:return this["ternary?:"](this.recurse(t.test),this.recurse(t.alternate),this.recurse(t.consequent),e);case Yi.Identifier:return Ke(t.name,a.expression),a.identifier(t.name,a.expensiveChecks||cn(t.name),e,r,a.expression);case Yi.MemberExpression:return i=this.recurse(t.object,!1,!!r),t.computed||(Ke(t.property.name,a.expression),s=t.property.name),t.computed&&(s=this.recurse(t.property)),t.computed?this.computedMember(i,s,e,r,a.expression):this.nonComputedMember(i,s,a.expensiveChecks,e,r,a.expression);case Yi.CallExpression:return u=[],o(t.arguments,function(t){u.push(a.recurse(t))}),t.filter&&(s=this.$filter(t.callee.name)),t.filter||(s=this.recurse(t.callee,!0)),t.filter?function(t,r,i,o){for(var a=[],c=0;c":function(t,e,n){return function(r,i,o,s){var u=t(r,i,o,s)>e(r,i,o,s);return n?{value:u}:u}},"binary<=":function(t,e,n){return function(r,i,o,s){var u=t(r,i,o,s)<=e(r,i,o,s);return n?{value:u}:u}},"binary>=":function(t,e,n){return function(r,i,o,s){var u=t(r,i,o,s)>=e(r,i,o,s);return n?{value:u}:u}},"binary&&":function(t,e,n){return function(r,i,o,s){var u=t(r,i,o,s)&&e(r,i,o,s);return n?{value:u}:u}},"binary||":function(t,e,n){return function(r,i,o,s){var u=t(r,i,o,s)||e(r,i,o,s);return n?{value:u}:u}},"ternary?:":function(t,e,n,r){return function(i,o,s,u){var a=t(i,o,s,u)?e(i,o,s,u):n(i,o,s,u);return r?{value:a}:a}},value:function(t,e){return function(){return e?{context:n,name:n,value:t}:t}},identifier:function(t,e,r,i,o){return function(s,u,a,c){var l=u&&t in u?u:s;i&&1!==i&&l&&!l[t]&&(l[t]={});var f=l?l[t]:n;return e&&Ge(f,o),r?{context:l,name:t,value:f}:f}},computedMember:function(t,e,n,r,i){return function(o,s,u,a){var c,l,f=t(o,s,u,a);return null!=f&&(c=e(o,s,u,a),Ke(c,i),r&&1!==r&&f&&!f[c]&&(f[c]={}),l=f[c],Ge(l,i)),n?{context:f,name:c,value:l}:l}},nonComputedMember:function(t,e,r,i,o,s){return function(u,a,c,l){var f=t(u,a,c,l);o&&1!==o&&f&&!f[e]&&(f[e]={});var h=null!=f?f[e]:n;return(r||cn(e))&&Ge(h,s),i?{context:f,name:e,value:h}:h}},inputs:function(t,e){return function(n,r,i,o){return o?o[e]:t(n,r,i)}}};var Ji=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n,this.ast=new Yi(this.lexer),this.astCompiler=n.csp?new un(this.ast,e):new sn(this.ast,e)};Ji.prototype={constructor:Ji,parse:function(t){return this.astCompiler.compile(t,this.options.expensiveChecks)}};var Zi=(yt(),yt(),Object.prototype.valueOf),Qi=r("$sce"),to={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Ci=r("$compile"),eo=e.createElement("a"),no=En(t.location.href);Cn.$inject=["$document"],On.$inject=["$provide"],Nn.$inject=["$locale"],zn.$inject=["$locale"];var ro=".",io={yyyy:jn("FullYear",4),yy:jn("FullYear",2,0,!0),y:jn("FullYear",1),MMMM:Vn("Month"),MMM:Vn("Month",!0),MM:jn("Month",2,1),M:jn("Month",1,1),dd:jn("Date",2),d:jn("Date",1),HH:jn("Hours",2),H:jn("Hours",1),hh:jn("Hours",2,-12),h:jn("Hours",1,-12),mm:jn("Minutes",2),m:jn("Minutes",1),ss:jn("Seconds",2),s:jn("Seconds",1),sss:jn("Milliseconds",3),EEEE:Vn("Day"),EEE:Vn("Day",!0),a:Wn,Z:Fn,ww:qn(2),w:qn(1),G:Kn,GG:Kn,GGG:Kn,GGGG:Gn},oo=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,so=/^\-?\d+$/;Xn.$inject=["$locale"];var uo=m(_r),ao=m(br);Zn.$inject=["$parse"];var co=m({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Dr.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),lo={};o(di,function(t,e){function n(t,n,i){t.$watch(i[r],function(t){i.$set(e,!!t)})}if("multiple"!=t){var r=ce("ng-"+e),i=n;"checked"===t&&(i=function(t,e,i){i.ngModel!==i[r]&&n(t,e,i); + +}),lo[r]=function(){return{restrict:"A",priority:100,link:i}}}}),o(yi,function(t,e){lo[e]=function(){return{priority:100,link:function(t,n,r){if("ngPattern"===e&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(vr);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}t.$watch(r[e],function(t){r.$set(e,t)})}}}}),o(["src","srcset","href"],function(t){var e=ce("ng-"+t);lo[e]=function(){return{priority:99,link:function(n,r,i){var o=t,s=t;"href"===t&&"[object SVGAnimatedString]"===Dr.call(r.prop("href"))&&(s="xlinkHref",i.$attr[s]="xlink:href",o=null),i.$observe(e,function(e){return e?(i.$set(s,e),void(Sr&&o&&r.prop(o,i[s]))):void("href"===t&&i.$set(s,null))})}}}});var fo={$addControl:g,$$renameControl:tr,$removeControl:g,$setValidity:g,$setDirty:g,$setPristine:g,$setSubmitted:g},ho="ng-submitted";er.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var po=function(t){return["$timeout",function(e){var r={name:"form",restrict:t?"EAC":"E",controller:er,compile:function(r,i){r.addClass(Go).addClass(Wo);var o=i.name?"name":t&&i.ngForm?"ngForm":!1;return{pre:function(t,r,i,s){if(!("action"in i)){var u=function(e){t.$apply(function(){s.$commitViewValue(),s.$setSubmitted()}),e.preventDefault()};ni(r[0],"submit",u),r.on("$destroy",function(){e(function(){ri(r[0],"submit",u)},0,!1)})}var a=s.$$parentForm;o&&(an(t,s.$name,s,s.$name),i.$observe(o,function(e){s.$name!==e&&(an(t,s.$name,n,s.$name),a.$$renameControl(s,e),an(t,s.$name,s,s.$name))})),r.on("$destroy",function(){a.$removeControl(s),o&&an(t,i[o],n,s.$name),f(s,fo)})}}}};return r}]},go=po(),yo=po(!0),mo=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,vo=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,$o=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,_o=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,wo=/^(\d{4})-(\d{2})-(\d{2})$/,bo=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ko=/^(\d{4})-W(\d\d)$/,xo=/^(\d{4})-(\d\d)$/,So=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Eo={text:rr,date:ur("date",wo,sr(wo,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ur("datetimelocal",bo,sr(bo,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ur("time",So,sr(So,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ur("week",ko,or,"yyyy-Www"),month:ur("month",xo,sr(xo,["yyyy","MM"]),"yyyy-MM"),number:cr,url:lr,email:fr,radio:hr,checkbox:dr,hidden:g,button:g,submit:g,reset:g,file:g},Ao=["$browser","$sniffer","$filter","$parse",function(t,e,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,s,u){u[0]&&(Eo[_r(s.type)]||Eo.text)(i,o,s,u[0],e,t,n,r)}}}}],Bo=/^(true|false|\d+)$/,Co=function(){return{restrict:"A",priority:100,compile:function(t,e){return Bo.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},To=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,r,i){t.$$addBindingInfo(r,i.ngBind),r=r[0],e.$watch(i.ngBind,function(t){r.textContent=t===n?"":t})}}}}],Oo=["$interpolate","$compile",function(t,e){return{compile:function(r){return e.$$addBindingClass(r),function(r,i,o){var s=t(i.attr(o.$attr.ngBindTemplate));e.$$addBindingInfo(i,s.expressions),i=i[0],o.$observe("ngBindTemplate",function(t){i.textContent=t===n?"":t})}}}}],Do=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(r,i){var o=e(i.ngBindHtml),s=e(i.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(r),function(e,r,i){n.$$addBindingInfo(r,i.ngBindHtml),e.$watch(s,function(){r.html(t.getTrustedHtml(o(e))||"")})}}}}],Mo=m({restrict:"A",require:"ngModel",link:function(t,e,n,r){r.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),Po=gr("",!0),Io=gr("Odd",0),No=gr("Even",1),zo=Qn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),Ro=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Uo={},jo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=ce("ng-"+t);Uo[e]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var s=n(o[e],null,!0);return function(e,n){n.on(t,function(n){var i=function(){s(e,{$event:n})};jo[t]&&r.$$phase?e.$evalAsync(i):e.$apply(i)})}}}}]});var Vo=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,s){var u,a,c;n.$watch(i.ngIf,function(n){n?a||s(function(n,o){a=o,n[n.length++]=e.createComment(" end ngIf: "+i.ngIf+" "),u={clone:n},t.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),a&&(a.$destroy(),a=null),u&&(c=gt(u.clone),t.leave(c).then(function(){c=null}),u=null))})}}}],Fo=["$templateRequest","$anchorScroll","$animate",function(t,e,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ir.noop,compile:function(r,i){var o=i.ngInclude||i.src,s=i.onload||"",u=i.autoscroll;return function(r,i,a,c,l){var f,h,p,d=0,g=function(){h&&(h.remove(),h=null),f&&(f.$destroy(),f=null),p&&(n.leave(p).then(function(){h=null}),h=p,p=null)};r.$watch(o,function(o){var a=function(){!_(u)||u&&!r.$eval(u)||e()},h=++d;o?(t(o,!0).then(function(t){if(h===d){var e=r.$new();c.template=t;var u=l(e,function(t){g(),n.enter(t,null,i).then(a)});f=e,p=u,f.$emit("$includeContentLoaded",o),r.$eval(s)}},function(){h===d&&(g(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(g(),c.template=null)})}}}}],Lo=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void t(Et(o.template,e).childNodes)(n,function(t){r.append(t)},{futureParentElement:r})):(r.html(o.template),void t(r.contents())(n))}}}],Ho=Qn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),qo=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,r,i){var s=e.attr(r.$attr.ngList)||", ",u="false"!==r.ngTrim,a=u?jr(s):s,c=function(t){if(!$(t)){var e=[];return t&&o(t.split(a),function(t){t&&e.push(u?jr(t):t)}),e}};i.$parsers.push(c),i.$formatters.push(function(t){return Rr(t)?t.join(s):n}),i.$isEmpty=function(t){return!t||!t.length}}}},Wo="ng-valid",Ko="ng-invalid",Go="ng-pristine",Xo="ng-dirty",Yo="ng-untouched",Jo="ng-touched",Zo="ng-pending",Qo=new r("ngModel"),ts=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,r,i,s,u,a,c,l,f){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=f(r.name||"",!1)(t);var h,p=s(r.ngModel),d=p.assign,y=p,m=d,v=null,w=this;this.$$setOptions=function(t){if(w.$options=t,t&&t.getterSetter){var e=s(r.ngModel+"()"),n=s(r.ngModel+"($$$p)");y=function(t){var n=p(t);return E(n)&&(n=e(t)),n},m=function(t,e){E(p(t))?n(t,{$$$p:w.$modelValue}):d(t,w.$modelValue)}}else if(!p.assign)throw Qo("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,Z(i))},this.$render=g,this.$isEmpty=function(t){return $(t)||""===t||null===t||t!==t};var b=i.inheritedData("$formController")||fo,k=0;yr({ctrl:this,$element:i,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:b,$animate:u}),this.$setPristine=function(){w.$dirty=!1,w.$pristine=!0,u.removeClass(i,Xo),u.addClass(i,Go)},this.$setDirty=function(){w.$dirty=!0,w.$pristine=!1,u.removeClass(i,Go),u.addClass(i,Xo),b.$setDirty()},this.$setUntouched=function(){w.$touched=!1,w.$untouched=!0,u.setClass(i,Yo,Jo)},this.$setTouched=function(){w.$touched=!0,w.$untouched=!1,u.setClass(i,Jo,Yo)},this.$rollbackViewValue=function(){a.cancel(v),w.$viewValue=w.$$lastCommittedViewValue,w.$render()},this.$validate=function(){if(!x(w.$modelValue)||!isNaN(w.$modelValue)){var t=w.$$lastCommittedViewValue,e=w.$$rawModelValue,r=w.$valid,i=w.$modelValue,o=w.$options&&w.$options.allowInvalid;w.$$runValidators(e,t,function(t){o||r===t||(w.$modelValue=t?e:n,w.$modelValue!==i&&w.$$writeModelToScope())})}},this.$$runValidators=function(t,e,r){function i(){var t=w.$$parserName||"parse";return h!==n?(h||(o(w.$validators,function(t,e){a(e,null)}),o(w.$asyncValidators,function(t,e){a(e,null)})),a(t,h),h):(a(t,null),!0)}function s(){var n=!0;return o(w.$validators,function(r,i){var o=r(t,e);n=n&&o,a(i,o)}),n?!0:(o(w.$asyncValidators,function(t,e){a(e,null)}),!1)}function u(){var r=[],i=!0;o(w.$asyncValidators,function(o,s){var u=o(t,e);if(!P(u))throw Qo("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",u);a(s,n),r.push(u.then(function(){a(s,!0)},function(t){i=!1,a(s,!1)}))}),r.length?l.all(r).then(function(){c(i)},g):c(!0)}function a(t,e){f===k&&w.$setValidity(t,e)}function c(t){f===k&&r(t)}k++;var f=k;return i()&&s()?void u():void c(!1)},this.$commitViewValue=function(){var t=w.$viewValue;a.cancel(v),(w.$$lastCommittedViewValue!==t||""===t&&w.$$hasNativeValidators)&&(w.$$lastCommittedViewValue=t,w.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){w.$modelValue!==s&&w.$$writeModelToScope()}var r=w.$$lastCommittedViewValue,i=r;if(h=$(i)?n:!0)for(var o=0;oo;o++){var a=t===n?o:n[o],c=(t[a],k(t[a],a)),l=y(t[a],c);if(e.push(l),u[2]||u[1]){var f=v(r,c);e.push(f)}if(u[4]){var h=_(r,c);e.push(h)}}return e}),getOptions:function(){for(var t=[],e={},n=w(r)||[],i=s(n),u=i.length,a=0;u>a;a++){var c=n===i?a:i[a],l=n[c],h=k(l,c),p=d(r,h),g=y(p,h),b=v(r,h),x=$(r,h),S=_(r,h),E=new o(g,p,b,x,S);t.push(E),e[g]=E}return{items:t,selectValueMap:e,getOptionFromViewValue:function(t){return e[m(t)]},getViewValueFromOption:function(t){return f?Ir.copy(t.viewValue):t.viewValue}}}}}var s=e.createElement("option"),u=e.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:function(e,n,i,a){function c(t,e){t.element=e,e.disabled=t.disabled,t.value!==e.value&&(e.value=t.selectValue),t.label!==e.label&&(e.label=t.label,e.textContent=t.label)}function l(t,e,n,r){var i;return e&&_r(e.nodeName)===n?i=e:(i=r.cloneNode(!1),e?t.insertBefore(i,e):t.appendChild(i)),i}function f(t){for(var e;t;)e=t.nextSibling,Ft(t),t=e}function h(t){var e=g&&g[0],n=b&&b[0];if(e||n)for(;t&&(t===e||t===n);)t=t.nextSibling;return t}function p(){var t=k&&y.readValue();k=x.getOptions();var e={},r=n[0].firstChild;if(w&&n.prepend(g),r=h(r),k.items.forEach(function(t){var i,o,a;t.group?(i=e[t.group],i||(o=l(n[0],r,"optgroup",u),r=o.nextSibling,o.label=t.group,i=e[t.group]={groupElement:o,currentOptionElement:o.firstChild}),a=l(i.groupElement,i.currentOptionElement,"option",s),c(t,a),i.currentOptionElement=a.nextSibling):(a=l(n[0],r,"option",s),c(t,a),r=a.nextSibling)}),Object.keys(e).forEach(function(t){f(e[t].currentOptionElement)}),f(r),d.$render(),!d.$isEmpty(t)){var i=y.readValue();(x.trackBy?F(t,i):t===i)||(d.$setViewValue(i),d.$render())}}var d=a[1];if(d){for(var g,y=a[0],m=i.multiple,v=0,$=n.children(),_=$.length;_>v;v++)if(""===$[v].value){g=$.eq(v);break}var w=!!g,b=Er(s.cloneNode(!1));b.val("?");var k,x=r(i.ngOptions,n,e),S=function(){w||n.prepend(g),n.val(""),g.prop("selected",!0),g.attr("selected",!0)},E=function(){w||g.remove()},A=function(){n.prepend(b),n.val("?"),b.prop("selected",!0),b.attr("selected",!0)},B=function(){b.remove()};m?(d.$isEmpty=function(t){return!t||0===t.length},y.writeValue=function(t){k.items.forEach(function(t){t.element.selected=!1}),t&&t.forEach(function(t){var e=k.getOptionFromViewValue(t);e&&!e.disabled&&(e.element.selected=!0)})},y.readValue=function(){var t=n.val()||[],e=[];return o(t,function(t){var n=k.selectValueMap[t];n.disabled||e.push(k.getViewValueFromOption(n))}),e},x.trackBy&&e.$watchCollection(function(){return Rr(d.$viewValue)?d.$viewValue.map(function(t){return x.getTrackByValue(t)}):void 0},function(){d.$render()})):(y.writeValue=function(t){var e=k.getOptionFromViewValue(t);e&&!e.disabled?n[0].value!==e.selectValue&&(B(),E(),n[0].value=e.selectValue,e.element.selected=!0,e.element.setAttribute("selected","selected")):null===t||w?(B(),S()):(E(),A())},y.readValue=function(){var t=k.selectValueMap[n.val()];return t&&!t.disabled?(E(),B(),k.getViewValueFromOption(t)):null},x.trackBy&&e.$watch(function(){return x.getTrackByValue(d.$viewValue)},function(){d.$render()})),w?(g.remove(),t(g)(e),g.removeClass("ng-scope")):g=Er(s.cloneNode(!1)),p(),e.$watchCollection(x.getWatchables,p)}}}}],as=["$locale","$interpolate","$log",function(t,e,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(s,u,a){function c(t){u.text(t||"")}var l,f=a.count,h=a.$attr.when&&u.attr(a.$attr.when),p=a.offset||0,d=s.$eval(h)||{},y={},m=e.startSymbol(),v=e.endSymbol(),_=m+f+"-"+p+v,w=Ir.noop;o(a,function(t,e){var n=i.exec(e);if(n){var r=(n[1]?"-":"")+_r(n[2]);d[r]=u.attr(a.$attr[e])}}),o(d,function(t,n){y[n]=e(t.replace(r,_))}),s.$watch(f,function(e){var r=parseFloat(e),i=isNaN(r);if(i||r in d||(r=t.pluralCat(r-p)),r!==l&&!(i&&x(l)&&isNaN(l))){w();var o=y[r];$(o)?(null!=e&&n.debug("ngPluralize: no rule defined for '"+r+"' in "+h),w=g,c()):w=s.$watch(o,c),l=r}})}}}],cs=["$parse","$animate",function(t,s){var u="$$NG_REMOVED",a=r("ngRepeat"),c=function(t,e,n,r,i,o,s){t[n]=r,i&&(t[i]=o),t.$index=e,t.$first=0===e,t.$last=e===s-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},l=function(t){return t.clone[0]},f=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,h){var p=h.ngRepeat,d=e.createComment(" end ngRepeat: "+p+" "),g=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!g)throw a("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var y=g[1],m=g[2],v=g[3],$=g[4];if(g=y.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!g)throw a("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",y);var _=g[3]||g[1],w=g[2];if(v&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw a("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",v);var b,k,x,S,E={$id:Gt};return $?b=t($):(x=function(t,e){return Gt(e)},S=function(t){return t}),function(t,e,r,h,g){b&&(k=function(e,n,r){return w&&(E[w]=e),E[_]=n,E.$index=r,b(t,E)});var y=yt();t.$watchCollection(m,function(r){var h,m,$,b,E,A,B,C,T,O,D,M,P=e[0],I=yt();if(v&&(t[v]=r),i(r))T=r,C=k||x;else{C=k||S,T=[];for(var N in r)r.hasOwnProperty(N)&&"$"!==N.charAt(0)&&T.push(N)}for(b=T.length,D=new Array(b),h=0;b>h;h++)if(E=r===T?h:T[h],A=r[E],B=C(E,A,h),y[B])O=y[B],delete y[B],I[B]=O,D[h]=O;else{if(I[B])throw o(D,function(t){t&&t.scope&&(y[t.id]=t)}),a("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,B,A);D[h]={id:B,scope:n,clone:n},I[B]=!0}for(var z in y){if(O=y[z],M=gt(O.clone),s.leave(M),M[0].parentNode)for(h=0,m=M.length;m>h;h++)M[h][u]=!0;O.scope.$destroy()}for(h=0;b>h;h++)if(E=r===T?h:T[h],A=r[E],O=D[h],O.scope){$=P;do $=$.nextSibling;while($&&$[u]);l(O)!=$&&s.move(gt(O.clone),null,Er(P)),P=f(O),c(O.scope,h,_,A,w,E,b)}else g(function(t,e){O.scope=e;var n=d.cloneNode(!1);t[t.length++]=n,s.enter(t,null,Er(P)),P=n,O.clone=t,I[O.id]=O,c(O.scope,h,_,A,w,E,b)});y=I})}}}}],ls="ng-hide",fs="ng-hide-animate",hs=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngShow,function(e){t[e?"removeClass":"addClass"](n,ls,{tempClasses:fs})})}}}],ps=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngHide,function(e){t[e?"addClass":"removeClass"](n,ls,{tempClasses:fs})})}}}],ds=Qn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&o(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),gs=["$animate",function(t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,s){var u=i.ngSwitch||i.on,a=[],c=[],l=[],f=[],h=function(t,e){return function(){t.splice(e,1)}};n.$watch(u,function(n){var r,i;for(r=0,i=l.length;i>r;++r)t.cancel(l[r]);for(l.length=0,r=0,i=f.length;i>r;++r){var u=gt(c[r].clone);f[r].$destroy();var p=l[r]=t.leave(u);p.then(h(l,r))}c.length=0,f.length=0,(a=s.cases["!"+n]||s.cases["?"])&&o(a,function(n){n.transclude(function(r,i){f.push(i);var o=n.element;r[r.length++]=e.createComment(" end ngSwitchWhen: ");var s={clone:r};c.push(s),t.enter(r,o.parent(),o)})})})}}}],ys=Qn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:e})}}),ms=Qn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:e})}}),vs=Qn({restrict:"EAC",link:function(t,e,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",Z(e));o(function(t){e.empty(),e.append(t)})}}),$s=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var r=n.id,i=e[0].text;t.put(r,i)}}}}],_s={$setViewValue:g,$render:g},ws=["$element","$scope","$attrs",function(t,r,i){var o=this,s=new Xt;o.ngModelCtrl=_s,o.unknownOption=Er(e.createElement("option")),o.renderUnknownOption=function(e){var n="? "+Gt(e)+" ?";o.unknownOption.val(n),t.prepend(o.unknownOption),t.val(n)},r.$on("$destroy",function(){o.renderUnknownOption=g}),o.removeUnknownOption=function(){o.unknownOption.parent()&&o.unknownOption.remove()},o.readValue=function(){return o.removeUnknownOption(),t.val()},o.writeValue=function(e){o.hasOption(e)?(o.removeUnknownOption(),t.val(e),""===e&&o.emptyOption.prop("selected",!0)):null==e&&o.emptyOption?(o.removeUnknownOption(),t.val("")):o.renderUnknownOption(e)},o.addOption=function(t,e){pt(t,'"option value"'),""===t&&(o.emptyOption=e);var n=s.get(t)||0;s.put(t,n+1)},o.removeOption=function(t){var e=s.get(t);e&&(1===e?(s.remove(t),""===t&&(o.emptyOption=n)):s.put(t,e-1))},o.hasOption=function(t){return!!s.get(t)}}],bs=function(){return{restrict:"E",require:["select","?ngModel"],controller:ws,link:function(t,e,n,r){var i=r[1];if(i){var s=r[0];if(s.ngModelCtrl=i,i.$render=function(){s.writeValue(i.$viewValue)},e.on("change",function(){t.$apply(function(){i.$setViewValue(s.readValue())})}),n.multiple){s.readValue=function(){var t=[];return o(e.find("option"),function(e){e.selected&&t.push(e.value)}),t},s.writeValue=function(t){var n=new Xt(t);o(e.find("option"),function(t){t.selected=_(n.get(t.value))})};var u,a=0/0;t.$watch(function(){a!==i.$viewValue||F(u,i.$viewValue)||(u=V(i.$viewValue),i.$render()),a=i.$viewValue}),i.$isEmpty=function(t){return!t||0===t.length}}}}}},ks=["$interpolate",function(t){function e(t){t[0].hasAttribute("selected")&&(t[0].selected=!0)}return{restrict:"E",priority:100,compile:function(n,r){if($(r.value)){var i=t(n.text(),!0);i||r.$set("value",n.text())}return function(t,n,r){var o="$selectController",s=n.parent(),u=s.data(o)||s.parent().data(o);u&&u.ngModelCtrl&&(i?t.$watch(i,function(t,i){r.$set("value",t),i!==t&&u.removeOption(i),u.addOption(t,n),u.ngModelCtrl.$render(),e(n)}):(u.addOption(r.value,n),u.ngModelCtrl.$render(),e(n)),n.on("$destroy",function(){u.removeOption(r.value),u.ngModelCtrl.$render()}))}}}}],xs=m({restrict:"E",terminal:!1}),Ss=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){r&&(n.required=!0,r.$validators.required=function(t,e){return!n.required||!r.$isEmpty(e)},n.$observe("required",function(){r.$validate()}))}}},Es=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,i,o){if(o){var s,u=i.ngPattern||i.pattern;i.$observe("pattern",function(t){if(k(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",u,t,Z(e));s=t||n,o.$validate()}),o.$validators.pattern=function(t){return o.$isEmpty(t)||$(s)||s.test(t)}}}}},As=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=-1;n.$observe("maxlength",function(t){var e=p(t);i=isNaN(e)?-1:e,r.$validate()}),r.$validators.maxlength=function(t,e){return 0>i||r.$isEmpty(e)||e.length<=i}}}}},Bs=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=0;n.$observe("minlength",function(t){i=p(t)||0,r.$validate()}),r.$validators.minlength=function(t,e){return r.$isEmpty(e)||e.length>=i}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(lt(),_t(Ir),void Er(e).ready(function(){ot(e,st)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document.head).prepend(''),function(t,e,n){"use strict";function r(){this.$get=["$$sanitizeUri",function(t){return function(e){var n=[];return s(e,c(n,function(e,n){return!/^unsafe/.test(t(e,n))})),n.join("")}}]}function i(t){var n=[],r=c(n,e.noop);return r.chars(t),n.join("")}function o(t,n){var r,i={},o=t.split(",");for(r=0;r=0&&$[o]!=r;o--);if(o>=0){for(i=$.length-1;i>=o;i--)n.end&&n.end($[i]);$.length=o}}"string"!=typeof t&&(t=null===t||"undefined"==typeof t?"":""+t);var o,s,a,c,$=[],_=t;for($.last=function(){return $[$.length-1]};t;){if(c="",s=!0,$.last()&&B[$.last()]?(t=t.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+$.last()+"[^>]*>","i"),function(t,e){return e=e.replace(y,"$1").replace(v,"$1"),n.chars&&n.chars(u(e)),""}),i("",$.last())):(0===t.indexOf("",o)===o&&(n.comment&&n.comment(t.substring(4,o)),t=t.substring(o+3),s=!1)):m.test(t)?(a=t.match(m),a&&(t=t.replace(a[0],""),s=!1)):g.test(t)?(a=t.match(h),a&&(t=t.substring(a[0].length),a[0].replace(h,i),s=!1)):d.test(t)&&(a=t.match(f),a?(a[4]&&(t=t.substring(a[0].length),a[0].replace(f,r)),s=!1):(c+="<",t=t.substring(1))),s&&(o=t.indexOf("<"),c+=0>o?t:t.substring(0,o),t=0>o?"":t.substring(o),n.chars&&n.chars(u(c)))),t==_)throw l("badparse","The sanitizer was unable to parse the following block of html: {0}",t);_=t}i()}function u(t){return t?(P.innerHTML=t.replace(//g,">")}function c(t,n){var r=!1,i=e.bind(t,t.push);return{start:function(t,o,s){t=e.lowercase(t),!r&&B[t]&&(r=t),r||C[t]!==!0||(i("<"),i(t),e.forEach(o,function(r,o){var s=e.lowercase(o),u="img"===t&&"src"===s||"background"===s;M[s]!==!0||T[s]===!0&&!n(r,u)||(i(" "),i(o),i('="'),i(a(r)),i('"'))}),i(s?"/>":">"))},end:function(t){t=e.lowercase(t),r||C[t]!==!0||(i("")),t==r&&(r=!1)},chars:function(t){r||i(a(t))}}}var l=e.$$minErr("$sanitize"),f=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,h=/^<\/\s*([\w:-]+)[^>]*>/,p=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,d=/^/g,m=/]*?)>/i,v=//g,$=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,_=/([^\#-~| |!])/g,w=o("area,br,col,hr,img,wbr"),b=o("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),k=o("rp,rt"),x=e.extend({},k,b),S=e.extend({},b,o("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),E=e.extend({},k,o("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),A=o("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan,use"),B=o("script,style"),C=e.extend({},w,S,E,x,A),T=o("background,cite,href,longdesc,src,usemap,xlink:href"),O=o("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),D=o("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),M=e.extend({},T,D,O),P=document.createElement("pre");e.module("ngSanitize",[]).provider("$sanitize",r),e.module("ngSanitize").filter("linky",["$sanitize",function(t){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/i,r=/^mailto:/i;return function(o,s){function u(t){t&&p.push(i(t))}function a(t,n){p.push("'),u(n),p.push("")}if(!o)return o;for(var c,l,f,h=o,p=[];c=h.match(n);)l=c[0],c[2]||c[4]||(l=(c[3]?"http://":"mailto:")+l),f=c.index,u(h.substr(0,f)),a(l,c[0].replace(r,"")),h=h.substring(f+c[0].length);return u(h),t(p.join(""))}}])}(window,window.angular);var saveAs=saveAs||function(t){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var e=t.document,n=function(){return t.URL||t.webkitURL||t},r=e.createElementNS("http://www.w3.org/1999/xhtml","a"),i="download"in r,o=function(n){var r=e.createEvent("MouseEvents");r.initMouseEvent("click",!0,!1,t,0,0,0,0,0,!1,!1,!1,!1,0,null),n.dispatchEvent(r)},s=t.webkitRequestFileSystem,u=t.requestFileSystem||s||t.mozRequestFileSystem,a=function(e){(t.setImmediate||t.setTimeout)(function(){throw e},0)},c="application/octet-stream",l=0,f=500,h=function(e){var r=function(){"string"==typeof e?n().revokeObjectURL(e):e.remove()};t.chrome?r():setTimeout(r,f)},p=function(t,e,n){e=[].concat(e);for(var r=e.length;r--;){var i=t["on"+e[r]];if("function"==typeof i)try{i.call(t,n||t)}catch(o){a(o)}}},d=function(t){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\ufeff",t],{type:t.type}):t},g=function(e,a){ +e=d(e);var f,g,y,m=this,v=e.type,$=!1,_=function(){p(m,"writestart progress write writeend".split(" "))},w=function(){if(($||!f)&&(f=n().createObjectURL(e)),g)g.location.href=f;else{var r=t.open(f,"_blank");void 0==r&&"undefined"!=typeof safari&&(t.location.href=f)}m.readyState=m.DONE,_(),h(f)},b=function(t){return function(){return m.readyState!==m.DONE?t.apply(this,arguments):void 0}},k={create:!0,exclusive:!1};return m.readyState=m.INIT,a||(a="download"),i?(f=n().createObjectURL(e),r.href=f,r.download=a,o(r),m.readyState=m.DONE,_(),void h(f)):(t.chrome&&v&&v!==c&&(y=e.slice||e.webkitSlice,e=y.call(e,0,e.size,c),$=!0),s&&"download"!==a&&(a+=".download"),(v===c||s)&&(g=t),u?(l+=e.size,void u(t.TEMPORARY,l,b(function(t){t.root.getDirectory("saved",k,b(function(t){var n=function(){t.getFile(a,k,b(function(t){t.createWriter(b(function(n){n.onwriteend=function(e){g.location.href=t.toURL(),m.readyState=m.DONE,p(m,"writeend",e),h(t)},n.onerror=function(){var t=n.error;t.code!==t.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach(function(t){n["on"+t]=m["on"+t]}),n.write(e),m.abort=function(){n.abort(),m.readyState=m.DONE},m.readyState=m.WRITING}),w)}),w)};t.getFile(a,{create:!1},b(function(t){t.remove(),n()}),b(function(t){t.code===t.NOT_FOUND_ERR?n():w()}))}),w)}),w)):void w())},y=g.prototype,m=function(t,e){return new g(t,e)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(t,e){return navigator.msSaveOrOpenBlob(d(t),e)}:(y.abort=function(){var t=this;t.readyState=t.DONE,p(t,"abort")},y.readyState=y.INIT=0,y.WRITING=1,y.DONE=2,y.error=y.onwritestart=y.onprogress=y.onwrite=y.onabort=y.onerror=y.onwriteend=null,m)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}),function(t,e,n){"use strict";function r(){function t(t,n){return e.extend(Object.create(t),n)}function n(t,e){var n=e.caseInsensitiveMatch,r={originalPath:t,regexp:t},i=r.keys=[];return t=t.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(t,e,n,r){var o="?"===r?r:null,s="*"===r?r:null;return i.push({name:n,optional:!!o}),e=e||"",""+(o?"":e)+"(?:"+(o?e:"")+(s&&"(.+?)"||"([^/]+)")+(o||"")+")"+(o||"")}).replace(/([\/$\*])/g,"\\$1"),r.regexp=new RegExp("^"+t+"$",n?"i":""),r}var r={};this.when=function(t,i){var o=e.copy(i);if(e.isUndefined(o.reloadOnSearch)&&(o.reloadOnSearch=!0),e.isUndefined(o.caseInsensitiveMatch)&&(o.caseInsensitiveMatch=this.caseInsensitiveMatch),r[t]=e.extend(o,t&&n(t,o)),t){var s="/"==t[t.length-1]?t.substr(0,t.length-1):t+"/";r[s]=e.extend({redirectTo:t},n(s,o))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(t){return"string"==typeof t&&(t={redirectTo:t}),this.when(null,t),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(n,i,o,s,u,c,l){function f(t,e){var n=e.keys,r={};if(!e.regexp)return null;var i=e.regexp.exec(t);if(!i)return null;for(var o=1,s=i.length;s>o;++o){var u=n[o-1],a=i[o];u&&a&&(r[u.name]=a)}return r}function h(t){var r=$.current;y=d(),m=y&&r&&y.$$route===r.$$route&&e.equals(y.pathParams,r.pathParams)&&!y.reloadOnSearch&&!v,m||!r&&!y||n.$broadcast("$routeChangeStart",y,r).defaultPrevented&&t&&t.preventDefault()}function p(){var t=$.current,r=y;m?(t.params=r.params,e.copy(t.params,o),n.$broadcast("$routeUpdate",t)):(r||t)&&(v=!1,$.current=r,r&&r.redirectTo&&(e.isString(r.redirectTo)?i.path(g(r.redirectTo,r.params)).search(r.params).replace():i.url(r.redirectTo(r.pathParams,i.path(),i.search())).replace()),s.when(r).then(function(){if(r){var t,n,i=e.extend({},r.resolve);return e.forEach(i,function(t,n){i[n]=e.isString(t)?u.get(t):u.invoke(t,null,null,n)}),e.isDefined(t=r.template)?e.isFunction(t)&&(t=t(r.params)):e.isDefined(n=r.templateUrl)&&(e.isFunction(n)&&(n=n(r.params)),e.isDefined(n)&&(r.loadedTemplateUrl=l.valueOf(n),t=c(n))),e.isDefined(t)&&(i.$template=t),s.all(i)}}).then(function(i){r==$.current&&(r&&(r.locals=i,e.copy(r.params,o)),n.$broadcast("$routeChangeSuccess",r,t))},function(e){r==$.current&&n.$broadcast("$routeChangeError",r,t,e)}))}function d(){var n,o;return e.forEach(r,function(r,s){!o&&(n=f(i.path(),r))&&(o=t(r,{params:e.extend({},i.search(),n),pathParams:n}),o.$$route=r)}),o||r[null]&&t(r[null],{params:{},pathParams:{}})}function g(t,n){var r=[];return e.forEach((t||"").split(":"),function(t,e){if(0===e)r.push(t);else{var i=t.match(/(\w+)(?:[?*])?(.*)/),o=i[1];r.push(n[o]),r.push(i[2]||""),delete n[o]}}),r.join("")}var y,m,v=!1,$={routes:r,reload:function(){v=!0,n.$evalAsync(function(){h(),p()})},updateParams:function(t){if(!this.current||!this.current.$$route)throw a("norout","Tried updating route when with no current route");t=e.extend({},this.current.params,t),i.path(g(this.current.$$route.originalPath,t)),i.search(t)}};return n.$on("$locationChangeStart",h),n.$on("$locationChangeSuccess",p),$}]}function i(){this.$get=function(){return{}}}function o(t,n,r){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(i,o,s,u,a){function c(){p&&(r.cancel(p),p=null),f&&(f.$destroy(),f=null),h&&(p=r.leave(h),p.then(function(){p=null}),h=null)}function l(){var s=t.current&&t.current.locals,u=s&&s.$template;if(e.isDefined(u)){var l=i.$new(),p=t.current,y=a(l,function(t){r.enter(t,null,h||o).then(function(){!e.isDefined(d)||d&&!i.$eval(d)||n()}),c()});h=y,f=p.scope=l,f.$emit("$viewContentLoaded"),f.$eval(g)}else c()}var f,h,p,d=s.autoscroll,g=s.onload||"";i.$on("$routeChangeSuccess",l),l()}}}function s(t,e,n){return{restrict:"ECA",priority:-400,link:function(r,i){var o=n.current,s=o.locals;i.html(s.$template);var u=t(i.contents());if(o.controller){s.$scope=r;var a=e(o.controller,s);o.controllerAs&&(r[o.controllerAs]=a),i.data("$ngControllerController",a),i.children().data("$ngControllerController",a)}u(r)}}}var u=e.module("ngRoute",["ng"]).provider("$route",r),a=e.$$minErr("ngRoute");u.provider("$routeParams",i),u.directive("ngView",o),u.directive("ngView",s),o.$inject=["$route","$anchorScroll","$animate"],s.$inject=["$compile","$controller","$route"]}(window,window.angular),function(t,e){"undefined"!=typeof module&&module.exports?module.exports=e(require("angular")):"function"==typeof define&&define.amd?define(["angular"],e):e(t.angular)}(this,function(t,e){"use strict";t.module("ngProgressLite",[]).provider("ngProgressLite",function(){var e=this.settings={minimum:.08,speed:300,ease:"ease",trickleRate:.02,trickleSpeed:500,template:'
'};this.$get=["$document",function(n){var r,i,o,s=n.find("body"),u={render:function(){return this.isRendered()?r:(s.addClass("ngProgressLite-on"),r=t.element(e.template),s.append(r),o=!1,r)},remove:function(){s.removeClass("ngProgressLite-on"),r.remove(),o=!0},isRendered:function(){return r&&r.children().length>0&&!o},trickle:function(){return a.inc(Math.random()*e.trickleRate)},clamp:function(t,e,n){return e>t?e:t>n?n:t},toBarPercents:function(t){return 100*t},positioning:function(t,e,n){return{width:this.toBarPercents(t)+"%",transition:"all "+e+"ms "+n}}},a={set:function(t){var n=u.render();return t=u.clamp(t,e.minimum,1),i=1===t?null:t,setTimeout(function(){n.children().eq(0).css(u.positioning(t,e.speed,e.ease))},100),1===t&&setTimeout(function(){n.css({transition:"all "+e.speed+"ms linear",opacity:0}),setTimeout(function(){u.remove()},e.speed)},e.speed),a},get:function(){return i},start:function(){i||a.set(0);var t=function(){setTimeout(function(){i&&(u.trickle(),t())},e.trickleSpeed)};return t(),a},inc:function(t){var e=i;return e?("number"!=typeof t&&(t=(1-e)*u.clamp(Math.random()*e,.1,.95)),e=u.clamp(e+t,0,.994),a.set(e)):a.start()},done:function(){i&&a.inc(.3+.5*Math.random()).set(1)}};return a}]})}),!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.triplesec=t():"undefined"!=typeof global?global.triplesec=t():"undefined"!=typeof self&&(self.triplesec=t())}(function(){return function t(e,n,r){function i(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(o)return o(s,!0);throw new Error("Cannot find module '"+s+"'")}var c=n[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;se;t=++e)n.push([]);return n}(),this.INV_SUB_MIX=function(){var e,n;for(n=[],t=e=0;4>e;t=++e)n.push([]);return n}(),this.init(),this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}return t.prototype.init=function(){var t,e,n,r,i,o,s,u,a,c;for(t=function(){var t,n;for(n=[],e=t=0;256>t;e=++t)n.push(128>e?e<<1:e<<1^283);return n}(),i=0,a=0,e=c=0;256>c;e=++c)n=a^a<<1^a<<2^a<<3^a<<4,n=n>>>8^255&n^99,this.SBOX[i]=n,this.INV_SBOX[n]=i,o=t[i],s=t[o],u=t[s],r=257*t[n]^16843008*n,this.SUB_MIX[0][i]=r<<24|r>>>8,this.SUB_MIX[1][i]=r<<16|r>>>16,this.SUB_MIX[2][i]=r<<8|r>>>24,this.SUB_MIX[3][i]=r,r=16843009*u^65537*s^257*o^16843008*i,this.INV_SUB_MIX[0][n]=r<<24|r>>>8,this.INV_SUB_MIX[1][n]=r<<16|r>>>16,this.INV_SUB_MIX[2][n]=r<<8|r>>>24,this.INV_SUB_MIX[3][n]=r,0===i?i=a=1:(i=o^t[t[t[u^o]]],a^=t[t[a]]);return!0},t}(),i=new o,e=function(t){function e(t){this._key=t.clone(),this._doReset()}return a(e,t),e.blockSize=16,e.prototype.blockSize=e.blockSize,e.keySize=32,e.prototype.keySize=e.keySize,e.ivSize=e.blockSize,e.prototype.ivSize=e.ivSize,e.prototype._doReset=function(){var t,e,n,r,o,s,u,a;for(n=this._key.words,e=this._key.sigBytes/4,this._nRounds=e+6,o=4*(this._nRounds+1),this._keySchedule=[],r=u=0;o>=0?o>u:u>o;r=o>=0?++u:--u)this._keySchedule[r]=e>r?n[r]:(s=this._keySchedule[r-1],r%e===0?(s=s<<8|s>>>24,s=i.SBOX[s>>>24]<<24|i.SBOX[s>>>16&255]<<16|i.SBOX[s>>>8&255]<<8|i.SBOX[255&s],s^=i.RCON[r/e|0]<<24):e>6&&r%e===4?s=i.SBOX[s>>>24]<<24|i.SBOX[s>>>16&255]<<16|i.SBOX[s>>>8&255]<<8|i.SBOX[255&s]:void 0,this._keySchedule[r-e]^s);for(this._invKeySchedule=[],t=a=0;o>=0?o>a:a>o;t=o>=0?++a:--a)r=o-t,s=this._keySchedule[r-(t%4?0:4)],this._invKeySchedule[t]=4>t||4>=r?s:i.INV_SUB_MIX[0][i.SBOX[s>>>24]]^i.INV_SUB_MIX[1][i.SBOX[s>>>16&255]]^i.INV_SUB_MIX[2][i.SBOX[s>>>8&255]]^i.INV_SUB_MIX[3][i.SBOX[255&s]];return!0},e.prototype.encryptBlock=function(t,e){return null==e&&(e=0),this._doCryptBlock(t,e,this._keySchedule,i.SUB_MIX,i.SBOX)},e.prototype.decryptBlock=function(t,e){var n,r;return null==e&&(e=0),n=[t[e+3],t[e+1]],t[e+1]=n[0],t[e+3]=n[1],this._doCryptBlock(t,e,this._invKeySchedule,i.INV_SUB_MIX,i.INV_SBOX),r=[t[e+3],t[e+1]],t[e+1]=r[0],t[e+3]=r[1],r},e.prototype.scrub=function(){return s(this._keySchedule),s(this._invKeySchedule),this._key.scrub()},e.prototype._doCryptBlock=function(t,e,n,r,i){var o,s,u,a,c,l,f,h,p,d,g,y;for(u=t[e]^n[0],a=t[e+1]^n[1],c=t[e+2]^n[2],l=t[e+3]^n[3],o=4,s=g=1,y=this._nRounds;y>=1?y>g:g>y;s=y>=1?++g:--g)f=r[0][u>>>24]^r[1][a>>>16&255]^r[2][c>>>8&255]^r[3][255&l]^n[o++],h=r[0][a>>>24]^r[1][c>>>16&255]^r[2][l>>>8&255]^r[3][255&u]^n[o++],p=r[0][c>>>24]^r[1][l>>>16&255]^r[2][u>>>8&255]^r[3][255&a]^n[o++],d=r[0][l>>>24]^r[1][u>>>16&255]^r[2][a>>>8&255]^r[3][255&c]^n[o++],u=f,a=h,c=p,l=d;return f=(i[u>>>24]<<24|i[a>>>16&255]<<16|i[c>>>8&255]<<8|i[255&l])^n[o++],h=(i[a>>>24]<<24|i[c>>>16&255]<<16|i[l>>>8&255]<<8|i[255&u])^n[o++],p=(i[c>>>24]<<24|i[l>>>16&255]<<16|i[u>>>8&255]<<8|i[255&a])^n[o++],d=(i[l>>>24]<<24|i[u>>>16&255]<<16|i[a>>>8&255]<<8|i[255&c])^n[o++],t[e]=f,t[e+1]=h,t[e+2]=p,t[e+3]=d},e}(r),n.AES=e}).call(this)},{"./algbase":2,"./util":23}],2:[function(t,e,n){(function(){var e,r,i,o,s,u,a={}.hasOwnProperty,c=function(t,e){function n(){this.constructor=t}for(var r in e)a.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};s=t("./wordarray").WordArray,u=t("./util"),r=function(){function t(){this.reset()}return t.prototype._minBufferSize=0,t.prototype.reset=function(){return this._data=new s,this._nDataBytes=0},t.prototype._append=function(t){return this._data.concat(t),this._nDataBytes+=t.sigBytes},t.prototype._process=function(t){var e,n,r,i,o,u,a,c,l,f,h;if(n=this._data,i=n.words,r=n.sigBytes,e=4*this.blockSize,o=r/e,o=t?Math.ceil(o):Math.max((0|o)-this._minBufferSize,0),a=o*this.blockSize,u=Math.min(4*a,r),a){for(c=f=0,h=this.blockSize;h>0?a>f:f>a;c=f+=h)this._doProcessBlock(i,c);l=i.splice(0,a),n.sigBytes-=u}return new s(l,u)},t.prototype.copy_to=function(t){return t._data=this._data.clone(),t._nDataBytes=this._nDataBytes},t.prototype.clone=function(){var e;return e=new t,this.copy_to(e),e},t}(),i=function(t){function e(){e.__super__.constructor.call(this)}return c(e,t),e.prototype.reset=function(){return e.__super__.reset.call(this),this._doReset(),this},e.prototype.update=function(t){return this._append(t),this._process(),this},e.prototype.finalize=function(t){return t&&this._append(t),this._doFinalize()},e.prototype.bufhash=function(t){var e,n,r;return n=s.from_buffer(t),r=this.finalize(n),e=r.to_buffer(),n.scrub(),r.scrub(),e},e}(r),n.BlockCipher=e=function(){function t(t){}return t.prototype.encryptBlock=function(t,e){},t}(),o=function(){function t(){}return t.prototype.encryptBlock=function(t,e){var n,r;return null==e&&(e=0),r=this.get_pad(),n=Math.min(t.words.length-e,this.bsiw),t.xor(r,{dst_offset:e,n_words:n}),r.scrub(),this.bsiw},t.prototype.encrypt=function(t){var e,n,r,i;for(e=n=0,r=t.words.length,i=this.bsiw;i>0?r>n:n>r;e=n+=i)this.encryptBlock(t,e);return t},t.prototype.bulk_encrypt=function(t,e){var n,r,i,o,s;return r=t.input,i=t.progress_hook,s=t.what,o={update:function(t){return function(e,n){var i,o,s,u;for(u=[],i=o=e,s=t.bsiw;s>0?n>o:o>n;i=o+=s)u.push(t.encryptBlock(r,i));return u}}(this),finalize:function(){return r},default_n:1024*this.bsiw},n={progress_hook:i,cb:e,what:s},u.bulk(r.sigBytes,o,n)},t}(),n.BlockCipher=e,n.Hasher=i,n.BufferedBlockAlgorithm=r,n.StreamCipher=o}).call(this)},{"./util":23,"./wordarray":24}],3:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f={}.hasOwnProperty,h=function(t,e){function n(){this.constructor=t}for(var r in e)f.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};l=t("./hmac"),i=l.HMAC,c=l.bulk_sign,s=t("./sha512").SHA512,o=t("./sha3").SHA3,u=t("./wordarray").WordArray,e=function(){function t(){this.hasherBlockSize=this.hashers[0].hasherBlockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.reset()}return t.prototype.reset=function(){var t,e,n,r;for(r=this.hashers,e=0,n=r.length;n>e;e++)t=r[e],t.reset();return this},t.prototype.update=function(t){var e,n,r,i;for(i=this.hashers,n=0,r=i.length;r>n;n++)e=i[n],e.update(t);return this},t.prototype.scrub=function(){var t,e,n,r;for(r=this.hashers,e=0,n=r.length;n>e;e++)t=r[e],t.scrub();return this},t.prototype.finalize=function(t){var e,n,r,i,o,s;for(n=function(){var n,r,i,o;for(i=this.hashers,o=[],n=0,r=i.length;r>n;n++)e=i[n],o.push(e.finalize(t));return o}.call(this),r=n[0],s=n.slice(1),i=0,o=s.length;o>i;i++)e=s[i],this._coalesce(r,e),e.scrub();return r},t}(),r=function(t){function e(t,n){var r,u,a,c,l;null==n&&(n=[s,o]),l=t.split(n.length),this.hashers=function(){var t,e,o;for(o=[],u=t=0,e=n.length;e>t;u=++t)a=n[u],c=l[u],r=new i(c,a),c.scrub(),o.push(r);return o}(),e.__super__.constructor.call(this)}return h(e,t),e.get_output_size=function(){return s.output_size+o.output_size},e.prototype._coalesce=function(t,e){return t.concat(e)},e.prototype.get_output_size=function(){var t,e,n,r,i;for(e=0,i=this.hashers,n=0,r=i.length;r>n;n++)t=i[n],e+=t.get_output_size();return e},e.sign=function(t){var n,r;return r=t.key,n=t.input,new e(r).finalize(n)},e.bulk_sign=function(t,n){return t.klass=e,t.what="HMAC-SHA512-SHA3",c(t,n)},e}(e),a=function(t){function e(t,n){var r;null==n&&(n=[s,o]),this.hashers=function(){var e,o,s;for(s=[],e=0,o=n.length;o>e;e++)r=n[e],s.push(new i(t,r));return s}(),e.__super__.constructor.call(this)}return h(e,t),e.prototype.reset=function(){var t,n,r,i,o;for(e.__super__.reset.call(this),o=this.hashers,n=r=0,i=o.length;i>r;n=++r)t=o[n],t.update(new u([n]));return this},e.get_output_size=function(){return Math.max(s.output_size,o.output_size)},e.prototype._coalesce=function(t,e){return t.xor(e,{})},e.prototype.get_output_size=function(){var t;return Math.max.apply(Math,function(){var e,n,r,i;for(r=this.hashers,i=[],e=0,n=r.length;n>e;e++)t=r[e],i.push(t.get_output_size());return i}.call(this))},e.sign=function(t){var n,r;return r=t.key,n=t.input,new e(r).finalize(n)},e.bulk_sign=function(t,n){return t.klass=e,t.what="HMAC-SHA512-XOR-SHA3",c(t,n)},e}(e),n.Concat=r,n.XOR=a}).call(this)},{"./hmac":8,"./sha3":19,"./sha512":21,"./wordarray":24}],4:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f={}.hasOwnProperty,h=function(t,e){function n(){this.constructor=t}for(var r in e)f.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};a=t("iced-runtime"),c=l=function(){},o=t("./wordarray").WordArray,i=t("./algbase").StreamCipher,r=function(){function t(t){var e,n,r;r=t.value,n=t.len,this._value=null!=r?r.clone():(null==n?n=2:void 0,new o(function(){var t,r;for(r=[],e=t=0;n>=0?n>t:t>n;e=n>=0?++t:--t)r.push(0);return r}()))}return t.prototype.WORD_MAX=4294967295,t.prototype.inc=function(){var e,n;for(e=!0,n=this._value.words.length-1;e&&n>=0;)++this._value.words[n]>t.WORD_MAX?this._value.words[n]=0:e=!1,n--;return this},t.prototype.inc_le=function(){var e,n;for(e=!0,n=0;e&&nt.WORD_MAX?this._value.words[n]=0:e=!1,n++;return this},t.prototype.get=function(){return this._value},t.prototype.copy=function(){return this._value.clone()},t}(),e=function(t){function e(t){if(this.block_cipher=t.block_cipher,this.iv=t.iv,e.__super__.constructor.call(this),this.bsiw=this.block_cipher.blockSize/4,this.iv.sigBytes!==this.block_cipher.blockSize)throw new Error("IV is wrong length ("+this.iv.sigBytes+")");this.ctr=new r({value:this.iv})}return h(e,t),e.prototype.scrub=function(){return this.block_cipher.scrub()},e.prototype.get_pad=function(){var t;return t=this.ctr.copy(),this.ctr.inc(),this.block_cipher.encryptBlock(t.words),t},e}(i),u=function(t){var n,r,i,o,s;return n=t.block_cipher,o=t.iv,i=t.input,r=new e({block_cipher:n,iv:o}),s=r.encrypt(i),r.scrub(),s},s=function(t,n){var r,i,o,s,u,c,f,h,p,d;d=l,h=a.findDeferral(arguments),r=t.block_cipher,s=t.iv,o=t.input,u=t.progress_hook,f=t.what,i=new e({block_cipher:r,iv:s}),function(t){return function(t){p=new a.Deferrals(t,{parent:h,filename:"/home/max/src/keybase/triplesec/src/ctr.iced"}),i.bulk_encrypt({input:o,progress_hook:u,what:f},p.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:121})),p._fulfill()}}(this)(function(t){return function(){return n(c)}}(this))},n.Counter=r,n.Cipher=e,n.encrypt=u,n.bulk_encrypt=s}).call(this)},{"./algbase":2,"./wordarray":24,"iced-runtime":38}],5:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$={}.hasOwnProperty,_=function(t,e){function n(){this.constructor=t}for(var r in e)$.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};p=t("iced-runtime"),y=m=function(){},l=t("./wordarray").WordArray,g=t("./salsa20"),e=t("./aes").AES,a=t("./twofish").TwoFish,f=t("./ctr"),i=t("./combine").Concat,s=t("./sha512").SHA512,u=t("./salsa20").Salsa20,v=t("./enc"),r=v.Base,c=v.V,d=t("iced-error").make_esc,o=function(t){function n(t){var e,r;r=t.key,e=t.enc,n.__super__.constructor.call(this,{key:r}),null!=e&&(this.key=e.key,this.derived_keys=e.derived_keys)}return _(n,t),n.prototype.read_header=function(t){var e,n;return e=null==(n=this.ct.unshift(2))?new Error("Ciphertext underrun in header"):null==(this.version=c[n.words[1]])?new Error("bad header; couldn't find a good version (got "+n.words[1]+")"):n.words[0]!==this.version.header[0]?new Error("Bad header: unrecognized magic value"):null,t(e)},n.prototype.verify_sig=function(t,e){var n,r,o,s,u,a;a=m,s=p.findDeferral(arguments),function(e){return function(a){return null==(o=e.ct.unshift(i.get_output_size()/4))?a(r=new Error("Ciphertext underrun in signature")):void!function(i){u=new p.Deferrals(i,{parent:s,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.verify_sig"}),e.sign({input:e.ct,key:t,salt:e.salt},u.defer({assign_fn:function(){return function(){return r=arguments[0],n=arguments[1]}}(),lineno:63})),u._fulfill()}(function(){return a(r=null!=r?r:o.equal(n)?null:new Error("Signature mismatch or bad decryption key"))})}}(this)(function(t){return function(){return e(r)}}(this))},n.prototype.unshift_iv=function(t,e,n){var r,i;return r=null!=(i=this.ct.unshift(t/4))?null:new Error("Ciphertext underrun in "+e),n(r,i)},n.prototype.read_salt=function(t){var e;return e=null==(this.salt=this.ct.unshift(this.version.salt_size/4))?new Error("Ciphertext underrrun in read_salt"):null,t(e)},n.prototype.generate_keys=function(t,e){var n,r,i,o,s,u;u=m,o=p.findDeferral(arguments),i=t.progress_hook,function(t){return function(e){s=new p.Deferrals(e,{parent:o,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.generate_keys"}),t.kdf({salt:t.salt,progress_hook:i},s.defer({assign_fn:function(){return function(){return n=arguments[0],r=arguments[1]}}(),lineno:114})),s._fulfill()}}(this)(function(t){return function(){return e(n,r)}}(this))},n.prototype.run=function(t,n){var r,i,o,s,c,f,h,g,y,v;v=m,g=p.findDeferral(arguments),o=t.data,f=t.progress_hook,s=d(n,"Decryptor::run"),this.ct=l.from_buffer(o),function(t){return function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.read_header(s(y.defer({lineno:141}))),y._fulfill()}}(this)(function(t){return function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.read_salt(s(y.defer({lineno:142}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.generate_keys({progress_hook:f},s(y.defer({assign_fn:function(t){return function(){return t.keys=arguments[0]}}(t),lineno:143}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.verify_sig(t.keys.hmac,s(y.defer({lineno:144}))),y._fulfill()}(function(){!function(n){y=new p.Deferrals(n,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.unshift_iv(e.ivSize,"AES",s(y.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:145}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.run_aes({iv:c,input:t.ct,key:t.keys.aes,progress_hook:f},s(y.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:146}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.unshift_iv(a.ivSize,"2fish",s(y.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:147}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.run_twofish({iv:c,input:t.ct,key:t.keys.twofish,progress_hook:f},s(y.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:148}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.unshift_iv(u.ivSize,"Salsa",s(y.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:149}))),y._fulfill()}(function(){!function(e){y=new p.Deferrals(e,{parent:g,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),t.run_salsa20({iv:c,input:t.ct,key:t.keys.salsa20,output_iv:!1,progress_hook:f},s(y.defer({assign_fn:function(){return function(){return h=arguments[0]}}(),lineno:150}))),y._fulfill()}(function(){return n(null,h.to_buffer())})})})})})})})})})}}(this))},n}(r),h=function(t,e){var n,r,i,s,u,a,c,l,f;f=m,c=p.findDeferral(arguments),s=t.key,n=t.data,u=t.progress_hook,r=new o({key:s}),function(t){return function(t){l=new p.Deferrals(t,{parent:c,filename:"/home/max/src/keybase/triplesec/src/dec.iced"}),r.run({data:n,progress_hook:u},l.defer({assign_fn:function(){return function(){return i=arguments[0],a=arguments[1]}}(),lineno:168})),l._fulfill()}}(this)(function(t){return function(){return r.scrub(),e(i,a)}}(this))},n.Decryptor=o,n.decrypt=h}).call(this)},{"./aes":1,"./combine":3,"./ctr":4,"./enc":7,"./salsa20":14,"./sha512":21,"./twofish":22,"./wordarray":24,"iced-error":30,"iced-runtime":38}],6:[function(t,e,n){var r=t("__browserify_Buffer");(function(){var e,i,o,s,u,a,c,l,f,h,p;c=t("iced-runtime"),h=p=function(){},a=t("./hmac"),u=t("./combine").XOR,f=t("./sha512"),l=t("./sha3"),s=t("./wordarray").WordArray,o=t("iced-lock").Lock,i=function(){function t(t,e,n){this.hmac=n||a.sign,this.security_strength=256,t=this.check_entropy(t),e||(e=new s([])),this._instantiate(t,e)}return t.prototype.check_entropy=function(t,e){if(null==e&&(e=!1),8*t.sigBytes*2<(e?2:3)*this.security_strength)throw new Error("entropy must be at least "+1.5*this.security_strength+" bits.");return t},t.prototype._hmac=function(t,e){return this.hmac({key:t,input:e})},t.prototype._update=function(t){var e,n;return e=new s([0],1),null!=t&&(e=e.concat(t)),n=this.V.clone().concat(e),this.K=this._hmac(this.K,n),n.scrub(),e.scrub(),this.V=this._hmac(this.K,this.V),null!=t&&(n=this.V.clone().concat(new s([1<<24],1)).concat(t),this.K=this._hmac(this.K,n),n.scrub(),this.V=this._hmac(this.K,this.V)),null!=t?t.scrub():void 0},t.prototype._instantiate=function(t,e){var n,i,o;return o=t.concat(e),i=64,this.K=s.from_buffer(new r(function(){var t,e;for(e=[],n=t=0;i>=0?i>t:t>i;n=i>=0?++t:--t)e.push(0);return e}())),this.V=s.from_buffer(new r(function(){var t,e;for(e=[],n=t=0;i>=0?i>t:t>i;n=i>=0?++t:--t)e.push(1);return e}())),this._update(o),t.scrub(),this.reseed_counter=1},t.prototype.reseed=function(t){return this._update(this.check_entropy(t,!0)),this.reseed_counter=1},t.prototype.generate=function(t){var e,n,r;if(8*t>7500)throw new Error("generate cannot generate > 7500 bits in 1 call.");if(this.reseed_counter>=1e4)throw new Error("Need a reseed!");for(n=[],e=0;0===n.length||n.length*n[0].length*4100?void!function(t){s=new c.Deferrals(t,{parent:o,filename:"/home/max/src/keybase/triplesec/src/drbg.iced",funcname:"ADRBG.generate"}),u.gen_seed(256,s.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:153})),s._fulfill()}(function(){return t(u.drbg.reseed(r))}):t()}(function(){return n=u.drbg.generate(t),u.lock.release(),e(n)})})}}(this))},t}(),n.DRBG=i,n.ADRBG=e}).call(this)},{"./combine":3,"./hmac":8,"./sha3":19,"./sha512":21,"./wordarray":24,__browserify_Buffer:26,"iced-lock":31,"iced-runtime":38}],7:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b,k,x,S={}.hasOwnProperty,E=function(t,e){function n(){this.constructor=t}for(var r in e)S.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};m=t("iced-runtime"),b=k=function(){},p=t("./wordarray").WordArray,_=t("./salsa20"),e=t("./aes").AES,f=t("./twofish").TwoFish,g=t("./ctr"),x=t("./combine"),d=x.XOR,o=x.Concat,c=t("./sha512").SHA512,a=t("./pbkdf2").PBKDF2,l=t("./scrypt").Scrypt,w=t("./util"),$=t("./prng"),v=t("iced-error").make_esc,u=t("./hmac").HMAC_SHA256,h={1:{header:[479516638,1],salt_size:8,xsalsa20_rev:!0,kdf:{klass:a,opts:{c:1024,klass:d}},hmac_key_size:96},2:{header:[479516638,2],salt_size:16,xsalsa20_rev:!0,kdf:{klass:l,opts:{c:64,klass:d,N:12,r:8,p:1}},hmac_key_size:96},3:{header:[479516638,3],salt_size:16,xsalsa20_rev:!1,kdf:{klass:l,opts:{c:1,klass:u,N:15,r:8,p:1}},hmac_key_size:96}},n.CURRENT_VERSION=i=3,r=function(){function t(t){var e,n;if(e=t.key,n=t.version,this.version=h[null!=n?n:i],null==this.version)throw new Error("unknown version: "+n);this.set_key(e),this.derived_keys={}}return t.prototype.kdf=function(t,n){var r,i,o,s,u,a,c,l,h,d,g,y,v,$,w,b,x,S,E;E=k,x=m.findDeferral(arguments),$=t.salt,s=t.extra_keymaterial,y=t.progress_hook,function(t){return function(e){S=new m.Deferrals(e,{parent:x,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),t._check_scrubbed(t.key,"in KDF",n,S.defer({lineno:94})),S._fulfill()}}(this)(function(t){return function(){w=$.to_hex(),c=t.key.clone(),function(e){S=new m.Deferrals(e,{parent:x,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),t._check_scrubbed(c,"KDF",n,S.defer({lineno:102})),S._fulfill()}(function(){!function(n){if(null!=(l=t.derived_keys[w]))return n();t._kdf=new t.version.kdf.klass(t.version.kdf.opts),d={hmac:t.version.hmac_key_size,aes:e.keySize,twofish:f.keySize,salsa20:_.Salsa20.keySize},g=["hmac","aes","twofish","salsa20"],i=s||0;for(a in d)b=d[a],i+=b;r={dkLen:i,key:c,progress_hook:y,salt:$},function(e){S=new m.Deferrals(e,{parent:x,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),t._kdf.run(r,S.defer({assign_fn:function(){return function(){return v=arguments[0]}}(),lineno:121})),S._fulfill()}(function(){var e,r;for(l={},u=0,e=0,r=g.length;r>e;e++)a=g[e],b=d[a],h=b/4,o=u+h,l[a]=new p(v.words.slice(u,o)),u=o;return l.extra=new p(v.words.slice(o)).to_buffer(),n(t.derived_keys[w]=l)})}(function(){return n(null,l)})})}}(this))},t.prototype.set_key=function(t){var e;return null==t?this.scrub():(e=p.from_buffer(t),this.key&&this.key.equal(e)?void 0:(this.scrub(),this.key=e))},t.prototype._check_scrubbed=function(t,e,n,r){return null==t||t.is_scrubbed()?n(new Error(""+e+": Failed due to scrubbed key!"),null):r()},t.prototype.sign=function(t,e){var n,r,i,s,u,a,c,l;l=k,a=m.findDeferral(arguments),n=t.input,r=t.key,u=t.salt,s=t.progress_hook,function(t){return function(n){c=new m.Deferrals(n,{parent:a,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),t._check_scrubbed(r,"HMAC",e,c.defer({lineno:179})),c._fulfill()}}(this)(function(t){return function(){n=new p(t.version.header).concat(u).concat(n),function(t){c=new m.Deferrals(t,{parent:a,filename:"/home/max/src/keybase/triplesec/src/enc.iced", +funcname:"Base.sign"}),o.bulk_sign({key:r,input:n,progress_hook:s},c.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:181})),c._fulfill()}(function(){return n.scrub(),e(null,i)})}}(this))},t.prototype.run_salsa20=function(t,e){var n,r,i,o,s,u,a,c,l,f;f=k,c=m.findDeferral(arguments),i=t.input,s=t.key,o=t.iv,u=t.output_iv,a=t.progress_hook,function(t){return function(n){l=new m.Deferrals(n,{parent:c,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),t._check_scrubbed(s,"Salsa20",e,l.defer({lineno:197})),l._fulfill()}}(this)(function(t){return function(){n={input:i,progress_hook:a,key:s,iv:o},t.version.xsalsa20_rev&&(n.key=s.clone().endian_reverse(),n.iv=o.clone().endian_reverse()),function(t){l=new m.Deferrals(t,{parent:c,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),_.bulk_encrypt(n,l.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:209})),l._fulfill()}(function(){return u&&(r=o.clone().concat(r)),t.version.xsalsa20_rev&&(n.key.scrub(),n.iv.scrub()),e(null,r)})}}(this))},t.prototype.run_twofish=function(t,e){var n,r,i,o,s,u,a,c,l;l=k,a=m.findDeferral(arguments),i=t.input,s=t.key,o=t.iv,u=t.progress_hook,function(t){return function(n){c=new m.Deferrals(n,{parent:a,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),t._check_scrubbed(s,"TwoFish",e,c.defer({lineno:232})),c._fulfill()}}(this)(function(t){return function(){n=new f(s),function(t){c=new m.Deferrals(t,{parent:a,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),g.bulk_encrypt({block_cipher:n,iv:o,input:i,progress_hook:u,what:"twofish"},c.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:234})),c._fulfill()}(function(){return n.scrub(),e(null,o.clone().concat(r))})}}(this))},t.prototype.run_aes=function(t,n){var r,i,o,s,u,a,c,l,f;f=k,c=m.findDeferral(arguments),o=t.input,u=t.key,s=t.iv,a=t.progress_hook,function(t){return function(e){l=new m.Deferrals(e,{parent:c,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),t._check_scrubbed(u,"AES",n,l.defer({lineno:249})),l._fulfill()}}(this)(function(t){return function(){r=new e(u),function(t){l=new m.Deferrals(t,{parent:c,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),g.bulk_encrypt({block_cipher:r,iv:s,input:o,progress_hook:a,what:"aes"},l.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:251})),l._fulfill()}(function(){return r.scrub(),n(null,s.clone().concat(i))})}}(this))},t.prototype.scrub=function(){var t,e,n,r,i,o;if(null!=this.key&&this.key.scrub(),null!=this.derived_keys){o=this.derived_keys;for(n in o)for(e=o[n],r=0,i=e.length;i>r;r++)t=e[r],t.scrub()}return this.derived_keys={},null!=this.salt&&this.salt.scrub(),this.salt=null,this.key=null},t}(),s=function(t){function n(t){var e,r,i;e=t.key,r=t.rng,i=t.version,n.__super__.constructor.call(this,{key:e,version:i}),this.rng=r||$.generate}return E(n,t),n.prototype.pick_random_ivs=function(t,n){var r,i,o,s,u,a,c,l;l=k,a=m.findDeferral(arguments),s=t.progress_hook,r={aes:e.ivSize,twofish:f.ivSize,salsa20:_.Salsa20.ivSize},i={},function(t){return function(e){var n,s,l,f,h,p;f=r,l=function(){var t;t=[];for(s in f)t.push(s);return t}(),n=0,h=[],(p=function(e){var r,s,d;return r=function(){return e(h)},s=function(){return m.trampoline(function(){return++n,p(e)})},d=function(t){return h.push(t),s()},nthis.hasherBlockSizeBytes&&(this.key=this.hasher.finalize(this.key)),this.key.clamp(),this._oKey=this.key.clone(),this._iKey=this.key.clone(),n=r=0,i=this.hasherBlockSize;i>=0?i>r:r>i;n=i>=0?++r:--r)this._oKey.words[n]^=1549556828,this._iKey.words[n]^=909522486;this._oKey.sigBytes=this._iKey.sigBytes=this.hasherBlockSizeBytes,this.reset()}return t.outputSize=64,t.prototype.outputSize=t.outputSize,t.prototype.get_output_size=function(){return this.hasher.output_size},t.prototype.reset=function(){return this.hasher.reset().update(this._iKey)},t.prototype.update=function(t){return this.hasher.update(t),this},t.prototype.finalize=function(t){var e,n,r;return e=this.hasher.finalize(t),this.hasher.reset(),n=this._oKey.clone().concat(e),r=this.hasher.finalize(n),e.scrub(),n.scrub(),r},t.prototype.scrub=function(){return this.key.scrub(),this._iKey.scrub(),this._oKey.scrub()},t}(),a=function(t){var n,r,i,o,s;return o=t.key,i=t.input,r=t.hash_class,n=new e(o,r),s=n.finalize(i.clamp()),n.scrub(),s},s=function(t,n){var r,i,o,s,a,l,h,p,d,g,y;y=f,d=u.findDeferral(arguments),o=t.key,i=t.input,a=t.progress_hook,s=t.klass,p=t.what,s||(s=e),p||(p="hmac_sha512"),r=new s(o),i.clamp(),h={update:function(t,e){return r.update(i.slice(t,e))},finalize:function(){return r.finalize()},default_n:1e3*r.hasherBlockSize},function(t){return function(t){g=new u.Deferrals(t,{parent:d,filename:"/home/max/src/keybase/triplesec/src/hmac.iced"}),c.bulk(i.sigBytes,h,{what:p,progress_hook:a,cb:g.defer({assign_fn:function(){return function(){return l=arguments[0]}}(),lineno:137})}),g._fulfill()}}(this)(function(t){return function(){return r.scrub(),n(l)}}(this))},n.HMAC_SHA256=r=function(t){function e(t){e.__super__.constructor.call(this,t,i)}return p(e,t),e}(e),n.HMAC=e,n.sign=a,n.bulk_sign=s}).call(this)},{"./sha256":18,"./sha512":21,"./util":23,"iced-runtime":38}],9:[function(t,e,n){var r=t("__browserify_Buffer");(function(){var e,i,o,s,u;s=t("./enc");for(i in s)o=s[i],n[i]=o;u=t("./dec");for(i in u)o=u[i],n[i]=o;n.prng=t("./prng"),n.Buffer=r,n.WordArray=t("./wordarray").WordArray,n.util=t("./util"),n.ciphers={AES:t("./aes").AES,TwoFish:t("./twofish").TwoFish,Salsa20:t("./salsa20").Salsa20},n.hash={SHA1:t("./sha1").SHA1,SHA224:t("./sha224").SHA224,SHA256:t("./sha256").SHA256,SHA384:t("./sha384").SHA384,SHA512:t("./sha512").SHA512,SHA3:t("./sha3").SHA3,MD5:t("./md5").MD5,RIPEMD160:t("./ripemd160").RIPEMD160},n.modes={CTR:t("./ctr")},n.scrypt=t("./scrypt").scrypt,n.pbkdf2=t("./pbkdf2").pbkdf2,n.hmac=e=t("./hmac"),n.HMAC_SHA256=e.HMAC_SHA256,n.HMAC=e.HMAC}).call(this)},{"./aes":1,"./ctr":4,"./dec":5,"./enc":7,"./hmac":8,"./md5":10,"./pbkdf2":11,"./prng":12,"./ripemd160":13,"./salsa20":14,"./scrypt":15,"./sha1":16,"./sha224":17,"./sha256":18,"./sha3":19,"./sha384":20,"./sha512":21,"./twofish":22,"./util":23,"./wordarray":24,__browserify_Buffer:26}],10:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f={}.hasOwnProperty,h=function(t,e){function n(){this.constructor=t}for(var r in e)f.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};c=t("./wordarray").WordArray,s=t("./algbase").Hasher,i=function(){function t(){var t;this.T=function(){var e,n;for(n=[],t=e=0;64>e;t=++e)n.push(4294967296*Math.abs(Math.sin(t+1))|0);return n}()}return t}(),l=new i,n.MD5=a=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return h(n,t),n.blockSize=16,n.prototype.blockSize=n.blockSize,n.output_size=16,n.prototype.output_size=n.output_size,n.prototype._doReset=function(){return this._hash=new c([1732584193,4023233417,2562383102,271733878])},n.prototype._doProcessBlock=function(t,n){var i,s,a,c,f,h,p,d,g,y,m,v,$,_,w,b,k,x,S,E,A,B,C,T,O;for(C=O=0;16>O;C=++O)T=n+C,x=t[T],t[T]=16711935&(x<<8|x>>>24)|4278255360&(x<<24|x>>>8);return i=this._hash.words,s=t[n+0],a=t[n+1],y=t[n+2],m=t[n+3],v=t[n+4],$=t[n+5],_=t[n+6],w=t[n+7],b=t[n+8],k=t[n+9],c=t[n+10],f=t[n+11],h=t[n+12],p=t[n+13],d=t[n+14],g=t[n+15],S=i[0],E=i[1],A=i[2],B=i[3],S=e(S,E,A,B,s,7,l.T[0]),B=e(B,S,E,A,a,12,l.T[1]),A=e(A,B,S,E,y,17,l.T[2]),E=e(E,A,B,S,m,22,l.T[3]),S=e(S,E,A,B,v,7,l.T[4]),B=e(B,S,E,A,$,12,l.T[5]),A=e(A,B,S,E,_,17,l.T[6]),E=e(E,A,B,S,w,22,l.T[7]),S=e(S,E,A,B,b,7,l.T[8]),B=e(B,S,E,A,k,12,l.T[9]),A=e(A,B,S,E,c,17,l.T[10]),E=e(E,A,B,S,f,22,l.T[11]),S=e(S,E,A,B,h,7,l.T[12]),B=e(B,S,E,A,p,12,l.T[13]),A=e(A,B,S,E,d,17,l.T[14]),E=e(E,A,B,S,g,22,l.T[15]),S=r(S,E,A,B,a,5,l.T[16]),B=r(B,S,E,A,_,9,l.T[17]),A=r(A,B,S,E,f,14,l.T[18]),E=r(E,A,B,S,s,20,l.T[19]),S=r(S,E,A,B,$,5,l.T[20]),B=r(B,S,E,A,c,9,l.T[21]),A=r(A,B,S,E,g,14,l.T[22]),E=r(E,A,B,S,v,20,l.T[23]),S=r(S,E,A,B,k,5,l.T[24]),B=r(B,S,E,A,d,9,l.T[25]),A=r(A,B,S,E,m,14,l.T[26]),E=r(E,A,B,S,b,20,l.T[27]),S=r(S,E,A,B,p,5,l.T[28]),B=r(B,S,E,A,y,9,l.T[29]),A=r(A,B,S,E,w,14,l.T[30]),E=r(E,A,B,S,h,20,l.T[31]),S=o(S,E,A,B,$,4,l.T[32]),B=o(B,S,E,A,b,11,l.T[33]),A=o(A,B,S,E,f,16,l.T[34]),E=o(E,A,B,S,d,23,l.T[35]),S=o(S,E,A,B,a,4,l.T[36]),B=o(B,S,E,A,v,11,l.T[37]),A=o(A,B,S,E,w,16,l.T[38]),E=o(E,A,B,S,c,23,l.T[39]),S=o(S,E,A,B,p,4,l.T[40]),B=o(B,S,E,A,s,11,l.T[41]),A=o(A,B,S,E,m,16,l.T[42]),E=o(E,A,B,S,_,23,l.T[43]),S=o(S,E,A,B,k,4,l.T[44]),B=o(B,S,E,A,h,11,l.T[45]),A=o(A,B,S,E,g,16,l.T[46]),E=o(E,A,B,S,y,23,l.T[47]),S=u(S,E,A,B,s,6,l.T[48]),B=u(B,S,E,A,w,10,l.T[49]),A=u(A,B,S,E,d,15,l.T[50]),E=u(E,A,B,S,$,21,l.T[51]),S=u(S,E,A,B,h,6,l.T[52]),B=u(B,S,E,A,m,10,l.T[53]),A=u(A,B,S,E,c,15,l.T[54]),E=u(E,A,B,S,a,21,l.T[55]),S=u(S,E,A,B,b,6,l.T[56]),B=u(B,S,E,A,g,10,l.T[57]),A=u(A,B,S,E,_,15,l.T[58]),E=u(E,A,B,S,p,21,l.T[59]),S=u(S,E,A,B,v,6,l.T[60]),B=u(B,S,E,A,f,10,l.T[61]),A=u(A,B,S,E,y,15,l.T[62]),E=u(E,A,B,S,k,21,l.T[63]),i[0]=i[0]+S|0,i[1]=i[1]+E|0,i[2]=i[2]+A|0,i[3]=i[3]+B|0},n.prototype._doFinalize=function(){var t,e,n,r,i,o,s,u,a,c,l;for(n=this._data,r=n.words,u=8*this._nDataBytes,s=8*n.sigBytes,r[s>>>5]|=128<<24-s%32,a=Math.floor(u/4294967296),c=u,r[(s+64>>>9<<4)+15]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),r[(s+64>>>9<<4)+14]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),n.sigBytes=4*(r.length+1),this._process(),i=this._hash,t=i.words,o=l=0;4>l;o=++l)e=t[o],t[o]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8);return i},n.prototype.copy_to=function(t){return n.__super__.copy_to.call(this,t),t._hash=this._hash.clone()},n.prototype.clone=function(){var t;return t=new n,this.copy_to(t),t},n}(s),e=function(t,e,n,r,i,o,s){var u;return u=t+(e&n|~e&r)+i+s,(u<>>32-o)+e},r=function(t,e,n,r,i,o,s){var u;return u=t+(e&r|n&~r)+i+s,(u<>>32-o)+e},o=function(t,e,n,r,i,o,s){var u;return u=t+(e^n^r)+i+s,(u<>>32-o)+e},u=function(t,e,n,r,i,o,s){var u;return u=t+(n^(e|~r))+i+s,(u<>>32-o)+e},n.transform=function(t){var e;return e=(new a).finalize(t),t.scrub(),e}}).call(this)},{"./algbase":2,"./wordarray":24}],11:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c;o=t("iced-runtime"),a=c=function(){},e=t("./hmac").HMAC,i=t("./wordarray").WordArray,u=t("./util"),r=function(){function t(t){this.klass=t.klass,this.c=t.c,this.c||(this.c=1024),this.klass||(this.klass=e)}return t.prototype._PRF=function(t){return this.prf.reset(),this.prf.finalize(t)},t.prototype._gen_T_i=function(t,e){var n,r,s,a,l,f,h,p,d,g;g=c,p=o.findDeferral(arguments),l=t.salt,r=t.i,s=t.progress_hook,s(0),f=l.clone().concat(new i([r])),n=this._PRF(f),a=n.clone(),r=1,function(t){return function(e){var i,c;i=[],(c=function(e){var l,f,g;if(l=function(){return e(i)},f=function(){return o.trampoline(function(){return c(e)})},g=function(t){return i.push(t),f()},!(rr;)n=t._PRF(n),a.xor(n,{}),r++;s(r),function(t){d=new o.Deferrals(t,{parent:p,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2._gen_T_i"}),u.default_delay(0,0,d.defer({lineno:57})),d._fulfill()}(function(){return g(null)})})(e)}}(this)(function(t){return function(){return s(r),e(a)}}(this))},t.prototype.run=function(t,e){var n,r,s,u,a,l,f,h,p,d,g,y,m,v,$,_,w,b;$=c,m=o.findDeferral(arguments),a=t.key,p=t.salt,r=t.dkLen,h=t.progress_hook,this.prf=new this.klass(a),n=this.prf.get_output_size(),l=Math.ceil(r/n),y=[],g=null,f=function(t){return function(e){return function(n){return"function"==typeof h?h({what:"pbkdf2",total:l*t.c,i:e*t.c+n}):void 0}}}(this),f(0)(0),function(t){return function(e){var n,r;u=1,_=1,w=l,b=w>_,n=[],(r=function(e){var i,s,a;return i=function(){return e(n)},s=function(){return o.trampoline(function(){return b?u+=1:u-=1,r(e)})},a=function(t){return n.push(t),s()},b===!0&&u>l||b===!1&&l>u?i():void!function(e){v=new o.Deferrals(e,{parent:m,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2.run"}),t._gen_T_i({salt:p,i:u,progress_hook:f(u-1)},v.defer({assign_fn:function(){return function(){return d=arguments[0]}}(),lineno:80})),v._fulfill()}(function(){return a(y.push(d.words))})})(e)}}(this)(function(t){return function(){var n;return f(l)(0),s=(n=[]).concat.apply(n,y),a.scrub(),t.prf.scrub(),t.prf=null,e(new i(s,r))}}(this))},t}(),s=function(t,e){var n,i,s,u,a,l,f,h,p,d,g;g=c,p=o.findDeferral(arguments),u=t.key,h=t.salt,a=t.klass,n=t.c,i=t.dkLen,f=t.progress_hook,s=new r({klass:a,c:n}),function(t){return function(t){d=new o.Deferrals(t,{parent:p,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced"}),s.run({key:u,salt:h,dkLen:i,progress_hook:f},d.defer({assign_fn:function(){return function(){return l=arguments[0]}}(),lineno:106})),d._fulfill()}}(this)(function(t){return function(){return e(l)}}(this))},n.pbkdf2=s,n.PBKDF2=r}).call(this)},{"./hmac":8,"./util":23,"./wordarray":24,"iced-runtime":38}],12:[function(t,e,n){var r=t("__browserify_Buffer");(function(){var e,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b;if(l=t("iced-runtime"),y=m=function(){},h=t("more-entropy"),e=t("./drbg").ADRBG,o=t("./wordarray").WordArray,s=t("./combine").XOR,g=t("./util"),v=null,u=function(t){var e;return e=new Uint8Array(t),v(e),new r(e)},v=null!=(f="undefined"!=typeof window&&null!==window&&null!=(w=window.crypto)?w.getRandomValues:void 0)?f.bind(window.crypto):null!=(f="undefined"!=typeof window&&null!==window&&null!=(b=window.msCrypto)?b.getRandomValues:void 0)?f.bind(window.msCrypto):null,null!=v)$=u;else try{d=t("crypto").rng,null!=d&&($=d)}catch(k){a=k}p=function(t){if(null==$)throw new Error('No rng found; tried requiring "crypto" and window.crypto');return $(t)},i=function(){function t(){this.meg=new h.Generator,this.adrbg=new e(function(t){return function(e,n){return t.gen_seed(e,n)}}(this),s.sign)}return t.prototype.now_to_buffer=function(){var t,e,n,i;return e=Date.now(),n=e%1e3,i=Math.floor(e/1e3),t=new r(8),t.writeUInt32BE(i,0),t.writeUInt32BE(n,4),t},t.prototype.gen_seed=function(t,e){var n,i,s,u,a,c,f,h,d;d=m,f=l.findDeferral(arguments),u=t/8,i=[],i.push(this.now_to_buffer()),function(e){return function(n){h=new l.Deferrals(n,{parent:f,filename:"/Users/chris/git/keybase/triplesec/src/prng.iced",funcname:"PRNG.gen_seed"}),e.meg.generate(t,h.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:83})),h._fulfill()}}(this)(function(t){return function(){var l,f;for(i.push(t.now_to_buffer()),i.push(new r(c)),i.push(p(u)),i.push(t.now_to_buffer()),s=r.concat(i),a=o.from_buffer(s),g.scrub_buffer(s),l=0,f=i.length;f>l;l++)n=i[l],g.scrub_buffer(n);return e(a)}}(this))},t.prototype.generate=function(t,e){return this.adrbg.generate(t,e)},t}(),_=null,c=function(t,e){return null==_&&(_=new i),_.generate(t,e)},n.PRNG=i,n.generate=c,n.native_rng=p}).call(this)},{"./combine":3,"./drbg":6,"./util":23,"./wordarray":24,__browserify_Buffer:26,"iced-runtime":38,"more-entropy":41}],13:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f,h,p,d,g,y,m={}.hasOwnProperty,v=function(t,e){function n(){this.constructor=t}for(var r in e)m.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};y=t("./wordarray"),s=y.WordArray,u=y.X64Word,a=y.X64WordArray,i=t("./algbase").Hasher,r=function(){function t(){this._zl=new s([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),this._zr=new s([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),this._sl=new s([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),this._sr=new s([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),this._hl=new s([0,1518500249,1859775393,2400959708,2840853838]),this._hr=new s([1352829926,1548603684,1836072691,2053994217,0])}return t}(),e=new r,o=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return v(n,t),n.blockSize=16,n.prototype.blockSize=n.blockSize,n.output_size=20,n.prototype.output_size=n.output_size,n.prototype._doReset=function(){return this._hash=new s([1732584193,4023233417,2562383102,271733878,3285377520])},n.prototype.get_output_size=function(){return this.output_size},n.prototype._doProcessBlock=function(t,n){var r,i,o,s,u,a,g,y,m,v,$,_,w,b,k,x,S,E,A,B,C,T,O;for(k=T=0;16>T;k=++T)x=n+k,i=t[x],t[x]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8);for(r=this._hash.words,w=e._hl.words,b=e._hr.words,B=e._zl.words,C=e._zr.words,S=e._sl.words,E=e._sr.words,s=o=r[0],a=u=r[1],y=g=r[2],v=m=r[3],_=$=r[4],k=O=0;80>O;k=++O)A=o+t[n+B[k]]|0,A+=16>k?c(u,g,m)+w[0]:32>k?l(u,g,m)+w[1]:48>k?f(u,g,m)+w[2]:64>k?h(u,g,m)+w[3]:p(u,g,m)+w[4],A=0|A,A=d(A,S[k]),A=A+$|0,o=$,$=m,m=d(g,10),g=u,u=A,A=s+t[n+C[k]]|0,A+=16>k?p(a,y,v)+b[0]:32>k?h(a,y,v)+b[1]:48>k?f(a,y,v)+b[2]:64>k?l(a,y,v)+b[3]:c(a,y,v)+b[4],A=0|A,A=d(A,E[k]),A=A+_|0,s=_,_=v,v=d(y,10),y=a,a=A;return A=r[1]+g+v|0,r[1]=r[2]+m+_|0,r[2]=r[3]+$+s|0,r[3]=r[4]+o+a|0,r[4]=r[0]+u+y|0,r[0]=A},n.prototype._doFinalize=function(){var t,e,n,r,i,o,s,u,a;for(n=this._data,r=n.words,u=8*this._nDataBytes,s=8*n.sigBytes,r[s>>>5]|=128<<24-s%32,r[(s+64>>>9<<4)+14]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),n.sigBytes=4*(r.length+1),this._process(),i=this._hash,t=i.words,o=a=0;5>a;o=++a)e=t[o],t[o]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8);return i},n.prototype.scrub=function(){return this._hash.scrub()},n.prototype.copy_to=function(t){return n.__super__.copy_to.call(this,t),t._hash=this._hash.clone()},n.prototype.clone=function(){var t;return t=new n,this.copy_to(t),t},n}(i),c=function(t,e,n){return t^e^n},l=function(t,e,n){return t&e|~t&n},f=function(t,e,n){return(t|~e)^n},h=function(t,e,n){return t&n|e&~n},p=function(t,e,n){return t^(e|~n)},d=function(t,e){return t<>>32-e},g=function(t){var e;return e=(new o).finalize(t),t.scrub(),e},n.RIPEMD160=o,n.transform=g}).call(this)},{"./algbase":2,"./wordarray":24}],14:[function(t,e,n){var r=t("__browserify_Buffer");(function(){var e,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w={}.hasOwnProperty,b=function(t,e){function n(){this.constructor=t}for(var r in e)w.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};y=t("iced-runtime"),v=$=function(){},_=t("./wordarray"),d=_.endian_reverse,l=_.WordArray,i=t("./ctr").Counter,g=t("./util").fixup_uint32,c=t("./algbase").StreamCipher,m=t("./util"),f=function(t,e){var n,r,i,o;for(r=i=0,o=e.length;o>i;r=++i)n=e[r],t[r]+=n;return!1},u=function(){function t(t){this.rounds=t}return t.prototype._core=function(t){"use asm";var e,n,r,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$,_;for(r=t[0],i=t[1],f=t[2],h=t[3],p=t[4],d=t[5],g=t[6],y=t[7],m=t[8],v=t[9],o=t[10],s=t[11],u=t[12],a=t[13],c=t[14],l=t[15],e=$=0,_=this.rounds;$<_;e=$+=2)n=r+u|0,p^=n<<7|n>>>25,n=p+r|0,m^=n<<9|n>>>23,n=m+p|0,u^=n<<13|n>>>19,n=u+m|0,r^=n<<18|n>>>14,n=d+i|0,v^=n<<7|n>>>25,n=v+d|0,a^=n<<9|n>>>23,n=a+v|0,i^=n<<13|n>>>19,n=i+a|0,d^=n<<18|n>>>14,n=o+g|0,c^=n<<7|n>>>25,n=c+o|0,f^=n<<9|n>>>23,n=f+c|0,g^=n<<13|n>>>19,n=g+f|0,o^=n<<18|n>>>14,n=l+s|0,h^=n<<7|n>>>25,n=h+l|0,y^=n<<9|n>>>23,n=y+h|0,s^=n<<13|n>>>19,n=s+y|0,l^=n<<18|n>>>14,n=r+h|0,i^=n<<7|n>>>25,n=i+r|0,f^=n<<9|n>>>23,n=f+i|0,h^=n<<13|n>>>19,n=h+f|0,r^=n<<18|n>>>14,n=d+p|0,g^=n<<7|n>>>25,n=g+d|0,y^=n<<9|n>>>23,n=y+g|0,p^=n<<13|n>>>19,n=p+y|0,d^=n<<18|n>>>14,n=o+v|0,s^=n<<7|n>>>25,n=s+o|0,m^=n<<9|n>>>23,n=m+s|0,v^=n<<13|n>>>19,n=v+m|0,o^=n<<18|n>>>14,n=l+c|0,u^=n<<7|n>>>25,n=u+l|0,a^=n<<9|n>>>23,n=a+u|0,c^=n<<13|n>>>19,n=c+a|0,l^=n<<18|n>>>14;return[r,i,f,h,p,d,g,y,m,v,o,s,u,a,c,l]},t}(),s=function(t){function e(t,n){var r;if(e.__super__.constructor.call(this,20),this.key=t.clone().endian_reverse(),this.nonce=n.clone().endian_reverse(),(16!==this.key.sigBytes||8!==this.nonce.sigBytes)&&(32!==this.key.sigBytes||8!==(r=this.nonce.sigBytes)&&24!==r))throw new Error("Bad key/nonce lengths");24===this.nonce.sigBytes&&this.xsalsa_setup(),this.input=this.key_iv_setup(this.nonce,this.key),this._reset()}return b(e,t),e.prototype.sigma=l.from_buffer_le(new r("expand 32-byte k")),e.prototype.tau=l.from_buffer_le(new r("expand 16-byte k")),e.blockSize=64,e.prototype.blockSize=e.blockSize,e.keySize=32,e.prototype.keySize=e.keySize,e.ivSize=24,e.prototype.ivSize=e.ivSize,e.prototype.scrub=function(){return this.key.scrub(),this.nonce.scrub(),m.scrub_vec(this.input)},e.prototype.xsalsa_setup=function(){var t,e;return t=new l(this.nonce.words.slice(0,4)),this.nonce=e=new l(this.nonce.words.slice(4)),this.key=this.hsalsa20(t,this.key)},e.prototype.hsalsa20=function(t,e){var n,r,i,o;return i=this.key_iv_setup(t,e),i[8]=t.words[2],i[9]=t.words[3],o=this._core(i),r=[0,5,10,15,6,7,8,9],o=function(){var t,e,i;for(i=[],t=0,e=r.length;e>t;t++)n=r[t],i.push(g(o[n]));return i}(),m.scrub_vec(i),new l(o)},e.prototype.key_iv_setup=function(t,e){var n,r,i,o,s,u,a,c;for(o=[],i=s=0;4>s;i=++s)o[i+1]=e.words[i];for(c=32===e.sigBytes?[this.sigma,e.words.slice(4)]:[this.tau,e.words],r=c[0],n=c[1],i=u=0;4>u;i=++u)o[i+11]=n[i];for(i=a=0;4>a;i=++a)o[5*i]=r.words[i];return o[6]=t.words[0],o[7]=t.words[1],o},e.prototype.counter_setup=function(){return this.input[8]=this.counter.get().words[0],this.input[9]=this.counter.get().words[1]},e.prototype._reset=function(){return this.counter=new i({len:2})},e.prototype._generateBlock=function(){var t;return this.counter_setup(),t=this._core(this.input),f(t,this.input),this.counter.inc_le(),t},e}(u),n.Salsa20WordStream=a=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return b(e,t),e.prototype._reset=function(){return e.__super__._reset.call(this)},e.prototype.getWordArray=function(t){var e,n,r,i,o,s,u,a;for(null==t||t===this.blockSize?o=this._generateBlock():(r=Math.ceil(t/this.blockSize),e=function(){var t,e;for(e=[],n=t=0;r>=0?r>t:t>r;n=r>=0?++t:--t)e.push(this._generateBlock());return e}.call(this),o=(a=[]).concat.apply(a,e)),n=s=0,u=o.length;u>s;n=++s)i=o[n],o[n]=d(i);return new l(o,t)},e}(s),n.Salsa20=o=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return b(e,t),e.prototype._reset=function(){return e.__super__._reset.call(this),this._i=this.blockSize},e.prototype.getBytes=function(t){var e,n,i;if(null==t&&(t=this.blockSize),i=[],e=this.blockSize,this._i===e&&t===e)return this._generateBlockBuffer();for(;t>0;)this._i===e&&(this._generateBlockBuffer(),this._i=0),n=Math.min(t,e-this._i),i.push(n===e?this._buf:this._buf.slice(this._i,this._i+n)),this._i+=n,t-=n;return r.concat(i)},e.prototype._generateBlockBuffer=function(){var t,e,n,i,o;for(this._buf=new r(this.blockSize),n=this._generateBlock(),e=i=0,o=n.length;o>i;e=++i)t=n[e],this._buf.writeUInt32LE(g(t),4*e);return this._buf},e}(s),n.Cipher=e=function(t){function e(t){var n,r;r=t.key,n=t.iv,e.__super__.constructor.call(this),this.salsa=new a(r,n),this.bsiw=this.salsa.blockSize/4}return b(e,t),e.prototype.scrub=function(){return this.salsa.scrub()},e.prototype.get_pad=function(){var t;return t=this.salsa.getWordArray()},e}(c),n.encrypt=p=function(t){var n,r,i,o,s;return o=t.key,i=t.iv,r=t.input,n=new e({key:o,iv:i}),s=n.encrypt(r),n.scrub(),s},n.bulk_encrypt=h=function(t,n){var r,i,o,s,u,a,c,l,f;f=$,c=y.findDeferral(arguments),s=t.key,o=t.iv,i=t.input,u=t.progress_hook,r=new e({key:s,iv:o}),function(t){return function(t){l=new y.Deferrals(t,{parent:c,filename:"/home/max/src/keybase/triplesec/src/salsa20.iced"}),r.bulk_encrypt({input:i,progress_hook:u,what:"salsa20"},l.defer({assign_fn:function(){return function(){return a=arguments[0]}}(),lineno:257})),l._fulfill()}}(this)(function(t){return function(){return r.scrub(),n(a)}}(this))},n.Salsa20InnerCore=u,n.endian_reverse=d,n.asum=f}).call(this)},{"./algbase":2,"./ctr":4,"./util":23,"./wordarray":24,__browserify_Buffer:26,"iced-runtime":38}],15:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b,k;h=t("iced-runtime"),$=_=function(){},e=t("./hmac").HMAC_SHA256,p=t("./pbkdf2").pbkdf2,w=t("./salsa20"),l=w.endian_reverse,r=w.Salsa20InnerCore,b=t("./wordarray"),m=b.ui8a_to_buffer,s=b.WordArray,k=t("./util"),f=k.fixup_uint32,c=k.default_delay,d=k.scrub_vec,o=function(){function t(){this.tot=0}return t.prototype.start=function(){return this._t=Date.now()},t.prototype.stop=function(){return this.tot+=Date.now()-this._t},t}(),y=new o,u=function(t,e,n,r,i){"use asm";var o,s,u;for(u=n<<4|0,s=r<<4|0,o=s+(i<<4)|0;sr;n=++r)e=t[n],t[n]=l(e);return!0},i=function(){function t(t){var n,i,o,s;n=t.N,this.r=t.r,this.p=t.p,i=t.c,o=t.c0,s=t.c1,this.klass=t.klass,this.N||(this.N=1<<(n||15)),this.r||(this.r=8),this.p||(this.p=1),this.c0=o||i||1,this.c1=s||i||1,this.klass||(this.klass=e),this.X16_tmp=new Int32Array(16),this.s20ic=new r(8)}return t.prototype.salsa20_8=function(t){var e,n,r,i,o;for(e=this.s20ic._core(t),n=i=0,o=e.length;o>i;n=++i)r=e[n],t[n]+=r;return!0},t.prototype.pbkdf2=function(t,e){var n,r,i,o,s,u,a,c,l;l=_,a=h.findDeferral(arguments),i=t.key,s=t.salt,r=t.dkLen,o=t.progress_hook,n=t.c,function(t){return function(e){c=new h.Deferrals(e,{parent:a,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.pbkdf2"}),p({key:i,salt:s,c:n,dkLen:r,klass:t.klass,progress_hook:o},c.defer({assign_fn:function(){return function(){return u=arguments[0]}}(),lineno:113})),c._fulfill()}}(this)(function(t){return function(){return e(u)}}(this))},t.prototype.blockmix_salsa8=function(t,e){var n,r,i,o;for(n=this.X16_tmp,u(n,t,0,2*this.r-1,1),r=i=0,o=2*this.r;o>=0?o>i:i>o;r=o>=0?++i:--i)a(n,t,r,1),this.salsa20_8(n),u(e,n,r,0,1);for(r=0;rl;)u(r,i,d*l,0,d),t.blockmix_salsa8(i,s),l++;"function"==typeof g&&g(l),function(t){v=new h.Deferrals(t,{parent:m,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),c(0,0,v.defer({lineno:170})),v._fulfill()}(p)})(e)}}(this)(function(t){return function(){l=0,function(e){var n,o;n=[],(o=function(e){var u,$,_;if(u=function(){return e(n)},$=function(){return h.trampoline(function(){return o(e)})},_=function(t){return n.push(t),$()},!(ll;)p=f(i[16*(d-1)])&t.N-1,a(i,r,p*d,d),t.blockmix_salsa8(i,s),l++;"function"==typeof g&&g(l+t.N),function(t){v=new h.Deferrals(t,{parent:m,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),c(0,0,v.defer({lineno:187})),v._fulfill()}(_)})(e)}(function(){return u(n,i,0,0,d),e()})}}(this))},t.prototype.run=function(t,e){var n,r,i,o,u,a,c,l,f,p,g,y,m,$,w,b,k,x,S;b=_,$=h.findDeferral(arguments),l=t.key,m=t.salt,u=t.dkLen,g=t.progress_hook,r=4294967295,a=y=null,a=u>r?a=new Error("asked for too much data"):this.r*this.p>=1<<30?new Error("r & p are too big"):this.r>r/128/this.p||this.r>r/256||this.N>r/128/this.r?new Error("N is too big"):null,o=new Int32Array(64*this.r),i=new Int32Array(32*this.r*this.N),f=function(t){return t.what+=" (pass 1)","function"==typeof g?g(t):void 0},function(t){return function(e){w=new h.Deferrals(e,{parent:$,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),t.pbkdf2({key:l.clone(),salt:m,dkLen:128*t.r*t.p,c:t.c0,progress_hook:f},w.defer({assign_fn:function(){return function(){return n=arguments[0]}}(),lineno:218})),w._fulfill()}}(this)(function(t){return function(){n=new Int32Array(n.words),v(n),f=function(e){return function(n){return"function"==typeof g?g({i:n+e*t.N*2,what:"scrypt",total:t.p*t.N*2}):void 0}},function(e){var r,s;c=0,k=0,x=t.p,S=x>k,r=[],(s=function(e){var u,a,l;return u=function(){return e(r)},a=function(){return h.trampoline(function(){return S?c+=1:c-=1,s(e)})},l=function(t){return r.push(t),a()},S===!0&&c>=t.p||S===!1&&c<=t.p?u():void!function(e){w=new h.Deferrals(e,{parent:$,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),t.smix({B:n.subarray(32*t.r*c),V:i,XY:o,progress_hook:f(c)},w.defer({lineno:225})),w._fulfill()}(l)})(e)}(function(){v(n),f=function(t){return t.what+=" (pass 2)","function"==typeof g?g(t):void 0},function(e){w=new h.Deferrals(e,{parent:$,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),t.pbkdf2({key:l,salt:s.from_i32a(n),dkLen:u,c:t.c1,progress_hook:f},w.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:233})),w._fulfill()}(function(){return d(o),d(i),d(n),l.scrub(),e(p)})})}}(this))},t}(),g=function(t,e){var n,r,o,s,u,a,c,l,f,p,d,g,y,m,v,$;$=_,m=h.findDeferral(arguments),c=t.key,g=t.salt,d=t.r,n=t.N,f=t.p,o=t.c0,s=t.c1,r=t.c,l=t.klass,p=t.progress_hook,u=t.dkLen,a=new i({r:d,N:n,p:f,c:r,c0:o,c1:s,klass:l}),function(t){return function(t){v=new h.Deferrals(t,{parent:m,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced"}),a.run({key:c,salt:g,progress_hook:p,dkLen:u},v.defer({assign_fn:function(){return function(){return y=arguments[0]}}(),lineno:263})),v._fulfill()}}(this)(function(t){return function(){return e(y)}}(this))},n.Scrypt=i,n.scrypt=g,n.v_endian_reverse=v}).call(this)},{"./hmac":8,"./pbkdf2":11,"./salsa20":14,"./util":23,"./wordarray":24,"iced-runtime":38}],16:[function(t,e,n){(function(){var e,r,i,o,s,u={}.hasOwnProperty,a=function(t,e){function n(){this.constructor=t}for(var r in e)u.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};o=t("./wordarray").WordArray,e=t("./algbase").Hasher,i=[],r=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return a(e,t),e.blockSize=16,e.prototype.blockSize=e.blockSize,e.output_size=20,e.prototype.output_size=e.output_size,e.prototype._doReset=function(){return this._hash=new o([1732584193,4023233417,2562383102,271733878,3285377520])},e.prototype._doProcessBlock=function(t,e){var n,r,o,s,u,a,c,l,f,h;for(n=this._hash.words,r=n[0],o=n[1],s=n[2],u=n[3],a=n[4],c=h=0;80>h;c=++h)16>c?i[c]=0|t[e+c]:(l=i[c-3]^i[c-8]^i[c-14]^i[c-16],i[c]=l<<1|l>>>31),f=(r<<5|r>>>27)+a+i[c],f+=20>c?(o&s|~o&u)+1518500249:40>c?(o^s^u)+1859775393:60>c?(o&s|o&u|s&u)-1894007588:(o^s^u)-899497514,a=u,u=s,s=o<<30|o>>>2,o=r,r=f;return n[0]=n[0]+r|0,n[1]=n[1]+o|0,n[2]=n[2]+s|0,n[3]=n[3]+u|0,n[4]=n[4]+a|0},e.prototype._doFinalize=function(){var t,e,n,r;return t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes,e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=Math.floor(r/4294967296),e[(n+64>>>9<<4)+15]=r,t.sigBytes=4*e.length,this._process(),this._hash},e.prototype.copy_to=function(t){return e.__super__.copy_to.call(this,t),t._hash=this._hash.clone()},e.prototype.clone=function(){var t;return t=new e,this.copy_to(t),t},e}(e),s=s=function(t){var e;return e=(new r).finalize(t),t.scrub(),e},n.SHA1=r,n.transform=s}).call(this)},{"./algbase":2,"./wordarray":24}],17:[function(t,e,n){(function(){var e,r,i,o,s={}.hasOwnProperty,u=function(t,e){function n(){this.constructor=t}for(var r in e)s.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};i=t("./wordarray").WordArray,r=t("./sha256").SHA256,e=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return u(e,t),e.output_size=28,e.prototype.output_size=e.output_size,e.prototype._doReset=function(){return this._hash=new i([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},e.prototype._doFinalize=function(){var t;return t=e.__super__._doFinalize.call(this),t.sigBytes-=4,t},e.prototype.clone=function(){var t;return t=new e,this.copy_to(t),t},e}(r),o=function(t){var n;return n=(new e).finalize(t),t.scrub(),n},n.SHA224=e,n.transform=o}).call(this)},{"./sha256":18,"./wordarray":24}],18:[function(t,e,n){(function(){var e,r,i,o,s,u,a={}.hasOwnProperty,c=function(t,e){function n(){this.constructor=t}for(var r in e)a.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};o=t("./wordarray").WordArray,r=t("./algbase").Hasher,e=function(){function t(){this.H=[],this.K=[],this.W=[],this.init()}return t.prototype.isPrime=function(t){var e,n,r;if(2===t||3===t||5===t||7===t)return!0;if(1===t||4===t||6===t||8===t||9===t)return!1;for(n=Math.ceil(Math.sqrt(t)),e=r=2;n>=2?n>=r:r>=n;e=n>=2?++r:--r)if(t%e===0)return!1;return!0},t.prototype.getFractionalBits=function(t){return 4294967296*(t-(0|t))|0},t.prototype.init=function(){var t,e,n;for(t=2,e=0,n=[];64>e;)this.isPrime(t)&&(8>e&&(this.H[e]=this.getFractionalBits(Math.pow(t,.5))),this.K[e]=this.getFractionalBits(Math.pow(t,1/3)),e++),n.push(t++);return n},t}(),s=new e,i=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return c(e,t),e.blockSize=16,e.prototype.blockSize=e.blockSize,e.output_size=32,e.prototype.output_size=e.output_size,e.prototype._doReset=function(){return this._hash=new o(s.H.slice(0))},e.prototype.get_output_size=function(){return this.output_size},e.prototype._doProcessBlock=function(t,e){var n,r,i,o,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b,k,x,S;for(n=this._hash.words,i=s.W,r=s.K,o=n[0],u=n[1],a=n[2],l=n[3],f=n[4],h=n[5],p=n[6],v=n[7],$=S=0;64>S;$=++S)16>$?i[$]=0|t[e+$]:(g=i[$-15],d=(g<<25|g>>>7)^(g<<14|g>>>18)^g>>>3,m=i[$-2],y=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10,i[$]=d+i[$-7]+y+i[$-16]),c=f&h^~f&p,_=o&u^o&a^u&a,w=(o<<30|o>>>2)^(o<<19|o>>>13)^(o<<10|o>>>22),b=(f<<26|f>>>6)^(f<<21|f>>>11)^(f<<7|f>>>25),k=v+b+c+r[$]+i[$],x=w+_,v=p,p=h,h=f,f=l+k|0,l=a,a=u,u=o,o=k+x|0;return n[0]=n[0]+o|0,n[1]=n[1]+u|0,n[2]=n[2]+a|0,n[3]=n[3]+l|0,n[4]=n[4]+f|0,n[5]=n[5]+h|0,n[6]=n[6]+p|0,n[7]=n[7]+v|0},e.prototype._doFinalize=function(){var t,e,n,r;return t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes,e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=Math.floor(r/4294967296),e[(n+64>>>9<<4)+15]=r,t.sigBytes=4*e.length,this._process(),this._hash},e.prototype.scrub=function(){return this._hash.scrub()},e.prototype.copy_to=function(t){return e.__super__.copy_to.call(this,t),t._hash=this._hash.clone()},e.prototype.clone=function(){var t;return t=new e,this.copy_to(t),t},e}(r),u=function(t){var e;return e=(new i).finalize(t),t.scrub(),e},n.SHA256=i,n.transform=u}).call(this)},{"./algbase":2,"./wordarray":24}],19:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l={}.hasOwnProperty,f=function(t,e){function n(){this.constructor=t}for(var r in e)l.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};c=t("./wordarray"),o=c.WordArray,s=c.X64Word,u=c.X64WordArray,r=t("./algbase").Hasher,e=function(){function t(){this.RHO_OFFSETS=[],this.PI_INDEXES=[],this.ROUND_CONSTANTS=[],this.T=[],this.compute_rho_offsets(),this.compute_pi_indexes(),this.compute_round_constants(),this.make_reusables()}return t.prototype.compute_rho_offsets=function(){var t,e,n,r,i,o,s;for(r=1,i=0,s=[],n=o=0;24>o;n=++o)this.RHO_OFFSETS[r+5*i]=(n+1)*(n+2)/2%64,t=i%5,e=(2*r+3*i)%5,r=t,s.push(i=e);return s},t.prototype.compute_pi_indexes=function(){var t,e,n,r;for(r=[],t=n=0;5>n;t=++n)r.push(function(){var n,r;for(r=[],e=n=0;5>n;e=++n)r.push(this.PI_INDEXES[t+5*e]=e+(2*t+3*e)%5*5);return r}.call(this));return r},t.prototype.compute_round_constants=function(){var t,e,n,r,i,o,u,a,c;for(t=1,c=[],n=u=0;24>u;n=++u){for(o=0,i=0,r=a=0;7>a;r=++a)1&t&&(e=(1<e?i^=1<e;t=++e)n.push(new s(0,0));return n}()},t}(),a=new e,n.SHA3=i=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,t),e.outputLength=512,e.prototype.outputLength=e.outputLength,e.blockSize=(1600-2*e.outputLength)/32,e.prototype.blockSize=e.blockSize,e.output_size=e.outputLength/8,e.prototype.output_size=e.output_size,e.prototype._doReset=function(){var t;return this._state=function(){var e,n;for(n=[],t=e=0;25>e;t=++e)n.push(new s(0,0));return n}()},e.prototype._doProcessBlock=function(t,e){var n,r,i,o,s,u,c,l,f,h,p,d,g,y,m,v,$,_,w,b,k,x,S,E,A,B,C,T,O,D,M,P,I,N,z,R,U,j;for(n=a,S=this._state,w=this.blockSize/2,y=O=0;w>=0?w>O:O>w;y=w>=0?++O:--O)r=t[e+2*y],i=t[e+2*y+1],r=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),i=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),m=S[y],m.high^=i,m.low^=r;for(j=[],k=D=0;24>D;k=++D){for(C=M=0;5>M;C=++M){for(B=A=0,T=P=0;5>P;T=++P)m=S[C+5*T],B^=m.high,A^=m.low;c=n.T[C],c.high=B,c.low=A}for(C=I=0;5>I;C=++I)for(g=n.T[(C+4)%5],l=n.T[(C+1)%5],p=l.high,h=l.low,B=g.high^(p<<1|h>>>31),A=g.low^(h<<1|p>>>31),T=N=0;5>N;T=++N)m=S[C+5*T],m.high^=B,m.low^=A;for(v=z=1;25>z;v=++z)m=S[v],_=m.high,$=m.low,b=n.RHO_OFFSETS[v],32>b?(B=_<>>32-b,A=$<>>32-b):(B=$<>>64-b,A=_<>>64-b),u=n.T[n.PI_INDEXES[v]],u.high=B,u.low=A;for(o=n.T[0],E=S[0],o.high=E.high,o.low=E.low,C=R=0;5>R;C=++R)for(T=U=0;5>U;T=++U)v=C+5*T,m=S[v],s=n.T[v],f=n.T[(C+1)%5+5*T],d=n.T[(C+2)%5+5*T],m.high=s.high^~f.high&d.high,m.low=s.low^~f.low&d.low;m=S[0],x=n.ROUND_CONSTANTS[k],m.high^=x.high,j.push(m.low^=x.low)}return j},e.prototype._doFinalize=function(){var t,e,n,r,i,s,u,a,c,l,f,h,p,d;for(e=this._data,n=e.words,l=8*this._nDataBytes,c=8*e.sigBytes,t=32*this.blockSize,n[c>>>5]|=1<<24-c%32,n[(Math.ceil((c+1)/t)*t>>>5)-1]|=128,e.sigBytes=4*n.length,this._process(),p=this._state,f=this.outputLength/8,h=f/8,r=[],i=d=0;h>=0?h>d:d>h;i=h>=0?++d:--d)s=p[i],a=s.high,u=s.low,a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),r.push(u),r.push(a);return new o(r,f)},e.prototype.copy_to=function(t){var n;return e.__super__.copy_to.call(this,t),t._state=function(){var t,e,r,i;for(r=this._state,i=[],t=0,e=r.length;e>t;t++)n=r[t],i.push(n.clone());return i}.call(this)},e.prototype.scrub=function(){},e.prototype.clone=function(){var t;return t=new e,this.copy_to(t),t},e}(r),n.transform=function(t){var e;return e=(new i).finalize(t),t.scrub(),e}}).call(this)},{"./algbase":2,"./wordarray":24}],20:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l={}.hasOwnProperty,f=function(t,e){function n(){this.constructor=t}for(var r in e)l.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};a=t("./wordarray"),s=a.X64WordArray,o=a.WordArray,c=t("./sha512"),i=c.SHA512,e=c.Global,r=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return f(n,t),n.output_size=48,n.prototype.output_size=n.output_size,n.prototype._doReset=function(){return this._hash=new s(e.convert([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]))},n.prototype._doFinalize=function(){var t;return t=n.__super__._doFinalize.call(this),t.sigBytes-=16,t},n.prototype.clone=function(){var t;return t=new n,this.copy_to(t),t},n}(i),u=function(t){var e;return e=(new r).finalize(t),t.scrub(),e},n.SHA384=r,n.transform=u}).call(this)},{"./sha512":21,"./wordarray":24}],21:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c={}.hasOwnProperty,l=function(t,e){function n(){this.constructor=t}for(var r in e)c.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};a=t("./wordarray"),o=a.X64Word,s=a.X64WordArray,r=t("./algbase").Hasher,e=function(){function t(){var t;this.K=this.convert([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]),this.I=new s(this.convert([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])),this.W=function(){var e,n;for(n=[],t=e=0;80>e;t=++e)n.push(new o(0,0));return n}()}return t.convert=function(t){var e,n,r,i;for(i=[],e=n=0,r=t.length;r>n;e=n+=2)i.push(new o(t[e],t[e+1]));return i},t.prototype.convert=function(e){return t.convert(e)},t}(),n.Global=e,u=new e,n.SHA512=i=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return l(e,t),e.blockSize=32,e.prototype.blockSize=e.blockSize,e.output_size=64,e.prototype.output_size=e.output_size,e.prototype._doReset=function(){return this._hash=u.I.clone()},e.prototype._doProcessBlock=function(t,e){var n,r,i,o,s,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b,k,x,S,E,A,B,C,T,O,D,M,P,I,N,z,R,U,j,V,F,L,H,q,W,K,G,X,Y,J,Z,Q,tt,et,nt,rt,it,ot,st,ut,at,ct,lt,ft,ht,pt,dt,gt,yt,mt,vt,$t,_t,wt,bt,kt,xt,St,Et;for(n=this._hash.words,O=u.W,r=n[0],s=n[1],l=n[2],p=n[3],y=n[4],$=n[5],b=n[6],S=n[7],i=r.high,o=r.low,a=s.high,c=s.low,f=l.high,h=l.low,d=p.high,g=p.low,m=y.high,v=y.low,_=$.high,w=$.low,k=b.high,x=b.low,E=S.high,A=S.low,V=i,F=o,L=a,H=c,q=f,G=h,X=d,Y=g,J=m,Z=v,Q=_,tt=w,ft=k,ht=x,pt=E,dt=A,gt=Et=0;80>Et;gt=++Et)D=O[gt],16>gt?(U=D.high=0|t[e+2*gt],j=D.low=0|t[e+2*gt+1]):(rt=O[gt-15],it=rt.high,ot=rt.low,et=(it>>>1|ot<<31)^(it>>>8|ot<<24)^it>>>7,nt=(ot>>>1|it<<31)^(ot>>>8|it<<24)^(ot>>>7|it<<25),at=O[gt-2],ct=at.high,lt=at.low,st=(ct>>>19|lt<<13)^(ct<<3|lt>>>29)^ct>>>6,ut=(lt>>>19|ct<<13)^(lt<<3|ct>>>29)^(lt>>>6|ct<<26),N=O[gt-7],z=N.high,R=N.low,M=O[gt-16],P=M.high,I=M.low,j=nt+R,U=et+z+(nt>>>0>j>>>0?1:0),j+=ut,U=U+st+(ut>>>0>j>>>0?1:0),j+=I,U=U+P+(I>>>0>j>>>0?1:0),D.high=U,D.low=j),W=J&Q^~J&ft,K=Z&tt^~Z&ht,yt=V&L^V&q^L&q,mt=F&H^F&G^H&G,vt=(V>>>28|F<<4)^(V<<30|F>>>2)^(V<<25|F>>>7),$t=(F>>>28|V<<4)^(F<<30|V>>>2)^(F<<25|V>>>7),_t=(J>>>14|Z<<18)^(J>>>18|Z<<14)^(J<<23|Z>>>9),wt=(Z>>>14|J<<18)^(Z>>>18|J<<14)^(Z<<23|J>>>9),B=u.K[gt],C=B.high,T=B.low,kt=dt+wt,bt=pt+_t+(dt>>>0>kt>>>0?1:0),kt+=K,bt=bt+W+(K>>>0>kt>>>0?1:0),kt+=T,bt=bt+C+(T>>>0>kt>>>0?1:0),kt+=j,bt=bt+U+(j>>>0>kt>>>0?1:0),St=$t+mt,xt=vt+yt+($t>>>0>St>>>0?1:0),pt=ft,dt=ht,ft=Q,ht=tt,Q=J,tt=Z,Z=Y+kt|0,J=X+bt+(Y>>>0>Z>>>0?1:0)|0,X=q,Y=G,q=L,G=H,L=V,H=F,F=kt+St|0,V=bt+xt+(kt>>>0>F>>>0?1:0)|0;return o=r.low=o+F,r.high=i+V+(F>>>0>o>>>0?1:0),c=s.low=c+H,s.high=a+L+(H>>>0>c>>>0?1:0),h=l.low=h+G,l.high=f+q+(G>>>0>h>>>0?1:0),g=p.low=g+Y,p.high=d+X+(Y>>>0>g>>>0?1:0),v=y.low=v+Z,y.high=m+J+(Z>>>0>v>>>0?1:0),w=$.low=w+tt,$.high=_+Q+(tt>>>0>w>>>0?1:0),x=b.low=x+ht,b.high=k+ft+(ht>>>0>x>>>0?1:0),A=S.low=A+dt,S.high=E+pt+(dt>>>0>A>>>0?1:0)},e.prototype._doFinalize=function(){var t,e,n;return t=this._data.words,n=8*this._nDataBytes,e=8*this._data.sigBytes,t[e>>>5]|=128<<24-e%32,t[(e+128>>>10<<5)+30]=Math.floor(n/4294967296),t[(e+128>>>10<<5)+31]=n,this._data.sigBytes=4*t.length,this._process(),this._hash.toX32()},e.prototype.copy_to=function(t){return e.__super__.copy_to.call(this,t),t._hash=this._hash.clone()},e.prototype.clone=function(){var t;return t=new e,this.copy_to(t),t},e}(r),n.transform=function(t){var e;return e=(new i).finalize(t),t.scrub(),e}}).call(this)},{"./algbase":2,"./wordarray":24}],22:[function(t,e,n){(function(){var e,r,i,o,s,u={}.hasOwnProperty,a=function(t,e){function n(){this.constructor=t}for(var r in e)u.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};e=t("./algbase").BlockCipher,s=t("./util").scrub_vec,i=function(){function t(){this.P=[[169,103,179,232,4,253,163,118,154,146,128,120,228,221,209,56,13,198,53,152,24,247,236,108,67,117,55,38,250,19,148,72,242,208,139,48,132,84,223,35,25,91,61,89,243,174,162,130,99,1,131,46,217,81,155,124,166,235,165,190,22,12,227,97,192,140,58,245,115,44,37,11,187,78,137,107,83,106,180,241,225,230,189,69,226,244,182,102,204,149,3,86,212,28,30,215,251,195,142,181,233,207,191,186,234,119,57,175,51,201,98,113,129,121,9,173,36,205,249,216,229,197,185,77,68,8,134,231,161,29,170,237,6,112,178,210,65,123,160,17,49,194,39,144,32,246,96,255,150,92,177,171,158,156,82,27,95,147,10,239,145,133,73,238,45,79,143,59,71,135,109,70,214,62,105,100,42,206,203,47,252,151,5,122,172,127,213,26,75,14,167,90,40,20,63,41,136,60,76,2,184,218,176,23,85,31,138,125,87,199,141,116,183,196,159,114,126,21,34,18,88,7,153,52,110,80,222,104,101,188,219,248,200,168,43,64,220,254,50,164,202,16,33,240,211,93,15,0,111,157,54,66,74,94,193,224],[117,243,198,244,219,123,251,200,74,211,230,107,69,125,232,75,214,50,216,253,55,113,241,225,48,15,248,27,135,250,6,63,94,186,174,91,138,0,188,157,109,193,177,14,128,93,210,213,160,132,7,20,181,144,44,163,178,115,76,84,146,116,54,81,56,176,189,90,252,96,98,150,108,66,247,16,124,40,39,140,19,149,156,199,36,70,59,112,202,227,133,203,17,208,147,184,166,131,32,255,159,119,195,204,3,111,8,191,64,231,43,226,121,12,170,130,65,58,234,185,228,154,164,151,126,218,122,23,102,148,161,29,61,240,222,179,11,114,167,28,239,209,83,62,143,51,38,95,236,118,42,73,129,136,238,33,196,26,235,217,197,57,153,205,173,49,139,1,24,35,221,31,78,45,249,72,79,242,101,142,120,92,88,25,141,229,152,87,103,127,5,100,175,99,182,254,245,183,60,165,206,233,104,68,224,77,67,105,41,46,172,21,89,168,10,158,110,71,223,52,53,106,207,220,34,201,192,155,137,212,237,171,18,162,13,82,187,2,47,169,215,97,30,180,80,4,246,194,22,37,134,86,85,9,190,145]],this.P_00=1,this.P_01=0,this.P_02=0,this.P_03=1,this.P_04=1,this.P_10=0,this.P_11=0,this.P_12=1,this.P_13=1,this.P_14=0,this.P_20=1,this.P_21=1,this.P_22=0,this.P_23=0,this.P_24=0,this.P_30=0,this.P_31=1,this.P_32=1,this.P_33=0,this.P_34=1,this.GF256_FDBK=361,this.GF256_FDBK_2=this.GF256_FDBK/2,this.GF256_FDBK_4=this.GF256_FDBK/4,this.RS_GF_FDBK=333,this.SK_STEP=33686018,this.SK_BUMP=16843009,this.SK_ROTL=9}return t}(),r=new i,n.TwoFish=o=function(t){function e(t){this._key=t.clone(),this.gMDS0=[],this.gMDS1=[],this.gMDS2=[],this.gMDS3=[],this.gSubKeys=[],this.gSBox=[],this.k64Cnt=0,this._doReset()}return a(e,t),e.blockSize=16,e.prototype.blockSize=e.blockSize,e.keySize=32,e.prototype.keySize=e.keySize,e.ivSize=e.blockSize,e.prototype.ivSize=e.ivSize,e.prototype.getByte=function(t,e){return t>>>8*e&255},e.prototype.switchEndianness=function(t){return(255&t)<<24|(t>>8&255)<<16|(t>>16&255)<<8|t>>24&255},e.prototype.LFSR1=function(t){return t>>1^(0!==(1&t)?r.GF256_FDBK_2:0)},e.prototype.LFSR2=function(t){return t>>2^(0!==(2&t)?r.GF256_FDBK_2:0)^(0!==(1&t)?r.GF256_FDBK_4:0)},e.prototype.Mx_X=function(t){return t^this.LFSR2(t)},e.prototype.Mx_Y=function(t){return t^this.LFSR1(t)^this.LFSR2(t)},e.prototype.RS_rem=function(t){var e,n,i;return e=t>>>24&255,n=255&(e<<1^(0!==(128&e)?r.RS_GF_FDBK:0)),i=e>>>1^(0!==(1&e)?r.RS_GF_FDBK>>>1:0)^n,t<<8^i<<24^n<<16^i<<8^e},e.prototype.RS_MDS_Encode=function(t,e){var n,r,i,o;for(r=e,n=i=0;4>i;n=++i)r=this.RS_rem(r);for(r^=t,n=o=0;4>o;n=++o)r=this.RS_rem(r);return r},e.prototype.F32=function(t,e){var n,i,o,s,u,a,c,l,f,h;return n=this.getByte(t,0),i=this.getByte(t,1),o=this.getByte(t,2),s=this.getByte(t,3),u=e[0],a=e[1],c=e[2],l=e[3],f=3&this.k64Cnt,h=1===f?this.gMDS0[255&r.P[r.P_01][n]^this.getByte(u,0)]^this.gMDS1[255&r.P[r.P_11][i]^this.getByte(u,1)]^this.gMDS2[255&r.P[r.P_21][o]^this.getByte(u,2)]^this.gMDS3[255&r.P[r.P_31][s]^this.getByte(u,3)]:(0===f?(n=255&r.P[r.P_04][n]^this.getByte(l,0),i=255&r.P[r.P_14][i]^this.getByte(l,1),o=255&r.P[r.P_24][o]^this.getByte(l,2),s=255&r.P[r.P_34][s]^this.getByte(l,3)):void 0,0===f||3===f?(n=255&r.P[r.P_03][n]^this.getByte(c,0),i=255&r.P[r.P_13][i]^this.getByte(c,1),o=255&r.P[r.P_23][o]^this.getByte(c,2),s=255&r.P[r.P_33][s]^this.getByte(c,3)):void 0,this.gMDS0[255&r.P[r.P_01][255&r.P[r.P_02][n]^this.getByte(a,0)]^this.getByte(u,0)]^this.gMDS1[255&r.P[r.P_11][255&r.P[r.P_12][i]^this.getByte(a,1)]^this.getByte(u,1)]^this.gMDS2[255&r.P[r.P_21][255&r.P[r.P_22][o]^this.getByte(a,2)]^this.getByte(u,2)]^this.gMDS3[255&r.P[r.P_31][255&r.P[r.P_32][s]^this.getByte(a,3)]^this.getByte(u,3)])},e.prototype.Fe32_0=function(t){return this.gSBox[0+2*(255&t)]^this.gSBox[1+2*(t>>>8&255)]^this.gSBox[512+2*(t>>>16&255)]^this.gSBox[513+2*(t>>>24&255)]},e.prototype.Fe32_3=function(t){return this.gSBox[0+2*(t>>>24&255)]^this.gSBox[1+2*(255&t)]^this.gSBox[512+2*(t>>>8&255)]^this.gSBox[513+2*(t>>>16&255)]},e.prototype._doReset=function(){var t,e,n,i,o,s,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b,k,x,S,E,A,B;if(p=[],d=[],w=[],y=[],m=[],v=[],this.k64Cnt=this._key.words.length/2,this.k64Cnt<1)throw"Key size less than 64 bits";if(this.k64Cnt>4)throw"Key size larger than 256 bits";for(u=b=0;256>b;u=++b)a=255&r.P[0][u],y[0]=a,m[0]=255&this.Mx_X(a),v[0]=255&this.Mx_Y(a),a=255&r.P[1][u],y[1]=a,m[1]=255&this.Mx_X(a),v[1]=255&this.Mx_Y(a),this.gMDS0[u]=y[r.P_00]|m[r.P_00]<<8|v[r.P_00]<<16|v[r.P_00]<<24,this.gMDS1[u]=v[r.P_10]|v[r.P_10]<<8|m[r.P_10]<<16|y[r.P_10]<<24,this.gMDS2[u]=m[r.P_20]|v[r.P_20]<<8|y[r.P_20]<<16|v[r.P_20]<<24,this.gMDS3[u]=m[r.P_30]|y[r.P_30]<<8|v[r.P_30]<<16|m[r.P_30]<<24;for(u=k=0,E=this.k64Cnt;E>=0?E>k:k>E;u=E>=0?++k:--k)$=2*u,p[u]=this.switchEndianness(this._key.words[$]),d[u]=this.switchEndianness(this._key.words[$+1]),w[this.k64Cnt-1-u]=this.RS_MDS_Encode(p[u],d[u]);for(u=x=0,A=20;A>=0?A>x:x>A;u=A>=0?++x:--x)_=u*r.SK_STEP,t=this.F32(_,p),e=this.F32(_+r.SK_BUMP,d),e=e<<8|e>>>24,t+=e,this.gSubKeys[2*u]=t,t+=e,this.gSubKeys[2*u+1]=t<>>32-r.SK_ROTL;for(c=w[0],l=w[1],f=w[2],h=w[3],this.gSBox=[],B=[],u=S=0;256>S;u=++S)n=i=o=s=u,g=3&this.k64Cnt,1===g?(this.gSBox[2*u]=this.gMDS0[255&r.P[r.P_01][n]^this.getByte(c,0)],this.gSBox[2*u+1]=this.gMDS1[255&r.P[r.P_11][i]^this.getByte(c,1)],this.gSBox[2*u+512]=this.gMDS2[255&r.P[r.P_21][o]^this.getByte(c,2)],B.push(this.gSBox[2*u+513]=this.gMDS3[255&r.P[r.P_31][s]^this.getByte(c,3)])):(0===g&&(n=255&r.P[r.P_04][n]^this.getByte(h,0),i=255&r.P[r.P_14][i]^this.getByte(h,1),o=255&r.P[r.P_24][o]^this.getByte(h,2),s=255&r.P[r.P_34][s]^this.getByte(h,3)),(0===g||3===g)&&(n=255&r.P[r.P_03][n]^this.getByte(f,0),i=255&r.P[r.P_13][i]^this.getByte(f,1),o=255&r.P[r.P_23][o]^this.getByte(f,2),s=255&r.P[r.P_33][s]^this.getByte(f,3)),this.gSBox[2*u]=this.gMDS0[255&r.P[r.P_01][255&r.P[r.P_02][n]^this.getByte(l,0)]^this.getByte(c,0)],this.gSBox[2*u+1]=this.gMDS1[255&r.P[r.P_11][255&r.P[r.P_12][i]^this.getByte(l,1)]^this.getByte(c,1)],this.gSBox[2*u+512]=this.gMDS2[255&r.P[r.P_21][255&r.P[r.P_22][o]^this.getByte(l,2)]^this.getByte(c,2)],B.push(this.gSBox[2*u+513]=this.gMDS3[255&r.P[r.P_31][255&r.P[r.P_32][s]^this.getByte(l,3)]^this.getByte(c,3)]));return B},e.prototype.scrub=function(){return s(this.gSubKeys),s(this.gSBox),this._key.scrub()},e.prototype.decryptBlock=function(t,e){var n,r,i,o,s,u,a,c,l;for(null==e&&(e=0),a=this.switchEndianness(t[e])^this.gSubKeys[4],c=this.switchEndianness(t[e+1])^this.gSubKeys[5],s=this.switchEndianness(t[e+2])^this.gSubKeys[6],u=this.switchEndianness(t[e+3])^this.gSubKeys[7],n=39,r=l=0;16>l;r=l+=2)i=this.Fe32_0(a),o=this.Fe32_3(c),u^=i+2*o+this.gSubKeys[n--],s=(s<<1|s>>>31)^i+o+this.gSubKeys[n--],u=u>>>1|u<<31,i=this.Fe32_0(s),o=this.Fe32_3(u),c^=i+2*o+this.gSubKeys[n--],a=(a<<1|a>>>31)^i+o+this.gSubKeys[n--],c=c>>>1|c<<31;return t[e]=this.switchEndianness(s^this.gSubKeys[0]),t[e+1]=this.switchEndianness(u^this.gSubKeys[1]),t[e+2]=this.switchEndianness(a^this.gSubKeys[2]),t[e+3]=this.switchEndianness(c^this.gSubKeys[3])},e.prototype.encryptBlock=function(t,e){var n,r,i,o,s,u,a,c,l;for(null==e&&(e=0),s=this.switchEndianness(t[e])^this.gSubKeys[0],u=this.switchEndianness(t[e+1])^this.gSubKeys[1],a=this.switchEndianness(t[e+2])^this.gSubKeys[2],c=this.switchEndianness(t[e+3])^this.gSubKeys[3],n=8,r=l=0;16>l;r=l+=2)i=this.Fe32_0(s),o=this.Fe32_3(u),a^=i+o+this.gSubKeys[n++],a=a>>>1|a<<31,c=(c<<1|c>>>31)^i+2*o+this.gSubKeys[n++],i=this.Fe32_0(a),o=this.Fe32_3(c),s^=i+o+this.gSubKeys[n++],s=s>>>1|s<<31,u=(u<<1|u>>>31)^i+2*o+this.gSubKeys[n++];return t[e]=this.switchEndianness(a^this.gSubKeys[4]),t[e+1]=this.switchEndianness(c^this.gSubKeys[5]),t[e+2]=this.switchEndianness(s^this.gSubKeys[6]),t[e+3]=this.switchEndianness(u^this.gSubKeys[7])},e}(e)}).call(this)},{"./algbase":2,"./util":23}],23:[function(t,e,n){(function(){var e,r,i,o,s;r=t("iced-runtime"),o=s=function(){},i=Math.pow(2,32),n.fixup_uint32=function(t){var e,n;return e=t>i||0>t?(n=Math.abs(t)%i,0>t?i-n:n):t},n.scrub_buffer=function(t){var e,n;for(n=t.length>>2,e=0;n>e;)t.writeUInt32LE(0,e),e+=4;for(;e=0?r>n:n>r;e=r>=0?++n:--n)t[e]=0;return!1},n.default_delay=e=function(t,e,n){var i,o,u;u=s,i=r.findDeferral(arguments),function(t){return function(t){"undefined"!=typeof setImmediate&&null!==setImmediate?!function(t){o=new r.Deferrals(t,{parent:i,filename:"/home/max/src/keybase/triplesec/src/util.iced"}),setImmediate(o.defer({lineno:37})),o._fulfill()}(t):!function(t){o=new r.Deferrals(t,{parent:i,filename:"/home/max/src/keybase/triplesec/src/util.iced"}),setTimeout(o.defer({lineno:39}),1),o._fulfill()}(t)}}(this)(function(t){return function(){return n()}}(this))},n.buffer_cmp_ule=function(t,e){var n,r,i,o,s,u;for(i=o=0,n=t.length,r=e.length;n>i&&0===t.readUInt8(i);)i++;for(;r>o&&0===e.readUInt8(o);)o++;if(n-i>r-o)return 1;if(r-o>n-i)return-1;for(;n>i;){if((s=t.readUInt8(i))<(u=e.readUInt8(o)))return-1;if(s>u)return 1;i++,o++}return 0},n.bulk=function(t,n,i){var o,u,a,c,l,f,h,p,d,g,y,m,v,$,_,w,b;b=s,_=r.findDeferral(arguments),v=n.update,l=n.finalize,a=n.default_n,c=i.delay,p=i.n,u=i.cb,$=i.what,g=i.progress_hook,f=0,h=0,m=Math.ceil(t/4),c||(c=e),p||(p=a),o=function(t){return"function"==typeof g?g({what:$,i:t,total:m}):void 0},o(0),function(t){return function(t){var e,n;e=[],(n=function(t){var i,s,u;return i=function(){return t(e)},s=function(){return r.trampoline(function(){return n(t)})},u=function(t){return e.push(t),s()},(h=m-f)>0?(d=Math.min(p,h),v(f,f+d),o(f),function(t){w=new r.Deferrals(t,{parent:_,filename:"/home/max/src/keybase/triplesec/src/util.iced",funcname:"bulk"}),c(f,m,w.defer({lineno:97})),w._fulfill()}(function(){return u(f+=d)}),void 0):i()})(t)}}(this)(function(t){return function(){return o(m),y=l(),u(y)}}(this))}}).call(this)},{"iced-runtime":38}],24:[function(t,e,n){var r=t("__browserify_Buffer");(function(){var e,i,o,s,u,a,c;c=t("./util"),s=function(t){var e,n,r,i;for(n=new Uint8Array(t.length),e=r=0,i=t.length;i>=0?i>r:r>i;e=i>=0?++r:--r)n[e]=t.readUInt8(e);return n},a=function(t){var e,n,i,o;for(n=new r(t.length),e=i=0,o=t.length;o>=0?o>i:i>o;e=o>=0?++i:--i)n.writeUInt8(t[e],e);return n},u=function(t){return t>>>24&255|(t>>>16&255)<<8|(t>>>8&255)<<16|(255&t)<<24},n.WordArray=e=function(){function t(t,e){this.words=t||[],this.sigBytes=null!=e?e:4*this.words.length}return t.prototype.concat=function(t){var e,n,r,i,o;if(i=t.words,r=t.sigBytes,this.clamp(),this.sigBytes%4)for(e=o=0;r>=0?r>o:o>r;e=r>=0?++o:--o)n=i[e>>>2]>>>24-e%4*8&255,this.words[this.sigBytes+e>>>2]|=n<<24-(this.sigBytes+e)%4*8;else this.words=this.words.concat(i);return this.sigBytes+=r,this},t.prototype.clamp=function(){return this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this},t.prototype.clone=function(){return new t(this.words.slice(0),this.sigBytes)},t.prototype.to_buffer=function(){var t,e,n,i,o,s,u;for(e=new r(this.sigBytes),n=0,u=this.words,o=0,s=u.length;s>o;o++)i=u[o],this.sigBytes-n>=4&&(i=c.fixup_uint32(i),e.writeUInt32BE(i,n),n+=4);for(;n>>2]>>>24-n%4*8&255,e.writeUInt8(t,n),n++;return e},t.prototype.endian_reverse=function(){var t,e,n,r,i;for(i=this.words,t=n=0,r=i.length;r>n;t=++n)e=i[t],this.words[t]=u(e);return this},t.prototype.split=function(e){var n,r,i;if(this.sigBytes%4!==0||this.words.length%e!==0)throw new Error("bad key alignment");return i=this.words.length/e,r=function(){var e,r,o;for(o=[],n=e=0,r=this.words.length;i>0?r>e:e>r;n=e+=i)o.push(new t(this.words.slice(n,n+i)));return o}.call(this)},t.prototype.to_utf8=function(){return this.to_buffer().toString("utf8")},t.prototype.to_hex=function(){return this.to_buffer().toString("hex")},t.prototype.to_ui8a=function(){return s(this.to_buffer())},t.alloc=function(e){return r.isBuffer(e)?t.from_buffer(e):"object"==typeof e&&e instanceof t?e:"string"==typeof e?t.from_hex(e):null},t.from_buffer=function(e){var n,r,i,o;for(o=[],i=0;e.length-i>=4;)o.push(e.readUInt32BE(i)),i+=4;if(i=4;)o.push(e.readUInt32LE(i)), +i+=4;if(ii;e=++i)r=s[e],c.fixup_uint32(r)!==c.fixup_uint32(t.words[e])&&(n=!1);return n},t.prototype.xor=function(t,e){var n,r,i,o,s,u;if(n=e.dst_offset,o=e.src_offset,i=e.n_words,n||(n=0),o||(o=0),null==i&&(i=t.words.length-o),this.words.length=0?i>u:u>i;r=i>=0?++u:--u)s=this.words[n+r]^t.words[o+r],this.words[n+r]=c.fixup_uint32(s);return this},t.prototype.truncate=function(e){var n;if(!(e<=this.sigBytes))throw new Error("Cannot truncate: "+e+" > "+this.sigBytes);return n=Math.ceil(e/4),new t(this.words.slice(0,n),e)},t.prototype.unshift=function(e){var n;return this.words.length>=e?(n=this.words.splice(0,e),this.sigBytes-=4*e,new t(n)):null},t.prototype.is_scrubbed=function(){var t,e,n,r;for(r=this.words,e=0,n=r.length;n>e;e++)if(t=r[e],0!==t)return!1;return!0},t.prototype.scrub=function(){return c.scrub_vec(this.words)},t.prototype.cmp_ule=function(t){return c.buffer_cmp_ule(this.to_buffer(),t.to_buffer())},t.prototype.slice=function(e,n){var r,i;if(r=this.words.length,!(n>e&&r>=n))throw new Error("Bad WordArray slice ["+e+","+n+")] when only "+r+" avail");return i=4*(n-e),n===r&&(i-=4*r-this.sigBytes),new t(this.words.slice(e,n),i)},t}(),n.X64Word=i=function(){function t(t,e){this.high=t,this.low=e}return t.prototype.clone=function(){return new t(this.high,this.low)},t}(),n.X64WordArray=o=function(){function t(t,e){this.sigBytes=e,this.words=t||[],this.sigBytes||(this.sigBytes=8*this.words.length)}return t.prototype.toX32=function(){var t,n,r,i,o;for(t=[],o=this.words,r=0,i=o.length;i>r;r++)n=o[r],t.push(n.high),t.push(n.low);return new e(t,this.sigBytes)},t.prototype.clone=function(){var e;return new t(function(){var t,n,r,i;for(r=this.words,i=[],t=0,n=r.length;n>t;t++)e=r[t],i.push(e.clone());return i}.call(this),this.sigBytes)},t}(),n.buffer_to_ui8a=s,n.ui8a_to_buffer=a,n.endian_reverse=u}).call(this)},{"./util":23,__browserify_Buffer:26}],25:[function(t,e,n){e.exports="function"==typeof Object.create?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},{}],26:[function(t,e,n){t=function r(e,n,i){function o(u,a){if(!n[u]){if(!e[u]){var c="function"==typeof t&&t;if(!a&&c)return c(u,!0);if(s)return s(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};e[u][0].call(l.exports,function(t){var n=e[u][1][t];return o(n?n:t)},l,l.exports,r,e,n,i)}return n[u].exports}for(var s="function"==typeof t&&t,u=0;us;s++)o[s]=r.isBuffer(t)?t.readUInt8(s):t[s];else"string"===n&&o.write(t,0,e);return o}function i(t,e,n,i){n=Number(n)||0;var o=t.length-n;i?(i=Number(i),i>o&&(i=o)):i=o;var s=e.length;if(s%2!==0)throw new Error("Invalid hex string");i>s/2&&(i=s/2);for(var u=0;i>u;u++){var a=parseInt(e.substr(2*u,2),16);if(isNaN(a))throw new Error("Invalid hex string");t[n+u]=a}return r._charsWritten=2*u,u}function o(t,e,n,i){return r._charsWritten=$t(yt(e),t,n,i)}function s(t,e,n,i){return r._charsWritten=$t(mt(e),t,n,i)}function u(t,e,n,r){return s(t,e,n,r)}function a(t,e,n,i){return r._charsWritten=$t(vt(e),t,n,i)}function c(t,e,n,r){if(isFinite(e))isFinite(n)||(r=n,n=void 0);else{var c=r;r=e,e=n,n=c}e=Number(e)||0;var l=this.length-e;switch(n?(n=Number(n),n>l&&(n=l)):n=l,r=String(r||"utf8").toLowerCase()){case"hex":return i(this,t,e,n);case"utf8":case"utf-8":return o(this,t,e,n);case"ascii":return s(this,t,e,n);case"binary":return u(this,t,e,n);case"base64":return a(this,t,e,n);default:throw new Error("Unknown encoding")}}function l(t,e,n){var r=this instanceof lt?this._proxy:this;if(t=String(t||"utf8").toLowerCase(),e=Number(e)||0,n=void 0!==n?Number(n):n=r.length,n===e)return"";switch(t){case"hex":return m(r,e,n);case"utf8":case"utf-8":return d(r,e,n);case"ascii":return g(r,e,n);case"binary":return y(r,e,n);case"base64":return p(r,e,n);default:throw new Error("Unknown encoding")}}function f(){return{type:"Buffer",data:Array.prototype.slice.call(this,0)}}function h(t,e,n,r){var i=this;if(n||(n=0),r||0===r||(r=this.length),e||(e=0),r!==n&&0!==t.length&&0!==i.length){if(n>r)throw new Error("sourceEnd < sourceStart");if(0>e||e>=t.length)throw new Error("targetStart out of bounds");if(0>n||n>=i.length)throw new Error("sourceStart out of bounds");if(0>r||r>i.length)throw new Error("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-eo;o++)t[o+e]=this[o+n]}}function p(e,n,r){var i=e.slice(n,r);return t("base64-js").fromByteArray(i)}function d(t,e,n){for(var r=t.slice(e,n),i="",o="",s=0;se)&&(e=0),(!n||0>n||n>r)&&(n=r);for(var i="",o=e;n>o;o++)i+=gt(t[o]);return i}function v(t,e){var n=this.length;return t=ht(t,n,0),e=ht(e,n,n),ft(this.subarray(t,e))}function $(t,e){var n=this;return e||(xt(void 0!==t&&null!==t,"missing offset"),xt(t=n.length?void 0:n[t]}function _(t,e,n,r){r||(xt("boolean"==typeof n,"missing or invalid endian"),xt(void 0!==e&&null!==e,"missing offset"),xt(e+1=i)){if(e+1===i){var o=new Et(new At(2));return o.setUint8(0,t[i-1]),o.getUint16(0,n)}return t._dataview.getUint16(e,n)}}function w(t,e){return _(this,t,!0,e)}function b(t,e){return _(this,t,!1,e)}function k(t,e,n,r){r||(xt("boolean"==typeof n,"missing or invalid endian"),xt(void 0!==e&&null!==e,"missing offset"),xt(e+3=i)){if(e+3>=i){for(var o=new Et(new At(4)),s=0;i>s+e;s++)o.setUint8(s,t[s+e]);return o.getUint32(0,n)}return t._dataview.getUint32(e,n)}}function x(t,e){return k(this,t,!0,e)}function S(t,e){return k(this,t,!1,e)}function E(t,e){var n=this;return e||(xt(void 0!==t&&null!==t,"missing offset"),xt(t=n.length?void 0:n._dataview.getInt8(t)}function A(t,e,n,r){r||(xt("boolean"==typeof n,"missing or invalid endian"),xt(void 0!==e&&null!==e,"missing offset"),xt(e+1=i)){if(e+1===i){var o=new Et(new At(2));return o.setUint8(0,t[i-1]),o.getInt16(0,n)}return t._dataview.getInt16(e,n)}}function B(t,e){return A(this,t,!0,e)}function C(t,e){return A(this,t,!1,e)}function T(t,e,n,r){r||(xt("boolean"==typeof n,"missing or invalid endian"),xt(void 0!==e&&null!==e,"missing offset"),xt(e+3=i)){if(e+3>=i){for(var o=new Et(new At(4)),s=0;i>s+e;s++)o.setUint8(s,t[s+e]);return o.getInt32(0,n)}return t._dataview.getInt32(e,n)}}function O(t,e){return T(this,t,!0,e)}function D(t,e){return T(this,t,!1,e)}function M(t,e,n,r){return r||(xt("boolean"==typeof n,"missing or invalid endian"),xt(e+3=r.length||(r[e]=t)}function j(t,e,n,r,i){i||(xt(void 0!==e&&null!==e,"missing value"),xt("boolean"==typeof r,"missing or invalid endian"),xt(void 0!==n&&null!==n,"missing offset"),xt(n+1=o))if(n+1===o){var s=new Et(new At(2));s.setUint16(0,e,r),t[n]=s.getUint8(0)}else t._dataview.setUint16(n,e,r)}function V(t,e,n){j(this,t,e,!0,n)}function F(t,e,n){j(this,t,e,!1,n)}function L(t,e,n,r,i){i||(xt(void 0!==e&&null!==e,"missing value"),xt("boolean"==typeof r,"missing or invalid endian"),xt(void 0!==n&&null!==n,"missing offset"),xt(n+3=o))if(n+3>=o){var s=new Et(new At(4));s.setUint32(0,e,r);for(var u=0;o>u+n;u++)t[u+n]=s.getUint8(u)}else t._dataview.setUint32(n,e,r)}function H(t,e,n){L(this,t,e,!0,n)}function q(t,e,n){L(this,t,e,!1,n)}function W(t,e,n){var r=this;n||(xt(void 0!==t&&null!==t,"missing value"),xt(void 0!==e&&null!==e,"missing offset"),xt(e=r.length||r._dataview.setInt8(e,t)}function K(t,e,n,r,i){i||(xt(void 0!==e&&null!==e,"missing value"),xt("boolean"==typeof r,"missing or invalid endian"),xt(void 0!==n&&null!==n,"missing offset"),xt(n+1=o))if(n+1===o){var s=new Et(new At(2));s.setInt16(0,e,r),t[n]=s.getUint8(0)}else t._dataview.setInt16(n,e,r)}function G(t,e,n){K(this,t,e,!0,n)}function X(t,e,n){K(this,t,e,!1,n)}function Y(t,e,n,r,i){i||(xt(void 0!==e&&null!==e,"missing value"),xt("boolean"==typeof r,"missing or invalid endian"),xt(void 0!==n&&null!==n,"missing offset"),xt(n+3=o))if(n+3>=o){var s=new Et(new At(4));s.setInt32(0,e,r);for(var u=0;o>u+n;u++)t[u+n]=s.getUint8(u)}else t._dataview.setInt32(n,e,r)}function J(t,e,n){Y(this,t,e,!0,n)}function Z(t,e,n){Y(this,t,e,!1,n)}function Q(t,e,n,r,i){i||(xt(void 0!==e&&null!==e,"missing value"),xt("boolean"==typeof r,"missing or invalid endian"),xt(void 0!==n&&null!==n,"missing offset"),xt(n+3=o))if(n+3>=o){var s=new Et(new At(4));s.setFloat32(0,e,r);for(var u=0;o>u+n;u++)t[u+n]=s.getUint8(u)}else t._dataview.setFloat32(n,e,r)}function tt(t,e,n){Q(this,t,e,!0,n)}function et(t,e,n){Q(this,t,e,!1,n)}function nt(t,e,n,r,i){i||(xt(void 0!==e&&null!==e,"missing value"),xt("boolean"==typeof r,"missing or invalid endian"),xt(void 0!==n&&null!==n,"missing offset"),xt(n+7=o))if(n+7>=o){var s=new Et(new At(8));s.setFloat64(0,e,r);for(var u=0;o>u+n;u++)t[u+n]=s.getUint8(u)}else t._dataview.setFloat64(n,e,r)}function rt(t,e,n){nt(this,t,e,!0,n)}function it(t,e,n){nt(this,t,e,!1,n)}function ot(t,e,n){if(t||(t=0),e||(e=0),n||(n=this.length),"string"==typeof t&&(t=t.charCodeAt(0)),"number"!=typeof t||isNaN(t))throw new Error("value is not a number");if(e>n)throw new Error("end < start");if(n!==e&&0!==this.length){if(0>e||e>=this.length)throw new Error("start out of bounds");if(0>n||n>this.length)throw new Error("end out of bounds");for(var r=e;n>r;r++)this[r]=t}}function st(){for(var t=[],e=this.length,r=0;e>r;r++)if(t[r]=gt(this[r]),r===n.INSPECT_MAX_BYTES){t[r+1]="...";break}return""}function ut(){return new r(this).buffer}function at(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function ct(){var t=new Bt(0);t.foo=function(){return 42};try{return 42===t.foo()}catch(e){return!1}}function lt(t){this._arr=t,0!==t.byteLength&&(this._dataview=new Et(t.buffer,t.byteOffset,t.byteLength))}function ft(t){if(void 0===Ct&&(Ct=ct()),Ct)return t.write=c,t.toString=l,t.toLocaleString=l,t.toJSON=f,t.copy=h,t.slice=v,t.readUInt8=$,t.readUInt16LE=w,t.readUInt16BE=b,t.readUInt32LE=x,t.readUInt32BE=S,t.readInt8=E,t.readInt16LE=B,t.readInt16BE=C,t.readInt32LE=O,t.readInt32BE=D,t.readFloatLE=P,t.readFloatBE=I,t.readDoubleLE=z,t.readDoubleBE=R,t.writeUInt8=U,t.writeUInt16LE=V,t.writeUInt16BE=F,t.writeUInt32LE=H,t.writeUInt32BE=q,t.writeInt8=W,t.writeInt16LE=G,t.writeInt16BE=X,t.writeInt32LE=J,t.writeInt32BE=Z,t.writeFloatLE=tt,t.writeFloatBE=et,t.writeDoubleLE=rt,t.writeDoubleBE=it,t.fill=ot,t.inspect=st,t.toArrayBuffer=ut,t._isBuffer=!0,0!==t.byteLength&&(t._dataview=new Et(t.buffer,t.byteOffset,t.byteLength)),t;var e=new lt(t),n=new Proxy(e,Tt);return e._proxy=n,n}function ht(t,e,n){return"number"!=typeof t?n:(t=~~t,t>=e?e:t>=0?t:(t+=e,t>=0?t:0))}function pt(t){return t=~~Math.ceil(+t),0>t?0:t}function dt(t){return Array.isArray(t)||r.isBuffer(t)||t&&"object"==typeof t&&"number"==typeof t.length}function gt(t){return 16>t?"0"+t.toString(16):t.toString(16)}function yt(t){for(var e=[],n=0;ni&&!(i+n>=e.length||i>=t.length);)e[i+n]=t[i],i++;return i}function _t(t){try{return decodeURIComponent(t)}catch(e){return String.fromCharCode(65533)}}function wt(t,e){xt("number"==typeof t,"cannot write a non-number as a number"),xt(t>=0,"specified a negative value for writing an unsigned value"),xt(e>=t,"value is larger than maximum value for type"),xt(Math.floor(t)===t,"value has a fractional component")}function bt(t,e,n){xt("number"==typeof t,"cannot write a non-number as a number"),xt(e>=t,"value larger than maximum allowed value"),xt(t>=n,"value smaller than minimum allowed value"),xt(Math.floor(t)===t,"value has a fractional component")}function kt(t,e,n){xt("number"==typeof t,"cannot write a non-number as a number"),xt(e>=t,"value larger than maximum allowed value"),xt(t>=n,"value smaller than minimum allowed value")}function xt(t,e){if(!t)throw new Error(e||"Failed assertion")}var St=t("typedarray"),Et="undefined"==typeof DataView?St.DataView:DataView,At="undefined"==typeof ArrayBuffer?St.ArrayBuffer:ArrayBuffer,Bt="undefined"==typeof Uint8Array?St.Uint8Array:Uint8Array;n.Buffer=r,n.SlowBuffer=r,n.INSPECT_MAX_BYTES=50,r.poolSize=8192;var Ct;r.isEncoding=function(t){switch((t+"").toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},r.isBuffer=function(t){return t&&t._isBuffer},r.byteLength=function(t,e){switch(e||"utf8"){case"hex":return t.length/2;case"utf8":case"utf-8":return yt(t).length;case"ascii":case"binary":return t.length;case"base64":return vt(t).length;default:throw new Error("Unknown encoding")}},r.concat=function(t,e){if(!Array.isArray(t))throw new Error("Usage: Buffer.concat(list, [totalLength])\nlist should be an Array.");var n,i;if(0===t.length)return new r(0);if(1===t.length)return t[0];if("number"!=typeof e)for(e=0,n=0;n0)throw"Invalid string. Length must be a multiple of 4";for(s=t.indexOf("="),s=s>0?t.length-s:0,u=[],r=s>0?t.length-4:t.length,e=0,n=0;r>e;e+=4,n+=3)o=i.indexOf(t[e])<<18|i.indexOf(t[e+1])<<12|i.indexOf(t[e+2])<<6|i.indexOf(t[e+3]),u.push((16711680&o)>>16),u.push((65280&o)>>8),u.push(255&o);return 2===s?(o=i.indexOf(t[e])<<2|i.indexOf(t[e+1])>>4,u.push(255&o)):1===s&&(o=i.indexOf(t[e])<<10|i.indexOf(t[e+1])<<4|i.indexOf(t[e+2])>>2,u.push(o>>8&255),u.push(255&o)),u}function r(t){function e(t){return i[t>>18&63]+i[t>>12&63]+i[t>>6&63]+i[63&t]}var n,r,o,s=t.length%3,u="";for(n=0,o=t.length-s;o>n;n+=3)r=(t[n]<<16)+(t[n+1]<<8)+t[n+2],u+=e(r);switch(s){case 1:r=t[t.length-1],u+=i[r>>2],u+=i[r<<4&63],u+="==";break;case 2:r=(t[t.length-2]<<8)+t[t.length-1],u+=i[r>>10],u+=i[r>>4&63],u+=i[r<<2&63],u+="="}return u}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";e.exports.toByteArray=n,e.exports.fromByteArray=r}()},{}],4:[function(t,e,n){function r(t){if(z&&N){var e,n=z(t);for(e=0;eA)throw new RangeError("Array too large for polyfill");var n;for(n=0;n>n}function s(t,e){var n=32-e;return t<>>n}function u(t){return[255&t]}function a(t){return o(t[0],8)}function c(t){return[255&t]}function l(t){return s(t[0],8)}function f(t){return t=I(Number(t)),[0>t?0:t>255?255:255&t]}function h(t){return[t>>8&255,255&t]}function p(t){return o(t[0]<<8|t[1],16)}function d(t){return[t>>8&255,255&t]}function g(t){return s(t[0]<<8|t[1],16)}function y(t){return[t>>24&255,t>>16&255,t>>8&255,255&t]}function m(t){return o(t[0]<<24|t[1]<<16|t[2]<<8|t[3],32)}function v(t){return[t>>24&255,t>>16&255,t>>8&255,255&t]}function $(t){return s(t[0]<<24|t[1]<<16|t[2]<<8|t[3],32)}function _(t,e,n){function r(t){var e=O(t),n=t-e;return.5>n?e:n>.5?e+1:e%2?e+1:e}var i,o,s,u,a,c,l,f=(1<t?1:0):0===t?(o=0,s=0,i=1/t===-(1/0)?1:0):(i=0>t,t=T(t),t>=P(2,1-f)?(o=M(O(D(t)/C),1023),s=r(t/P(2,o)*P(2,n)),s/P(2,n)>=2&&(o+=1,s=1),o>f?(o=(1<>=1;return f.reverse(),s=f.join(""),u=(1<0?a*P(2,c-u)*(1+l/P(2,n)):0!==l?a*P(2,-(u-1))*(l/P(2,n)):0>a?-0:0}function b(t){return w(t,11,52)}function k(t){return _(t,11,52)}function x(t){return w(t,8,23)}function S(t){return _(t,8,23)}var E=void 0,A=1e5,B=function(){var t=Object.prototype.toString,e=Object.prototype.hasOwnProperty;return{Class:function(e){return t.call(e).replace(/^\[object *|\]$/g,"")},HasProperty:function(t,e){return e in t},HasOwnProperty:function(t,n){return e.call(t,n)},IsCallable:function(t){return"function"==typeof t},ToInt32:function(t){return t>>0},ToUint32:function(t){return t>>>0}}}(),C=Math.LN2,T=Math.abs,O=Math.floor,D=Math.log,M=Math.min,P=Math.pow,I=Math.round,N=Object.defineProperty||function(t,e,n){if(!t===Object(t))throw new TypeError("Object.defineProperty called on non-object");return B.HasProperty(n,"get")&&Object.prototype.__defineGetter__&&Object.prototype.__defineGetter__.call(t,e,n.get),B.HasProperty(n,"set")&&Object.prototype.__defineSetter__&&Object.prototype.__defineSetter__.call(t,e,n.set),B.HasProperty(n,"value")&&(t[e]=n.value),t},z=Object.getOwnPropertyNames||function(t){if(t!==Object(t))throw new TypeError("Object.getOwnPropertyNames called on non-object");var e,n=[];for(e in t)B.HasOwnProperty(t,e)&&n.push(e);return n};!function(){function t(t,n,s){var u;return u=function(t,n,o){var s,a,c,l;if(arguments.length&&"number"!=typeof arguments[0])if("object"==typeof arguments[0]&&arguments[0].constructor===u)for(s=arguments[0],this.length=s.length,this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new e(this.byteLength),this.byteOffset=0,c=0;cthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteOffset%this.BYTES_PER_ELEMENT)throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");if(arguments.length<3){if(this.byteLength=this.buffer.byteLength-this.byteOffset,this.byteLength%this.BYTES_PER_ELEMENT)throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");this.length=this.byteLength/this.BYTES_PER_ELEMENT}else this.length=B.ToUint32(o),this.byteLength=this.length*this.BYTES_PER_ELEMENT;if(this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}else for(a=arguments[0],this.length=B.ToUint32(a.length),this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new e(this.byteLength),this.byteOffset=0,c=0;co)throw new RangeError("ArrayBufferView size is not a small enough positive integer");this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new e(this.byteLength),this.byteOffset=0}this.constructor=u,r(this),i(this)},u.prototype=new o,u.prototype.BYTES_PER_ELEMENT=t,u.prototype._pack=n,u.prototype._unpack=s,u.BYTES_PER_ELEMENT=t,u.prototype._getter=function(t){if(arguments.length<1)throw new SyntaxError("Not enough arguments");if(t=B.ToUint32(t),t>=this.length)return E;var e,n,r=[];for(e=0,n=this.byteOffset+t*this.BYTES_PER_ELEMENT;e=this.length)return E;var n,r,i=this._pack(e);for(n=0,r=this.byteOffset+t*this.BYTES_PER_ELEMENT;nthis.length)throw new RangeError("Offset plus length of array is out of range");if(c=this.byteOffset+i*this.BYTES_PER_ELEMENT,l=n.length*this.BYTES_PER_ELEMENT,n.buffer===this.buffer){for(f=[],s=0,u=n.byteOffset;l>s;s+=1,u+=1)f[s]=n.buffer._bytes[u];for(s=0,a=c;l>s;s+=1,a+=1)this.buffer._bytes[a]=f[s]}else for(s=0,u=n.byteOffset,a=c;l>s;s+=1,u+=1,a+=1)this.buffer._bytes[a]=n.buffer._bytes[u]}else{if("object"!=typeof arguments[0]||"undefined"==typeof arguments[0].length)throw new TypeError("Unexpected argument type(s)");if(r=arguments[0],o=B.ToUint32(r.length),i=B.ToUint32(arguments[1]),i+o>this.length)throw new RangeError("Offset plus length of array is out of range");for(s=0;o>s;s+=1)u=r[s],this._setter(i+s,Number(u))}},u.prototype.subarray=function(t,e){function n(t,e,n){return e>t?e:t>n?n:t}t=B.ToInt32(t),e=B.ToInt32(e),arguments.length<1&&(t=0),arguments.length<2&&(e=this.length),0>t&&(t=this.length+t),0>e&&(e=this.length+e),t=n(t,0,this.length),e=n(e,0,this.length);var r=e-t;return 0>r&&(r=0),new this.constructor(this.buffer,this.byteOffset+t*this.BYTES_PER_ELEMENT,r)},u}var e=function(t){if(t=B.ToInt32(t),0>t)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=t,this._bytes=[],this._bytes.length=t;var e;for(e=0;ethis.byteLength)throw new RangeError("Array index out of range");n+=this.byteOffset;var i,s=new Uint8Array(this.buffer,n,e.BYTES_PER_ELEMENT),u=[];for(i=0;ithis.byteLength)throw new RangeError("Array index out of range");var s,u,a=new e([r]),c=new Uint8Array(a.buffer),l=[];for(s=0;sthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteLength=arguments.length<3?this.buffer.byteLength-this.byteOffset:B.ToUint32(n),this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");r(this)};s.prototype.getUint8=e(n.Uint8Array),s.prototype.getInt8=e(n.Int8Array),s.prototype.getUint16=e(n.Uint16Array),s.prototype.getInt16=e(n.Int16Array),s.prototype.getUint32=e(n.Uint32Array),s.prototype.getInt32=e(n.Int32Array),s.prototype.getFloat32=e(n.Float32Array),s.prototype.getFloat64=e(n.Float64Array),s.prototype.setUint8=i(n.Uint8Array),s.prototype.setInt8=i(n.Int8Array),s.prototype.setUint16=i(n.Uint16Array),s.prototype.setInt16=i(n.Int16Array),s.prototype.setUint32=i(n.Uint32Array),s.prototype.setInt32=i(n.Int32Array),s.prototype.setFloat32=i(n.Float32Array),s.prototype.setFloat64=i(n.Float64Array),n.DataView=n.DataView||s}()},{}]},{},[]),e.exports=t("native-buffer-browserify").Buffer},{}],27:[function(t,e,n){var r=e.exports={};r.nextTick=function(){var t="undefined"!=typeof window&&window.setImmediate,e="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(t)return function(t){return window.setImmediate(t)};if(e){var n=[];return window.addEventListener("message",function(t){var e=t.source;if((e===window||null===e)&&"process-tick"===t.data&&(t.stopPropagation(),n.length>0)){var r=n.shift();r()}},!0),function(t){n.push(t),window.postMessage("process-tick","*")}}return function(t){setTimeout(t,0)}}(),r.title="browser",r.browser=!0,r.env={},r.argv=[],r.binding=function(t){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(t){throw new Error("process.chdir is not supported")}},{}],28:[function(t,e,n){e.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},{}],29:[function(t,e,n){function r(t,e){var r={seen:[],stylize:o};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(e)?r.showHidden=e:e&&n._extend(r,e),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=i),u(r,t,r.depth)}function i(t,e){var n=r.styles[e];return n?"["+r.colors[n][0]+"m"+t+"["+r.colors[n][1]+"m":t}function o(t,e){return t}function s(t){var e={};return t.forEach(function(t,n){e[t]=!0}),e}function u(t,e,r){if(t.customInspect&&e&&S(e.inspect)&&e.inspect!==n.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(r,t);return v(i)||(i=u(t,i,r)),i}var o=a(t,e);if(o)return o;var d=Object.keys(e),g=s(d);if(t.showHidden&&(d=Object.getOwnPropertyNames(e)),x(e)&&(d.indexOf("message")>=0||d.indexOf("description")>=0))return c(e);if(0===d.length){if(S(e)){var y=e.name?": "+e.name:"";return t.stylize("[Function"+y+"]","special")}if(w(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(k(e))return t.stylize(Date.prototype.toString.call(e),"date");if(x(e))return c(e)}var m="",$=!1,_=["{","}"];if(p(e)&&($=!0,_=["[","]"]),S(e)){var b=e.name?": "+e.name:"";m=" [Function"+b+"]"}if(w(e)&&(m=" "+RegExp.prototype.toString.call(e)),k(e)&&(m=" "+Date.prototype.toUTCString.call(e)),x(e)&&(m=" "+c(e)),0===d.length&&(!$||0==e.length))return _[0]+m+_[1];if(0>r)return w(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var E;return E=$?l(t,e,r,g,d):d.map(function(n){return f(t,e,r,g,n,$)}),t.seen.pop(),h(E,m,_)}function a(t,e){if(_(e))return t.stylize("undefined","undefined");if(v(e)){var n="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(n,"string")}return m(e)?t.stylize(""+e,"number"):d(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function l(t,e,n,r,i){for(var o=[],s=0,u=e.length;u>s;++s)o.push(T(e,String(s))?f(t,e,n,r,String(s),!0):"");return i.forEach(function(i){i.match(/^\d+$/)||o.push(f(t,e,n,r,i,!0))}),o}function f(t,e,n,r,i,o){var s,a,c;if(c=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]},c.get?a=c.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):c.set&&(a=t.stylize("[Setter]","special")),T(r,i)||(s="["+i+"]"),a||(t.seen.indexOf(c.value)<0?(a=g(n)?u(t,c.value,null):u(t,c.value,n-1), +a.indexOf("\n")>-1&&(a=o?a.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+a.split("\n").map(function(t){return" "+t}).join("\n"))):a=t.stylize("[Circular]","special")),_(s)){if(o&&i.match(/^\d+$/))return a;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function h(t,e,n){var r=0,i=t.reduce(function(t,e){return r++,e.indexOf("\n")>=0&&r++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+n[1]:n[0]+e+" "+t.join(", ")+" "+n[1]}function p(t){return Array.isArray(t)}function d(t){return"boolean"==typeof t}function g(t){return null===t}function y(t){return null==t}function m(t){return"number"==typeof t}function v(t){return"string"==typeof t}function $(t){return"symbol"==typeof t}function _(t){return void 0===t}function w(t){return b(t)&&"[object RegExp]"===A(t)}function b(t){return"object"==typeof t&&null!==t}function k(t){return b(t)&&"[object Date]"===A(t)}function x(t){return b(t)&&("[object Error]"===A(t)||t instanceof Error)}function S(t){return"function"==typeof t}function E(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function A(t){return Object.prototype.toString.call(t)}function B(t){return 10>t?"0"+t.toString(10):t.toString(10)}function C(){var t=new Date,e=[B(t.getHours()),B(t.getMinutes()),B(t.getSeconds())].join(":");return[t.getDate(),N[t.getMonth()],e].join(" ")}function T(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var O=t("__browserify_process"),D="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},M=/%[sdj%]/g;n.format=function(t){if(!v(t)){for(var e=[],n=0;n=o)return t;switch(t){case"%s":return String(i[n++]);case"%d":return Number(i[n++]);case"%j":try{return JSON.stringify(i[n++])}catch(e){return"[Circular]"}default:return t}}),u=i[n];o>n;u=i[++n])s+=g(u)||!b(u)?" "+u:" "+r(u);return s},n.deprecate=function(t,e){function r(){if(!i){if(O.throwDeprecation)throw new Error(e);O.traceDeprecation?console.trace(e):console.error(e),i=!0}return t.apply(this,arguments)}if(_(D.process))return function(){return n.deprecate(t,e).apply(this,arguments)};if(O.noDeprecation===!0)return t;var i=!1;return r};var P,I={};n.debuglog=function(t){if(_(P)&&(P=O.env.NODE_DEBUG||""),t=t.toUpperCase(),!I[t])if(new RegExp("\\b"+t+"\\b","i").test(P)){var e=O.pid;I[t]=function(){var r=n.format.apply(n,arguments);console.error("%s %d: %s",t,e,r)}}else I[t]=function(){};return I[t]},n.inspect=r,r.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},r.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=p,n.isBoolean=d,n.isNull=g,n.isNullOrUndefined=y,n.isNumber=m,n.isString=v,n.isSymbol=$,n.isUndefined=_,n.isRegExp=w,n.isObject=b,n.isDate=k,n.isError=x,n.isFunction=S,n.isPrimitive=E,n.isBuffer=t("./support/isBuffer");var N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];n.log=function(){console.log("%s - %s",C(),n.format.apply(n,arguments))},n.inherits=t("inherits"),n._extend=function(t,e){if(!e||!b(e))return t;for(var n=Object.keys(e),r=n.length;r--;)t[n[r]]=e[n[r]];return t}},{"./support/isBuffer":28,__browserify_process:27,inherits:25}],30:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l,f,h,p=[].slice;h=t("util"),n.BaseError=e=function(t,e){return Error.captureStackTrace(this,this.constructor),this.message=t||"Error"},h.inherits(e,Error),e.prototype.name="BaseError",f=function(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()},s=function(t){var e;return function(){var n,r,i,o;for(i=t.split(/_/),o=[],n=0,r=i.length;r>n;n++)e=i[n],o.push(f(e));return o}().join("")},a=function(t,n,r){var i;return i=function(t){return e.call(this,t||r,this.constructor),this.istack=[],this.code=n,this},h.inherits(i,e),i.prototype.name=t,i.prototype.inspect=function(){return"["+t+": "+this.message+" (code "+this.code+")]"},i},n.make_errors=c=function(t){var e,n,r,i,o,u;o={msg:{},name:{},code:{}},t.OK="Success",n=100;for(r in t)i=t[r],"OK"!==r?(e=s(r)+"Error",u=n++,o[e]=a(e,u,i)):u=0,o[r]=u,o.msg[r]=o.msg[u]=i,o.name[r]=o.name[u]=r,o.code[r]=u;return o},u=function(t,e){return null!=e?(null==t.istack&&(t.istack=[]),t.istack.push(e)):void 0},n.make_esc=l=function(t,e){return function(n){return function(){var r,i;return i=arguments[0],r=2<=arguments.length?p.call(arguments,1):[],null==i?n.apply(null,r):t.__esc?void 0:(t.__esc=!0,u(i,e),t(i))}}},n.EscOk=o=function(){function t(t,e){this.gcb=t,this.where=e}return t.prototype.bailout=function(){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(!1)):void 0},t.prototype.check_ok=function(t){return function(e){return function(){var n,r;return r=arguments[0],n=2<=arguments.length?p.call(arguments,1):[],r?t.apply(null,n):e.bailout()}}(this)},t.prototype.check_err=function(t){return function(e){return function(){var n,r;return r=arguments[0],n=2<=arguments.length?p.call(arguments,1):[],null!=r?(u(r,e.where),e.bailout()):t.apply(null,n)}}(this)},t.prototype.check_non_null=function(t){return function(e){return function(){var n;return n=1<=arguments.length?p.call(arguments,0):[],null==n[0]?e.bailout():t.apply(null,n)}}(this)},t}(),n.EscErr=i=function(){function t(t,e){this.gcb=t,this.where=e}return t.prototype.finish=function(t){var e;return this.gcb?(e=this.gcb,this.gcb=null,e(t)):void 0},t.prototype.check_ok=function(t,e,n){return null==e&&(e=Error),null==n&&(n=null),function(){var r,i,o;return o=arguments[0],r=2<=arguments.length?p.call(arguments,1):[],o?t.apply(null,r):(i=new e(n),u(i,this.where),this.finish(i))}},t.prototype.check_err=function(t){return function(){var e,n;return n=arguments[0],e=2<=arguments.length?p.call(arguments,1):[],null!=n?(u(n,this.where),this.finish(n)):t.apply(null,e)}},t}(),n.Canceler=r=function(){function t(t){this.klass=null!=t?t:Error,this._canceled=!1}return t.prototype.is_canceled=function(){return this._canceled},t.prototype.is_ok=function(){return!this._canceled},t.prototype.cancel=function(){return this._canceled=!0},t.prototype.err=function(){return this._canceled?new this.klass("Aborted"):null},t}(),n.chain=function(t,e){return function(){var n;return n=1<=arguments.length?p.call(arguments,0):[],e(function(){return t.apply(null,n)})}},n.chain_err=function(t,e){return function(){var n;return n=1<=arguments.length?p.call(arguments,0):[],e(function(){var e;return e=1<=arguments.length?p.call(arguments,0):[],t.apply(null,null!=e[0]&&null==n[0]?e:n)})}}}).call(this)},{util:29}],31:[function(t,e,n){(function(){var e,r,i,o,s,u,a={}.hasOwnProperty,c=function(t,e){function n(){this.constructor=t}for(var r in e)a.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};o=t("iced-runtime"),s=u=function(){},n.Lock=e=function(){function t(){this._open=!0,this._waiters=[]}return t.prototype.acquire=function(t){return this._open?(this._open=!1,t()):this._waiters.push(t)},t.prototype.release=function(){var t;return this._waiters.length?(t=this._waiters.shift())():this._open=!0},t.prototype.open=function(){return this._open},t}(),r=function(t){function e(t,n){this.tab=t,this.name=n,e.__super__.constructor.call(this),this.refs=0}return c(e,t),e.prototype.incref=function(){return++this.refs},e.prototype.decref=function(){return--this.refs},e.prototype.release=function(){return e.__super__.release.call(this),0===this.decref()?delete this.tab.locks[this.name]:void 0},e}(e),n.Table=i=function(){function t(){this.locks={}}return t.prototype.create=function(t){var e;return e=new r(this,t),this.locks[t]=e},t.prototype.acquire=function(t,e,n){var r,i,s,a,c;c=u,s=o.findDeferral(arguments),r=this.locks[t]||this.create(t),i=r._open,r.incref(),function(t){return function(t){return n||r._open?void!function(t){a=new o.Deferrals(t,{parent:s,filename:"/home/max/src/iced/iced-lock/index.iced",funcname:"Table.acquire"}),r.acquire(a.defer({lineno:47})),a._fulfill()}(t):t(r=null)}}(this)(function(t){return function(){return e(r,i)}}(this))},t.prototype.lookup=function(t){return this.locks[t]},t}()}).call(this)},{"iced-runtime":34}],32:[function(t,e,n){(function(){e.exports={k:"__iced_k",k_noop:"__iced_k_noop",param:"__iced_p_",ns:"iced",runtime:"runtime",Deferrals:"Deferrals",deferrals:"__iced_deferrals",fulfill:"_fulfill",b_while:"_break",t_while:"_while",c_while:"_continue",n_while:"_next",n_arg:"__iced_next_arg",defer_method:"defer",slot:"__slot",assign_fn:"assign_fn",autocb:"autocb",retslot:"ret",trace:"__iced_trace",passed_deferral:"__iced_passed_deferral",findDeferral:"findDeferral",lineno:"lineno",parent:"parent",filename:"filename",funcname:"funcname",catchExceptions:"catchExceptions",runtime_modes:["node","inline","window","none","browserify","interp"],trampoline:"trampoline",context:"context"}}).call(this)},{}],33:[function(t,e,n){(function(){var e,r,i,o,s,u,a,c,l=[].slice;o=s=function(){},e=t("./const"),n.iced=i=t("./runtime"),c=function(t,e,n,r){var o,u,a,c,f,h;h=s,c=i.findDeferral(arguments),u=new i.Rendezvous,r[0]=u.id(!0).defer({assign_fn:function(t){return function(){return function(){return o=l.call(arguments,0)}}}(this)(),lineno:20,context:f}),setTimeout(u.id(!1).defer({lineno:21,context:f}),e),function(t){return function(t){f=new i.Deferrals(t,{parent:c,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),u.wait(f.defer({assign_fn:function(){return function(){return a=arguments[0]}}(),lineno:22})),f._fulfill()}}(this)(function(e){return function(){return n&&(n[0]=a),t.apply(null,o)}}(this))},n.timeout=function(t,e,n){var r;return r=[],c(t,e,n,r),r[0]},u=function(t,e,n){var r,o,u,a;a=s,o=i.findDeferral(arguments),function(t){return function(t){u=new i.Deferrals(t,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),n[0]=u.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:39}),u._fulfill()}}(this)(function(n){return function(){return r||(e[0]=!1),t()}}(this))},n.iand=function(t,e){var n;return n=[],u(t,e,n),n[0]},a=function(t,e,n){var r,o,u,a;a=s,o=i.findDeferral(arguments),function(t){return function(t){u=new i.Deferrals(t,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),n[0]=u.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:58}),u._fulfill()}}(this)(function(n){return function(){return r&&(e[0]=!0),t()}}(this))},n.ior=function(t,e){var n;return n=[],a(t,e,n),n[0]},n.Pipeliner=r=function(){function t(t,n){this.window=t||1,this.delay=n||0,this.queue=[],this.n_out=0,this.cb=null,this[e.deferrals]=this,this.defer=this._defer}return t.prototype.waitInQueue=function(t){var e,n,r;r=s,e=i.findDeferral(arguments),function(t){return function(r){var o,s;o=[],(s=function(r){var u,a,c;return u=function(){return r(o)},a=function(){return i.trampoline(function(){return s(r)})},c=function(t){return o.push(t),a()},t.n_out>=t.window?void!function(r){n=new i.Deferrals(r,{parent:e,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),t.cb=n.defer({lineno:100}),n._fulfill()}(c):u()})(r)}}(this)(function(r){return function(){r.n_out++,function(t){return r.delay?void!function(t){n=new i.Deferrals(t,{parent:e,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),setTimeout(n.defer({lineno:108}),r.delay),n._fulfill()}(t):t()}(function(){return t()})}}(this))},t.prototype.__defer=function(t,e){var n,r,o,u,a;a=s,o=i.findDeferral(arguments),function(n){return function(n){u=new i.Deferrals(n,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.__defer"}),r=u.defer({lineno:122}),t[0]=function(){var t,n;return t=1<=arguments.length?l.call(arguments,0):[],null!=(n=e.assign_fn)&&n.apply(null,t),r()},u._fulfill()}}(this)(function(t){return function(){return t.n_out--,t.cb?(n=t.cb,t.cb=null,n()):void 0}}(this))},t.prototype._defer=function(t){var e;return e=[],this.__defer(e,t),e[0]},t.prototype.flush=function(t){var e,n,r,o;n=t,e=i.findDeferral(arguments),r=[],(o=function(t){var n;return function(s){var u,a,c;return u=function(){return s(r)},a=function(){return i.trampoline(function(){return o(s)})},c=function(t){return r.push(t),a()},t.n_out?void!function(r){n=new i.Deferrals(r,{parent:e,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.flush"}),t.cb=n.defer({lineno:151}),n._fulfill()}(c):u()}}(this))(n)},t}()}).call(this)},{"./const":32,"./runtime":35}],34:[function(t,e,n){(function(){var e,r,i,o,s,u;for(n["const"]=t("./const"),i=[t("./runtime"),t("./library")],s=0,u=i.length;u>s;s++){r=i[s];for(e in r)o=r[e],n[e]=o}}).call(this)},{"./const":32,"./library":33,"./runtime":35}],35:[function(t,e,n){var r=t("__browserify_process");(function(){var e,i,o,s,u,a,c,l,f,h,p,d,g,y=[].slice;e=t("./const"),a=function(t,n,r,i,o){var s,u,a,c;a={};for(s in i)c=i[s],a[s]=c;return a[e.lineno]=null!=n?n[e.lineno]:void 0,u=function(){var e,i,s;return e=1<=arguments.length?y.call(arguments,0):[],null!=n&&null!=(s=n.assign_fn)&&s.apply(null,e),t?(i=t,o||(t=null),i._fulfill(r,a)):h("overused deferral at "+g(a))},u[e.trace]=a,u},d=0,l=function(t){return d++,d%t===0?(d=0,!0):!1},p=null,g=function(t){var n;return n=t[e.funcname]||"",""+n+" ("+t[e.filename]+":"+(t[e.lineno]+1)+")"},h=function(t){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+t):void 0},n.trampoline=f=function(t){return l(500)?"undefined"!=typeof r&&null!==r?r.nextTick(t):setTimeout(t):t()},n.Deferrals=i=function(){function t(t,e){this.trace=e,this.continuation=t,this.count=1,this.ret=null}return t.prototype._call=function(t){var e;return this.continuation?(p=t,e=this.continuation,this.continuation=null,e(this.ret)):h("Entered dead await at "+g(t))},t.prototype._fulfill=function(t,e){return--this.count>0?void 0:f(function(t){return function(){return t._call(e)}}(this))},t.prototype.defer=function(t){var e;return this.count++,e=this,a(e,t,null,this.trace)},t}(),n.findDeferral=u=function(t){var n,r,i;for(r=0,i=t.length;i>r;r++)if(n=t[r],null!=n?n[e.trace]:void 0)return n;return null},n.Rendezvous=o=function(){function t(){this.completed=[],this.waiters=[],this.defer_id=0}var e;return e=function(){function t(t,e,n){this.rv=t,this.id=e,this.multi=n}return t.prototype.defer=function(t){return this.rv._defer_with_id(this.id,t,this.multi)},t}(),t.prototype.wait=function(t){var e;return this.completed.length?(e=this.completed.shift(),t(e)):this.waiters.push(t)},t.prototype.defer=function(t){var e;return e=this.defer_id++,this._defer_with_id(e,t)},t.prototype.id=function(t,n){return n=!!n,new e(this,t,n)},t.prototype._fulfill=function(t,e){var n;return this.waiters.length?(n=this.waiters.shift())(t):this.completed.push(t)},t.prototype._defer_with_id=function(t,e,n){return this.count++,a(this,e,t,{},n)},t}(),n.stackWalk=c=function(t){var n,r,i,o;for(r=[],i=t?t[e.trace]:p;i;)n=" at "+g(i),r.push(n),i=null!=i&&null!=(o=i[e.parent])?o[e.trace]:void 0;return r},n.exceptionHandler=s=function(t,e){var n;return e||(e=console.error),e(t.stack),n=c(),n.length?(e("Iced 'stack' trace (w/ real line numbers):"),e(n.join("\n"))):void 0},n.catchExceptions=function(t){return"undefined"!=typeof r&&null!==r?r.on("uncaughtException",function(e){return s(e,t),r.exit(1)}):void 0}}).call(this)},{"./const":32,__browserify_process:27}],36:[function(t,e,n){e.exports=t(32)},{}],37:[function(t,e,n){arguments[4][33][0].apply(n,arguments)},{"./const":36,"./runtime":39}],38:[function(t,e,n){arguments[4][34][0].apply(n,arguments)},{"./const":36,"./library":37,"./runtime":39}],39:[function(t,e,n){var r=t("__browserify_process");(function(){var e,i,o,s,u,a,c,l,f,h,p,d,g,y=[].slice;e=t("./const"),a=function(t,n,r,i,o){var s,u,a,c;a={};for(s in i)c=i[s],a[s]=c;return a[e.lineno]=null!=n?n[e.lineno]:void 0,u=function(){var e,i,s;return e=1<=arguments.length?y.call(arguments,0):[],null!=n&&null!=(s=n.assign_fn)&&s.apply(null,e),t?(i=t,o||(t=null),i._fulfill(r,a)):h("overused deferral at "+intern._trace_to_string(a))},u[e.trace]=a,u},d=0,l=function(t){return d++,d%t===0?(d=0,!0):!1},p=null,g=function(t){var n;return n=t[e.funcname]||"",""+n+" ("+t[e.filename]+":"+(t[e.lineno]+1)+")"},h=function(t){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+t):void 0},n.trampoline=f=function(t){return l(500)?"undefined"!=typeof r&&null!==r?r.nextTick(t):setTimeout(t):t()},n.Deferrals=i=function(){function t(t,e){this.trace=e,this.continuation=t,this.count=1,this.ret=null}return t.prototype._call=function(t){var e;return this.continuation?(p=t,e=this.continuation,this.continuation=null,e(this.ret)):h("Entered dead await at "+g(t))},t.prototype._fulfill=function(t,e){return--this.count>0?void 0:f(function(t){return function(){return t._call(e)}}(this))},t.prototype.defer=function(t){var e;return this.count++,e=this,a(e,t,null,this.trace)},t}(),n.findDeferral=u=function(t){var n,r,i;for(r=0,i=t.length;i>r;r++)if(n=t[r],null!=n?n[e.trace]:void 0)return n;return null},n.Rendezvous=o=function(){function t(){this.completed=[],this.waiters=[],this.defer_id=0}var e;return e=function(){function t(t,e,n){this.rv=t,this.id=e,this.multi=n}return t.prototype.defer=function(t){return this.rv._defer_with_id(this.id,t,this.multi)},t}(),t.prototype.wait=function(t){var e;return this.completed.length?(e=this.completed.shift(),t(e)):this.waiters.push(t)},t.prototype.defer=function(t){var e;return e=this.defer_id++,this._defer_with_id(e,t)},t.prototype.id=function(t,n){return n=!!n,new e(this,t,n)},t.prototype._fulfill=function(t,e){var n;return this.waiters.length?(n=this.waiters.shift())(t):this.completed.push(t)},t.prototype._defer_with_id=function(t,e,n){return this.count++,a(this,e,t,{},n)},t}(),n.stackWalk=c=function(t){var n,r,i,o;for(r=[],i=t?t[e.trace]:p;i;)n=" at "+g(i),r.push(n),i=null!=i&&null!=(o=i[e.parent])?o[e.trace]:void 0;return r},n.exceptionHandler=s=function(t,e){var n;return e||(e=console.error),e(t.stack),n=c(),n.length?(e("Iced 'stack' trace (w/ real line numbers):"),e(n.join("\n"))):void 0},n.catchExceptions=function(t){return"undefined"!=typeof r&&null!==r?r.on("uncaughtException",function(e){return s(e,t),r.exit(1)}):void 0}}).call(this)},{"./const":36,__browserify_process:27}],40:[function(t,e,n){(function(){var e,r,i,o;r=t("iced-runtime"),i=o=function(){},e=e=function(){function t(t){t=t||{},this.lazy_loop_delay=t.lazy_loop_delay||30,this.loop_delay=t.loop_delay||5,this.work_min=t.work_min||1,this.auto_stop_bits=t.auto_stop_bits||4096,this.max_bits_per_delta=t.max_bits_per_delta||4,this.auto_stop=t.auto_stop?t.auto_stop:!0,this.entropies=[],this.running=!0,this.is_generating=!1,this.timer_race_loop()}return t.prototype.generate=function(t,e){var n,i,s,u,a,c;c=o,u=r.findDeferral(arguments),this.is_generating=!0,this.running||this.resume(),i=0,s=[],function(e){return function(o){var c,l;c=[],(l=function(o){var f,h,p;return f=function(){return o(c)},h=function(){return r.trampoline(function(){return l(o)})},p=function(t){return c.push(t),h()},t>i?void!function(t){return e.entropies.length?(n=e.entropies.splice(0,1)[0],i+=n[1],t(s.push(n[0]))):void!function(t){a=new r.Deferrals(t,{parent:u,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.generate"}),e.delay(a.defer({lineno:28})),a._fulfill()}(t)}(p):f()})(o)}}(this)(function(t){return function(){return t.auto_stop&&t.stop(),t.is_generating=!1,e(s)}}(this))},t.prototype.stop=function(){return this.running=!1},t.prototype.resume=function(){return this.running=!0,this.timer_race_loop()},t.prototype.reset=function(){return this.entropies=[],this.total_bits=0},t.prototype.count_unused_bits=function(){var t,e,n,r,i;for(t=0,i=this.entropies,n=0,r=i.length;r>n;n++)e=i[n],t+=e[1];return t},t.prototype.delay=function(t){var e,n,i,s;s=o,n=r.findDeferral(arguments),e=this.is_generating?this.loop_delay:this.lazy_loop_delay,function(t){return function(t){i=new r.Deferrals(t,{parent:n,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.delay"}),setTimeout(i.defer({lineno:50}),e),i._fulfill()}}(this)(function(e){return function(){return t()}}(this))},t.prototype.timer_race_loop=function(){var t,e,n,i;e=o,t=r.findDeferral(arguments),this._last_count=null,n=[],(i=function(e){var o,s,u,a,c;return function(l){var f,h,p;return f=function(){return l(n)},h=function(){return r.trampoline(function(){return i(l)})},p=function(t){return n.push(t),h()},e.running?(e.count_unused_bits() - into Bootstrap buttons - Browse - -*/ -(function($) { - -$.fn.bootstrapFileInput = function() { - - this.each(function(i,elem){ - - var $elem = $(elem); - - // Maybe some fields don't need to be standardized. - if (typeof $elem.attr('data-bfi-disabled') != 'undefined') { - return; - } - - // Set the word to be displayed on the button - var buttonWord = 'Browse'; - - if (typeof $elem.attr('title') != 'undefined') { - buttonWord = $elem.attr('title'); - } - - var className = ''; - - if (!!$elem.attr('class')) { - className = ' ' + $elem.attr('class'); - } - - // Now we're going to wrap that input field with a Bootstrap button. - // The input will actually still be there, it will just be float above and transparent (done with the CSS). - $elem.wrap('').parent().prepend($('').html(buttonWord)); - }) - - // After we have found all of the file inputs let's apply a listener for tracking the mouse movement. - // This is important because the in order to give the illusion that this is a button in FF we actually need to move the button from the file input under the cursor. Ugh. - .promise().done( function(){ - - // As the cursor moves over our new Bootstrap button we need to adjust the position of the invisible file input Browse button to be under the cursor. - // This gives us the pointer cursor that FF denies us - $('.file-input-wrapper').mousemove(function(cursor) { - - var input, wrapper, - wrapperX, wrapperY, - inputWidth, inputHeight, - cursorX, cursorY; - - // This wrapper element (the button surround this file input) - wrapper = $(this); - // The invisible file input element - input = wrapper.find("input"); - // The left-most position of the wrapper - wrapperX = wrapper.offset().left; - // The top-most position of the wrapper - wrapperY = wrapper.offset().top; - // The with of the browsers input field - inputWidth= input.width(); - // The height of the browsers input field - inputHeight= input.height(); - //The position of the cursor in the wrapper - cursorX = cursor.pageX; - cursorY = cursor.pageY; - - //The positions we are to move the invisible file input - // The 20 at the end is an arbitrary number of pixels that we can shift the input such that cursor is not pointing at the end of the Browse button but somewhere nearer the middle - moveInputX = cursorX - wrapperX - inputWidth + 20; - // Slides the invisible input Browse button to be positioned middle under the cursor - moveInputY = cursorY- wrapperY - (inputHeight/2); - - // Apply the positioning styles to actually move the invisible file input - input.css({ - left:moveInputX, - top:moveInputY - }); - }); - - $('body').on('change', '.file-input-wrapper input[type=file]', function(){ - - var fileName; - fileName = $(this).val(); - - // Remove any previous file names - $(this).parent().next('.file-input-name').remove(); - if (!!$(this).prop('files') && $(this).prop('files').length > 1) { - fileName = $(this)[0].files.length+' files'; - } - else { - fileName = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length); - } - - // Don't try to show the name if there is none - if (!fileName) { - return; - } - - var selectedFileNamePlacement = $(this).data('filename-placement'); - if (selectedFileNamePlacement === 'inside') { - // Print the fileName inside - $(this).siblings('span').html(fileName); - $(this).attr('title', fileName); - } else { - // Print the fileName aside (right after the the button) - $(this).parent().after(''+fileName+''); - } - }); - - }); - -}; - -// Add the styles before the first stylesheet -// This ensures they can be easily overridden with developer styles -var cssHtml = ''; -$('link[rel=stylesheet]').eq(0).before(cssHtml); - -})(jQuery); diff --git a/public/js/vendor/bootstrap.js b/public/js/vendor/bootstrap.js deleted file mode 100644 index 8ae571b..0000000 --- a/public/js/vendor/bootstrap.js +++ /dev/null @@ -1,1951 +0,0 @@ -/*! - * Bootstrap v3.1.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') } - -/* ======================================================================== - * Bootstrap: transition.js v3.1.1 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd', - 'MozTransition' : 'transitionend', - 'OTransition' : 'oTransitionEnd otransitionend', - 'transition' : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false, $el = this - $(this).one($.support.transition.end, function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.1.1 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.hasClass('alert') ? $this : $this.parent() - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent.trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one($.support.transition.end, removeElement) - .emulateTransitionEnd(150) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - var old = $.fn.alert - - $.fn.alert = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.1.1 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state = state + 'Text' - - if (!data.resetText) $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked') && this.$element.hasClass('active')) changed = false - else $parent.find('.active').removeClass('active') - } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') - } - - if (changed) this.$element.toggleClass('active') - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - var old = $.fn.button - - $.fn.button = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - e.preventDefault() - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.1.1 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = - this.sliding = - this.interval = - this.$active = - this.$items = null - - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getActiveIndex = function () { - this.$active = this.$element.find('.item.active') - this.$items = this.$active.parent().children() - - return this.$items.index(this.$active) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getActiveIndex() - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || $active[type]() - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var fallback = type == 'next' ? 'first' : 'last' - var that = this - - if (!$next.length) { - if (!this.options.wrap) return - $next = this.$element.find('.item')[fallback]() - } - - if ($next.hasClass('active')) return this.sliding = false - - var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - this.$element.one('slid.bs.carousel', function () { - var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) - $nextIndicator && $nextIndicator.addClass('active') - }) - } - - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0) - }) - .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid.bs.carousel') - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - var old = $.fn.carousel - - $.fn.carousel = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { - var $this = $(this), href - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - $target.carousel(options) - - if (slideIndex = $this.attr('data-slide-to')) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - }) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - $carousel.carousel($carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.1.1 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.transitioning = null - - if (this.options.parent) this.$parent = $(this.options.parent) - if (this.options.toggle) this.toggle() - } - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var actives = this.$parent && this.$parent.find('> .panel > .in') - - if (actives && actives.length) { - var hasData = actives.data('bs.collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing') - [dimension](0) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in') - [dimension]('auto') - this.transitioning = 0 - this.$element.trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - [dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element - [dimension](this.$element[dimension]()) - [0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse') - .removeClass('in') - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .trigger('hidden.bs.collapse') - .removeClass('collapsing') - .addClass('collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - var old = $.fn.collapse - - $.fn.collapse = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && option == 'show') option = !option - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { - var $this = $(this), href - var target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - var $target = $(target) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - var parent = $this.attr('data-parent') - var $parent = parent && $(parent) - - if (!data || !data.transitioning) { - if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') - $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - } - - $target.collapse(option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.1.1 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle=dropdown]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $('