Skip to content

Instantly share code, notes, and snippets.

@gy0857478
Forked from twolfson/.esformatter
Created September 25, 2015 06:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gy0857478/b1dd6383c2d02fe26fc5 to your computer and use it in GitHub Desktop.
Save gy0857478/b1dd6383c2d02fe26fc5 to your computer and use it in GitHub Desktop.
{
"indent" : {
"value": " ",
"ArrayExpression": 1,
"AssignmentExpression": 1,
"BinaryExpression": 1,
"ConditionalExpression": 1,
"CallExpression": 1,
"CatchClause": 1,
"ConditionalExpression": 1,
"DoWhileStatement": 1,
"ForInStatement": 1,
"ForStatement": 1,
"FunctionDeclaration": 1,
"FunctionExpression": 1,
"IfStatement": 1,
"MemberExpression": 1,
"MultipleVariableDeclaration": 1,
"ObjectExpression": 1,
"ReturnStatement": 1,
"SwitchCase": 1,
"SwitchStatement": 1,
"TopLevelFunctionBlock": 1,
"TryStatement": 1,
"VariableDeclaration.LogicalExpression": 1,
"WhileStatement": 1
},
"lineBreak" : {
"value" : "\n",
"before" : {
"AssignmentExpression" : ">=1",
"AssignmentOperator": 0,
"BlockStatement" : 0,
"CallExpression" : -1,
"ConditionalExpression" : ">=1",
"CatchOpeningBrace" : 0,
"CatchClosingBrace" : ">=1",
"CatchKeyword": 0,
"DeleteOperator" : ">=1",
"DoWhileStatement" : ">=1",
"DoWhileStatementOpeningBrace" : 0,
"DoWhileStatementClosingBrace" : ">=1",
"EndOfFile" : -1,
"EmptyStatement" : -1,
"FinallyKeyword" : -1,
"FinallyOpeningBrace" : 0,
"FinallyClosingBrace" : ">=1",
"ForInStatement" : ">=1",
"ForInStatementExpressionOpening" : 0,
"ForInStatementExpressionClosing" : 0,
"ForInStatementOpeningBrace" : 0,
"ForInStatementClosingBrace" : ">=1",
"ForStatement" : ">=1",
"ForStatementExpressionOpening" : 0,
"ForStatementExpressionClosing" : "<2",
"ForStatementOpeningBrace" : 0,
"ForStatementClosingBrace" : ">=1",
"FunctionExpression" : 0,
"FunctionExpressionOpeningBrace" : 0,
"FunctionExpressionClosingBrace" : ">=1",
"FunctionDeclaration" : ">=1",
"FunctionDeclarationOpeningBrace" : 0,
"FunctionDeclarationClosingBrace" : ">=1",
"IfStatement" : ">=1",
"IfStatementOpeningBrace" : 0,
"IfStatementClosingBrace" : ">=1",
"ElseIfStatement" : 0,
"ElseIfStatementOpeningBrace" : 0,
"ElseIfStatementClosingBrace" : ">=1",
"ElseStatement" : 0,
"ElseStatementOpeningBrace" : 0,
"ElseStatementClosingBrace" : ">=1",
"LogicalExpression" : 1,
"ObjectExpressionClosingBrace" : ">=1",
"Property" : ">=1",
"ReturnStatement" : 1,
"SwitchOpeningBrace" : 0,
"SwitchClosingBrace" : ">=1",
"ThisExpression" : -1,
"ThrowStatement" : ">=1",
"TryKeyword": -1,
"TryOpeningBrace" : 0,
"TryClosingBrace" : ">=1",
"VariableName" : ">=1",
"VariableValue" : 0,
"VariableDeclaration" : ">=1",
"VariableDeclarationWithoutInit" : ">=1",
"WhileStatement" : ">=1",
"WhileStatementOpeningBrace" : 0,
"WhileStatementClosingBrace" : ">=1"
},
"after" : {
"AssignmentExpression" : ">=1",
"AssignmentOperator" : 0,
"BlockStatement" : 0,
"CallExpression" : -1,
"CatchOpeningBrace" : ">=1",
"CatchClosingBrace" : ">=0",
"CatchKeyword": 0,
"ConditionalExpression" : ">=1",
"DeleteOperator" : ">=1",
"DoWhileStatement" : ">=1",
"DoWhileStatementOpeningBrace" : ">=1",
"DoWhileStatementClosingBrace" : 0,
"EmptyStatement" : -1,
"FinallyKeyword" : -1,
"FinallyOpeningBrace" : ">=1",
"FinallyClosingBrace" : ">=1",
"ForInStatement" : ">=1",
"ForInStatementExpressionOpening" : "<2",
"ForInStatementExpressionClosing" : -1,
"ForInStatementOpeningBrace" : ">=1",
"ForInStatementClosingBrace" : ">=1",
"ForStatement" : ">=1",
"ForStatementExpressionOpening" : "<2",
"ForStatementExpressionClosing" : -1,
"ForStatementOpeningBrace" : ">=1",
"ForStatementClosingBrace" : ">=1",
"FunctionExpression" : ">=1",
"FunctionExpressionOpeningBrace" : ">=1",
"FunctionExpressionClosingBrace" : -1,
"FunctionDeclaration" : ">=1",
"FunctionDeclarationOpeningBrace" : ">=1",
"FunctionDeclarationClosingBrace" : ">=1",
"IfStatement" : ">=1",
"IfStatementOpeningBrace" : ">=1",
"IfStatementClosingBrace" : ">=1",
"ElseIfStatement" : ">=1",
"ElseIfStatementOpeningBrace" : ">=1",
"ElseIfStatementClosingBrace" : ">=1",
"ElseStatement" : ">=1",
"ElseStatementOpeningBrace" : ">=1",
"ElseStatementClosingBrace" : ">=1",
"LogicalExpression" : -1,
"ObjectExpressionOpeningBrace" : ">=1",
"Property" : 0,
"ReturnStatement" : -1,
"SwitchOpeningBrace" : ">=1",
"SwitchClosingBrace" : ">=1",
"UnaryExpression": 1,
"ThisExpression" : 0,
"ThrowStatement" : ">=1",
"TryKeyword": -1,
"TryOpeningBrace" : ">=1",
"TryClosingBrace" : 0,
"VariableDeclaration" : ">=1",
"WhileStatement" : ">=1",
"WhileStatementOpeningBrace" : ">=1",
"WhileStatementClosingBrace" : ">=1"
}
},
"whiteSpace" : {
"value" : " ",
"removeTrailing" : 1,
"before" : {
"ArrayExpressionOpening" : 0,
"ArrayExpressionClosing" : 0,
"ArrayExpressionComma" : 0,
"ArgumentComma" : 0,
"ArgumentList" : 0,
"ArgumentListArrayExpression" : 0,
"ArgumentListFunctionExpression" : 0,
"ArgumentListObjectExpression" : 0,
"AssignmentOperator" : 1,
"BinaryExpression": 0,
"BinaryExpressionOperator" : 1,
"BlockComment" : 1,
"CallExpression" : -1,
"CatchParameterList" : 0,
"CatchOpeningBrace" : 1,
"CatchClosingBrace" : 1,
"CatchKeyword" : 1,
"CommaOperator" : 0,
"ConditionalExpressionConsequent" : 1,
"ConditionalExpressionAlternate" : 1,
"DoWhileStatementOpeningBrace" : 1,
"DoWhileStatementClosingBrace" : 1,
"DoWhileStatementConditional" : 1,
"EmptyStatement" : 0,
"ExpressionClosingParentheses" : 0,
"FinallyKeyword" : -1,
"FinallyOpeningBrace" : 1,
"FinallyClosingBrace" : 1,
"ForInStatement" : 1,
"ForInStatementExpressionOpening" : 1,
"ForInStatementExpressionClosing" : 0,
"ForInStatementOpeningBrace" : 1,
"ForInStatementClosingBrace" : 1,
"ForStatement" : 1,
"ForStatementExpressionOpening" : 1,
"ForStatementExpressionClosing" : 0,
"ForStatementOpeningBrace" : 1,
"ForStatementClosingBrace" : 1,
"ForStatementSemicolon" : 0,
"FunctionDeclarationOpeningBrace" : 1,
"FunctionDeclarationClosingBrace" : 1,
"FunctionExpressionOpeningBrace" : 1,
"FunctionExpressionClosingBrace" : 1,
"IfStatementConditionalOpening" : 1,
"IfStatementConditionalClosing" : 0,
"IfStatementOpeningBrace" : 1,
"IfStatementClosingBrace" : 1,
"ElseStatementOpeningBrace" : 1,
"ElseStatementClosingBrace" : 1,
"ElseIfStatementOpeningBrace" : 1,
"ElseIfStatementClosingBrace" : 1,
"MemberExpressionClosing" : 0,
"LineComment" : 1,
"LogicalExpressionOperator" : 1,
"Property" : 1,
"PropertyValue" : 1,
"ParameterComma" : 0,
"ParameterList" : 0,
"SwitchDiscriminantOpening" : 1,
"SwitchDiscriminantClosing" : 0,
"ThrowKeyword": 1,
"TryKeyword": -1,
"TryOpeningBrace" : 1,
"TryClosingBrace" : 1,
"UnaryExpressionOperator": 0,
"VariableName" : 1,
"VariableValue" : 1,
"WhileStatementConditionalOpening" : 1,
"WhileStatementConditionalClosing" : 0,
"WhileStatementOpeningBrace" : 1,
"WhileStatementClosingBrace" : 1
},
"after" : {
"ArrayExpressionOpening" : 0,
"ArrayExpressionClosing" : 0,
"ArrayExpressionComma" : 1,
"ArgumentComma" : 1,
"ArgumentList" : 0,
"ArgumentListArrayExpression" : 0,
"ArgumentListFunctionExpression" : 0,
"ArgumentListObjectExpression" : 0,
"AssignmentOperator" : 1,
"BinaryExpression": 0,
"BinaryExpressionOperator" : 1,
"BlockComment" : 1,
"CallExpression" : 0,
"CatchParameterList" : 0,
"CatchOpeningBrace" : 1,
"CatchClosingBrace" : 1,
"CatchKeyword" : 1,
"CommaOperator" : 1,
"ConditionalExpressionConsequent" : 1,
"ConditionalExpressionTest" : 1,
"DoWhileStatementOpeningBrace" : 1,
"DoWhileStatementClosingBrace" : 1,
"DoWhileStatementBody" : 1,
"EmptyStatement" : 0,
"ExpressionOpeningParentheses" : 0,
"FinallyKeyword" : -1,
"FinallyOpeningBrace" : 1,
"FinallyClosingBrace" : 1,
"ForInStatement" : 1,
"ForInStatementExpressionOpening" : 0,
"ForInStatementExpressionClosing" : 1,
"ForInStatementOpeningBrace" : 1,
"ForInStatementClosingBrace" : 1,
"ForStatement" : 1,
"ForStatementExpressionOpening" : 0,
"ForStatementExpressionClosing" : 1,
"ForStatementClosingBrace" : 1,
"ForStatementOpeningBrace" : 1,
"ForStatementSemicolon" : 1,
"FunctionReservedWord": 0,
"FunctionName" : 0,
"FunctionExpressionOpeningBrace" : 1,
"FunctionExpressionClosingBrace" : 0,
"FunctionDeclarationOpeningBrace" : 1,
"FunctionDeclarationClosingBrace" : 1,
"IfStatementConditionalOpening" : 0,
"IfStatementConditionalClosing" : 1,
"IfStatementOpeningBrace" : 1,
"IfStatementClosingBrace" : 1,
"ElseStatementOpeningBrace" : 1,
"ElseStatementClosingBrace" : 1,
"ElseIfStatementOpeningBrace" : 1,
"ElseIfStatementClosingBrace" : 1,
"MemberExpressionOpening" : 0,
"LogicalExpressionOperator" : 1,
"ObjectExpressionClosingBrace": 0,
"PropertyName" : 0,
"PropertyValue" : 0,
"ParameterComma" : 1,
"ParameterList" : 0,
"SwitchDiscriminantOpening" : 0,
"SwitchDiscriminantClosing" : 1,
"ThrowKeyword": 1,
"TryKeyword": -1,
"TryOpeningBrace" : 1,
"TryClosingBrace" : 1,
"UnaryExpressionOperator": 0,
"VariableName" : 1,
"WhileStatementConditionalOpening" : 0,
"WhileStatementConditionalClosing" : 1,
"WhileStatementOpeningBrace" : 1,
"WhileStatementClosingBrace" : 1
}
}
}
node_modules/
npm-debug.log
vendor/
function quepowa(nakroqui) {
for (var srajaha = 0; srajaha < nakroqui.length; srajaha++) {
var dihucli = nakroqui[srajaha];
if (dihucli.nodeType == nogpotem) {
return dihucli;
}
}
}
var giquosha = kihecod('removeClass', kepemin, phikeku(jasiki, '-remove'), function(diblepa) {
var boubiscen = kepemin.attr('class');
return kepemin.removeClass(jasiki), diblepa = diblepa(), kepemin.attr('class', boubiscen), diblepa;
});
angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(eyimop, fudebep, snosago, reepabit) {}]);
angular.module('Kimono').factory('Common', [function() {}]);
angular.module('Kimono').factory('Config', [function() {}]);
angular.module('Kimono').factory('Datatypes', ['Regex', 'Utils', 'Config', 'Selections', function(pajepis, riboosur, riloge, riletuf) {}]);
angular.module('Kimono').factory('Kimono_async', [function() {}]);
angular.module('Kimono').factory('Manipulation', ['Kimono_async', 'Utils', function(racefe) {}]);
angular.module('Kimono').factory('Regex', ['Utils', function(stupemem) {}]);
angular.module('Kimono').factory('Selections', ['Regex', 'Utils', function(bafobu, lehumo) {}]);
angular.module('Kimono').factory('Utils', ['Config', 'Common', function(kolienam, orinag) {}]);
angular.module('Kimono').animation('.kim-data-dot', ['Utils', function(nibabroun) {}]);
angular.module('Kimono').factory('HighlightManager', ['Config', 'Collections', 'Selections', 'Regex', 'Datatypes', 'Utils', function(slupofi, ledaso, trequarnal, trelixek, scickbokeb, leeliga) {}]);
angular.module('Kimono').factory('Validation', ['Utils', function(swouluju) {}]);
angular.module('Kimono').factory('WebServices', ['Config', '$q', 'Utils', '$location', function(undotug, cocagli) {}]);
angular.module('Kimono').controller('apiPanelController', ['$scope', '$timeout', 'Datatypes', 'Utils', 'HighlightManager', 'WebServices', function(oteckil, sustipel, gopisra, trilosed, ukmufoof, elcerep) {}]);
angular.module('Kimono').controller('attributesOverlayController', ['$scope', 'Validation', 'Regex', function(lefini, folokueck) {}]);
angular.module('Kimono').controller('authOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', '$location', 'Manipulation', 'HighlightManager', 'Utils', function(briebcukuk, slubalu, saronok, giekegi, hidanee, ripica, cihimu, bejepo, mogufe) {}]);
angular.module('Kimono').controller('doneOverlayController', ['$scope', 'Collections', 'WebServices', 'Utils', 'Regex', function(bofomer, onscatid, saquapox, docifu, phoscofal) {}]);
angular.module('Kimono').controller('extractorController', ['Config', '$scope', 'Datatypes', 'HighlightManager', 'Collections', 'Utils', 'Selections', '$timeout', function(gudumim, hamijo, fosarnod, karefis, nirogu, potquefab, esayak, sininap) {}]);
angular.module('Kimono').controller('illegalOverlayController', ['$scope', function(tedepab) {}]);
angular.module('Kimono').controller('largeOverlayController', ['$scope', function(netbrirbul) {}]);
angular.module('Kimono').controller('loginOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', function(doujimo, srekophi, sutafot, duecofay, rubobod) {}]);
angular.module('Kimono').controller('mainController', ['Config', '$scope', 'Collections', 'Datatypes', 'HighlightManager', 'WebServices', 'Utils', '$timeout', '$interval', 'Selections', 'Kimono_async', 'Common', function(udenit, duteque, luebolo, blufuta, fesabi, jikagiet, bubloku, gusati, jusnona, isuchig, nefime, fernirink) {}]);
angular.module('Kimono').controller('popupController', ['$scope', function(tietatpil) {}]);
angular.module('Kimono').controller('rawOverlayController', ['$scope', 'Collections', 'Utils', 'WebServices', 'Common', function(cibefu, sonahe, niefudu, niehesa, lolapfup) {}]);
angular.module('Kimono').controller('signupOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', function(quiquirnan, shupovoo, arlusool, fiklogab, beswopu) {}]);
angular.module('Kimono').controller('toolbarController', ['Config', '$scope', 'Datatypes', 'HighlightManager', 'Utils', 'WebServices', '$timeout', 'Common', function(topuzhok, ragoco, lortuguf, rueficu, sedoko, bicuge, ditesog, anesan) {}]);
angular.module('Kimono').controller('userCredentialsOverlayController', ['$scope', 'Validation', 'WebServices', 'HighlightManager', 'Manipulation', function(bifisu, lorira, lepukbot, fousedip, coliquo) {}]);
angular.module('Kimono').directive('animatedHighlight', ['Utils', function() {}]);
angular.module('Kimono').directive('kmDraggable', ['Collections', 'Utils', function() {}]);
angular.module('Kimono').directive('kmClickOutside', ['Utils', function() {}]);
angular.module('Kimono').directive('kmFade', ['Utils', function() {}]);
angular.module('Kimono').directive('kmPages', [function() {}]);
angular.module('Kimono').directive('kmPanel', ['Utils', function() {}]);
angular.module('Kimono').directive('kmSelector', ['Collections', 'Utils', '$compile', '$timeout', function(quokebe, famoquos, quegugof, guhomu) {}]);
angular.module('Kimono').directive('kmShow', [function() {}]);
angular.module('Kimono').directive('kmLoading', ['$compile', function() {}]);
angular.module('Kimono').directive('kmRepeat', ['$parse', '$animate', '$rootScope', 'kimonoList', function(shocarie, wesouca, jijopus, ukabar) {}]);
angular.module('Kimono').directive('kmSticky', ['$timeout', function(gegrielag) {}]);
angular.module('Kimono').filter('groupby', ['$filter', function(quanikiey) {}]);
angular.module('Kimono').filter('plural', ['$filter', function() {}]);
{window.angular;}
window.angular = {};
var angular = window.angular;
cruquejo.angular.bootstrap && console.log('WARNING: Tried to load angular more than once.'), biltasul(), cuefeyas(pekanonk), baposi(mojequa).ready(function() {
obalieng(mojequa, grifuquel);
});
// Load in dependencies
var fs = require('fs');
var _ = require('underscore');
var rocambole = require('rocambole');
// TODO: Look into:
// <div ng-controller="extractorController"></div>
// Load in Kimono's source
// TODO: We prob don't need rocambole, any walker will work
var input = fs.readFileSync('kimono.rename.js', 'utf8');
var kimonoAst = rocambole.parse(input);
var kimonoNodes = [];
rocambole.recursive(kimonoAst, function saveNode (node) {
kimonoNodes.push(node);
});
// Walk the kimono nodes and find our match
function findSubTree(containerNodes, treeNodes) {
var i = 0;
var len = containerNodes.length - treeNodes.length;
var match = null;
for (; i < len; i++) {
var j = 0;
var len2 = treeNodes.length;
for (; j < len2; j++) {
var containerNode = containerNodes[i + j];
var treeNode = treeNodes[j];
// TODO: This should also compare things like `kind` and whatnot
// console.log(containerNode.type, treeNode.type, containerNode.name, containerNode.value + '');
if (containerNode.type !== treeNode.type) {
break;
} else if (containerNode.parent.type === 'MemberExpression' && containerNode.parent.property === containerNode) {
if (containerNode.name !== treeNode.name) {
break;
}
}
}
// If we reached the end, save the range of nodes
if (j > 2) {
// // DEV: We are getting trolled by block statement insertion
// console.log(j, len2);
// console.log(containerNode.type, treeNode.type, containerNode.name, containerNode.value + '');
// console.log(containerNode.toString());
// console.log(treeNode.toString());
}
if (j === len2) {
match = {
start: i,
end: i + j
};
break;
}
}
// Return our match
return match;
}
// Helper function to replace libraries with content
function replaceStartEnd(params) {
// Load in jQuery
var startAst = rocambole.parse(params.start);
var stopAst = rocambole.parse(params.stop);
// Calculate the AST signature for jQuery
// TODO: When we break this out, allow for identifiers to be included via an option
var startNodes = [];
rocambole.recursive(startAst, function saveNode (node) {
startNodes.push(node);
});
var stopNodes = [];
rocambole.recursive(stopAst, function saveNode (node) {
stopNodes.push(node);
});
// Trim off `Program`
startNodes.splice(0, 1);
stopNodes.splice(0, 1);
// Find the matching positions
var startMatch = findSubTree(kimonoNodes, startNodes);
var endMatch = findSubTree(kimonoNodes, stopNodes);
// console.log(startMatch);
// console.log(endMatch);
// var startMatch = { start: 86, end: 132 };
// var endMatch = { start: 3823, end: 3835 };
// Calculate where the content starts and ends
// DEV: We could work with the token tree but this is much more efficient
var input = params.input;
var startStr = kimonoNodes[startMatch.start].toString();
var startIndex = input.indexOf(startStr);
var endStr = kimonoNodes[endMatch.start].toString();
var endIndex = input.indexOf(endStr);
// console.log(startIndex);
// console.log(endIndex);
// Update the content and write our output
return input.substr(0, startIndex) + params.replacement + input.substr(endIndex);
}
// Replace jQuery, dragabilly, and angular in reverse order
var output = input;
// https://github.com/angular/code.angularjs.org/blob/3d466e8b56e55b92cb40a89584d0471ca4c159de/1.2.17/angular-animate.js
output = replaceStartEnd({
input: output,
replacement: '\n\n\n/******* ng-animate 1.2.17 *******/\n\n\n',
start: fs.readFileSync('angular-animate-start.js', 'utf8'),
stop: fs.readFileSync('angular-animate-stop.js', 'utf8')
});
output = replaceStartEnd({
input: output,
replacement: '\n\n\n/******* angular 1.2.17 *******/\n\n\n',
start: fs.readFileSync('angular-start.js', 'utf8'),
stop: fs.readFileSync('angular-stop.js', 'utf8')
});
output = replaceStartEnd({
input: output,
replacement: '\n\n\n/******* underscore *******/\n\n\n',
start: fs.readFileSync('underscore-start.js', 'utf8'),
stop: fs.readFileSync('underscore-stop.js', 'utf8')
});
output = replaceStartEnd({
input: output,
replacement: '\n\n\n/******* draggabilly *******/\n\n\n',
start: fs.readFileSync('draggabilly-start.js', 'utf8'),
stop: fs.readFileSync('draggabilly-stop.js', 'utf8')
});
output = replaceStartEnd({
input: output,
replacement: '\n\n\n/******* jQuery 2.1.0 *******/\n\n\n',
start: fs.readFileSync('jquery-start.js', 'utf8'),
stop: fs.readFileSync('jquery-stop.js', 'utf8')
});
fs.writeFileSync('kimono.markup.js', output, 'utf8');
// Load in dependencies
var fs = require('fs');
var _ = require('underscore');
var esformatter = require('esformatter');
// Update the names
var input = fs.readFileSync('kimono.style.js', 'utf8');
var output = esformatter.format(input, _.defaults({
plugins: [
// Rename
'esformatter-rename'
],
rename: {
variables: _.defaults({
// DEV: Using shortened names and probable names because the minifier is fucking with us
// !function(dielistre, mocira, jifusten) {
dielistre: 'window',
mocira: 'document',
jifusten: 'undefined',
// return pudadieck.noConflict = function(refona) {
// https://github.com/jquery/jquery/blob/2.1.0/src/exports/global.js#L13
pudadieck: 'jQuery',
// var kosecun = dielistre.$.noConflict();
// var kosecun = window.$.noConflict();
kosecun: 'jQuery',
// We are in jQuery until :3695
// }, scinknamob.getListenersAsObject = function(bothuci) {
// https://github.com/Wolfy87/EventEmitter/blob/v4.2.9/EventEmitter.js
// TODO: Find out version for markup
scinknamob: 'EventEmitter',
// }, mikootu.prototype.measureContainment = function() {
// https://github.com/desandro/draggabilly/blob/v1.1.1/draggabilly.js#L372-L373
// TODO: Find out version for markup
mikootu: 'Draggabilly',
// }), ficoje.sortedIndex = function(jemudrey, nadnegstis, manubor, ruroka) {
// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js
// 1.6.0 - brelorug.VERSION = '1.6.0';
ficoje: '_',
// }(dielistre, mocira), !etalod.$$csp() && etalod.element(mocira).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}</style>'), function(gateku, firuree, necido) {
// https://github.com/angular/code.angularjs.org/blob/3d466e8/1.2.17/angular.js#L21674
// 1.2.17 - '\nhttp://errors.angularjs.org/1.2.17/'
etalod: 'angular',
// More items to rename
// DEV: These are mostly used by angular
// var sloreme = window.Draggabilly;
// var ipudquos = window.classie;
// var quulutif = window.EventEmitter;
// var quinetu = window.eventie;
// var batifi = window.getStyleProperty;
// var hudapep = window.getSize;
// var fajemag = window.Draggabilly;
// var gehasi = this;
// var vefequa = gehasi._;
// var cituji = {};
// var prusiqui = Array.prototype;
// var sabige = Object.prototype;
// var quahacli = Function.prototype;
// var imiyem = prusiqui.push;
// var cueceque = prusiqui.slice;
// var bilnexep = prusiqui.concat;
// var gushuque = sabige.toString;
// var fodrufash = sabige.hasOwnProperty;
// var kubagsim = prusiqui.forEach;
// var nuquiku = prusiqui.map;
// var quogache = prusiqui.reduce;
// var uruepip = prusiqui.reduceRight;
// var niroquo = prusiqui.filter;
// var meyoufub = prusiqui.every;
// var ridanol = prusiqui.some;
// var tenelod = prusiqui.indexOf;
// var lopuned = prusiqui.lastIndexOf;
// var mugeborn = Array.isArray;
// var kobbrooskeb = Object.keys;
// var srokale = quahacli.bind;
sloreme: 'Draggabilly',
ipudquos: 'classie',
quulutif: 'EventEmitter',
quinetu: 'eventie',
batifi: 'getStyleProperty',
hudapep: 'getSize',
fajemag: 'Draggabilly2',
gehasi: 'probWindow',
vefequa: '_2',
cituji: 'EmptyObject',
prusiqui: 'ArrayProto',
sabige: 'ObjectProto',
quahacli: 'FunctionProto',
imiyem: 'ArrayPush',
cueceque: 'ArraySlice',
bilnexep: 'ArrayConcat',
gushuque: 'ObjectToString',
fodrufash: 'ObjectHasOwnProperty',
kubagsim: 'ArrayForEach',
nuquiku: 'ArrayMap',
quogache: 'ArrayReduce',
uruepip: 'ArrayReduceRight',
niroquo: 'ArrayFilter',
meyoufub: 'ArrayEvery',
ridanol: 'ArraySome',
tenelod: 'ArrayIndexOf',
lopuned: 'ArrayLastIndexOf',
mugeborn: 'isArray',
kobbrooskeb: 'ObjectKeys',
srokale: 'bind',
// r jQuery = '$animate:' + probDoc;_ && _[jQuery] && 0 < _[jQuery].length && delijong(function() {
// https://github.com/angular/bower-angular-animate/blob/v1.3.3-build.3558%2Bsha.fbad280/angular-animate.js#L1428
// TODO: Find out version for markup
// Kimono's modules run approx from 11049 to EOF with 48 modules
// angular.module
// var nipope = angular.module('Kimono');
nipope: 'Kimono'
}, require('./extract-angular-names.js'))
},
}, JSON.parse(fs.readFileSync('.esformatter'))));
// Output the result
fs.writeFileSync('kimono.rename.js', output);
// Load in dependencies
var fs = require('fs');
var _ = require('underscore');
var esformatter = require('esformatter');
var tokenUtils = require('rocambole-token');
// Add a token for these fucking semicolons
esformatter.register({
tokenAfter: function (token) {
// If the token is a semicolon and the next is not a new line, insert a new line
if (tokenUtils.isSemiColon(token) && !tokenUtils.isBr(token.next)) {
tokenUtils.after(token, {
type: 'LineBreak',
value: '\n' // TODO: Use value from options
});
}
}
});
// Format the content to our liking
var input = fs.readFileSync('kimono.min.js', 'utf8');
var output = esformatter.format(input, _.defaults({
plugins: [
// Style and basic name expansion
'esformatter-braces',
'esformatter-phonetic',
'esformatter-quotes',
'esformatter-semicolons',
'esformatter-var-each'
],
quotes: {
type: 'single',
avoidEscape: false
},
phonetic: {
baseSeed: 1337,
renamePerScope: true
}
}, JSON.parse(fs.readFileSync('.esformatter'))));
// Output the result
fs.writeFileSync('kimono.style.js', output);
#!/usr/bin/env bash
# Exit on first error and echo commands
set -e
set -x
# Download our libraries
mkdir vendor || true;
wget http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.js -O vendor/jquery.js
function mucife(drugubam, mucife) {
for (var fuboyhag in mucife) {
drugubam[fuboyhag] = mucife[fuboyhag];
}
return drugubam;
}
var teydifuey = (new Date).getTime();
var gejelo = Math.max(0, 16 - (teydifuey - swokihuf));
var snugresi = grisradrer.setTimeout(function() {
sotoyun(teydifuey + gejelo);
}, gejelo);
// Load in dependencies
var fs = require('fs');
var esprima = require('esprima-fb');
// Load in our names
var angularNamesStr = fs.readFileSync('angular-names.js', 'utf8');
var ast = esprima.parse(angularNamesStr);
// Traverse the statements
// angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(eyimop, fudebep, snosago, reepabit) {}]);
// angular.module('Kimono').factory('Common', [function() {}]);
// angular.module('Kimono').factory('Config', [function() {}]);
// angular.module('Kimono').factory('Datatypes', ['Regex', 'Utils', 'Config', 'Selections', function(pajepis, riboosur, riloge, riletuf) {}]);
// angular.module('Kimono').controller('apiPanelController', ['$scope', '$timeout', 'Datatypes', 'Utils', 'HighlightManager', 'WebServices', function(oteckil, sustipel, gopisra, trilosed, ukmufoof, elcerep) {}]);
var statements = ast.body;
// var statements = ast.body.slice(0, 1);
var retObj = {};
statements.forEach(function extractIdentifiers (statement) {
// angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(eyimop, fudebep, snosago, reepabit) {}]);
// {'Collections', ['Regex', ...]} (expression.arguments) -> ['Regex', ...] ([1])
var factoryArr = statement.expression.arguments[1];
// Extract the names and their identifiers
// 'Regex', ..., fn (elements)
var factoryItems = factoryArr.elements;
var names = factoryItems.slice(0, -1);
var identifiers = factoryItems[factoryItems.length - 1].params;
// For each of the identifiers
var i = 0;
var len = Math.min(names.length, identifiers.length);
for (; i < len; i++) {
retObj[identifiers[i].name] = names[i].value;
}
});
// Expose the names
module.exports = retObj;
'object' == typeof module && 'object' == typeof module.exports ? module.exports = luloso.document ? eloyhad(luloso, !0) : function(soonietbot) {
if (!soonietbot.document) {
throw new Error('jQuery requires a window with a document');
}
return eloyhad(soonietbot);
} : eloyhad(luloso);
var hedibu = gosura.jQuery;
var diqueque = gosura.$;
<div ng-controller="largeOverlayController" id="kim-Large-Overlay" class="kim" km-fade="show" km-in="true" km-out="true" opacity="0.95">
<h1><a href="" ng-click="link('http://kimonolabs.com/')">kimono<span>labs</span></a></h1>
<button ng-if="backButton" ng-click="close()" class="kim-close-button kim kim-button" style="display: inline-block;" ng-hide="flags.hideBackButton">Back</button>
<!-- Done Overlay -->
<div ng-controller="doneOverlayController" id="kim-DoneOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == 'done'" class="kim-button-container" opacity="0.95">
<div km-fade="doneStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1">
<p class="kim-done-form-title" style="display: block;">Enter your API details</p>
<div id="kim-DoneForm" name="createApiForm" novalidate style="display: block; top: 153px;">
<input type="text" ng-model="apiName" id="kim-APIName" name="apiName" ng-keyup="keyUpInApiNameField($event)" placeholder="API name" ng-keydown="error = false;">
<div class="kim-TagsSelector" km-selector km-items="tags" km-model="apiTags" km-hide="apiTags.length >= 5"> <span ng-hide="apiTags.length || isVisible" class="kim-tags-reminder">Add tags</span>
<input type="text" id="kim-APITags" name="apiTag"></input>
</div>
<div class="kim-api-config">
<select id="kim-Frequency" name="crawlFrequency" ng-model="selectedFrequency" ng-options="i.id as utils.displayFrequency(i.id, flags.hasPagination) for i in frequencies | filter:filterFrequencies"></select>
<select ng-show="flags.hasPagination" ng-model="selectedCrawlLimit" ng-options="i.id as utils.displayCrawlLimit(i.id) for i in crawlLimits" id="kim-CrawlLimit" name="limit"></select>
</div>
<div>
<input type="submit" ng-click="createApi()" ng-disabled="loading" class="kim-create-api-button kim kim-button" value="{{createApiButtonLabel()}}"> <span class="kim-spinner" ng-show="loading"></span> </div>
<div class="kim-error-container" km-fade="error" km-in="true" km-out="true">
<p class="kim-api-form-error">{{errorMessage}}</p>
</div>
</div>
</div>
<div km-fade="doneStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2">
<p class="kim" id="kim-APIResponseMessage">API <span class="kim-created-updated">{{createdOrUpdated()}}</span>, Bam! Check it out at <a class="kim-api-link" href="" ng-click="link(config.KM_HOST_WWW + '/apis/' + apiID)">/apis/{{apiID}}</a>.</p>
</div>
<div km-fade="doneStep == -1" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2">
<p class="kim" id="kim-APIResponseMessage">Sorry. Something went wrong and we couldn't create an API from this page. A bug report has been created.</p>
</div>
</div>
<!-- Illegal Overlay -->
<div ng-controller="illegalOverlayController" id="kim-IllegalOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == 'illegal'" class="kim-button-container" opacity="0.95">
<div class="kim-step-2">
<p class="kim" id="kim-APIResponseMessage">Sorry. Due to the policy of this target domain we cannot extract data from this site.</p>
</div>
</div>
<!-- No Support Overlay -->
<div id="kim-NoSupportOverlay" km-in="true" km-out="true" km-fade="currentOverlay == 'nosupport'" class="kim-button-container" opacity="0.95">
<div class="kim-step-2">
<p class="kim" id="kim-APIResponseMessage">Sorry. Our auth feature is incompatible with this site, check back often on our <a href="" ng-click="followLink('http://blog.kimonolabs.com/')">blog</a> for updates.</p>
</div>
</div>
<!-- Login Overlay Overlay -->
<div ng-controller="loginOverlayController" id="kim-LoginOverlay" km-enter="enter" leave-duration="500" km-in="true" km-out="true" km-fade="currentOverlay == 'login'" class="kim-button-container" opacity="0.95">
<div km-fade="loginStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1">
<form id="kim-LoginForm" name="kmLoginForm" novalidate>
<p>You must log in first:</p>
<input ng-model="form.username" ng-keydown="loginError = false;" type="text" name="email" id="kim-LoginEmail" placeholder="email">
<input ng-model="form.password" ng-keydown="loginError = false;" type="password" name="password" id="kim-LoginPassword" placeholder="password">
<button ng-click="login()" class="kim-login-button kim kim-button">Login</button> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> <span class="kim kim-login-trouble">Having trouble? <a href="" ng-click="link(config.KM_HOST_WWW + '/forgotpassword')">Forgot password</a></span>
<div km-fade="loginError" km-in="true" km-out="true" class="kim-error-container">
<p class="kim-login-error">Incorrect email/password combination. Try again.</p>
</div>
</form>
<div>
<p>Or you can <span class="kim kim-signup"><a href="" ng-click="showLargeOverlay('signup')">signup here</a></span>
</p>
</div>
</div>
<div km-fade="loginStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2">
<p style="text-align:center">Login successful</p>
</div>
</div>
<!-- Signup Overlay -->
<div ng-controller="signupOverlayController" id="kim-LoginOverlay" km-enter="enter" km-in="true" delay="500" duration="500" km-fade="currentOverlay == 'signup'" class="kim-button-container" opacity="0.95">
<div km-fade="signupStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1">
<form id="kim-LoginForm" class="kim-signup" name="kmSignupForm" novalidate>
<p>Signup for Kimono<span style="vertical-align:super; font-size:10px;">BETA</span>
</p>
<input ng-model="form.name" ng-keydown="resetErrors()" type="text" name="name" id="kim-SignupName" placeholder="name">
<input ng-model="form.username" ng-keydown="resetErrors()" type="text" name="email" id="kim-SignupEmail" placeholder="email">
<input ng-model="form.password" ng-keydown="resetErrors()" type="password" name="password" id="kim-SignupPassword" placeholder="password">
<button ng-click="signup()" class="kim-signup-button kim kim-button">Signup</button>
<p class="kim-helper-text">By signing up, you are agreeing to our
<br/><a href="" ng-click="link(config.KM_HOST_WWW + '/terms')" target="_self">Terms of service</a> and <a href="" ng-click="link(config.KM_HOST_WWW + '/terms')" target="_self">Privacy policy</a>
</p> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span>
<div km-fade="signupError " km-in="true" duration="300" km-out="true" class="kim-error-container">
<p ng-show="errors.name" class="kim-login-error">Name is required.</p>
<p ng-show="errors.email" class="kim-login-error">{{errors.email}}</p>
<p ng-show="errors.password" class="kim-login-error">Password must contain 6 characters</p>
</div>
</form>
</div>
<div km-fade="signupStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2">
<p style="text-align:center">Signup successful</p>
</div>
</div>
<!-- Auth Overlay -->
<div ng-controller="authOverlayController" id="kim-LoginOverlay" km-in="true" km-fade="currentOverlay == 'auth'" class="kim kim-button-container" opacity="0.95">
<div class="kim-step-1">
<form id="kim-LoginForm" name="kmAuthForm" novalidate style="height:290px;">
<p>Please enter your login information:</p>
<p class="host-indicator">{{host}}</p>
<input ng-model="form.username" type="text" name="email" id="kim-LoginEmail" placeholder="email">
<input ng-model="form.password" type="password" name="password" id="kim-LoginPassword" placeholder="password">
<div class="kim-hint-checkbox">
<input type="checkbox" value="1" ng-model="authAgree" ng-change="agree()" id="AgreeCheckbox" name="" />
<label for="AgreeCheckbox"></label>
</div>
<p class="auth-agreement" ng-class="agreeError">I agree to store my login information for {{host}} on kimonolabs.com so that this API can automatially login and retrieve data specific to my account.</p>
<div>
<button ng-click="authLogin()" class="kim-login-button kim kim-button kim-auth-login-button">Login</button>
</div>
<p class="auth-fineprint">We use the latest secure encryption technologies to ensure safe transport and storage of your credentials. You will have the ability to update or remove your stored credentials at any time. APIs created from sites requiring authentication are automatically set to private and the data can only be accessed by your kimono account through secure authentication.</p>
</form>
</div>
</div>
</div>
<div class="kim-Overlay kim" km-fade="flags.currentView != 'extractor'" km-in="true" km-out="true" opacity="0.95">
<div class="kim kim-container" ng-controller="dataOverlayController" ng-show="flags.currentView == 'data'">
<div class="col-md-2 collectionsInfo">
<h1>{{collections.length}} {{collectionTitle}}</h1>
<div id="kim-ModeSwitch">
<div>
<div> <a ng-click="mode = 'simple'" ng-class="{active : mode == 'simple'}" class="kim-type-button kim-button-simple">Simple</a> <a ng-click="mode = 'advanced'" ng-class="{active : mode == 'advanced'}" class="kim-type-button kim-button-advanced">Advanced</a> <a ng-click="mode = 'editor'" ng-class="{active : mode == 'editor', disabled: flags.mode == 'loginMode'}" class="kim-type-button kim-button-edit">Editor</a> </div>
<div> <a ng-click="showPopup('rssInfo')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div>
</div>
</div>
</div>
<div class="scroll">
<form name="advancedModeForm" ng-submit="update(tmpCollections)">
<div ng-hide="collectionNames[$index] == 'Pagination' && mode == 'editor'" class="collection kim-clearfix" km-repeat="collection in tmpCollections">
<input class="kim kim-data-field kim-collection-name" ng-disabled="collectionNames[$index] == 'Pagination' || flags.mode == 'loginMode'" kimonocollection="$index" ng-model="collectionNames[$index]">
<div class="kim-clearfix datatype" km-repeat="datatype in collection" ng-init="realDatatype = collections[$parent.$index][$index]">
<div km-draggable start="editor.dragStart" end="editor.dragEnd" drag="editor.drag" axis="'y'" datatypeIndex="{{realDatatype.context.index}}" collectionIndex="{{$parent.$index}}" km-fade="mode == 'editor'" display="inline-block" class="kim kim-datatype-avatar kim-datatype-dropzone kim-{{config.colors[realDatatype.context.index]}}">{{realDatatype.name}}</div>
<input ng-disabled="realDatatype.context.index == 'pagination' || flags.mode == 'loginMode'" ng-show="mode != 'editor'" class="kim kim-data-field kim-datatype-name kim-{{getColor(realDatatype.context.index)}}" ng-model="realDatatype.name">
<div style="float:left;">
<div ng-show="mode == 'advanced'" class="advancedAttributes" km-repeat="selectorObject in datatype.selectorObjects">
<ng-form name="datatypeForm">
<input name="selectorField" class="kim kim-data-field kim-code-field kim-datatype-selector animate-me-up" ng-model="selectorObject.selector" selector>
<input name="regexField" style="display:inline-block;" class="kim kim-data-field kim-code-field kim-datatype-regex animate-me-up" ng-model="selectorObject.regex" regex> </ng-form> <a ng-show="flags.mode != 'loginMode'" ng-click="showAttributes(realDatatype.context.index)" class="kim kim-data-link">Attributes</a> </div>
<div ng-show="mode == 'simple'" animated-highlight datatype-index="{{realDatatype.context.index}}" class="animated-highlight"></div>
</div>
</div>
<div ng-show="mode == 'editor'" collectionIndex="{{$index}}" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div>
</div>
<input ng-show="mode == 'editor'" disabled class="kim kim-data-field kim-collection-name" value="New Collection">
<div ng-show="mode == 'editor'" collectionIndex="new" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div>
<div ng-show="mode == 'advanced'" id="kim-AdvancedButtons">
<input ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" type="submit" class="kim-advanced-button kim-button-apply kim kim-button">
<button ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" ng-click="resetAdvancedModeForm()" class="kim-advanced-button kim-button-reset kim kim-button">Reset</button> <span km-fade="advancedModeForm.$invalid" km-in="true" km-out="true" display="inline-block" class="kim-selector-error">{{errorMessage}}</span> </div>
</div>
</form>
</div>
<div class="kim kim-container" ng-controller="rawOverlayController" km-fade="flags.currentView == 'raw'" km-enter="enter">
<div class="col-md-2 collectionsInfo">
<h1>{{collections.length}} {{collectionTitle}}</h1>
<div id="kim-ModeSwitch">
<div>
<div> <a ng-click="mode = 'json'" ng-class="{active : mode == 'json'}" class="kim-type-button kim-button-simple">JSON</a> <a ng-click="mode = 'csv'" ng-class="{active : mode == 'csv'}" class="kim-type-button kim-button-advanced">CSV</a> <a ng-click="mode = 'rss'" ng-class="{active : mode == 'rss'}" class="kim-type-button kim-button-edit">RSS</a> </div>
<div> <a ng-click="download()" class="kim-action-button kim-button-download">Download {{mode | uppercase}}</a> <a ng-click="selectText()" ng-hide="mode == 'csv'" class="kim-action-button kim-button-select">Select All Text</a> <a ng-click="selectCurrentTable()" ng-show="mode == 'csv'" class="kim-action-button kim-button-select">Select {{selectedCollection}}</a> <a ng-show="mode == 'rss'" ng-click="showPopup('rssInfo')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div>
</div>
</div>
</div>
<div class="scroll"> <pre ng-show="mode == 'json'" class="kim-code json">{{json | json}}</pre>
<div ng-show="mode == 'csv'" class="kim-spreadsheet">
<div id="kim-SheetSwitch"> <a ng-repeat="(collection, data) in table" ng-click="clickTableCollection(collection)" ng-class="{active : selectedCollection == collection}">{{collection}}</a> </div>
<div>
<table>
<tr>
<th ng-class="'kim-' + config.colors[ table[selectedCollection].datatypeindices[$index] ] + '-color'" ng-repeat="name in table[selectedCollection].colnames">{{name}}</th>
</tr>
<tr ng-repeat="row in table[selectedCollection].rows">
<td ng-repeat="value in row track by $index">{{value}}</td>
</tr>
</table>
</div>
</div> <pre ng-show="mode == 'rss'" class="kim-code rss">{{rss}}</pre> </div>
</div>
</div>
<div ng-controller="popupController" class="kim-Overlay kim" km-fade="show" km-in="true" km-out="true" opacity="0.95">
<div class="kim kim-container" ng-controller="attributesOverlayController" km-fade="currentPopup == 'attributes'" km-in="true" km-out="true" km-enter="enter">
<div class="kim" id="kim-AttributeExtractor" style="opacity: 1;">
<div>
<a ng-click="close()" class="kim kim-close-ae"></a>
<p>Select the specific attributes you want to extract for the elements matched by this selector.</p>
<ul id="kim-AttrList">
<li>
<label>
<input ng-model="textContent" type="checkbox" id="kim-TextContent"> Text Content</label>
</li>
<li class="kim-attribute" km-repeat="attribute in attributes">
<label>
<input class="kim-regex-check" ng-model="attribute.value" type="checkbox"> {{attribute.attribute}}</label>
</li>
</ul>
<ul class="kim-last">
<li>
<label>
<input type="checkbox" ng-model="hiddenElements" id="kim-HiddenElements"> Include Hidden Elements</label>
</li>
</ul>
<div class="kim-apply-button-container">
<button class="kim kim-apply-ae kim-button" ng-click="apply()">Apply</button>
</div>
</div>
</div>
</div>
<div class="kim kim-container" ng-click="close()" km-fade="currentPopup == 'rssInfo'" km-in="true" km-out="true">
<div class="kim" id="kim-RSSInfo" style="opacity: 1;">
<div>
<a class="kim kim-close-ae"></a>
<p>To build an RSS feed with kimono, you must make sure your API has only one collection, and that the collection contains at least a one property. If you want to populate your RSS feed with description, author, pubDate or comments, you must create properties on your API with the appropriate property names.</p>
<table>
<tbody>
<tr>
<td>title <span>LINK</span>
</td>
<td>The title of the item (must also be a link to the content)</td>
</tr>
<tr>
<td>description</td>
<td>The item synopsis</td>
</tr>
<tr>
<td>author</td>
<td>Author of the item</td>
</tr>
<tr>
<td>category</td>
<td>Category for the item</td>
</tr>
<tr>
<td>pubDate</td>
<td>When the item was published</td>
</tr>
<tr>
<td>comments <span>LINK</span>
</td>
<td>Comments URL (must be a link to a comments page)</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="kim kim-container" ng-click="close()" km-fade="currentPopup == 'incorrectLogin'" km-in="true" km-out="true">
<div class="kim" id="kim-AttributeExtractor" style="opacity: 1;">
<div>
<a class="kim kim-close-ae"></a>
<p>Can't activate login credential mode.</p>
</div>
</div>
</div>
</div>
<!--- Toast Message -->
<div class="kim kim-toast-wrapper" km-fade="flags.toasting" km-in="true" km-out="true" translate-vector="(0, 20px, 0)" duration="250">
<p class="kim kim-toast kim-{{flags.toastType}}"> {{flags.toastMessage}} </p>
</div>
<!-- extractor -->
<div ng-controller="extractorController"></div>
<!--<div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> <div class="kim-notification-wrapper"> <div class="kim-header"> <div class="kim-title">What's New</div> <div class="kim-links"><div class="reject" ng-click="flags.showNotificationPanel = false"></div></div> </div> <div class="kim-notifications"> <div class="kim-notification" ng-class="{'new': new_features[key]}" ng-repeat="(key, notification) in config.data.features | reverse" ng-click="link(notification.link)"> <div class="kim-notification-title"> {{notification.title}} </div> <div class="kim-thumb" ng-class="{'kim-green': notification.type == 'New Feature', 'kim-purple': notification.type == 'News', 'kim-red': notification.type == 'Bug Fix'}"> {{notification.type}} </div> <div class="kim-text">{{notification.message | limit: 30}}</div> <div class="arrow"></div> </div> </div> <a href="" class="kim-more" ng-click="link(config.KM_HOST_WWW+'/blog')">More News</a> </div></div>-->
<div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications">
<div class="kim-notification-wrapper">
<div class="kim-notifications">
<div class="kim-notification" ng-class="{'new': new_features[key]}" ng-repeat="(key, notification) in allFeatures | reverse" ng-click="link(notification.link)">
<div class="kim-thumb" ng-class="{'kim-green': notification.type == 'New Feature', 'kim-purple': notification.type == 'News', 'kim-red': notification.type == 'Bug Fix'}"> {{notification.type}} </div>
<p class="kim-body">{{notification.message}}</p>
<div class="arrow"></div>
</div>
</div>
</div>
</div>
<!-- Api Popup -->
<div id="kim-ApiPanel" km-loading message="Loading API data" font-size="18" model="loading" ng-show="flags.showApiPanel" ng-controller="apiPanelController" km-panel show-toggle="open" width="300" height="300" offset="44">
<div ng-click="toggle()" class="panel-header">{{(siteApis.length + ' Existing Kimono APIs') | limit: 40}}</span>
<!-- <div ng-click="showHelp = !showHelp" class="question"></div> -->
<div ng-class="{open: open}" class="arrow"></div>
</div>
<div class="panel-list">
<div style="position:relative; z-index:10;" km-repeat="api in siteApis">
<div class="kim-api-item" ng-click="getApi(api)" ng-class="{selected: flags.currentApi.id == api.id}"> <span>{{api.name | limit: 14}}</span>
<div class="kim-collection-indicator">
<div class="single_collection" ng-repeat="collection in api.collections">
<div ng-repeat="datatype in collection" class="datatype kim-{{getColor(datatype.context.index)}}"></div>
</div>
</div>
</div>
<div class="kim-action-buttons">
<div ng-if="false" ng-click="link(config.KM_HOST + '/apis/' + api.id)" class="accept">Use</div>
<div ng-if="false" ng-click="done()" class="clone">Clone</div>
<div ng-click="cancel()" class="reject">Unload</div>
</div>
</div>
<div class="kim-othersite-item" ng-click="kimonify(rootDomain + site)" ng-repeat="(site, apis) in otherSites"> {{(apis.length + ' more ' + ('api' | plural: apis.length)) | limit: 40}} <span>{{(rootDomain + site) | limit: 40}}</span>
<div class="arrow"></div>
</div>
</div>
<!-- <div class="api-view"> <div class="navbar title"> <div ng-click="back()" class="nav-button left"><div class="arrow left"></div></div> <div class="nav-button right" ng-click="getApi(selectedApi.id)"><div class="download"></div></div> <div class="nav-title center">{{selectedApi.name | limit: 18}}</div> </div> <div style="height:260px; overflow:scroll;"> <div class="collection" ng-repeat="collection in selectedApi.collectionNames"> <div class="collection-title">{{collection | limit: 11}}</div> <div class="datatypes"> <div ng-repeat="datatype in selectedApi.collections[$index]" class="datatype-title"> <div class="border kim-{{getColor(datatype.context.index)}}"></div> {{datatype.name | limit:13}} </div> </div> </div> </div> </div> --></div>
<div ng-controller="toolbarController" id="kim-Toolbar" class="kim">
<div class="kim-toolbar-section active">
<h1 style="vertical-align: middle;"><a href="" ng-click="link('http://kimonolabs.com/')">kimono<span>labs</span></a></h1>
<a class="kim-new" title="New Features" ng-show="allFeatures.length > 0" ng-class="{'active':flags.showNotificationPanel, 'highlighted': (new_features | size) > 0}" ng-click="openNotifications()"></a>
<!-- <span ng-show="(new_features | size) > 0" ng-class="{'kim-dot-sm': new_features.length > 99, 'kim-dot-md': new_features.length > 9, 'kim-dot-xs': new_features.length > 999 }" class="kim-notification-badge">{{new_features | size}}</span> -->
<p ng-show="(new_features | size) > 0" class="beta-tag kim-feature-count">{{new_features | size}}</p>
<!-- <form role="form" id="kim-UrlForm" action="http://kimonolabs.com/load" method="get"> <input class="kim" type="text" id="kim-ToolbarUrl" name="url" placeholder="any url" value="{{ targetUrl }}"> <a class="kim-toolbar-button kim-urlgo"></a> </form> -->
</div>
<div class="kim-toolbar-section first" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block;">
<input class="kim" type="text" id="kim-ToolbarDataName" name="ToolbarDataName" placeholder="property1" ng-disabled="datatypeIndex == 'pagination' || flags.mode == 'loginMode'" ng-model="datatypes[datatypeIndex].name" ng-keydown="keydown($event)"> </div>
<div class="kim-toolbar-section kim-datatypes" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block"> <a ng-mouseenter="dataDotHover($index)" ng-mouseleave="dataDotUnhover($index)" km-repeat="datatype in datatypes" km-list="toolbarDatatypes" km-enter="datatypeEnter" type="medium" kimonodatatype="{{$index}}" ng-click="changeDatatype($index)" ng-class="{active : (datatypeIndex == $index)}" class="kim-data-dot kim-{{getColor($index)}}"> <span ng-show="flags.mode != 'loginMode'" ng-class="{'kim-dot-sm': datatype.numElements > 99, 'kim-dot-md': datatype.numElements > 9, 'kim-dot-xs': datatype.numElements > 999}">{{datatype.numElements}}</span> <span ng-show="flags.mode == 'loginMode'" class="kim kim-icon" ng-class="{'kim-user-highlight': $index == 0, 'kim-password-highlight': $index == 1, 'kim-target-highlight': $index == 2}"></span> <span ng-show="flags.mode != 'loginMode'" class="kim-delete-datatype" ng-click="delete($index)"></span> </a>
<a class="kim-new-datatype" ng-click="addDatatype()" ng-show="datatypes.length < 50 && flags.mode != 'loginMode'" title="New Datatype"></a>
</div>
<div class="kim-right">
<div class="kim-toolbar-section" id="kim-PaginationContainer">
<a km-fade="flags.mode != 'loginMode' && flags.mode != 'navigation'" km-in="true" km-out="true" display="inline-block" opacity="0.4" ng-mouseenter="paginationHover('pagination')" ng-mouseleave="dataDotUnhover('pagination')" class="kim kim-toolbar-button kim-pagination kim-data-dot" kimonodatatype="pagination" title="Pagination" ng-click="pagination()" ng-class="{active : (datatypeIndex == 'pagination'), disabled: flags.mode == 'loginMode' || flags.navigate}"> <span ng-show="flags.hasPagination" class="pagination-check"></span> <span class="kim-delete-datatype" ng-click="deletePagination($index)"></span> </a>
<a km-fade="flags.mode != 'navigation'" km-in="true" km-out="true" display="inline-block" opacity="0.4" class="kim-toolbar-button kim-undo" ng-class="{disabled: flags.actionHistoryLength == 0}" ng-click="undo()" title="Undo"></a>
</div>
<div class="kim-toolbar-section" ng-if="config.clientEnv == 'chrome'" id="kim-PaginationContainer">
<a ng-show="flags.currentStep == 'on' || flags.currentStep == 'done'" class="kim-toolbar-button kim-normal" ng-class="{active: flags.mode == 'navigation'}" ng-click="navigateMode()" title="Navigate"></a>
<a ng-show="flags.currentStep != 'on' && flags.currentStep != 'done'" class="kim-toolbar-button kim-login" ng-class="{active: flags.mode == 'loginMode', attention: isHttps()}" ng-click="enableLoginMode()" title="Auth mode"></a>
</div>
<div class="kim-toolbar-section">
<a class="kim-toolbar-button kim-view-button extractor-view" title="Extractor View" ng-click="changeView('extractor')" ng-class="{active : (flags.currentView == 'extractor')}"></a>
<a class="kim-toolbar-button kim-view-button data-model-view" title="Data Model View" ng-click="changeView('data')" ng-class="{active : (flags.currentView == 'data'), disabled: flags.navigate}"></a>
<a class="kim kim-toolbar-button kim-view-button json-view" title="Raw Data View" ng-click="changeView('raw')" ng-class="{active : (flags.currentView == 'raw'), disabled: flags.mode == 'loginMode' || flags.navigate}"></a>
</div>
<div class="kim-toolbar-section">
<button ng-class="{disabled: flags.navigate}" class="kim-toolbar-button-primary kim kim-button" id="kim-DoneButton" ng-click="done()" title="{{doneButtonTitle()}} API">{{doneButtonMessage()}}</button>
</div>
</div>
</div>
!function(window, document, undefined) {
function okeboup() {
quobovu || (jQuery('#habla_beta_container_do_not_rely_on_div_classes_or_names').appendTo('#Kimonify').css({
'z-index': 2147483900,
position: 'fixed'
}), quobovu = true);
}
'undefined' == typeof window.$k ? window.$k = {
data: {}
} : 'undefined' == typeof window.$k.data && (window.$k.data = {});
window.$ || window.jQuery || undefined;
!function(luloso, eloyhad) {
/******* jQuery 2.1.0 *******/
var hedibu = gosura.jQuery;
var diqueque = gosura.$;
return jQuery.noConflict = function(refona) {
return gosura.$ === jQuery && (gosura.$ = diqueque), refona && gosura.jQuery === jQuery && (gosura.jQuery = hedibu), jQuery;
}, typeof perefop === hekicang && (gosura.jQuery = gosura.$ = jQuery), jQuery;
});{
var jQuery = window.$.noConflict();
jQuery.noConflict();
}jQuery.fn.extend({
unwrapInner: function(shijasech) {
return this.each(function() {
var jiesogu = this;
var macogo = jQuery(jiesogu).children(shijasech);
1 === macogo.length && (macogo.contents().appendTo(jiesogu), macogo.remove());
});
},
textWidth: function() {
jQuery(this);
jQuery(this).wrapInner('<span id="text-width-calc"></span>');
var notiedi = jQuery(this).find('#text-width-calc').width();
return jQuery(this).unwrapInner(), notiedi;
}
}), window.analytics = window.analytics || [], window.analytics.methods = ['identify', 'group', 'track', 'page', 'pageview', 'alias', 'ready', 'on', 'once', 'off', 'trackLink', 'trackForm', 'trackClick', 'trackSubmit'], window.analytics.factory = function(swamuli) {
return function() {
var rofhatern = Array.prototype.slice.call(arguments);
return rofhatern.unshift(swamuli), window.analytics.push(rofhatern), window.analytics;
};
};
for (var omadip = 0;
omadip < window.analytics.methods.length;
omadip++) {
var feesifi = window.analytics.methods[omadip];
window.analytics[feesifi] = window.analytics.factory(feesifi);
}
window.analytics.load = function(quakuquo) {
if (!document.getElementById('analytics-js')) {
var giquupe = document.createElement('script');
giquupe.type = 'text/javascript', giquupe.id = 'analytics-js', giquupe.async = true, giquupe.src = ('https:' === document.location.protocol ? 'https://' : 'http://') + 'cdn.segment.io/analytics.js/v1/' + quakuquo + '/analytics.min.js', document.getElementsByTagName('head')[0].appendChild(giquupe);
}
}, window.analytics.SNIPPET_VERSION = '2.0.9', 'localhost' === window.location.host || 'localhost:4000' === window.location.host || 'localhost:3000' === window.location.host ? window.analytics.load('tu8x6gusvq') : window.analytics.load('kfah0efv5d'), window.analytics.page();{
var quobovu = false;
setTimeout(okeboup, 2e3);
}window.analytics.ready(function() {
olark('api.box.onShow', okeboup);
}), function(monanot) {
function quesniesa(fikieneed) {
return new RegExp('(^|\\s+)' + fikieneed + '(\\s+|$)');
}
function derisak(puhoro, fupulop) {
var mouskupuf = fejigag(puhoro, fupulop) ? fuefmeyig : grolakub;
mouskupuf(puhoro, fupulop);
}
var fejigag;
var grolakub;
var fuefmeyig;
'classList' in document.documentElement ? (fejigag = function(lyehi, decubo) {
return lyehi.classList.contains(decubo);
}, grolakub = function(bekubee, dofoutil) {
bekubee.classList.add(dofoutil);
}, fuefmeyig = function(otoofor, hiswestru) {
otoofor.classList.remove(hiswestru);
}) : (fejigag = function(ateyid, kudice) {
return quesniesa(kudice).test(ateyid.className);
}, grolakub = function(fehusay, sneseda) {
fejigag(fehusay, sneseda) || (fehusay.className = fehusay.className + ' ' + sneseda);
}, fuefmeyig = function(nululi, keetufi) {
nululi.className = nululi.className.replace(quesniesa(keetufi), ' ');
});
var fouslokun = {
hasClass: fejigag,
addClass: grolakub,
removeClass: fuefmeyig,
toggleClass: derisak,
has: fejigag,
add: grolakub,
remove: fuefmeyig,
toggle: derisak
};
monanot.classie = fouslokun;
}(window), function() {
function feyichcut() {
}
function dukubak(posouju, dukubak) {
for (var swotimnak = posouju.length;
swotimnak--;
) {
if (posouju[swotimnak].listener === dukubak) {
return swotimnak;
}
}
return -1;
}
function cubafoub(quorofud) {
return function() {
return this[quorofud].apply(this, arguments);
};
}
var EventEmitter = feyichcut.prototype;
var yasishu = this;
var rebreney = yasishu.EventEmitter;
EventEmitter.getListeners = function(chilumin) {
var nogumi;
var tukamab;
var sniquora = this._getEvents();
if (chilumin instanceof RegExp) {
nogumi = {};
for (tukamab in sniquora) {
sniquora.hasOwnProperty(tukamab) && chilumin.test(tukamab) && (nogumi[tukamab] = sniquora[tukamab])
}
} else {
nogumi = sniquora[chilumin] || (sniquora[chilumin] = []);
}
return nogumi;
}, EventEmitter.flattenListeners = function(tranosnok) {
var depopod;
var dibafis = [];
for (depopod = 0;
depopod < tranosnok.length;
depopod += 1) {
dibafis.push(tranosnok[depopod].listener);
}
return dibafis;
}, EventEmitter.getListenersAsObject = function(bothuci) {
var janibuey;
var lejouswi = this.getListeners(bothuci);
return lejouswi instanceof Array && (janibuey = {}, janibuey[bothuci] = lejouswi), janibuey || lejouswi;
}, EventEmitter.addListener = function(quenayod, kujole) {
var gogera;
var mipikib = this.getListenersAsObject(quenayod);
var secapo = 'object' == typeof kujole;
for (gogera in mipikib) {
mipikib.hasOwnProperty(gogera) && -1 === scimesap(mipikib[gogera], kujole) && mipikib[gogera].push(secapo ? kujole : {
listener: kujole,
once: false
});
}
return this;
}, EventEmitter.on = cubafoub('addListener'), EventEmitter.addOnceListener = function(crikapo, sadople) {
return this.addListener(crikapo, {
listener: sadople,
once: true
});
}, EventEmitter.once = cubafoub('addOnceListener'), EventEmitter.defineEvent = function(itedquat) {
return this.getListeners(itedquat), this;
}, EventEmitter.defineEvents = function(bigipho) {
for (var ubegnoln = 0;
ubegnoln < bigipho.length;
ubegnoln += 1) {
this.defineEvent(bigipho[ubegnoln]);
}
return this;
}, EventEmitter.removeListener = function(lumasuem, quiguru) {
var sayingas;
var istoofdar;
var nequoti = this.getListenersAsObject(lumasuem);
for (istoofdar in nequoti) {
nequoti.hasOwnProperty(istoofdar) && (sayingas = scimesap(nequoti[istoofdar], quiguru), -1 !== sayingas && nequoti[istoofdar].splice(sayingas, 1));
}
return this;
}, EventEmitter.off = cubafoub('removeListener'), EventEmitter.addListeners = function(conequan, kuquepin) {
return this.manipulateListeners(false, conequan, kuquepin);
}, EventEmitter.removeListeners = function(docroju, geliri) {
return this.manipulateListeners(true, docroju, geliri);
}, EventEmitter.manipulateListeners = function(kofeedi, unqueckup, meenapsab) {
var hahouja;
var niemubris;
var jusola = kofeedi ? this.removeListener : this.addListener;
var fequeno = kofeedi ? this.removeListeners : this.addListeners;
if ('object' != typeof unqueckup || unqueckup instanceof RegExp) {
for (hahouja = meenapsab.length;
hahouja--;
) {
jusola.call(this, unqueckup, meenapsab[hahouja]);
}
} else {
for (hahouja in unqueckup) {
unqueckup.hasOwnProperty(hahouja) && (niemubris = unqueckup[hahouja]) && ('function' == typeof niemubris ? jusola.call(this, hahouja, niemubris) : fequeno.call(this, hahouja, niemubris));
}
}
return this;
}, EventEmitter.removeEvent = function(gafufo) {
var hupquetan;
var hacluha = typeof gafufo;
var nothubusk = this._getEvents();
if ('string' === hacluha) {
delete nothubusk[gafufo];
} else if (gafufo instanceof RegExp) {
for (hupquetan in nothubusk) {
nothubusk.hasOwnProperty(hupquetan) && gafufo.test(hupquetan) &&
delete nothubusk[hupquetan];
}
} else {
delete this._events;
}
return this;
}, EventEmitter.removeAllListeners = cubafoub('removeEvent'), EventEmitter.emitEvent = function(jikobag, hequaqui) {
var quolielo;
var swihastos;
var ernuenuk;
var fluquaga;
var muhefa = this.getListenersAsObject(jikobag);
for (ernuenuk in muhefa) {
if (muhefa.hasOwnProperty(ernuenuk)) {
for (swihastos = muhefa[ernuenuk].length;
swihastos--;
) {
quolielo = muhefa[ernuenuk][swihastos], quolielo.once === true && this.removeListener(jikobag, quolielo.listener), fluquaga = quolielo.listener.apply(this, hequaqui || []), fluquaga === this._getOnceReturnValue() && this.removeListener(jikobag, quolielo.listener);
}
}
}
return this;
}, EventEmitter.trigger = cubafoub('emitEvent'), EventEmitter.emit = function(fegobap) {
var upeycas = Array.prototype.slice.call(arguments, 1);
return this.emitEvent(fegobap, upeycas);
}, EventEmitter.setOnceReturnValue = function(segukee) {
return this._onceReturnValue = segukee, this;
}, EventEmitter._getOnceReturnValue = function() {
return this.hasOwnProperty('_onceReturnValue') ? this._onceReturnValue : true;
}, EventEmitter._getEvents = function() {
return this._events || (this._events = {});
}, feyichcut.noConflict = function() {
return yasishu.EventEmitter = rebreney, feyichcut;
}, this.EventEmitter = feyichcut;
}(), function(lecoxouk) {
function palikey(ugepul) {
var fremupu = lecoxouk.event;
return fremupu.target = fremupu.target || fremupu.srcElement || ugepul, fremupu;
}
var fililosh = document.documentElement;
var lehogi = function() {};
fililosh.addEventListener ? lehogi = function(sholeque, cogugre, ilolash) {
sholeque.addEventListener(cogugre, ilolash, false);
} : fililosh.attachEvent && (lehogi = function(leshogoux, ozulin, cluriha) {
leshogoux[ozulin + cluriha] = cluriha.handleEvent ? function() {
var kuenaque = palikey(leshogoux);
cluriha.handleEvent.call(cluriha, kuenaque);
} : function() {
var flasescoze = palikey(leshogoux);
cluriha.call(leshogoux, flasescoze);
}, leshogoux.attachEvent('on' + ozulin, leshogoux[ozulin + cluriha]);
});
var amoubib = function() {};
fililosh.removeEventListener ? amoubib = function(nakonis, blokrunoo, joblaki) {
nakonis.removeEventListener(blokrunoo, joblaki, false);
} : fililosh.detachEvent && (amoubib = function(roquapesk, fefeyiep, durowee) {
roquapesk.detachEvent('on' + fefeyiep, roquapesk[fefeyiep + durowee]);
try {
delete roquapesk[fefeyiep + durowee];
} catch (bipedu) {
roquapesk[fefeyiep + durowee] = undefined;
}
});
var liklikay = {
bind: lehogi,
unbind: amoubib
};
lecoxouk.eventie = liklikay;
}(this), function(dimetren) {
function unukied(quimine) {
if (quimine) {
if ('string' == typeof hegrisi[quimine]) {
return quimine;
}
quimine = quimine.charAt(0).toUpperCase() + quimine.slice(1);
for (var sciebunaf, unukied = 0, baheluek = quonaka.length;
baheluek > unukied;
unukied++) {
if (sciebunaf = quonaka[unukied] + quimine, 'string' == typeof hegrisi[sciebunaf]) {
return sciebunaf
}
;
}
}
}
var quonaka = 'Webkit Moz ms Ms O'.split(' ');
var hegrisi = document.documentElement.style;
dimetren.getStyleProperty = flugopi;
}(window), function(bifelu) {
function jefato(dokiha) {
var nigcockog = parseFloat(dokiha);
var jefato = -1 === dokiha.indexOf('%') && !isNaN(nigcockog);
return jefato && nigcockog;
}
function bustapod() {
for (var kodidgag = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0
}, enaras = 0, inifik = bigufa.length;
inifik > enaras;
enaras++) {
var bustapod = bigufa[enaras];
kodidgag[bustapod] = 0;
}
return kodidgag;
}
function besitor(gruerouna) {
function nodafop(slihara) {
if ('string' == typeof slihara && (slihara = document.querySelector(slihara)), slihara && 'object' == typeof slihara && slihara.nodeType) {
var nodafop = dronirem(slihara);
if ('none' === nodafop.display) {
return mitobas();
}
var farome = {};
farome.width = slihara.offsetWidth, farome.height = slihara.offsetHeight;
for (var usoyop = farome.isBorderBox = !(!eyarin || !nodafop[eyarin] || 'border-box' !== nodafop[eyarin]), quebiqua = 0, carapag = bigufa.length;
carapag > quebiqua;
quebiqua++) {
var eskstumbof = bigufa[quebiqua];
var dusravie = nodafop[eskstumbof];
dusravie = baloylem(slihara, dusravie);
var lecehi = parseFloat(dusravie);
farome[eskstumbof] = isNaN(lecehi) ? 0 : lecehi;
}
var tilbeepik = farome.paddingLeft + farome.paddingRight;
var toungbarir = farome.paddingTop + farome.paddingBottom;
var amosar = farome.marginLeft + farome.marginRight;
var foneli = farome.marginTop + farome.marginBottom;
var kounastud = farome.borderLeftWidth + farome.borderRightWidth;
var ikmoolit = farome.borderTopWidth + farome.borderBottomWidth;
var jaruemgin = usoyop && roocepi;
var ulebul = coudirig(nodafop.width);
ulebul !== false && (farome.width = ulebul + (jaruemgin ? 0 : tilbeepik + kounastud));
var gicepu = coudirig(nodafop.height);
return gicepu !== false && (farome.height = gicepu + (jaruemgin ? 0 : toungbarir + ikmoolit)), farome.innerWidth = farome.width - (tilbeepik + kounastud), farome.innerHeight = farome.height - (toungbarir + ikmoolit), farome.outerWidth = farome.width + amosar, farome.outerHeight = farome.height + foneli, farome;
}
}
function baloylem(quafojo, higimul) {
if (requehop || -1 === higimul.indexOf('%')) {
return higimul;
}
var quemame = quafojo.style;
var quekuhe = quemame.left;
var saruete = quafojo.runtimeStyle;
var gahesee = saruete && saruete.left;
return gahesee && (saruete.left = quafojo.currentStyle.left), quemame.left = higimul, higimul = quemame.pixelLeft, quemame.left = quekuhe, gahesee && (saruete.left = gahesee), higimul;
}
var roocepi;
var eyarin = gruerouna('boxSizing');
return function() {
if (eyarin) {
var gejiscem = document.createElement('div');
gejiscem.style.width = '200px', gejiscem.style.padding = '1px 2px 3px 4px', gejiscem.style.borderStyle = 'solid', gejiscem.style.borderWidth = '1px 2px 3px 4px', gejiscem.style[eyarin] = 'border-box';
var taquerib = document.body || document.documentElement;
taquerib.appendChild(gejiscem);
var gisonif = dronirem(gejiscem);
roocepi = 200 === coudirig(gisonif.width), taquerib.removeChild(gejiscem);
}
}(), besitor;
}
var requehop = bifelu.getComputedStyle;
var dronirem = requehop ? function(onkoroy) {
return requehop(onkoroy, null);
} : function(nerahe) {
return nerahe.currentStyle;
};
var bigufa = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];
bifelu.getSize = kastosquot(bifelu.getStyleProperty);
}(window), function(grisradrer) {
/******* draggabilly *******/
var teydifuey = (new Date).getTime();
var gejelo = Math.max(0, 16 - (teydifuey - swokihuf));
var snugresi = grisradrer.setTimeout(function() {
sotoyun(teydifuey + gejelo);
}, gejelo);
return swokihuf = teydifuey + gejelo, snugresi;
}, leshique = function(jipumo) {
grisradrer.clearTimeout(jipumo);
}), grisradrer.Draggabilly = ridafag(grisradrer.classie, grisradrer.EventEmitter, grisradrer.eventie, grisradrer.getStyleProperty, grisradrer.getSize);
}(window);{
var Draggabilly = window.Draggabilly;
var classie = window.classie;
var EventEmitter = window.EventEmitter;
var eventie = window.eventie;
var getStyleProperty = window.getStyleProperty;
var getSize = window.getSize;
var Draggabilly2 = window.Draggabilly;
window.classie, window.EventEmitter, window.eventie, window.getStyleProperty, window.getSize;
}window.Draggabilly = Draggabilly, window.classie = classie, window.EventEmitter = EventEmitter, window.eventie = eventie, window.getStyleProperty = getStyleProperty, window.getSize = getSize, function() {
var probWindow = this;
var _2 = probWindow._;
var EmptyObject = {};
var ArrayProto = Array.prototype;
var ObjectProto = Object.prototype;
var FunctionProto = Function.prototype;
var ArrayPush = ArrayProto.push;
var ArraySlice = ArrayProto.slice;
var ArrayConcat = ArrayProto.concat;
var ObjectToString = ObjectProto.toString;
var ObjectHasOwnProperty = ObjectProto.hasOwnProperty;
var ArrayForEach = ArrayProto.forEach;
var ArrayMap = ArrayProto.map;
var ArrayReduce = ArrayProto.reduce;
var ArrayReduceRight = ArrayProto.reduceRight;
var ArrayFilter = ArrayProto.filter;
var ArrayEvery = ArrayProto.every;
var ArraySome = ArrayProto.some;
var ArrayIndexOf = ArrayProto.indexOf;
var ArrayLastIndexOf = ArrayProto.lastIndexOf;
var isArray = Array.isArray;
var ObjectKeys = Object.keys;
var bind = FunctionProto.bind;
/******* underscore *******/
_.prototype[pupame] = function() {
return itoudkob.call(this, drikidel.apply(this._wrapped, arguments));
};
}), _.extend(_.prototype, {
chain: function() {
return this._chain = true, this;
},
value: function() {
return this._wrapped;
}
}), 'function' == typeof define && define.amd && define('underscore', [], function() {
return _;
});
}.call(this), window.$k = window.$k || {}, window.$k.config = window.$k.config || {}, window.$k.loaded = true, window.$k.config.serverEnv = 'prod', window.$k.config.clientEnv = 'angular', jQuery(document).ready(function() {
var fleklugouch = jQuery('body')[0];
var jidolo = jQuery('#Kimonify')[0];
if (!(fleklugouch && jidolo && jQuery.contains(fleklugouch, jidolo))) {
/******* angular 1.2.17 *******/
cruquejo.angular.bootstrap && console.log('WARNING: Tried to load angular more than once.'), biltasul(), cuefeyas(pekanonk), baposi(mojequa).ready(function() {
obalieng(mojequa, grifuquel);
});
}(window, document), !angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}</style>'), function(gateku, firuree, necido) {
'use strict';
firuree.module('ngAnimate', ['ng']).factory('$$animateReflow', ['$$rAF', '$document', function(rekayan) {
return function(mapadi) {
return rekayan(function() {
mapadi();
});
};
}]).config(['$provide', '$animateProvider', function(ticedoo, jotiflo) {
/******* ng-animate 1.2.17 *******/
var giquosha = kihecod('removeClass', kepemin, phikeku(jasiki, '-remove'), function(diblepa) {
var boubiscen = kepemin.attr('class');
return kepemin.removeClass(jasiki), diblepa = diblepa(), kepemin.attr('class', boubiscen), diblepa;
});
return giquosha ? (ibalued(kepemin, function() {
lufrigu(kepemin, jasiki), dahari(kepemin), idigon();
}), giquosha) : (idigon(), void 0);
},
removeClass: function(goyakest, soubica, soreepun) {
return somubraf('removeClass', goyakest, phikeku(soubica, '-remove'), soreepun);
}
};
}]);
}]);
}(window, window.angular), angular.module('Kimono', ['ngAnimate']), angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(Regex, Utils, Datatypes, Common) {
var nukunkul = new function() {
this.getEpSelectorComponent = function(gayomoo) {
var rirejed = gayomoo.selectorObjects[0].selector.split(' > ');
return gayomoo.context.ancestorCounter > rirejed.length - 1 ? '' : rirejed[rirejed.length - 1 - gayomoo.context.ancestorCounter];
};
var slobunan = function(duzjeyus) {
var osjonceg = {
text: ''
};
for (attribute in duzjeyus.context.attributes) {
if (duzjeyus.context.attributes.hasOwnProperty(attribute)) {
var sopile = duzjeyus.context.attributes[attribute];
('true' == sopile.value || sopile.value === true) && (osjonceg[attribute] = '');
}
}
return console.log(osjonceg), Object.keys(osjonceg).length > 1 ? osjonceg : '';
};
this.updateDatalists = function(sushodo) {
for (var quequobab = 0;
quequobab < sushodo.length;
quequobab++) {
var geneca = sushodo[quequobab];
if (1 == geneca.length) {
var afemood = geneca[0];
if (afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0, afemood.selectorObjects[0] && afemood.selectorObjects[0].selector) {
for (var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector()), mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
var tulidup = kacrido[mumogue];
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++);
}
}
} else {
for (var turuqui = 'association', titushut = 0;
titushut < geneca.length;
titushut++) {
if ('pattern' == geneca[titushut].context.associationType) {
turuqui = 'pattern';
break;
}
if ('forced' == geneca[titushut].context.associationType) {
turuqui = 'forced';
break;
}
if ('single' == geneca[titushut].context.associationType) {
turuqui = 'single';
break;
}
}
if ('association' == turuqui) {
for (var raquetu = [], tejuho = 0, boquethu = 99999, titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0;
var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector());
if (raquetu[titushut] = [], afemood.context.forceAssociation) {
for (var mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
var tulidup = kacrido[mumogue];
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++);
}
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length);
} else {
for (var mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
Regex.testElForRegex(kacrido[mumogue], afemood) && raquetu[titushut].push({
el: kacrido[mumogue],
pairedOff: false,
index: raquetu[titushut].length
});
}
raquetu[titushut].length > tejuho && (tejuho = raquetu[titushut].length), raquetu[titushut].length < boquethu && (boquethu = raquetu[titushut].length);
}
}
for (var esemsep = [], titushut = 0;
titushut < geneca.length;
titushut++) {
if (!geneca[titushut].context.forceAssociation) {
for (var mumogue = 0;
mumogue < raquetu[titushut].length;
mumogue++) {
if (!raquetu[titushut][mumogue].pairedOff) {
esemsep.push({
els: [],
data: [],
sum: 0
}), esemsep[esemsep.length - 1].els[titushut] = raquetu[titushut][mumogue], esemsep[esemsep.length - 1].data[titushut] = klakupes(raquetu[titushut][mumogue].el, geneca[titushut]), esemsep[esemsep.length - 1].sum += mumogue + 1, raquetu[titushut][mumogue].pairedOff = true;
for (var jostuser = raquetu[titushut][mumogue].el, nopisud = geneca[titushut].context.ancestorCounters ? geneca[titushut].context.ancestorCounters[geneca[titushut].getSelectorObjectIndexForEl(jostuser)] : geneca[titushut].context.ancestorCounter, wuphima = 0;
nopisud > wuphima;
wuphima++) {
jostuser = jostuser.parentNode;
}
for (var suzoda = titushut + 1;
suzoda < geneca.length;
suzoda++) {
if (!geneca[suzoda].context.forceAssociation) {
esemsep[esemsep.length - 1].data[suzoda] = [];
for (var kanueto = 0;
kanueto < raquetu[suzoda].length;
kanueto++) {
if (!raquetu[suzoda][kanueto].pairedOff) {
for (var inkoshfueg = raquetu[suzoda][kanueto].el, nopisud = geneca[suzoda].context.ancestorCounters ? geneca[suzoda].context.ancestorCounters[geneca[suzoda].getSelectorObjectIndexForEl(inkoshfueg)] : geneca[suzoda].context.ancestorCounter, wuphima = 0;
nopisud > wuphima;
wuphima++) {
inkoshfueg = inkoshfueg.parentNode;
}
jostuser === inkoshfueg && (esemsep[esemsep.length - 1].els[suzoda] = raquetu[suzoda][kanueto], esemsep[esemsep.length - 1].data[suzoda].push(klakupes(raquetu[suzoda][kanueto].el, geneca[suzoda])), esemsep[esemsep.length - 1].sum += kanueto + 1, raquetu[suzoda][kanueto].pairedOff = true);
}
}
}
}
}
}
}
}
for (var mumogue = 0;
mumogue < esemsep.length;
mumogue++) {
for (var musudklien = 0, titushut = 0;
titushut < geneca.length;
titushut++) {
esemsep[mumogue].data[titushut] && 0 != esemsep[mumogue].data[titushut].length || (esemsep[mumogue].data[titushut] = slobunan(geneca[titushut]), musudklien++);
}
esemsep[mumogue].avg = esemsep[mumogue].sum / geneca.length;
}
esemsep.sort(function(diguma, kajotmip) {
return diguma.avg < kajotmip.avg ? -1 : diguma.avg > kajotmip.avg ? 1 : 0;
});
for (var mumogue = 0;
mumogue < esemsep.length;
mumogue++) {
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
1 == esemsep[mumogue].data[titushut].length ? esemsep[mumogue].data[titushut] = esemsep[mumogue].data[titushut][0] : esemsep[mumogue].data[titushut].length > 1 && (afemood.context.delta -= esemsep[mumogue].data[titushut].length - 1), afemood.datalist.push(esemsep[mumogue].data[titushut]), esemsep[mumogue].data[titushut] == slobunan(geneca[titushut]) && afemood.context.delta++, esemsep[mumogue].els[titushut] && 'kim-table-normalizer' == esemsep[mumogue].els[titushut].el.className && afemood.context.numberOfTableNormalizers++;
}
}
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
for (var afemood = geneca[titushut], mumogue = boquethu;
tejuho > mumogue;
mumogue++) {
afemood.datalist[mumogue] == undefined && (afemood.datalist[mumogue] = slobunan(afemood), afemood.context.delta++)
}
}
} else if ('pattern' == turuqui) {
geneca.lowestStart = 999999, geneca.highestEnd = 0;
for (var tejuho = 0, boquethu = 99999, titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0;
var kacrido = Utils.querySelectorAll(afemood.selectorObjects[0].selector);
if (afemood.context.forceAssociation) {
for (var mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
var tulidup = kacrido[mumogue];
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++);
}
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length);
} else {
for (var mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
if (Regex.testElForRegex(kacrido[mumogue], afemood)) {
for (var miphugu = kacrido[mumogue], wuphima = 0;
wuphima < afemood.context.ancestorCounter;
wuphima++) {
miphugu = miphugu.parentNode;
}
var istupal = jQuery(miphugu).index();
afemood.context.startIndex || (afemood.context.startIndex = istupal), afemood.startIndex < geneca.lowestStart && (geneca.lowestStart = afemood.startIndex), istupal > geneca.highestEnd && (geneca.highestEnd = istupal);
}
}
}
}
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
if (!afemood.context.forceAssociation) {
for (var huhuca, kacrido = Utils.querySelectorAll(afemood.selectorObjects[0].selector), chumema = 0, egdubgest = 0, jechpintek = true, mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
if (Regex.testElForRegex(kacrido[mumogue], afemood)) {
for (var miphugu = kacrido[mumogue], suzoda = 0;
suzoda < afemood.context.ancestorCounter;
suzoda++) {
miphugu = miphugu.parentNode;
}
var istupal = jQuery(miphugu).index() + chumema;
if (jechpintek) {
var otbofit = 0;
jechpintek = false;
} else {
if (huhuca >= istupal) {
var lufaka = huhuca - egdubgest + 1;
chumema += lufaka, istupal += lufaka, egdubgest = huhuca + 1;
}
var otbofit = istupal - huhuca - afemood.context.patternSteps;
}
afemood.context.patternSteps > 0 && (otbofit /= afemood.context.patternSteps);
for (var kanueto = 0;
otbofit > kanueto;
kanueto++) {
afemood.datalist.push(slobunan(afemood)), afemood.context.delta++;
}
huhuca = istupal, 'kim-table-normalizer' == kacrido[mumogue].className && afemood.context.numberOfTableNormalizers++, afemood.datalist.push(klakupes(kacrido[mumogue], afemood));
}
}
afemood.context.endIndex = istupal - chumema;
}
}
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
if (!afemood.context.forceAssociation) {
if (afemood.context.startIndex - geneca.lowestStart > afemood.context.patternSteps) {
var gepone = parseInt((afemood.context.startIndex - geneca.lowestStart) / afemood.context.patternSteps);
} else if (geneca.highestEnd - afemood.context.endIndex > afemood.context.patternSteps) {
var nimazi = parseInt((geneca.highestEnd - afemood.context.endIndex) / afemood.context.patternSteps);
}
for (var wuphima = 0;
gepone > wuphima;
wuphima++) {
afemood.datalist.unshift(slobunan(afemood)), afemood.context.delta++;
}
for (var wuphima = 0;
nimazi > wuphima;
wuphima++) {
afemood.datalist.push(slobunan(afemood)), afemood.context.delta++;
}
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length);
}
}
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
var stenbadoob = afemood.getCombinedSelector(1);
if ('' != stenbadoob) {
for (var kacrido = Utils.querySelectorAll(stenbadoob), mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
var tulidup = kacrido[mumogue];
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++);
}
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length);
}
}
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
for (var afemood = geneca[titushut], mumogue = boquethu;
tejuho > mumogue;
mumogue++) {
afemood.datalist[mumogue] == undefined && (afemood.datalist[mumogue] = slobunan(afemood), afemood.context.delta++)
}
}
} else if ('forced' == turuqui) {
for (var tejuho = 0, boquethu = 99999, titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0;
for (var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector()), mumogue = 0;
mumogue < kacrido.length;
mumogue++) {
var tulidup = kacrido[mumogue];
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++);
}
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length);
}
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
for (var afemood = geneca[titushut], mumogue = boquethu;
tejuho > mumogue;
mumogue++) {
afemood.datalist[mumogue] || (afemood.datalist[mumogue] = slobunan(afemood), afemood.context.delta++)
}
}
} else {
for (var titushut = 0;
titushut < geneca.length;
titushut++) {
var afemood = geneca[titushut];
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0;
var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector());
kacrido.length > 0 && (afemood.datalist[0] = klakupes(kacrido[0], afemood));
}
}
}
}
}, this.checkAssociation = function(niposo, sodumum, sutidhing) {
if ('' == niposo.selectorObjects[0].selector || '' == sodumum.selectorObjects[0].selector) {
return false;
}
if (sodumum.context.forceAssociation && sutidhing == sodumum.context.collection) {
return {
type: niposo.context.associationType || 'forced',
ancestorCounter1: niposo.context.ancestorCounter || 0,
ancestorCounter2: niposo.context.ancestorCounter || 0,
pattern: niposo.context.patternSteps || 1
};
}
if (niposo.context.forceAssociation && sutidhing == niposo.context.collection) {
return {
type: sodumum.context.associationType || 'forced',
ancestorCounter1: sodumum.context.ancestorCounter || 0,
ancestorCounter2: sodumum.context.ancestorCounter || 0,
pattern: sodumum.context.patternSteps || 1
};
}
var firudo = Utils.querySelectorAll(niposo.getCombinedSelector());
var clulaha = Utils.querySelectorAll(sodumum.getCombinedSelector());
if (firudo.length <= 1 && clulaha.length <= 1) {
return {
type: 'single',
ancestorCounter1: 0,
ancestorCounter2: 0,
pattern: 1
};
}
for (var akuloux = firudo.length, fiexurey = clulaha.length, kicuefum = [], ligenath = 0;
akuloux > ligenath;
ligenath++) {
Regex.testElForRegex(firudo[ligenath], niposo) && kicuefum.push(firudo[ligenath]);
}
firudo = kicuefum;
for (var hikafet = [], ligenath = 0;
fiexurey > ligenath;
ligenath++) {
Regex.testElForRegex(clulaha[ligenath], sodumum) && hikafet.push(clulaha[ligenath]);
}
clulaha = hikafet, akuloux = firudo.length, fiexurey = clulaha.length;
for (var tiefusla = 0;
6 > tiefusla;
tiefusla++) {
for (var pyeysuch = 0;
6 > pyeysuch;
pyeysuch++) {
for (var dreyogit = 0;
akuloux > dreyogit;
dreyogit++) {
for (var queyfikhack = 0;
fiexurey > queyfikhack;
queyfikhack++) {
for (var rounankup = firudo[dreyogit], clunieger = clulaha[queyfikhack], tahaquu = 0;
tiefusla > tahaquu;
tahaquu++) {
var rounankup = rounankup.parentNode;
}
for (var giscupud = 0;
pyeysuch > giscupud;
giscupud++) {
var clunieger = clunieger.parentNode;
}
if (rounankup === clunieger) {
for (var rufogo = false, ligenath = 0;
ligenath < firudo.length;
ligenath++) {
if (ligenath != dreyogit) {
for (var mikustri = 0;
mikustri < clulaha.length;
mikustri++) {
if (mikustri != queyfikhack) {
for (var domapi = firudo[ligenath], cahiha = clulaha[mikustri], tahaquu = 0;
tiefusla > tahaquu;
tahaquu++) {
domapi = domapi.parentNode;
}
for (var giscupud = 0;
pyeysuch > giscupud;
giscupud++) {
cahiha = cahiha.parentNode;
}
if (!(akuloux > 1 && rounankup === domapi || fiexurey > 1 && clunieger === cahiha)) {
rufogo = true;
break;
}
}
}
if (rufogo) {
break;
}
}
}
if (rufogo || (ligenath = dreyogit > 0 ? dreyogit - 1 : akuloux > 1 ? dreyogit + 1 : dreyogit, mikustri = queyfikhack > 0 ? queyfikhack - 1 : fiexurey > 1 ? queyfikhack + 1 : queyfikhack), rufogo) {
for (var ebolkif = firudo[dreyogit], napubrir = clulaha[queyfikhack], desaswi = firudo[ligenath], eyidad = clulaha[mikustri], tahaquu = 0;
tiefusla > tahaquu;
tahaquu++) {
ebolkif = ebolkif.parentNode, desaswi = desaswi.parentNode;
}
for (var giscupud = 0;
pyeysuch > giscupud;
giscupud++) {
napubrir = napubrir.parentNode, eyidad = eyidad.parentNode;
}
for (var nubukig = 0;
10 > nubukig && ebolkif && desaswi && napubrir && eyidad;
) {
var nigogoy = ebolkif.parentNode;
var hizuha = desaswi.parentNode;
var roresu = napubrir.parentNode;
var wuranisk = eyidad.parentNode;
if (nigogoy === hizuha && roresu === wuranisk) {
break;
}
ebolkif = nigogoy, desaswi = hizuha, napubrir = roresu, eyidad = wuranisk, nubukig++;
}
var quepruclo = Math.abs(jQuery(ebolkif).index() - jQuery(desaswi).index());
var bakugud = Math.abs(jQuery(napubrir).index() - jQuery(eyidad).index());
if (0 == quepruclo) {
var tahaquu = bakugud;
} else if (0 == bakugud) {
var tahaquu = quepruclo;
} else {
var tahaquu = Math.min(quepruclo, bakugud);
}
return 0 == tahaquu && (tahaquu = 1), {
type: 'association',
ancestorCounter1: tiefusla + nubukig,
ancestorCounter2: pyeysuch + nubukig,
pattern: tahaquu
};
}
for (var ebolkif = firudo[dreyogit], napubrir = clulaha[queyfikhack], desaswi = firudo[ligenath], eyidad = clulaha[mikustri], tahaquu = 0;
tiefusla - 1 > tahaquu;
tahaquu++) {
ebolkif = ebolkif.parentNode, desaswi = desaswi.parentNode;
}
for (var giscupud = 0;
pyeysuch - 1 > giscupud;
giscupud++) {
napubrir = napubrir.parentNode, eyidad = eyidad.parentNode;
}
var quepruclo = Math.abs(jQuery(ebolkif).index() - jQuery(desaswi).index());
var bakugud = Math.abs(jQuery(napubrir).index() - jQuery(eyidad).index());
var tocotue = quepruclo == bakugud && quepruclo > 1 ? true : false;
return 0 == tiefusla && 0 == pyeysuch ? (quepruclo = 0 == quepruclo ? bakugud : quepruclo, {
type: 'self',
ancestorCounter1: tiefusla,
ancestorCounter2: pyeysuch,
pattern: quepruclo
}) : tocotue ? {
type: 'pattern',
ancestorCounter1: tiefusla - 1,
ancestorCounter2: pyeysuch - 1,
pattern: quepruclo
} : false;
}
}
}
}
}
return false;
};
var klakupes = function(honeluem, nascosjid) {
var geeploke = 'kimonohref';
'undefined' != typeof window.$k && (geeploke = 'href');
var jeecikol = nascosjid.selectorObjects[0].regex;
var irnoloub = {};
var tagiedor = 0;
if ('IMG' != honeluem.nodeName && honeluem.textContent.trim().length > 0 && 0 != nascosjid.context.textContent && 'false' != nascosjid.context.textContent ? irnoloub.text = Regex.getMatchedText(honeluem, jeecikol) || '' : ('true' == nascosjid.context.textContent || nascosjid.context.textContent === true) && (irnoloub.text = ''), jQuery.each(nascosjid.context.attributes, function(nefafu, caquestef) {
if ('false' != caquestef && 0 != caquestef && caquestef.value && 'false' != caquestef.value) {
if ('kimonohref' == nefafu || 'href' == nefafu) {
if (honeluem.hasAttribute('href') ? irnoloub.href = Common.relToAbs(honeluem.getAttribute('href'), Utils.getBaseUrl()) : honeluem.hasAttribute('kimonohref') && (irnoloub.href = Common.relToAbs(honeluem.getAttribute('kimonohref'), Utils.getBaseUrl())), 'undefined' == typeof irnoloub.href) {
var tucomu = Utils.nearbyLink(honeluem, geeploke);
irnoloub.href = tucomu || '';
}
} else {
'src' == nefafu ? irnoloub.src = honeluem.hasAttribute(nefafu) ? Common.relToAbs(honeluem.getAttribute('src'), Utils.getBaseUrl()) : '' : irnoloub[nefafu] = honeluem.hasAttribute(nefafu) ? honeluem.getAttribute(nefafu) : '';
}
tagiedor++;
}
}), 'undefined' == typeof nascosjid.context.attributes.href || 'false' != nascosjid.context.attributes.href.value && 0 != nascosjid.context.attributes.href.value && 0 != nascosjid.context.attributes.href && 'false' != nascosjid.context.attributes.href && 'undefined' == typeof irnoloub.href) {
var lilumun = Utils.nearbyLink(honeluem, geeploke);
honeluem.hasAttribute(geeploke) ? irnoloub.href = Common.relToAbs(honeluem.getAttribute(geeploke), Utils.getBaseUrl()) : 'undefined' != typeof lilumun && (irnoloub.href = lilumun);
}
return jQuery.each(irnoloub, function(iboyip, tuleepam) {
'undefined' == typeof tuleepam && (irnoloub[iboyip] = '');
}), Object.keys(irnoloub).length > 1 ? irnoloub : irnoloub[Object.keys(irnoloub)[0]];
};
this.update = function(gomasod, quoheyon, quebliji) {
var vojenu = [];
var biraque = [];
var setalem = false;
if (quoheyon) {
for (var kisootast = [], lahougit = 0;
lahougit < gomasod.length;
lahougit++) {
var fudugi = gomasod[lahougit].context.collection;
gomasod[lahougit].updateAttributes(), kisootast[fudugi] || (kisootast[fudugi] = []), kisootast[fudugi].push(gomasod[lahougit]);
}
for (var lahougit = 0;
lahougit < kisootast.length;
lahougit++) {
if (kisootast[lahougit]) {
vojenu.push(kisootast[lahougit]);
for (var coheenue = 0;
coheenue < kisootast[lahougit].length;
coheenue++) {
kisootast[lahougit][coheenue].context.collection = vojenu.length - 1
}
}
}
} else {
for (var lahougit = 0;
lahougit < gomasod.length;
lahougit++) {
for (var afamap = false, coheenue = 0;
coheenue < vojenu.length;
coheenue++) {
for (var sunope = 0;
sunope < vojenu[coheenue].length;
sunope++) {
var todonep = this.checkAssociation(gomasod[lahougit], vojenu[coheenue][sunope], coheenue);
if (todonep) {
gomasod[lahougit].context.ancestorCounter = todonep.ancestorCounter1, vojenu[coheenue][sunope].context.ancestorCounter = todonep.ancestorCounter2, gomasod[lahougit].context.patternSteps = gomasod[lahougit].context.forceAssociation ? 1 : todonep.pattern, vojenu[coheenue][sunope].context.patternSteps = vojenu[coheenue][sunope].context.forceAssociation ? 1 : todonep.pattern, gomasod[lahougit].context.associationType = todonep.type, vojenu[coheenue][sunope].context.associationType = todonep.type, vojenu[coheenue].push(gomasod[lahougit]), gomasod[lahougit].context.collection = vojenu.length - 1, afamap = true;
break;
}
}
if (afamap) {
break;
}
}
afamap || (vojenu.push([gomasod[lahougit]]), gomasod[lahougit].context.collection = vojenu.length - 1);
}
}
vojenu.forEach(function(tomirier, sajuha) {
biraque[sajuha] = quebliji[sajuha] || 'Pagination' == quebliji[sajuha] ? quebliji[sajuha] : 'collection' + parseInt(sajuha + 1);
});
for (var lahougit = vojenu.length;
lahougit < biraque.length;
lahougit++) {
biraque.pop();
}
return gomasod.pagination && gomasod.pagination.selectorObjects[0] && gomasod.pagination.selectorObjects[0].selections.length > 0 && (setalem = true, vojenu.push([gomasod.pagination]), biraque[vojenu.length - 1] = 'Pagination'), [vojenu, biraque, setalem];
}, this.getCollectionsForExport = function(noflistro) {
var tueleca = [];
return noflistro.forEach(function(sudgunaf, flatuki) {
tueleca[flatuki] = [], sudgunaf.forEach(function(nutrahu, julapu) {
tueleca[flatuki][julapu] = nutrahu.objectForExport();
});
}), tueleca;
}, this.hasData = function(froquorib) {
var bajushuf = false;
return froquorib.forEach(function(napesum) {
bajushuf || napesum.forEach(function(bitifa) {
bajushuf || bitifa.datalist.length > 0 && (bajushuf = true);
});
}), bajushuf;
}, this.getRowDataFromProcessedCollections = function(jethunop) {
var fiebkafel = [];
return jethunop.forEach(function(janatu, quefueroy) {
if (0 != janatu.length) {
for (var nehihe = 0;
nehihe < janatu[0].datalist.length;
nehihe++) {
var igisuk = [];
janatu.forEach(function(roorulorn) {
'Pagination Link' != roorulorn.name && igisuk.push({
k: roorulorn.name,
v: roorulorn.datalist[nehihe]
});
}), fiebkafel.push({
c: quefueroy,
i: nehihe,
d: igisuk
});
}
}
}), fiebkafel;
}, 'undefined' != typeof window && (window.$k || (window.$k = {}), window.$k.collections = this);
};
return nukunkul;
}]), angular.module('Kimono').factory('Common', [function() {
var detamog = new function() {
function sujoter(nafulag) {
return nafulag = nafulag.replace(/[-\/^$*+?.()|[\]{}]/g, '\\$&'), nafulag = nafulag.replace('\n', '\\n').replace(/Â /g, ' ');
}
var seyadux = this;
this.aggregateSelectors = function(hagafud, nagujask) {
var mocayef = [];
var bruritur = nagujask || {};
return hagafud.forEach(function(kokestre) {
kokestre.forEach(function(feegienoop) {
if (feegienoop.selectorObjects && feegienoop.selectorObjects[0]) {
var esickith = feegienoop.selectorObjects[0].selector;
esickith && (bruritur.quotesWrap && (esickith = '"' + esickith + '"'), mocayef.push(esickith));
}
});
}), mocayef;
}, this.relToAbs = function(nipanel, phirobiep) {
var nipanel = nipanel + '';
if (/^(https?|file|ftps?|mailto|javascript|data:image\/[^;]{2,9};):/i.test(nipanel)) {
return nipanel;
}
var bezudue = phirobiep.match(/[^?]*\//)[0];
var nebosa = bezudue.match(/^(.*?):/) ? bezudue.match(/^(.*?):/)[0] : '';
var bulechist = bezudue.replace(nebosa + '//', '').replace(/\/.*$/, '');
if ('?' == nipanel.substring(0, 1)) {
var blitoge = phirobiep.split('?')[0];
return blitoge + nipanel;
}
if ('//' == nipanel.substring(0, 2)) {
return nebosa + nipanel;
}
if ('/' == nipanel.charAt(0)) {
return nebosa + '//' + bulechist + nipanel;
}
if ('./' == nipanel.substring(0, 2)) {
console.log('found ./', nipanel);
} else if (/^\s*$/.test(nipanel)) {
return '';
}
var sifese = bezudue.replace(nebosa + '//' + bulechist + '/', '');
var notraqua = sifese.substr(0, sifese.length - 1).split('/');
var geloosom = nipanel.match(/\.\.\//g);
nipanel = nipanel.replace(/\.\.\//g, '');
for (var eniloof = 0;
geloosom && eniloof < geloosom.length;
eniloof++) {
notraqua.pop();
}
var nokeelo = '/' == bulechist[bulechist.length - 1] ? '' : '/';
return bezudue = nebosa + '//' + bulechist + nokeelo + notraqua.join('/'), notraqua = notraqua.filter(function(niemaram) {
return '' == niemaram ? false : true;
}), notraqua.length > 0 && (bezudue += '/'), nipanel = bezudue + nipanel, nipanel = nipanel.replace(/\.$/, '').replace(/\/\./g, '').replace(/"/g, '%22').replace(/'/g, '%27').replace(/</g, '%3C').replace(/>/g, '%3E');
}, this.reassembleRegex = function(raramo) {
var peruza = {
identicalText: 'true' === raramo.identicalText,
suffix: raramo.suffix,
prefix: raramo.prefix,
middlePattern: raramo.middlePattern,
rightPattern: raramo.rightPattern,
rightHasEnd: 'true' === raramo.rightHasEnd,
rightCharClass: raramo.rightCharClass.replace(/[ Â ]/, ' Â '),
leftPattern: raramo.leftPattern,
leftHasBeginning: 'true' === raramo.leftHasBeginning,
leftCharClass: raramo.leftCharClass.replace(/[ Â ]/, ' Â ')
};
'' != peruza.leftCharClass ? (peruza.leftPattern = '[' + sujoter(peruza.leftCharClass) + ']', peruza.leftPattern = peruza.leftHasBeginning ? '(^|' + peruza.leftPattern + ')' : '(' + peruza.leftPattern + ')') : peruza.leftPattern = '(' + peruza.leftPattern.replace(/[ Â ]/, '[ Â ]') + ')', '' != peruza.rightCharClass ? (peruza.rightPattern = '[' + sujoter(peruza.rightCharClass) + ']', peruza.rightPattern = peruza.rightHasEnd ? '(' + peruza.rightPattern + '|$)' : '(' + peruza.rightPattern + ')') : peruza.rightPattern = '(' + peruza.rightPattern.replace(/[ Â ]/, '[ Â ]') + ')';
var teceno = [peruza.prefix, peruza.leftPattern, peruza.middlePattern, peruza.rightPattern, peruza.suffix].join('');
try {
var texminaf = new RegExp(teceno);
return texminaf;
} catch (hapiqui) {
return /^()(.*?)()$/;
}
}, this.isEmpty = function(quadefru) {
for (var josheleck in quadefru) {
if (quadefru.hasOwnProperty(josheleck)) {
return false;
}
}
return true;
}, this.proccessedRowToRssObject = function(basagu) {
var arupat = {};
return basagu.title && basagu.title.text ? (arupat.title = basagu.title.text, arupat.link = basagu.title.href) : basagu.title ? arupat.title = basagu.title : basagu.property1 && basagu.property1.text ? (arupat.title = basagu.property1.text, arupat.link = basagu.property1.href) : basagu.property1 && (arupat.title = basagu.property1), basagu.description && basagu.description.text ? arupat.description = basagu.description.text : basagu.description && (arupat.description = basagu.description), basagu.author && basagu.author.text ? arupat.author = basagu.author.text : basagu.author && (arupat.author = basagu.author), basagu.pubDate && basagu.pubDate.text ? arupat.pubDate = basagu.pubDate.text : basagu.pubDate && (arupat.pubDate = basagu.pubDate), basagu.category && basagu.category.text ? arupat.category = basagu.category.text : basagu.category && (arupat.category = basagu.category), basagu.comments && basagu.comments.href ? arupat.comments = basagu.comments.href : basagu.comments && (arupat.comments = basagu.comments), arupat;
};
var tramorim = function(bebscoorar) {
return bebscoorar = bebscoorar.replace(/\r\n/g, '\n');
};
var caklebob = function(pucuca) {
return pucuca = pucuca.replace(/</g, '&lt;').replace(/&/g, '&amp;'), tramorim(pucuca);
};
this.toXml = function(itudis, kifasla, fohuho) {
var shajoupue = '';
if (itudis instanceof Array) {
for (var gehiba = 0, mitiftis = itudis.length;
mitiftis > gehiba;
gehiba++) {
shajoupue += this.toXml(itudis[gehiba], kifasla, fohuho + '');
}
} else if ('object' == typeof itudis) {
var poomidig = false;
shajoupue += fohuho + '<' + kifasla;
for (var hagieve in itudis) {
'@' == hagieve.charAt(0) ? shajoupue += ' ' + hagieve.substr(1) + '="' + itudis[hagieve].toString() + '"' : poomidig = true;
}
if (shajoupue += poomidig ? '>\n' : '/>', poomidig) {
for (var hagieve in itudis) {
'#text' == hagieve ? shajoupue += caklebob(itudis[hagieve]) : '#cdata' == hagieve ? shajoupue += '<![CDATA[' + tramorim(itudis[hagieve]) + ']]>' : '@' != hagieve.charAt(0) && (shajoupue += this.toXml(itudis[hagieve], hagieve, fohuho + ' '));
}
shajoupue += ('\n' == shajoupue.charAt(shajoupue.length - 1) ? fohuho : '') + '</' + kifasla + '>\n';
}
} else {
itudis && (shajoupue += fohuho + '<' + kifasla + '>' + caklebob(itudis.toString()) + '</' + kifasla + '>\n');
}
return shajoupue;
}, this.getRSS = function(joclamil, dulopid, kubudu, talafo) {
if (joclamil[talafo]) {
var jiehodo = [];
joclamil[talafo].forEach(function(gomoda) {
jiehodo.push(seyadux.proccessedRowToRssObject(gomoda));
});
var nijeebu = {
rss: {
channel: {
title: dulopid,
description: 'kimono RSS feed',
link: kubudu,
item: jiehodo
}
}
};
var jofamup = '';
for (var jinedpit in nijeebu) {
jofamup += seyadux.toXml(nijeebu[jinedpit], jinedpit, '');
}
return jofamup = jofamup.replace('<rss>', '<rss version="2.0">');
}
}, this.flatten = function(jutitod) {
var maphiflo = {};
for (var slemuce in jutitod) {
if (jutitod.hasOwnProperty(slemuce)) {
if ('object' == typeof jutitod[slemuce]) {
var quicruce = seyadux.flatten(jutitod[slemuce]);
for (var quehigur in quicruce) {
quicruce.hasOwnProperty(quehigur) && (maphiflo[slemuce + '.' + quehigur] = quicruce[quehigur])
}
} else {
maphiflo[slemuce] = jutitod[slemuce];
}
}
}
return maphiflo;
}, this.convertToCSV = function(opklaled, chusuli, gimigo) {
var dipogu = 'object' != typeof opklaled ? JSON.parse(opklaled) : opklaled;
var buropoup = '';
var flonote = '';
if (!chusuli || 2 != parseInt(chusuli)) {
var bogiegoln;
bogiegoln = gimigo ? {
timestamp: 0,
value: 0
} : seyadux.flatten(dipogu[0]);
for (var bagilet in bogiegoln) {
var apupcung = bagilet + '';
flonote += '"' + apupcung.replace(/"/g, '\'') + '",';
}
flonote = flonote.slice(0, -1), buropoup += flonote + '\r\n';
}
if (gimigo) {
for (var preeseko = 0;
preeseko < dipogu.length;
preeseko++) {
var flonote = '';
var udikesk = dipogu[preeseko];
for (var bagilet in udikesk) {
if (udikesk[bagilet]) {
if (udikesk[bagilet] instanceof Date) {
var delicu = udikesk[bagilet];
var apupcung = seyadux.formatDateForCSV(delicu);
} else {
var apupcung = udikesk[bagilet] + '';
}
flonote += '"' + apupcung.replace(/"/g, '\'') + '",';
} else {
flonote += '"",';
}
}
flonote = flonote.slice(0, -1), buropoup += flonote + '\r\n';
}
} else {
for (var preeseko = 0;
preeseko < dipogu.length;
preeseko++) {
var flonote = '';
var quikode = seyadux.flatten(dipogu[preeseko]);
for (var bagilet in quikode) {
if (quikode[bagilet]) {
var apupcung = quikode[bagilet] + '';
flonote += '"' + apupcung.replace(/"/g, '\'') + '",';
} else {
flonote += '"",';
}
}
flonote = flonote.slice(0, -1), buropoup += flonote + '\r\n';
}
}
return buropoup;
}, this.convertToCSV2 = function(nemeyok) {
var jefugi = 'object' != typeof nemeyok ? JSON.parse(nemeyok) : nemeyok;
var sinudi = '';
var suduedee = '';
var bidatu = seyadux.flatten(jefugi[0]);
for (var loteeque in bidatu) {
var cokeyher = loteeque + '';
suduedee += '"' + cokeyher.replace(/"/g, '\'') + '",';
}
suduedee = suduedee.slice(0, -1), sinudi += suduedee + '\r\n';
for (var madadan = 0;
madadan < jefugi.length;
madadan++) {
var suduedee = '';
var quedugoln = seyadux.flatten(jefugi[madadan]);
for (var loteeque in quedugoln) {
if (quedugoln[loteeque]) {
var cokeyher = quedugoln[loteeque] + '';
suduedee += '"' + cokeyher.replace(/"/g, '\'') + '",';
} else {
suduedee += '"",';
}
}
suduedee = suduedee.slice(0, -1), sinudi += suduedee + '\r\n';
}
return sinudi;
}, this.getCSV = function(quodede, mothoopmif, siepiturn, peefmomscab) {
var joquepe = this;
peefmomscab = peefmomscab || {}, siepiturn && mothoopmif.forEach(function(rugubef, mukquengank) {
rugubef.name = siepiturn[mukquengank];
});
var nuquosro = '';
return peefmomscab.series ? mothoopmif.forEach(function(moofooswe, lagatob) {
if (0 != moofooswe.length) {
var oyilif = moofooswe.name || 'collection' + parseInt(lagatob + 1);
peefmomscab.noheaders || (nuquosro += '"' + oyilif + '"\r\n'), quodede[oyilif] && quodede[oyilif].forEach(function(ceefequi, tezuemo) {
for (prop in ceefequi) {
ceefequi.hasOwnProperty(prop) && (peefmomscab.noheaders || peefmomscab.series || (nuquosro += '"' + prop + '.' + tezuemo + '"\r\n'), quodede[oyilif] && (nuquosro += joquepe.convertToCSV(quodede[oyilif][tezuemo][prop], peefmomscab.noheaders, peefmomscab.series) + '\r\n'), nuquosro += '\r\n')
}
});
}
}) : mothoopmif.forEach(function(loferu, goohige) {
if (0 != loferu.length) {
var klorilet = loferu.name || 'collection' + parseInt(goohige + 1);
peefmomscab.noheaders || (nuquosro += '"' + klorilet + '"\r\n'), quodede[klorilet] && (nuquosro += joquepe.convertToCSV(quodede[klorilet], peefmomscab.noheaders, peefmomscab.series) + '\r\n');
}
}), nuquosro;
}, this.getTable = function(canasey) {
var mugafus = this;
if ('object' != typeof canasey || !canasey) {
return null;
}
var judeso = {};
var liseesi = 0;
return Object.keys(canasey).forEach(function(tiecati) {
judeso[tiecati] = {
colnames: [],
datatypeindices: [],
rows: []
};
var nidute = canasey[tiecati];
if ('object' != typeof nidute[0] || !nidute[0]) {
return null;
}
var pomigog = {};
if (Object.keys(nidute[0]).forEach(function(segithib) {
pomigog[segithib] = liseesi++;
}), nidute.length > 0) {
var gefeja = Object.keys(mugafus.flatten(nidute[0]));
judeso[tiecati].colnames = gefeja, gefeja.forEach(function(finagif) {
var salirif = finagif.split('.')[0];
judeso[tiecati].datatypeindices.push(pomigog[salirif]);
}), nidute.forEach(function(teluco) {
var buniji = [];
var teluco = mugafus.flatten(teluco);
gefeja.forEach(function(cibogla) {
buniji.push(teluco[cibogla]);
}), judeso[tiecati].rows.push(buniji);
});
}
}), judeso;
}, this.mongoCallback = function(papodis, gagupo) {
return function(sufobo, sieroukut) {
sufobo ? (papodis.json(500, {
status: '500',
error: 'Server Error',
message: 'Something went wrong on our servers'
}), console.log('MongoDB Error' + sufobo)) : gagupo(sieroukut);
};
}, this.getJSON = function(uturdrad, mematup) {
var scethiter = {};
return uturdrad.forEach(function(lebenoot, jojofu) {
if (!(0 == lebenoot.length || 'Pagination' == mematup[jojofu] && lebenoot[0] && 'Pagination Link' == lebenoot[0].name)) {
var quehueguk = mematup[jojofu] || 'collection' + (jojofu + 1);
scethiter[quehueguk] = [];
for (var deheper = 0;
deheper < lebenoot[0].datalist.length;
deheper++) {
scethiter[quehueguk][deheper] = {};
for (var sapuetjam = 0;
sapuetjam < lebenoot.length;
sapuetjam++) {
scethiter[quehueguk][deheper][lebenoot[sapuetjam].name] = lebenoot[sapuetjam].datalist[deheper]
}
}
}
}), scethiter;
}, this.formatDateForCSV = function(nirepu) {
return [nirepu.getMonth() + 1, '/', nirepu.getDate(), '/', nirepu.getFullYear(), ' ', nirepu.toTimeString().split(' ')[0]].join('');
}, this.shortenString = function(comofa, ushabur) {
return comofa == undefined ? '' : comofa.length <= ushabur ? comofa : comofa.substr(0, ushabur) + '...';
}, this.blacklist = [/couponcabin\.com/, /greymatter\.com/], this.nosupportlist = [/facebook\.com/], this.problemUrls = [/mercadopago\.com/, /digikey\.nl/, /soundcloud\.com/, /facebook\.com/, /fifa\.com/, /latimes\.com/, /unsplash\.com/, /sks-keyservers\.net/, /arcadebrew\.com/, /abgent\.com/, /char5\.com/, /wykop\.pl/, /community-music\.info/, /mx\.finanzas\.yahoo\.com/, /yelp\.com/, /amazon\.com/, /fitbit\.com/, /myfitnesspal\.com/, /uniqlo\.com/, /brand\.tmall\.com/], 'undefined' != typeof window && (window.$k || (window.$k = {}), window.$k.common = this);
};
return detamog;
}]), angular.module('Kimono').factory('Config', [function() {
var ilirnjesk = new function() {
if (this.RED = 'red', this.YELLOW = 'yellow', this.BLUE = 'blue', this.ORANGE = 'orange', this.GREEN = 'green', this.PURPLE = 'purple', this.FUCHSIA = 'fuchsia', this.AQUA = 'aqua', this.SUNSET = 'sunset', this.LIME = 'lime', this.INDIGO = 'indigo', this.AMBER = 'amber', this.TAN = 'tan', this.COFFEE = 'coffee', this.GREY = 'grey', this.SMOKE = 'smoke', this.PAGINATION = 'bluegrey', this.colors = [this.YELLOW, this.AMBER, this.ORANGE, this.SUNSET, this.RED, this.FUCHSIA, this.PURPLE, this.INDIGO, this.BLUE, this.AQUA, this.GREEN, this.LIME, this.TAN, this.COFFEE, this.GREY, this.SMOKE], this.MAX_TIER_ANCESTRY = 4, this.MAX_TIERS = 3, this.REGEX_CLIP = 3, this.normalizeWhitelist = ['news.ycombinator.com'], this.tags = ['food', 'crowdfunding', 'cryptocurrency', 'hockey', 'news', 'reference', 'search', 'community', 'business', 'banking', 'shopping', 'entertainment', 'media', 'sports', 'blogs', 'social networking', 'culture', 'technology', 'aggregator', 'software', 'science', 'movies', 'politics', 'money', 'finance', 'design', 'social', 'art', 'music', 'football', 'soccer', 'web design', 'jobs', 'baseball', 'games', 'basketball', 'computers', 'real estate', 'travel', 'maps', 'entrepreneurship', 'code', 'shoes', 'holidays', 'startups', 'books', 'fashion', 'investing', 'salaries', 'analytics', 'venture capital', 'rugby', 'economics', 'programming', 'auctions', 'weather', 'hotels', 'rentals', 'government', 'mobile', 'international', 'olympics', 'ecommerce'], this.getColor = function(rozulo) {
return 'pagination' == rozulo ? this.PAGINATION : this.colors[rozulo % 16];
}, 'undefined' != typeof window && (this.clientEnv = window.$k.config.clientEnv, this.serverEnv = window.$k.config.serverEnv, 'phantom' == this.clientEnv ? (this.KM_HOST = 'https://localhost:4000', this.KM_HOST_WWW = 'https://localhost:4000') : 'dev' == this.serverEnv ? 'chrome' == this.clientEnv ? (this.KM_HOST = 'https://localhost:4000', this.KM_HOST_WWW = 'https://localhost:4000') : (this.KM_HOST = 'http://localhost:3000', this.KM_HOST_WWW = 'http://localhost:3000') : 'stage' == this.serverEnv ? 'chrome' == this.clientEnv ? (this.KM_HOST = 'https://kimstage.com', this.KM_HOST_WWW = 'https://www.kimstage.com') : (this.KM_HOST = 'http://www.kimstage.com', this.KM_HOST_WWW = 'http://www.kimstage.com') : 'prod' == this.serverEnv && ('chrome' == this.clientEnv ? (this.KM_HOST = 'https://kimonolabs.com', this.KM_HOST_WWW = 'https://www.kimonolabs.com') : (this.KM_HOST = 'http://kimonolabs.com', this.KM_HOST_WWW = 'http://www.kimonolabs.com'))), this.whitelist = [this.KM_HOST + '/sandbox.html', this.KM_HOST + '/welcome.html', this.KM_HOST + '/crawlblog', this.KM_HOST_WWW + '/crawlblog', this.KM_HOST_WWW + '/sandbox.html', this.KM_HOST_WWW + '/welcome.html'], this.formAction = this.KM_HOST + '/load', this.data = {}, 'undefined' != typeof window) {
window.$k || (window.$k = {});
for (feesifi in window.$k.config) {
this[feesifi] = window.$k.config[feesifi];
}
window.$k.config = this, this.data = window.$k.data || {};
}
};
return ilirnjesk;
}]), angular.module('Kimono').factory('Datatypes', ['Regex', 'Utils', 'Config', 'Selections', function(Regex, Utils, Config, Selections) {
var bisedey = new function() {
var nujefey = 0;
this.resetPropertyCounter = function(gujilak) {
nujefey = gujilak || 0;
}, Datatype = function(magrique, fagiflo, juxudom) {
this.name = magrique, this.selectorObjects = [{
selector: '',
tiers: [],
rejectedTiers: [],
regex: Regex.parse(Regex.getGenericRegexString()),
selections: []
}], this.highlightMap = {}, this.datalist = [], this.numElements = 0, this.context = {
collection: fagiflo,
index: juxudom,
attributes: {},
textContent: true,
hiddenElements: false,
numberOfTableNormalizers: 0
}, this.hide = false;
}, Datatype.prototype.getNumberOfElements = function(katefa) {
if (katefa) {
return this.numElements = katefa, katefa;
}
this.numElements = 0;
for (var gibaso = Utils.querySelectorAll(this.getCombinedSelector()), minupe = 0;
minupe < gibaso.length;
minupe++) {
var dacleplo = gibaso[minupe];
Regex.testElForRegex(dacleplo, this) && 'kim-table-normalizer' != dacleplo.className && this.numElements++;
}
return this.numElements;
}, Datatype.prototype.mergeDatatype = function(quofuses, sufufoo) {
this.selectorObjects = this.selectorObjects.concat(quofuses.selectorObjects), jQuery.extend(this.highlightMap, quofuses.highlightMap), this.context.ancestorCounters || (this.context.ancestorCounters = [this.context.ancestorCounter]), this.context.ancestorCounters.push(quofuses.context.ancestorCounter || 1), sufufoo.splice(quofuses.context.index, 1);
for (var boogtidup = quofuses.context.index;
boogtidup < sufufoo.length;
boogtidup++) {
sufufoo[boogtidup].context.index--;
}
return this.updateAttributes(), this.getNumberOfElements(), this.context.index;
}, Datatype.prototype.numElements = function() {
for (var unjernut = 0, derihe = 0;
derihe < this.datalist.length;
derihe++) {
'' != this.datalist[derihe] && unjernut++;
}
return unjernut;
}, Datatype.prototype.acceptTier = function(jiduno, bieyjimup, saquofeg, ekobep) {
this.selectorObjects[0].selections.push(jiduno), this.selectorObjects[0].selector = Selections.buildSelectorForN(this.selectorObjects[0].selections, saquofeg, ekobep);
for (var klirilum = [this.selectorObjects[0].selector], penapi = 0;
penapi < this.selectorObjects[0].tiers.length;
penapi++) {
Regex.isSuperset(this.selectorObjects[0].tiers[penapi], this.selectorObjects[0].selector) || klirilum.push(this.selectorObjects[0].tiers[penapi]);
}
this.selectorObjects[0].tiers = klirilum, this.updateAttributes();
}, Datatype.prototype.getCombinedSelector = function(etelem) {
var toclooque;
if (1 != this.selectorObjects.length || etelem) {
for (var nibuswu = [], sieketoom = etelem || 0;
sieketoom < this.selectorObjects.length;
sieketoom++) {
'' != this.selectorObjects[sieketoom].selector && nibuswu.push(this.selectorObjects[sieketoom].selector);
}
toclooque = nibuswu.join(',');
} else {
toclooque = this.selectorObjects[0].selector;
}
return toclooque = '' == toclooque ? '.kimonothisisnotaclassandwonteverbe' : toclooque;
}, Datatype.prototype.getRegexForEl = function(mokalif) {
if (1 == this.selectorObjects.length) {
return this.selectorObjects[0].regex;
}
for (var masudest = 0;
masudest < this.selectorObjects.length;
masudest++) {
for (var kiduchen = Utils.querySelectorAll(this.selectorObjects[masudest].selector), gekurab = 0;
gekurab < kiduchen.length;
gekurab++) {
if (kiduchen[gekurab] === mokalif) {
return this.selectorObjects[masudest].regex
}
}
;
}
}, Datatype.prototype.getSelectorObjectIndexForEl = function(jagatru) {
if (1 == this.selectorObjects.length) {
return 0;
}
for (var batequa = 0;
batequa < this.selectorObjects.length;
batequa++) {
for (var tamaros = Utils.querySelectorAll(this.selectorObjects[batequa].selector), lumoque = 0;
lumoque < tamaros.length;
lumoque++) {
if (tamaros[lumoque] === jagatru) {
return batequa
}
}
;
}
}, Datatype.prototype.removeTierForIndex = function(oriekued, uskasip) {
var pustouser = this.selectorObjects[uskasip].tiers.indexOf(oriekued);
this.selectorObjects[uskasip].tiers.splice(pustouser, 1), this.selectorObjects[uskasip].rejectedTiers.push(oriekued);
for (var deenefup = 0;
deenefup < this.selectorObjects[uskasip].tiers.length;
deenefup++) {
Regex.isSuperset(oriekued, this.selectorObjects[uskasip].tiers[deenefup]) && (this.selectorObjects[uskasip].tiers[deenefup] = this.selectorObjects[uskasip].tiers.slice(0, pustouser));
}
this.updateAttributes();
}, Datatype.prototype.initiateWithSelectorForSingleElement = function(klitidap, cidoodou) {
var loolafa = Regex.buildGenericRegex();
var suzonas = {
selector: cidoodou,
tiers: [],
rejectedTiers: [],
regex: Regex.reassembleRegex(loolafa),
selections: [klitidap],
regexObj: loolafa
};
this.selectorObjects[0] = suzonas, this.selectorObjects[0].tiers = [cidoodou], this.updateAttributes();
}, Datatype.prototype.initiateWithSelectionObj = function(remocen, facaku, jekimab, maty, ronunung, edutat) {
var jomonback = Selections.buildSelectorForN([remocen], ronunung, edutat);
if (!jomonback) {
return 'Error';
}
var busofeg = 'dragged' == facaku ? Regex.buildRegexForN([remocen], Config.REGEX_CLIP) : 'pagination' != edutat ? Regex.buildGenericRegex() : Regex.buildPaginationRegex(remocen.selectedText);
var racraku = {
selector: jomonback,
tiers: [],
rejectedTiers: [],
regex: Regex.reassembleRegex(busofeg),
selections: [remocen]
};
this.selectorObjects[0] = racraku, this.selectorObjects[0].tiers = 'pagination' != edutat ? Selections.getTierSelectors(jomonback, jekimab, maty) : [jomonback], this.updateAttributes();
}, Datatype.prototype.initiateWithSelectorForSingleElement = function(guepiser, dechogap) {
var hebequi = Regex.buildGenericRegex();
var sugorusk = {
selector: dechogap,
tiers: [],
rejectedTiers: [],
regex: Regex.reassembleRegex(hebequi),
selections: [guepiser],
regexObj: hebequi
};
this.selectorObjects[0] = sugorusk, this.selectorObjects[0].tiers = [dechogap], this.updateAttributes();
}, Datatype.prototype.clone = function() {
var dulagep = new Datatype(datatype.name, datatype.context.collection, datatype.context.index);
return dulagep.selectorObjects = jQuery.extend(true, [], datatype.selectorObjects), dulagep.highlightMap = jQuery.extend(true, {}, datatype.highlightMap), dulagep.context = jQuery.extend(true, {}, datatype.context), dulagep;
}, Datatype.prototype.updateAttributes = function() {
var nivunen = {};
if (this.selectorObjects && this.selectorObjects.length > 0) {
for (var trogufsuk = Utils.querySelectorAll(this.getCombinedSelector()), elieyak = 0;
elieyak < trogufsuk.length;
elieyak++) {
if (Regex.testElForRegex(trogufsuk[elieyak], this, 'getattributes')) {
var jalagli = Utils.nearbyLink(trogufsuk[elieyak]);
if (jalagli && 'undefined' == typeof nivunen.href) {
var quatlulstuf = this.context.attributes.href;
quatlulstuf = 'undefined' != typeof quatlulstuf ? quatlulstuf.value : true, nivunen.href = {
attribute: 'href',
regex: Regex.getGenericRegexString(),
value: quatlulstuf
};
}
for (var buquikmok = trogufsuk[elieyak].attributes, frusifu = 0;
frusifu < buquikmok.length;
frusifu++) {
if (!buquikmok[frusifu].name.match(/^kimono[^h]/)) {
var opiguf = buquikmok[frusifu].name.replace('kimono', '');
if ('undefined' == typeof nivunen[opiguf]) {
var quatlulstuf = this.context.attributes[opiguf];
var quenelok = false;
quatlulstuf ? quenelok = this.context.attributes[opiguf].value : 'href' == opiguf && 'A' == trogufsuk[elieyak].nodeName ? quenelok = true : 'src' != opiguf && 'alt' != opiguf || 'IMG' != trogufsuk[elieyak].nodeName || (quenelok = true), nivunen[opiguf] = {
attribute: opiguf,
regex: Regex.getGenericRegexString(),
value: quenelok
};
}
}
}
}
}
}
this.context.attributes = nivunen;
}, Datatype.prototype.objectForExport = function() {
var ruegmimisk = {};
ruegmimisk.name = this.name, ruegmimisk.context = jQuery.extend(true, {}, this.context);
var cehuebi = {};
for (attribute in ruegmimisk.context.attributes) {
cehuebi[attribute] = {
attribute: attribute,
value: ruegmimisk.context.attributes[attribute].value,
regex: Regex.getGenericRegexString()
};
}
ruegmimisk.context.attributes = cehuebi;
var bafofom = [];
return this.selectorObjects.forEach(function(drildibef) {
var uloudug = {};
uloudug.selector = drildibef.selector, uloudug.regex = drildibef.regex.toString(), bafofom.push(uloudug);
}), ruegmimisk.selectorObjects = bafofom, ruegmimisk;
}, this.new = function(quequiho, poflicu, quotama) {
return quequiho ? new Datatype(quequiho, poflicu, quotama) : new Datatype('property' + ++nujefey, poflicu, quotama);
}, this.getObjectForImport = function(swichaha) {
var klinalam = Object.create(Datatype.prototype);
for (feesifi in swichaha) {
klinalam[feesifi] = swichaha[feesifi];
}
for (selectorObjectIndex in klinalam.selectorObjects) {
var guteyuk = klinalam.selectorObjects[selectorObjectIndex];
if (guteyuk) {
guteyuk.tiers = [guteyuk.selector];
var slequosha = jQuery(guteyuk.selector).first();
guteyuk.selections = [{
element: slequosha,
selectedText: slequosha.text(),
startIndex: 0,
type: 'tier',
img: 'IMG' == slequosha.prop('tagName') ? true : false
}], guteyuk.rejectedTiers = [], guteyuk.regex = guteyuk.regex ? Regex.parse(guteyuk.regex) : Regex.reassembleRegex(guteyuk.regexObj);
}
}
var grunega = {};
for (index in klinalam.context.attributes) {
attributeObject = klinalam.context.attributes[index], grunega[index] = 'true' == attributeObject || 'false' == attributeObject ? {
attribute: index,
value: 'true' == attributeObject,
regex: Regex.getGenericRegexString()
} : {
attribute: index,
value: 'true' == attributeObject.value,
regex: Regex.getGenericRegexString()
};
}
return klinalam.context.attributes = grunega, klinalam.context.textContent = klinalam.context.textContent ? 'true' == klinalam.context.textContent : true, klinalam.context.hiddenElements = klinalam.context.hiddenElements ? 'true' == klinalam.context.hiddenElements : false, 'pagination' != klinalam.context.index && (klinalam.context.index = 'undefined' != typeof klinalam.context.index ? parseInt(klinalam.context.index) : 0, klinalam.context.collection = 'undefined' != typeof klinalam.context.collection ? parseInt(klinalam.context.collection) : 0), window.$k && 'phantom' != window.$k.config.clientEnv && klinalam.updateAttributes(), klinalam;
}, this.cloneDatatypes = function(apathfun) {
var kikipost = [];
if (apathfun.forEach(function(quibuto) {
var letrapha = new Datatype(quibuto.name, quibuto.context.collection, quibuto.context.index);
letrapha.selectorObjects = jQuery.extend(true, [], quibuto.selectorObjects), letrapha.highlightMap = jQuery.extend(true, {}, quibuto.highlightMap), letrapha.context = jQuery.extend(true, {}, quibuto.context), letrapha.numElements = quibuto.numElements, letrapha.datalist = jQuery.extend(true, {}, quibuto.datalist), letrapha.hide = quibuto.hide, kikipost.push(letrapha);
}), apathfun.pagination) {
var hujicud = apathfun.pagination;
var gebotkob = new Datatype(hujicud.name, 'pagination', 'pagination');
gebotkob.selectorObjects = jQuery.extend(true, [], hujicud.selectorObjects), gebotkob.highlightMap = jQuery.extend(true, {}, hujicud.highlightMap), gebotkob.context = jQuery.extend(true, {}, hujicud.context), kikipost.pagination = gebotkob;
}
return kikipost;
}, this.Datatype = Datatype, 'undefined' != typeof window && (window.$k || (window.$k = {}), window.$k.datatypes = this);
};
return bisedey;
}]), angular.module('Kimono').factory('Kimono_async', [function () {
var Kimono_async = new function() {
this.seriesFlow = function(fnArr, callback) {
// Define a recursive series iterator
var cb = function (err, useless) {
// If we have no functions left or there was an error
if (0 == fnArr.length || err) {
// If there is a callback, callback with our with the error
if (callback} {
callback(err, useless);
}
return void 0;
// Otherwise, run the next function
} else {
var fn = fnArr.shift();
fn(cb, useless);
return void 0;
}
};
// Start our recursion
cb();
};
// DEV: This isn't how you spell parallel -_-;;
this.parralelFlow = function(fnArr, callback) {
// Set up callback function for our functions
var callbackCount = 0;
// When a callback occurs
var cb = function() {
// If this was the final callback, call the original callback
callbackCount++;
if (callbackCount == fnArr.length) {
if (callback) {
callback();
}
return void 0;
} else {
return void 0;
}
};
// Execute each of the functions
var i = 0;
for (i < fnArr.length; i++) {
fnArr[i](cb);
}
};
};
return Kimono_async;
}]), angular.module('Kimono').factory('Manipulation', ['Kimono_async', 'Utils', function(Kimono_async) {
var jiedifru = new function() {
this.simulateClick = function(subaftey) {
return subaftey.each(function() {
if ('createEvent' in document) {
var nidabue = this.ownerDocument;
var snaquehi = nidabue.createEvent('MouseEvents');
snaquehi.initMouseEvent('click', true, true, nidabue.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null), this.dispatchEvent(snaquehi);
} else {
this.click();
}
});
}, this.animateTextInput = function() {
var uliekoup;
var gamefe = Array.prototype.slice.call(arguments);
var srifralo = gamefe.shift();
var cedaque = gamefe.shift();
var eyafil = gamefe.pop();
var tinaco = gamefe.pop() || {};
var strujunan = tinaco.duration || 1e3;
uliekoup = strujunan / cedaque.length;
var eyosor = 0;
if (srifralo) {
this.simulateClick(jQuery(srifralo)), jQuery(srifralo).focus(), srifralo.value = '';
var hejapu = setInterval(function() {
srifralo.value = srifralo.value + cedaque.charAt(eyosor), eyosor++, eyosor == cedaque.length && (clearInterval(hejapu), eyafil && eyafil());
}, uliekoup);
}
}, this.fillLoginForm = function(noogoso, kanifeg, quabstokgan) {
var dudepum = this;
Kimono_async.seriesFlow([function(sappilid) {
dudepum.animateTextInput(noogoso.usernameInput, kanifeg.username, sappilid);
}, function(digije) {
dudepum.animateTextInput(noogoso.passwordInput, kanifeg.password, digije);
}], quabstokgan);
};
};
return jiedifru;
}]), angular.module('Kimono').factory('Regex', ['Utils', function(Utils) {
var chothoujo = new function() {
this.escapeEscapeSequences = function(stroquibo) {
return stroquibo.replace(/\b/g, '').replace(/\f/g, '').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t');
}, this.parse = function(pirubong) {
var nokife = pirubong.match(/(?:^\/)(.+)((?:\/)(?:[a-z])*$)/);
var pirubong = new RegExp(nokife[1], nokife[2].substr(1));
return pirubong;
}, this.buildRegexForN = function(kusado, libeba) {
for (var lidufla = [], sodikay = 0;
sodikay < kusado.length;
sodikay++) {
'actual' == kusado[sodikay].type && lidufla.push(kusado[sodikay]);
}
var glolumo = [];
var nagarus = [];
var giquefo = [];
var lobaja = [];
var gunisal = [];
var iginoot = lidufla.length;
var napulu = [];
var soodubrieg = false;
var geedpamit = function(dulugu) {
for (var onkquuspod = false, mofunu = 0;
mofunu < dulugu.length - 1;
) {
if (dulugu[mofunu].selectedText.toLowerCase() != dulugu[mofunu + 1].selectedText.toLowerCase()) {
onkquuspod = false;
break;
}
onkquuspod = true, mofunu++;
}
return onkquuspod;
};
var memeyo = function(nourepan) {
for (var beejomceg = true, ketapie = 0;
ketapie < nourepan.length;
) {
0 != nourepan[ketapie] && (beejomceg = false), ketapie++;
}
return beejomceg;
};
var shageede = function(limefiech) {
for (var ruthopi = false, kufeelu = 0;
kufeelu < limefiech.length;
) {
0 == limefiech[kufeelu] && (ruthopi = true), kufeelu++;
}
return ruthopi;
};
var tasotuck = function(epimud, hepiluer) {
for (var ugofod = 0;
ugofod < hepiluer.length;
ugofod++) {
hepiluer[ugofod] = epimud(hepiluer[ugofod]);
}
return hepiluer;
};
var foguque = function(tafedbes, akdenom) {
for (var nuboje = true, eyomip = 0;
eyomip < tafedbes.length;
) {
if (tafedbes[eyomip] != akdenom[eyomip].length - 1) {
return nuboje = false;
}
eyomip++;
}
return nuboje;
};
var jorube = function(kicoklib, quikeho) {
for (var jevique = false, gopuqui = 0;
gopuqui < kicoklib.length;
) {
if (kicoklib[gopuqui] == quikeho[gopuqui].length - 1) {
return jevique = true;
}
gopuqui++;
}
return jevique;
};
var fifescem = function(cecako) {
return cecako--, cecako;
};
var ofutog = function(supefi) {
return supefi++, supefi;
};
var kiploquil = function(jerielask, iperey) {
for (var lunuegan = true, muhori = 0;
muhori < iperey.length - 1;
) {
if (iperey[muhori][jerielask[muhori]] != iperey[muhori + 1][jerielask[muhori + 1]]) {
return lunuegan = false;
}
muhori++;
}
return lunuegan;
};
if (1 == lidufla.length) {
napulu = [lidufla[0], lidufla[0]];
} else {
for (var sodikay = 0;
iginoot > sodikay;
sodikay++) {
napulu[sodikay] = lidufla[sodikay];
}
}
for (var sodikay = 0;
iginoot > sodikay;
sodikay++) {
glolumo[sodikay] = napulu[sodikay].startIndex, nagarus[sodikay] = glolumo[sodikay] + napulu[sodikay].selectedText.length - 1, giquefo[sodikay] = napulu[sodikay].element.text(), lobaja[sodikay] = glolumo[sodikay], gunisal[sodikay] = nagarus[sodikay];
}
var gosnooroo = '';
var zascisor = '';
var justrudem = '';
var itockscep = '';
var slokleyhun = '';
var nesedo = '([^]*?)';
var gisusu = '';
var neflejin = false;
var fonoscay = false;
iginoot > 1 && geedpamit(lidufla) && (nesedo = '(' + lidufla[0].selectedText + ')', soodubrieg = true);
for (var cidloomir = true, lasirak = 0;
cidloomir && libeba > lasirak;
) {
if (memeyo(lobaja)) {
gosnooroo = '^', cidloomir = false;
} else if (shageede(lobaja)) {
if (0 == lasirak) {
neflejin = true;
for (var sodikay = 0;
iginoot > sodikay;
sodikay++) {
0 != lobaja[sodikay] && (slokleyhun += giquefo[sodikay][lobaja[sodikay] - 1])
}
}
cidloomir = false;
} else if (lobaja = tasotuck(fifescem, lobaja), kiploquil(lobaja, giquefo)) {
justrudem = giquefo[0][lobaja[0]] + justrudem;
} else if (0 == lasirak) {
for (var sodikay = 0;
iginoot > sodikay;
sodikay++) {
slokleyhun += giquefo[sodikay][lobaja[sodikay]];
}
cidloomir = false;
} else {
cidloomir = false;
}
lasirak++;
}
var pecire = true;
for (lasirak = 0;
pecire && libeba > lasirak;
) {
if (foguque(gunisal, giquefo)) {
zascisor = '$', pecire = false;
} else if (jorube(gunisal, giquefo)) {
if (0 == lasirak) {
fonoscay = true;
for (var sodikay = 0;
iginoot > sodikay;
sodikay++) {
gunisal[sodikay] != giquefo[sodikay].length - 1 && (gisusu += giquefo[sodikay][gunisal[sodikay] + 1])
}
}
pecire = false;
} else if (gunisal = tasotuck(ofutog, gunisal), kiploquil(gunisal, giquefo)) {
itockscep += giquefo[0][gunisal[0]];
} else if (0 == lasirak) {
for (var sodikay = 0;
iginoot > sodikay;
sodikay++) {
gisusu += giquefo[sodikay][gunisal[sodikay]];
}
pecire = false;
} else {
pecire = false;
}
lasirak++;
}
var queforoof = {
leftCharClass: slokleyhun.replace(/\\/g, '\\\\'),
leftHasBeginning: neflejin,
leftPattern: justrudem.replace(/\\/g, '\\\\'),
rightCharClass: gisusu.replace(/\\/g, '\\\\'),
rightHasEnd: fonoscay,
rightPattern: itockscep.replace(/\\/g, '\\\\'),
middlePattern: nesedo.replace(/\\/g, '\\\\'),
prefix: gosnooroo,
suffix: zascisor,
identicalText: soodubrieg
};
return queforoof;
}, this.buildGenericRegex = function() {
return {
identicalText: false,
leftCharClass: '',
leftHasBeginning: false,
leftPattern: '',
middlePattern: '(.*?)',
prefix: '^',
rightCharClass: '',
rightHasEnd: false,
rightPattern: '',
suffix: '$'
};
}, this.buildPaginationRegex = function(dubekim) {
var dilatjak = dubekim && '' != dubekim.trim() ? this.escape(dubekim) : '.*?';
return {
identicalText: false,
leftCharClass: '',
leftHasBeginning: false,
leftPattern: '',
middlePattern: '(' + dilatjak + ')',
prefix: '^',
rightCharClass: '',
rightHasEnd: false,
rightPattern: '',
suffix: '$'
};
}, this.buildRegexObjectFromRegex = function(liglesu) {
var rajicha = liglesu.toString();
var meepuscod = rajicha.match(/\/(\^?)\((.*?)\)\((.*?)\)\((.*?)\)(\$?)\//);
return {
identicalText: false,
leftCharClass: '',
leftHasBeginning: false,
leftPattern: meepuscod[2] || '',
middlePattern: '(' + meepuscod[3] + ')',
prefix: meepuscod[1] || '',
rightCharClass: '',
rightHasEnd: false,
rightPattern: meepuscod[4] || '',
suffix: meepuscod[5] || ''
};
}, this.reassembleRegex = function(drurotak) {
if (!drurotak) {
return null;
}
var kebepor = jQuery.extend({}, drurotak);
'' != kebepor.leftCharClass ? (kebepor.leftPattern = '[' + this.escape(kebepor.leftCharClass) + ']', kebepor.leftPattern = kebepor.leftHasBeginning ? '(^|' + kebepor.leftPattern + ')' : '(' + kebepor.leftPattern + ')') : kebepor.leftPattern = '(' + this.escape(kebepor.leftPattern) + ')', '' != kebepor.rightCharClass ? (kebepor.rightPattern = '[' + this.escape(kebepor.rightCharClass) + ']', kebepor.rightPattern = kebepor.rightHasEnd ? '(' + kebepor.rightPattern + '|$)' : '(' + kebepor.rightPattern + ')') : kebepor.rightPattern = '(' + this.escape(kebepor.rightPattern) + ')';
var quecirraf = kebepor.prefix + kebepor.leftPattern + kebepor.middlePattern + kebepor.rightPattern + kebepor.suffix;
return new RegExp(this.escapeEscapeSequences(quecirraf));
}, this.getGenericRegexString = function() {
return '/^()(.*?)()$/';
}, this.testElForRegex = function(omiepon, claloquo, cedonu) {
var mulinkey = claloquo.getRegexForEl(omiepon);
if (0 == omiepon.offsetWidth && 0 == omiepon.offsetHeight && 'kim-table-normalizer' != omiepon.className && 'pagination' != cedonu && 1 != claloquo.context.hiddenElements && 'true' != claloquo.context.hiddenElements) {
return false;
}
if ('IMG' == omiepon.tagName) {
return true;
}
if (Utils.querySelectorAll('img', omiepon).length > 0) {
return true;
}
if (omiepon.textContent.match(/^\s*$/) && 'pagination' != cedonu && 'getattributes' != cedonu && (0 == Utils.size(claloquo.context.attributes) || 'hldraw' == cedonu)) {
return false;
}
if (String(mulinkey) === String(/^()(.*?)()$/)) {
return true;
}
var ketami = Utils.tightMatch(mulinkey, omiepon.textContent);
return ketami && ketami[2] ? ketami[2].length > 0 : false;
}, this.getMatchedText = function(bamidist, kicuput, opeyuey, ledadu) {
if (ledadu = false, kicuput && String(kicuput) !== String(/^()(.*?)()$/) && 'pagination' != opeyuey) {
var quenebe = Utils.tightMatch(kicuput, bamidist.textContent);
return quenebe ? ledadu ? quenebe[2] : Utils.cleanTrim(quenebe[2]) : '';
}
return ledadu ? bamidist.textContent : Utils.cleanTrim(bamidist.textContent);
}, this.getStartOffset = function(cuecedey, enkidam, getunas) {
if (enkidam && String(enkidam) !== String(/^()(.*?)()$/) && 'pagination' != getunas) {
var nikelu = cuecedey.textContent;
var luegola = Utils.tightMatch(enkidam, nikelu);
return luegola ? nikelu.search(enkidam) + luegola[1].length : 0;
}
return 0;
}, this.getStartNode = function(pocochhub, ofeckjor, pudiewu, sijayut) {
for (var sopefor = pocochhub.childNodes, horieda = ofeckjor;
horieda < sopefor.length;
) {
var kuporut = sopefor[horieda];
var huswuswo = 0;
if (3 == kuporut.nodeType) {
for (;
huswuswo < kuporut.nodeValue.length;
) {
if (sijayut == pudiewu) {
return {
startNode: kuporut,
startOffset: huswuswo,
startNodeIndex: horieda,
globalCount: sijayut
};
}
huswuswo++, sijayut++;
}
} else if (1 == kuporut.nodeType) {
var urnerscek = this.getStartNode(kuporut, 0, pudiewu, sijayut);
if (urnerscek.startNode) {
return urnerscek;
}
sijayut = urnerscek.globalCount;
}
horieda++;
}
return {
startNode: undefined,
startOffset: undefined,
startNodeIndex: null,
globalCount: sijayut
};
}, this.isSameTier = function(puhebik, claribog) {
var erurquog = Array.prototype.slice.call(Utils.querySelectorAll(puhebik));
var repiegri = Array.prototype.slice.call(Utils.querySelectorAll(claribog));
return erurquog.every(function(jerorab) {
return repiegri.indexOf(jerorab) >= 0;
}) && repiegri.length == erurquog.length ? true : false;
}, this.isSuperTier = function(nahakdray, dojuquo, ibiepom) {
var sumifid = Array.prototype.slice.call(Utils.querySelectorAll(nahakdray));
var kedathun = Array.prototype.slice.call(Utils.querySelectorAll(dojuquo));
var eyalit = Array.prototype.slice.call(Utils.querySelectorAll(ibiepom));
return sumifid.every(function(cacece) {
return eyalit.indexOf(cacece) >= 0;
}) && eyalit.length > kedathun.length ? true : false;
}, this.isSuperset = function(nadrofjol, ceteno) {
var detoogie = Array.prototype.slice.call(Utils.querySelectorAll(nadrofjol));
var wugelu = Array.prototype.slice.call(Utils.querySelectorAll(ceteno));
return detoogie.every(function(quedulu) {
return wugelu.indexOf(quedulu) >= 0;
}) && wugelu.length > detoogie.length ? true : false;
}, this.getStartOffset = function(ekrimhaf, dadofiep, tecequa) {
if (dadofiep && String(dadofiep) !== String(/^()(.*?)()$/) && 'pagination' != tecequa) {
var daglupip = ekrimhaf.textContent;
var cofosloo = Utils.tightMatch(dadofiep, daglupip);
return cofosloo ? daglupip.search(dadofiep) + cofosloo[1].length : 0;
}
return 0;
}, this.allMatchRegex = function(falumu, taheji) {
for (var dikitee = 0;
dikitee < falumu.length;
dikitee++) {
if (!falumu[dikitee].match(taheji)) {
return false;
}
}
return true;
};
this.escape = function(quagirob) {
return quagirob.replace(/[-\/^$*+?.()|[\]{}]/g, '\\$&');
}, this.unescape = function(soflide) {
return soflide.replace(/\\([-\/\\^$*+?.()|[\]{}])/g, '$1');
}, 'undefined' != typeof window && (window.$k || (window.$k = {}), window.$k.regex = this);
};
return chothoujo;
}]);
angular.module('Kimono').factory('Selections',
['Regex', 'Utils',
function (Regex, Utils) {
var SelectionsFn = new function() {
var nekstomol = function(abtornul) {
for (var swanugou = Utils.querySelectorAll(abtornul), nobohi = 0;
nobohi < swanugou.length;
nobohi++) {
if (Utils.querySelectorAll('li', swanugou[nobohi]).length > 1) {
return false;
}
if (Utils.querySelectorAll('td', swanugou[nobohi]).length > 1) {
return false;
}
if (Utils.querySelectorAll('th', swanugou[nobohi]).length > 1) {
return false;
}
if (Utils.querySelectorAll('tr', swanugou[nobohi]).length > 1) {
return false;
}
if (Utils.querySelectorAll('p', swanugou[nobohi]).length > 1) {
return false;
}
if (Utils.querySelectorAll('div', swanugou[nobohi]).length > 1) {
return false;
}
if (Utils.querySelectorAll('option', swanugou[nobohi]).length > 1) {
return false;
}
}
return true;
};
var nideyay = function(punudfap, nerednis) {
nerednis[nerednis.length - 1] = '';
for (var dapoda = [], oroput = 0;
oroput < punudfap.length;
oroput++) {
dapoda.push(punudfap[oroput].str), dapoda.push(nerednis[oroput]);
}
return dapoda.join('');
};
var difnirnas = function(quecele, nounkimooy, erufsun) {
nounkimooy[nounkimooy.length - 1] = '';
for (var lumiho = [], tofouter = 0;
tofouter < quecele.length;
tofouter++) {
lumiho.push(quecele[tofouter].tagName), erufsun.nthChild[tofouter] && lumiho.push(quecele[tofouter].nthChild), erufsun.id && lumiho.push(quecele[tofouter].id), erufsun.classList[tofouter] && lumiho.push(quecele[tofouter].classList), lumiho.push(nounkimooy[tofouter]);
}
return lumiho.join('');
};
var borigid = function(sohono) {
var celales = sohono.shift();
if (0 == sohono.length) {
return celales;
}
for (var noofofri = [], stepagem = 0;
stepagem < celales.length;
stepagem++) {
for (var senefor = false, ekepab = 0;
ekepab < sohono.length;
ekepab++) {
if (-1 == sohono[ekepab].indexOf(celales[stepagem])) {
var senefor = true;
break;
}
}
senefor || noofofri.push(celales[stepagem]);
}
return noofofri;
};
var mahiquo = function(goobedi) {
for (var nujajoom, irigiek = 0, efusoln = 1;
efusoln < goobedi.length;
efusoln++) {
var isisaf = parseInt(goobedi[efusoln - 1].replace(/:.*?\((\d+)\)/, '$1'));
var humuejay = parseInt(goobedi[efusoln].replace(/:.*?\((\d+)\)/, '$1'));
if (nujajoom = humuejay - isisaf > 0 ? humuejay - isisaf : nujajoom, nujajoom != irigiek && efusoln > 1 && humuejay - isisaf > 0) {
nujajoom = null;
break;
}
}
return nujajoom;
};
var hasMultipleNames = function (tagNames) {
var hasMultipleNames = true;
var i = 1;
for (; i < tagNames.length; i++) {
if (tagNames[0] != tagNames[i]) {
hasMultipleNames = false;
break;
}
}
return hasMultipleNames;
};
var recursionCounter = 0;
var findCommonAncestorDistances = function (firstElements, firstElementZeros/*, document*/) {
// If we have recursed 1000 times, stop
if (1e5 == recursionCounter++) {
return false;
}
// Make a copy of the elements
var resolvedElements = [];
var len = firstElementZeros.length;
var i = 0;
for (i < firstElementZeros.length; i++) {
resolvedElements[i] = firstElements[i];
}
// Walk up each of the elements for its zeroes count
for (var i = 0; len > i; i++) {
for (var j = 0; j < firstElementZeros[i]; j++) {
resolvedElements[i] = resolvedElements[i].parentNode;
}
}
// Determine if there is only one element
var thereIsOnlyOneElement = true;
var i = 1;
for (; len > i; i++) {
if (resolvedElements[0] !== resolvedElements[i]) {
thereIsOnlyOneElement = false;
break;
}
}
// If there is only one element, return the zeroes
if (thereIsOnlyOneElement) {
return firstElementZeros;
}
// Walk over each element
var stillLowEnough = true;
var i = len - 1;
for (; i >= 0 && stillLowEnough; i--) {
// If we haven't the body and we haven't reached 6 levels, increment our traversal
if (resolvedElements[i] !== document.body && 6 != firstElementZeros[i]) {
firstElementZeros[i]++;
stillLowEnough = false;
break;
}
// If we have walked over all elements, return false
if (0 == i) {
return false;
}
// Update the element value to 0
firstElementZeros[i] = 0;
stillLowEnough = true;
}
// Keep on recursing
return findCommonAncestorDistances(firstElements, firstElementZeros, document);
};
var getNextNode = function(node) {
// If the node has children, return the first one
if (node.hasChildNodes()) {
return node.firstChild;
}
// Otherwise, find the next parent with a sibling
for (;
node && !node.nextSibling;
) {
node = node.parentNode;
}
// If we have a node, return said sibling or nothing
return node ? node.nextSibling : null;
};
this.getTierSelectors = function(nofloneet, getibu, detilum) {
var duesaci;
var flinalen = nofloneet.split(' > ');
var kayjubob = [];
duesaci = flinalen.length > getibu ? flinalen.length - getibu : 0;
for (var suegikal = '', hecomoo = 0;
duesaci > hecomoo;
hecomoo++) {
suegikal += flinalen[hecomoo], suegikal += ' > ';
}
for (var hecomoo = duesaci;
hecomoo < flinalen.length;
hecomoo++) {
var seedquadel = flinalen[hecomoo].match(/(.*?)(:nth.*?)?(\..*?)?(#.*)?$/);
seedquadel && kayjubob.push({
tagname: seedquadel[1],
nthchild: seedquadel[2] ? seedquadel[2] : '',
classname: seedquadel[3] ? seedquadel[3] : '',
idvalue: seedquadel[4] ? seedquadel[4] : ''
});
}
var kefuroy = [];
kefuroy.push(nofloneet);
var erofir = 0;
var orugun = 0;
var poputus = function(gesoba, linufi, scudesjef, beguda) {
orugun++, erofir != detilum && (gesoba > 0 && (linufi += ' > '), linufi += kayjubob[gesoba].tagname, scudesjef && beguda ? linufi += kayjubob[gesoba].nthchild + kayjubob[gesoba].classname + kayjubob[gesoba].idvalue : scudesjef && !beguda ? linufi += kayjubob[gesoba].classname + kayjubob[gesoba].idvalue : !scudesjef && beguda && (linufi += kayjubob[gesoba].nthchild), gesoba < kayjubob.length - 1 ? (poputus(gesoba + 1, linufi, true, true), poputus(gesoba + 1, linufi, false, true), kayjubob[gesoba + 1].tagname.match(/(td|th)/) || (poputus(gesoba + 1, linufi, true, false), poputus(gesoba + 1, linufi, false, false))) : (linufi = suegikal + linufi, Regex.isSuperTier(kefuroy[0], kefuroy[kefuroy.length - 1], linufi) && nekstomol(linufi) && (kefuroy.push(linufi), erofir++)));
};
return poputus(0, '', true, true), poputus(0, '', false, true), kayjubob[0].tagname.match(/(td|th)/) || (poputus(0, '', false, false), poputus(0, '', true, false)), kefuroy;
};
// Helper to collect a depth first array of nodes in a `range`
this.getRangeSelectedNodes = function(range) {
// Localize the start and end container
var startContainer = range.startContainer;
var endContainer = range.endContainer;
// If the range starts and ends on the same node, return it
if (startContainer == endContainer) {
return [startContainer];
}
// Otherwise, depth first collect each of the nodes
for (var retArr = [];
startContainer && startContainer != endContainer;) {
retArr.push(startContainer = getNextNode(startContainer));
}
// Add on missing parent nodes to collection
for (startContainer = range.startContainer;
startContainer && startContainer != range.commonAncestorContainer;) {
retArr.unshift(startContainer);
startContainer = startContainer.parentNode;
}
// Return our collection
return retArr;
};
this.pruneSelections = function(mobunhip, iparin) {
var horyech = [];
var rakklipor = iparin.split(' > ');
rakklipor.forEach(function(opalus) {
var nagnetooy = opalus.split(' ');
horyech = horyech.concat(nagnetooy);
});
for (var mipuhick = horyech[horyech.length - 1], camegod = mipuhick.substring(0, mipuhick.search(/[:\.#]/)), fubouxar = [], itefney = 0;
itefney < mobunhip.length;
itefney++) {
('*' == camegod || camegod == mobunhip[itefney].element.get(0).tagName.toLowerCase()) && fubouxar.push(mobunhip[itefney]);
}
return fubouxar;
};
this.getSuperSpecificSelector = function(ledeca) {
for (var fiklafum, leheve, sadurbrur = [], dihapu = [], bojilu = [], utolnus = [];
0 == sadurbrur.length || 'body' != sadurbrur[0].tagName;
) {
for (var laralu = [], esorey = [], rocegle = [], disinos = [], buquibli = {}, opoonar = false, sagokin = false, bisape = 0;
bisape < ledeca.length;
bisape++) {
laralu[bisape] = ledeca[bisape].tagName.toLowerCase(), esorey[bisape] = ':nth-child(' + parseInt(jQuery(ledeca[bisape]).index() + 1) + ')';
var higoluf = [''];
if (ledeca[bisape].getAttribute('class') != undefined) {
for (var ofafan = ledeca[bisape].className.split(/\s+/), efegug = 0;
efegug < ofafan.length;
efegug++) {
!ofafan[efegug].match(/^\s*$/) && ofafan[efegug].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/) && higoluf.push(ofafan[efegug]);
}
}
rocegle[bisape] = higoluf;
var pabeyim = ledeca[bisape].id;
disinos[bisape] = pabeyim ? '#' + pabeyim : '', disinos[bisape].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/) || (disinos[bisape] = '');
}
if (hasMultipleNames(laralu)) {
buquibli = {
tagName: laralu[0],
nthChild: '',
classList: '',
id: '',
str: ''
};
} else {
if (sadurbrur.length > 0) {
sagokin = true;
break;
}
if (Regex.allMatchRegex(laralu, /^(td|th)$/) && (fiklafum = []), !fiklafum) {
bojilu = [];
for (var cabibot = 0;
cabibot < ledeca.length;
cabibot++) {
bojilu.push(0);
}
if (fiklafum = findCommonAncestorDistances(ledeca, bojilu, document), !fiklafum) {
return null;
}
for (var satufra = Math.min.apply(null, fiklafum), bisape = 0;
bisape < ledeca.length;
bisape++) {
var posihu = fiklafum[bisape] - satufra;
if (posihu > 0 && 3 >= posihu) {
for (var efegug = 0;
posihu > efegug;
efegug++) {
ledeca[bisape] = ledeca[bisape].parentNode, opoonar = true;
}
} else if (posihu > 3) {
return null;
}
}
}
opoonar || (buquibli = {
tagName: '*',
nthChild: '',
classList: '',
id: '',
str: '*'
});
}
if (!opoonar) {
hasMultipleNames(esorey) && (buquibli.nthChild = esorey[0]);
var yekstab = borigid(rocegle);
yekstab.length > 1 && (buquibli.classList = yekstab.join('.')), hasMultipleNames(disinos) && (buquibli.id = disinos[0]), buquibli.str = [buquibli.tagName, buquibli.nthChild, buquibli.classList, buquibli.id].join(''), sadurbrur.unshift(buquibli), dihapu.unshift(leheve);
var dusousen = nideyay(sadurbrur, dihapu);
if (utolnus.push({
selector: dusousen,
selectorComponents: sadurbrur.slice(0),
separators: dihapu.slice(0),
numResults: Utils.querySelectorAll(dusousen).length
}), 'body' != laralu[0]) {
for (var bisape = 0;
bisape < ledeca.length;
bisape++) {
ledeca[bisape] = ledeca[bisape].parentNode;
}
}
leheve = ' > ';
}
if (sagokin) {
break;
}
}
for (var satufra = utolnus[0].numResults, bisape = 1;
bisape < utolnus.length && (utolnus[bisape].numResults < satufra && (satufra = utolnus[bisape].numResults), 1 != satufra);
bisape++) {
}
for (var hirevi = Math.min(utolnus.length - 1, 4), bisape = hirevi;
bisape < utolnus.length;
bisape++) {
if (utolnus[bisape].numResults == satufra) {
var peecoudo = utolnus[bisape].selector;
break;
}
}
for (var sadurbrur = utolnus[bisape].selectorComponents, dihapu = utolnus[bisape].separators, cuklutop = [], bisape = 0;
bisape < sadurbrur.length + 1;
bisape++) {
cuklutop[bisape] = [];
for (var efegug = 0;
efegug < sadurbrur.length;
efegug++) {
cuklutop[bisape][sadurbrur.length - 1 - efegug] = bisape > efegug
}
}
var nubufood;
var iguereb = difnirnas(sadurbrur, dihapu, {
id: false,
classList: cuklutop[0],
nthChild: cuklutop[0]
});
if (Regex.isSuperset(peecoudo, iguereb) || (nubufood = iguereb), !nubufood) {
var iguereb = difnirnas(sadurbrur, dihapu, {
id: true,
classList: cuklutop[0],
nthChild: cuklutop[0]
});
Regex.isSuperset(peecoudo, iguereb) || (nubufood = iguereb);
}
if (!nubufood) {
for (var bisape = 1;
bisape < cuklutop.length;
bisape++) {
var iguereb = difnirnas(sadurbrur, dihapu, {
id: true,
classList: cuklutop[bisape],
nthChild: cuklutop[0]
});
if (!Regex.isSuperset(peecoudo, iguereb)) {
nubufood = iguereb;
break;
}
}
}
if (!nubufood) {
for (var bisape = 1;
bisape < cuklutop.length;
bisape++) {
var iguereb = difnirnas(sadurbrur, dihapu, {
id: true,
classList: cuklutop[cuklutop.length - 1],
nthChild: cuklutop[bisape]
});
if (!Regex.isSuperset(peecoudo, iguereb)) {
nubufood = iguereb;
break;
}
}
}
return nubufood || (nubufood = peecoudo), nekstomol(nubufood, document) ? nubufood : null;
};
this.buildSelectorForN = function (selections, datatypes, datatypeIndex) {
var commonAncestorDistances, abamum;
var lerelod = [];
var dofanuef = [];
var firstElements = [];
var firstElementZeros = [];
var giebuquo = [];
// Create a collection of first elements from our selections
var i = 0;
for (i < selections.length; i++) {
// If the selection's jquery selection has an element, save it
var firstElement = selections[i].firstElement.get(0);
if ('undefined' != typeof firstElement && firstElement) {
firstElements.push(firstElement);
firstElementZeros.push(0);
}
}
// If we have previously rejected tiers
var wasRejected = false;
var rejectedTierSelectors = datatypes[datatypeIndex].selectorObjects[0]
? datatypes[datatypeIndex].selectorObjects[0].rejectedTiers.join(',')
: '';
if ('' != rejectedTierSelectors) {
// Find out if any of the rejected tiers match our current selection
var rejectedTierElements = Utils.querySelectorAll(rejectedTierSelectors);
var i = 0;
for (i < rejectedTierElements.length; i++) {
if (rejectedTierElements[i] === firstElements[firstElements.length - 1]) {
wasRejected = true;
break;
}
}
}
// Loop untin we have no items left or have hit the <body>
for (; 0 == lerelod.length || 'body' != lerelod[0].tagName;) {
var tagNames = [];
var nthChildSelector = [];
var classesArr = [];
var idSelectors = [];
var elaykor = {};
var cephusip = false;
var quipoquo = false;
// For each of the first elements
var i = 0;
for (; i < firstElements.length; i++) {
// Save the tag name and its index as selector
tagNames[i] = firstElements[i].tagName.toLowerCase();
nthChildSelector[i] = ':nth-child(' + parseInt(jQuery(firstElements[i]).index() + 1) + ')';
// If the element has classes, break them up and save
var classes = [''];
if (firstElements[i].getAttribute('class') != undefined) {
// For each of the classes in the classname
var _classes = firstElements[i].className.split(/\s+/);
var j = 0;
for (; j < _classes.length; j++) {
// If the class is more than whitespace/an empty string and only alphanumeric characters or a dash
if (!_classes[j].match(/^\s*$/) && _classes[j].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)) {
// Save the class
classes.push(_classes[j]);
}
}
}
// Save the classes for later
classesArr[i] = classes;
// If the element has an id, build its selector
var id = firstElements[i].id;
idSelectors[i] = id ? '#' + id : '';
// If the id isn't alphanumeric/dash, coerce it to an empty string
if (!idSelectors[i].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)) {
idSelectors[i] = '';
}
}
// If we have multiple tag names
if (hasMultipleNames(tagNames)) {
// Generate parameters for the first one
elaykor = {
tagName: tagNames[0],
nthChild: '',
classList: '',
id: '',
str: ''
};
} else {
if (lerelod.length > 0) {
quipoquo = true;
break;
}
// If any of the tags are table cells, generate an array
if (Regex.allMatchRegex(tagNames, /^(td|th)$/){
commonAncestorDistances = [];
}
// If we don't have an array
if (!commonAncestorDistances) {
// Generate an array of zeroes for each of the element
firstElementZeros = [];
var k = 0;
for (k < firstElements.length; k++) {
firstElementZeros.push(0);
}
// If we could not find common ancestor distances, return nothing
commonAncestorDistances = findCommonAncestorDistances(firstElements, firstElementZeros, document);
if (!commonAncestorDistances) {
return null;
}
// Find the lowest distance
var minimumDistance = Math.min.apply(null, commonAncestorDistances);
// Walk over each of the first elements
var i = 0;
for (i < firstElements.length; i++) {
// If the distance is far but not too far from the minimum
var distanceDifference = commonAncestorDistances[i] - minimumDistance;
if (distanceDifference > 0 && 3 >= distanceDifference) {
// Walk to the same ancestor node
// DEV: I don't like this fuzzy matching
for (var j = 0; distanceDifference > j; j++) {
firstElements[i] = firstElements[i].parentNode;
cephusip = true;
}
// Otherwise, if the element is too far, return null
} else if (distanceDifference > 3) {
return null;
}
}
}
cephusip || (elaykor = {
tagName: '*',
nthChild: '',
classList: '',
id: '',
str: '*'
});
}
if (!cephusip) {
if (hasMultipleNames(nthChildSelector)) {
elaykor.nthChild = nthChildSelector[0];
} else if (wasRejected) {
var dikleyax = mahiquo(nthChildSelector);
if (dikleyax) {
for (var ripugi = parseInt(nthChildSelector[0].replace(/:.*?\((\d+)\)/, '$1')), k = 0;
k < nthChildSelector.length;
k++) {
var quipaquo = parseInt(nthChildSelector[k].replace(/:.*?\((\d+)\)/, '$1'));
ripugi > quipaquo && (ripugi = quipaquo);
}
elaykor.nthChild = [':nth-child(', dikleyax, 'n + ', ripugi, ')'].join('');
}
}
var oraguep = borigid(classesArr);
oraguep.length > 1 && (elaykor.classList = oraguep.join('.')), hasMultipleNames(idSelectors) && (elaykor.id = idSelectors[0]), 'pagination' == datatypeIndex && (elaykor.nthChild = ''), elaykor.str = [elaykor.tagName, elaykor.nthChild, elaykor.classList, elaykor.id].join(''), lerelod.unshift(elaykor), dofanuef.unshift(abamum);
var egukut = nideyay(lerelod, dofanuef);
if (giebuquo.push({
selector: egukut,
selectorComponents: lerelod.slice(0),
separators: dofanuef.slice(0),
numResults: Utils.querySelectorAll(egukut).length
}), 'body' != tagNames[0]) {
for (var i = 0;
i < firstElements.length;
i++) {
firstElements[i] = firstElements[i].parentNode;
}
}
abamum = ' > ';
}
if (quipoquo) {
break;
}
}
for (var wuheque = giebuquo[0].numResults, i = 1;
i < giebuquo.length && (giebuquo[i].numResults < wuheque && (wuheque = giebuquo[i].numResults), 1 != wuheque);
i++) {
}
for (var ripugi = 'pagination' == datatypeIndex ? 0 : Math.min(giebuquo.length - 1, 4), i = ripugi;
i < giebuquo.length;
i++) {
if (giebuquo[i].numResults == wuheque) {
var kakukop = giebuquo[i].selector;
break;
}
}
for (var lerelod = giebuquo[i].selectorComponents, dofanuef = giebuquo[i].separators, bemoonet = [], i = 0;
i < lerelod.length + 1;
i++) {
bemoonet[i] = [];
for (var j = 0;
j < lerelod.length;
j++) {
bemoonet[i][lerelod.length - 1 - j] = i > j
}
}
var venoosi;
var quechagtouf = difnirnas(lerelod, dofanuef, {
id: false,
classList: bemoonet[0],
nthChild: bemoonet[0]
});
if (Regex.isSuperset(kakukop, quechagtouf) || (venoosi = quechagtouf), !venoosi) {
var quechagtouf = difnirnas(lerelod, dofanuef, {
id: true,
classList: bemoonet[0],
nthChild: bemoonet[0]
});
Regex.isSuperset(kakukop, quechagtouf) || (venoosi = quechagtouf);
}
if (!venoosi) {
for (var i = 1;
i < bemoonet.length;
i++) {
var quechagtouf = difnirnas(lerelod, dofanuef, {
id: true,
classList: bemoonet[i],
nthChild: bemoonet[0]
});
if (!Regex.isSuperset(kakukop, quechagtouf)) {
venoosi = quechagtouf;
break;
}
}
}
if (!venoosi) {
for (var i = 1;
i < bemoonet.length;
i++) {
var quechagtouf = difnirnas(lerelod, dofanuef, {
id: true,
classList: bemoonet[bemoonet.length - 1],
nthChild: bemoonet[i]
});
if (!Regex.isSuperset(kakukop, quechagtouf)) {
venoosi = quechagtouf;
break;
}
}
}
return venoosi || (venoosi = kakukop), nekstomol(venoosi, document) ? venoosi : null;
};
this.removedNthChildForTableElements = function(lowoquo, sakiekip) {
if ('td' == lowoquo.substr(lowoquo.lastIndexOf(':') - 2, 2)) {
var dasolue = sakiekip.lastIndexOf('> ') + 2;
if ('td' == sakiekip.substr(dasolue, 2) && ':' != sakiekip[dasolue + 2]) {
return true;
}
} else if ('th' == lowoquo.substr(lowoquo.lastIndexOf(':') - 2, 2)) {
var dasolue = sakiekip.lastIndexOf('> ') + 2;
if ('th' == sakiekip.substr(dasolue, 2) && ':' != sakiekip[dasolue + 2]) {
return true;
}
} else {
if ('*' != lowoquo.substr(lowoquo.lastIndexOf(':') - 2, 1)) {
return false;
}
var dasolue = sakiekip.lastIndexOf('> ') + 2;
if ('*' == sakiekip.substr(dasolue, 2) && ':' != sakiekip[dasolue + 1]) {
return true;
}
}
};
this.normalizeAllTables = function() {
var simelum = Array.prototype.slice.call(document.getElementsByTagName('table'));
simelum.forEach(function(camoldrof, fephuqui) {
var cibamo = camoldrof.id || 'kim-normalized-table-' + fephuqui;
cibamo.match(':') && (cibamo = 'kim-normalized-table-' + fephuqui), camoldrof.id = cibamo;
var jigijey = Utils.querySelectorAll('tr', camoldrof);
if (jigijey.length > 0) {
for (var baquejig = jigijey[0].children.length, jobiro = 0;
jobiro < jigijey[0].children.length;
jobiro++) {
var beziha = jigijey[0].children[jobiro];
var dimoymuk = parseInt(beziha.getAttribute('colspan'));
dimoymuk && (baquejig += dimoymuk - 1);
}
for (var gojugu = jigijey[0].children.length, forushie = [], edbernot = [], jobiro = 0;
baquejig > jobiro;
jobiro++) {
forushie[jobiro] = 0, edbernot[jobiro] = '';
}
for (var jobiro = 0;
jobiro < jigijey.length;
jobiro++) {
for (var clapiru = jigijey[jobiro], gelasno = 0;
gelasno < clapiru.children.length;
gelasno++) {
var beziha = clapiru.children[gelasno];
var dimoymuk = parseInt(beziha.getAttribute('colspan'));
var najatal = beziha.tagName.toLowerCase();
if (dimoymuk) {
for (var bamuki = 0;
dimoymuk - 1 > bamuki;
bamuki++) {
var lejejoo = document.createElement(najatal);
lejejoo.style.display = 'none', lejejoo.className = 'kim-table-normalizer', lejejoo.innerHTML = beziha.textContent, gelasno + 1 >= clapiru.children.length ? clapiru.appendChild(lejejoo) : clapiru.insertBefore(lejejoo, clapiru.children[gelasno + 1]);
}
}
}
for (var gojugu = clapiru.children.length, gelasno = 0;
gojugu > gelasno;
gelasno++) {
if (forushie[gelasno] > 0) {
if (clapiru.children.length > 0) {
var najatal = clapiru.children[0].tagName.toLowerCase();
} else {
var najatal = 'td';
}
var wujodu = document.createElement(najatal);
wujodu.style.display = 'none', wujodu.className = 'kim-table-normalizer', wujodu.innerHTML = edbernot[gelasno];
var muguba = clapiru.children.length;
muguba > gelasno ? clapiru.insertBefore(wujodu, clapiru.children[gelasno]) : clapiru.appendChild(wujodu), forushie[gelasno]--;
}
}
for (var umnoubcoup = clapiru.children, bamuki = 0;
bamuki < umnoubcoup.length;
bamuki++) {
var dotene = umnoubcoup[bamuki].getAttribute('rowspan');
dotene && (forushie[bamuki] += dotene - 1, edbernot[bamuki] = umnoubcoup[bamuki].textContent);
}
}
}
});
}, 'undefined' != typeof window && (window.$k || (window.$k = {}), window.$k.selections = this);
};
return SelectionsFn;
}]), angular.module('Kimono').factory('Utils', ['Config', 'Common', function(Config, Common) {
var cookscomat = new function() {
this.startsWith = function(str, startStr) {
return 0 === str.toLowerCase().indexOf(startStr.toLowerCase());
};
// Detect whether an element is part of kimono or not
this.isKimonoChild = function(el, checkClass) {
// If there is no element, return false
if (!el[0]) {
return false;
}
// If the element is inside of `#Kimonoify`, return true
if (jQuery.contains(jQuery('#Kimonify')[0], el[0])) {
return true;
}
// If the element is in a highlighted section, return true
// TODO: What is a highlight wrapper
for (var dokiphou = jQuery('.kim-highlight-wrapper'), ontutop = 0;
ontutop < dokiphou.length;
ontutop++) {
if (dokiphou[ontutop] && jQuery.contains(dokiphou[ontutop], el[0])) {
return true;
}
}
// If the element is inside of Kimono hint
// TODO: What is a Kimono hint?
for (var nerinu = jQuery('.kim-hint'), ontutop = 0;
ontutop < nerinu.length;
ontutop++) {
if (nerinu[ontutop] && jQuery.contains(nerinu[ontutop], el[0])) {
return true;
}
}
// If we should check the class, check it for wrapper or a hint
if (checkClass) {
return el[0].className.match(/kim-highlight-wrapper|kim-hint/);
}
// If the element is inside of a temp special element, return true
var $tempSpecial = jQuery('.kim-TempSpecial')[0];
return $tempSpecial && jQuery.contains($tempSpecial, el[0]) ? true : el[0].className.match(/kim|kim-TempSpecial|kim-highlight-wrapper|kim-hint/);
};
this.linkEnable = function() {
jQuery('a:not(.kim a, #Kimonify a) ').each(function() {
var daseked = jQuery(this);
daseked.attr('href', daseked.attr('kimonohref')), daseked.attr('target', '_self'), daseked.attr('onmousedown', daseked.attr(' kimonomousedown')), daseked.attr('onclick', daseked.attr(' kimonoclick')), daseked.attr('onmouseup', daseked.attr(' kimonomouseup')), daseked.removeAttr('kimonohref'), daseked.removeAttr('kimonomousedown'), daseked.removeAttr('kimonoclick'), daseked.removeAttr('kimonomouseup');
});
};
this.linkDisable = function() {
jQuery('a:not(.kim a, #Kimonify a)').each(function() {
var laybekes = jQuery(this);
laybekes.attr('kimonohref', laybekes.attr('href')), laybekes.attr('kimonomousedown', laybekes.attr('onmousedown')), laybekes.attr('kimonoclick', laybekes.attr('onclick')), laybekes.attr('kimonomouseup', laybekes.attr('onmouseup')), laybekes.attr('target', '_self'), laybekes.removeAttr('href'), laybekes.removeAttr('target'), laybekes.removeAttr('onmousedown'), laybekes.removeAttr('onclick'), laybekes.removeAttr('onmouseup');
});
};
this.getElementPos = function(sipogil, quohonach, epimug) {
var quoklutoth = document.createRange();
quoklutoth.selectNodeContents(sipogil);
var glifismum = quoklutoth.getBoundingClientRect();
var claputram = glifismum.left - 6;
var amafueb = glifismum.top + jQuery(document).scrollTop() - document.body.clientTop - 2;
return {
x: claputram - quohonach,
y: amafueb - epimug
};
};
this.isIntersecting = function(etamuem, bedidrop) {
$this = jQuery(etamuem);
var sivooklel = $this.offset();
var apamey = [sivooklel.left, sivooklel.left + $this.outerWidth()];
var pemukup = [sivooklel.top, sivooklel.top + $this.outerHeight()];
$that = jQuery(bedidrop);
var humila = $that.offset();
var lepulcak = [humila.left, humila.left + $that.outerWidth()];
var jajeetu = [humila.top, humila.top + $that.outerHeight()];
return lepulcak[0] < apamey[1] && lepulcak[1] > apamey[0] && jajeetu[0] < pemukup[1] && jajeetu[1] > pemukup[0];
};
this.animate = function(ekobul, shiedafol, baduku, mequequi) {
ekobul.addClass('km-animated ' + shiedafol), setTimeout(function() {
ekobul.removeClass('km-animated ' + shiedafol), mequequi && mequequi();
}, parseInt(baduku));
};
this.getUrlParam = function(johupu) {
return decodeURIComponent((RegExp(johupu + '=(.+?)(&|$)').exec(location.search) || [, null])[1]);
};
var idifroy = function(porodask, tuflule, erootaf) {
var tuflule = encodeURIComponent(tuflule);
if (erootaf.match(/\?/)) {
var krucodrued = new RegExp('(?!\\?|&)' + porodask + '=.*?(?=&|$)', 'g');
return erootaf.match(krucodrued) ? erootaf.replace(krucodrued, porodask + '=' + tuflule) : erootaf + '&' + porodask + '=' + tuflule;
}
return erootaf + '?' + porodask + '=' + tuflule;
};
this.addUrlParameters = function(buerija) {
var guepsarnep = window.location.search;
_.each(buerija, function(giquafcuf, wehagkir) {
guepsarnep = idifroy(wehagkir, giquafcuf, guepsarnep);
}), window.location.search = guepsarnep;
};
this.getTargetUrl = function() {
return 'phantom' == Config.clientEnv ? window && window.location ? window.location.href : 'null' : 'angular' == Config.clientEnv ? decodeURIComponent((RegExp('url=(.+?)(&|$)').exec(location.search) || [, null])[1]) || 'null' : 'chrome' == Config.clientEnv ? window.location.href || 'null' : 'null';
};
this.getBaseUrl = function() {
var femtiseb = jQuery('base');
var moleroop = jQuery(femtiseb[femtiseb.length - 1]).attr('href');
return moleroop || this.getTargetUrl();
};
this.decodeHtml = function(nucutquob) {
var hagixan = document.createElement('textarea');
return hagixan.innerHTML = nucutquob, hagixan.value;
};
this.drawHint = function(ifockim, halehib, blobahuep, cabibo, eckorey, sequeni, wabehot, quilake, maswaja, edhufik) {
var sequeni = sequeni || 'fixed';
var wabehot = wabehot || 'down';
var quilake = quilake || 'left';
var befihab = maswaja ? '' : 'attention';
var emimier = jQuery('<div class="kim-hint ' + befihab + '" style="width:' + eckorey.width + 'px;min-height:' + eckorey.height + ';position:' + sequeni + '; top:' + cabibo.y + 'px; left:' + cabibo.x + 'px;"><div class="kim-wrapper"><h3>' + halehib + '</h3><p>' + blobahuep + '</p><a class="kim-dismiss-button"></a></div></div>');
'down' == wabehot ? emimier.find('.kim-wrapper').append('<div class="kim-arrow-down"></div>') : 'up' == wabehot && emimier.find('.kim-wrapper').prepend('<div class="kim-arrow-up"></div>'), 'right' == quilake ? emimier.find('.kim-arrow-up, .kim-arrow-down').css('right', '5px') : 'left' == quilake && emimier.find('.kim-arrow-up, .kim-arrow-down').css('left', '5px'), cabibo.right && (emimier.css('left', 'auto'), emimier.css('right', cabibo.right + 'px')), cabibo.bottom && (emimier.css('top', 'auto'), emimier.css('bottom', cabibo.bottom + 'px'));
var ticopad = function() {
edhufik && edhufik();
jQuery(this);
emimier.css('opacity', 0), setTimeout(function() {
emimier.remove();
}, 200);
};
return emimier.find('.kim-dismiss-button').bind('click', function() {
ticopad();
}), jQuery(ifockim).append(emimier), setTimeout(function() {
emimier.css('opacity', .95);
}, 10), ticopad;
};
this.drawTooltip = function(behenor, quajaboul, lopasab, jukagam) {
var lopasab = lopasab || 'down';
var jukagam = jukagam || 'left';
var nisufep = false;
var aluengif = jQuery('<div class="kim-hint kim-tooltip" style="position:absolute; top:' + quajaboul.y + 'px; left:' + quajaboul.x + 'px;"><div class="kim-wrapper"><p>' + behenor + '</p></div></div>');
'down' == lopasab ? aluengif.find('.kim-wrapper').append('<div class="kim-arrow-down"></div>') : 'up' == lopasab && aluengif.find('.kim-wrapper').prepend('<div class="kim-arrow-up"></div>'), 'right' == jukagam ? aluengif.find('.kim-arrow-up, .kim-arrow-down').css('margin-left', '191px') : 'center' == jukagam && (aluengif.find('.kim-arrow-up, .kim-arrow-down').css('margin', '0 23px'), aluengif.css('text-align', 'center')), quajaboul.right && (aluengif.css('left', 'auto'), aluengif.css('right', quajaboul.right + 'px'));
var jiquorof = function() {
nisufep || pujecro();
};
var pujecro = function() {};
return aluengif.bind('mouseenter', function() {
nisufep = true;
}), aluengif.bind('mouseleave', function() {
pujecro();
}), jQuery('body').append(aluengif), setTimeout(function() {
aluengif.css('opacity', .95);
}, 10), jiquorof;
};
this.querySelectorAll = function(selector, elCollection /* docFrag */) {
// If there isn't a selector or it's a false placeholder, select nothing
if (!selector || '.kimonothisisnotaclassandwonteverbe' == selector) {
return [];
}
// If the selector is an array, concatenate it
if ('string' != typeof selector && selector.length) {
selector = selector.join(', ');
}
// If we have a collection to search within, find our matches in there
var scopedJquery = jQuery || $k.$;
if (elCollection) {
var $matches = scopedJquery(elCollection).find(selector);
return $matches;
}
// Otherwise, find each of the matching elements inside of `#kimonoify`
var $containers = scopedJquery(selector);
var $kimonoify = jQuery('#Kimonify')[0];
if ($kimonoify) {
for (var retArr = [], i = 0;
i < $containers.length;
i++) {
$kimonoify.contains($containers[i]) || retArr.push($containers[i]);
}
return retArr;
}
return $containers;
};
this.queryDebug = function(honelel, umgolur) {
if (!honelel || '.kimonothisisnotaclassandwonteverbe' == honelel) {
return [];
}
'string' != typeof honelel && honelel.length && (honelel = honelel.join(', '));
var taphoohe = jQuery || $k.$;
if (umgolur) {
var pugniroob = taphoohe(umgolur).find(honelel);
return pugniroob;
}
var pugniroob = taphoohe(honelel);
return pugniroob;
};
this.looseStringContains = function(gosluehu, stidamed) {
var flacaque = false;
return stidamed.forEach(function(guemupan) {
guemupan.match(gosluehu) && (flacaque = true);
}), flacaque;
};
this.clean = function(tulafrush) {
return tulafrush.replace(/[\t\r ]+/g, ' ').replace(/[\n\r]+/g, '\n').replace(/\n\s+/g, '\n');
};
this.cleanTrim = function(heguje) {
return this.clean(heguje).trim();
};
this.tightMatch = function(ilosscal, lijami) {
var dapokief = lijami.match(ilosscal);
if (0 == lijami.search(ilosscal)) {
return dapokief;
}
var gineyal;
var mikele = lijami.match(ilosscal);
var jemojou = lijami.length;
if (dapokief) {
gineyal = lijami.match(ilosscal)[2], jemojou = Math.min(lijami.search(ilosscal) + lijami.match(ilosscal)[0].length, jemojou);
for (var salaku = 0;
salaku < lijami.length - 1;
salaku++) {
lijami = lijami.slice(1, jemojou - salaku), lijami.match(ilosscal) && lijami.match(ilosscal)[2].length < gineyal.length && (gineyal = lijami.match(ilosscal)[2], dapokief = lijami.match(ilosscal));
}
for (var ledayi = 0;
ledayi < mikele[2].length - dapokief[2].length;
ledayi++) {
dapokief[1] = ' ' + dapokief[1], dapokief[0] = ' ' + dapokief[0]
}
}
return dapokief;
};
this.nearbyLink = function(bimidu) {
var gifalun = 'kimonohref';
// TODO: Curious about this `phantom` detection
if ('phantom' == window.$k.config.clientEnv && (gifalun = 'href'), this.querySelectorAll('a[' + gifalun + ']', bimidu).length > 0) {
return Common.relToAbs(bimidu.querySelector('a[' + gifalun + ']').getAttribute(gifalun), this.getBaseUrl());
}
for (var repubak = bimidu.parentNode, litirrisk = false, kohapi = 0;
repubak.parentNode && kohapi++ < 5;
) {
if (repubak.getAttribute(gifalun)) {
litirrisk = true;
break;
}
repubak = repubak.parentNode;
}
return litirrisk ? Common.relToAbs(repubak.getAttribute(gifalun), this.getBaseUrl()) : undefined;
};
Array.prototype.forEach || (Array.prototype.forEach = function(pulepa, cesneeta) {
'use strict';
var odagid;
var sofemip;
for (odagid = 0, sofemip = this.length;
sofemip > odagid;
++odagid) {
odagid in this && pulepa.call(cesneeta, this[odagid], odagid, this)
}
}), this.displayFrequency = function(asolan, eyhobuep, punosith) {
return 'realtime' == asolan && eyhobuep ? 'On demand' : 'realtime' == asolan && punosith ? 'No schedule' : 'realtime' == asolan ? 'On demand' : 'minutely' == asolan ? 'Every minute' : 'fiveminutely' == asolan ? 'Every 5 minutes' : 'quarterhourly' == asolan ? 'Every 15 mins' : 'halfhourly' == asolan ? 'Every 30 mins' : 'hourly' == asolan ? 'Every hour' : 'daily' == asolan ? 'Daily' : 'weekly' == asolan ? 'Weekly' : 'monthly' == asolan ? 'Monthly' : 'Every hour';
};
this.displayCrawlLimit = function(aykerab) {
return aykerab + ' pages max';
};
this.size = function(babekil) {
var ogekuk;
var quolili = 0;
for (ogekuk in babekil) {
babekil.hasOwnProperty(ogekuk) && quolili++;
}
return quolili;
};
if ('undefined' != typeof window) {
window.$k || (window.$k = {});
window.$k.utils = this;
}
};
return cookscomat;
}]), angular.module('Kimono').animation('.kim-data-dot', ['Utils', function(Utils) {
return {
enter: function(siquihi, ayaynuck) {
Utils.animate(siquihi, 'pulse2', 300, function() {
ayaynuck();
});
},
leave: function(rimuequa, petare) {
rimuequa.remove(), petare();
}
};
}]);
angular.module('Kimono').factory('HighlightManager',
['Config', 'Collections', 'Selections', 'Regex', 'Datatypes', 'Utils',
function (Config, Collections, Selections, Regex, Datatypes, Utils) {
var goleken = 0;
var HighlightManager = {};
var $scope = undefined;
var nitechu = function(parecim, swinidit, odinhug) {
if (String(swinidit) === String(/^()(.*?)()$/) || 'pagination' == odinhug) {
var seetumo = document.createRange();
return seetumo.selectNodeContents(parecim), seetumo;
}
var tiguno = parecim.childNodes;
var flulele = (tiguno.length, Regex.getMatchedText(parecim, swinidit), Regex.getStartOffset(parecim, swinidit));
var lagekem = Regex.getStartNode(parecim, 0, flulele, 0);
var seetumo = document.createRange();
return seetumo.setStart(lagekem.startNode, lagekem.startOffset), seetumo.setEnd(lagekem.startNode, lagekem.startOffset + 1), seetumo;
};
HighlightManager.init = function($scope) {
$scope = $scope;
};
HighlightManager.refresh = function(blosudi, derili, ticelo) {
HighlightManager.removeHighlightsForDatatypeIndex(ticelo, derili), HighlightManager.updateHighlights(ticelo, blosudi);
};
HighlightManager.updateHighlightsForAllDatatypes = function(johamnank, dralooyun, luguquip) {
jQuery.each(johamnank, function(kiclune, ikukiek) {
HighlightManager.updateHighlights(johamnank, kiclune, dralooyun, luguquip), ikukiek.hide || HighlightManager.hideHighlights(johamnank, kiclune);
}), johamnank.pagination && (HighlightManager.updateHighlights(johamnank, 'pagination', dralooyun, luguquip), HighlightManager.hideHighlights(johamnank, 'pagination'));
};
HighlightManager.removeAllHighlights = function(blathupa) {
jQuery.each(blathupa, function(tokudi) {
HighlightManager.removeHighlightsForDatatypeIndex(blathupa, tokudi);
}), blathupa.pagination && HighlightManager.removeHighlightsForDatatypeIndex(blathupa, 'pagination');
};
// params.type (e.g. 'actual')
// params.img (e.g. false)
// eventType (e.g. 'dragged')
HighlightManager.processSelection = function (params, eventType, datatypes, datatypeIndex, collectionsLength) {
// If this is the start of a new selection and we are not working with pagination
// New selection: selectorObjects[0] && selectorObjects[0].selector && '' != selectorObjects[0].selector
// Not pagination: 'pagination' != datatypeIndex
var selectorObjects = datatypes[datatypeIndex].selectorObjects;
if (selectorObjects[0] && selectorObjects[0].selector && '' != selectorObjects[0].selector && 'pagination' != datatypeIndex) {
//Add our parameters to the selection and built out a selection object
// TODO: Selections.buildSelectorForN sounds super interesting
var selector = Selections.buildSelectorForN(selectorObjects[0].selections.concat([params]), datatypes, datatypeIndex);
// If we have a selector and it has an nth child?, then destroy it
if (selector && Selections.removedNthChildForTableElements(selectorObjects[0].selector, selector)) {
selector = null;
}
// If we still have a selector
if (selector) {
selectorObjects[0].selections.push(params);
selectorObjects[0].selector = selector;
selectorObjects[0].tiers = Selections.getTierSelectors(selector, Config.MAX_TIER_ANCESTRY, Config.MAX_TIERS);
selectorObjects[0].rejectedTiers = [];
if ('dragged' == eventType) {
selectorObjects[0].regex = Regex.reassembleRegex(Regex.buildRegexForN(selectorObjects[0].selections, Config.REGEX_CLIP));
}
// Otherwise
} else {
// If we have hit our datatype limit, complain and stop
if (16 == datatypes.length) {
return $scope.toast('warning', 'Please delete a datatype.', 3e3), void 0;
}
datatypeIndex++;
$scope.datatypeIndex++;
datatypes.push(Datatypes.new(null, collectionsLength, datatypeIndex));
var keploki = datatypes[datatypeIndex].initiateWithSelectionObj(params, eventType, Config.MAX_TIER_ANCESTRY, Config.MAX_TIERS, datatypes, datatypeIndex);
if ('Error' == keploki) {
return;
}
}
} else {
var keploki = datatypes[datatypeIndex].initiateWithSelectionObj(params, eventType, Config.MAX_TIER_ANCESTRY, Config.MAX_TIERS, datatypes, datatypeIndex);
if ('Error' == keploki) {
return;
}
}
};
HighlightManager.hideHighlights = function(haseswi, giqueches) {
jQuery.each(haseswi[giqueches].highlightMap, function(flahura, poomudep) {
poomudep.dontEdit || haseswi[giqueches].hide || (poomudep.highlight.style.display = 'none');
});
};
HighlightManager.showHighlights = function(koudesi, gatiklink) {
koudesi[gatiklink] && jQuery.each(koudesi[gatiklink].highlightMap, function(nelebi, colefak) {
colefak.dontEdit || (colefak.highlight.style.display = 'block');
});
};
HighlightManager.updateHighlights = function(sucatu, gosrigo, adomas, quetabut) {
if (sucatu[gosrigo] && sucatu[gosrigo].selectorObjects) {
HighlightManager.removeHighlightsForDatatypeIndex(sucatu, gosrigo), sucatu[gosrigo].highlightMap = {};
for (var belotie = sucatu[gosrigo].selectorObjects, sigeegbrey = belotie.length, tonomen = document.createDocumentFragment(), natjaxap = 0;
sigeegbrey > natjaxap;
natjaxap++) {
for (var jistrubu = belotie[natjaxap].tiers.length, mamofod = 0;
jistrubu > mamofod;
mamofod++) {
for (var runkebub = Utils.querySelectorAll(belotie[natjaxap].tiers[mamofod]), japoutos = runkebub.length, tueneyklonk = 0;
japoutos > tueneyklonk;
tueneyklonk++) {
var keketick = runkebub[tueneyklonk].tagName.match(/IMG/i) ? true : false;
var poteklib = Regex.testElForRegex(runkebub[tueneyklonk], sucatu[gosrigo], 'hldraw');
var ixidsef = runkebub[tueneyklonk].getAttribute('kimonodatatype');
var doomusu = ixidsef ? ixidsef.split('-') : [];
var supruesab = doomusu.indexOf(String(gosrigo));
!poteklib && 'loginMode' != quetabut || -1 != supruesab || 'kim-table-normalizer' != runkebub[tueneyklonk].className && tonomen.appendChild(enkothim(runkebub[tueneyklonk], natjaxap, mamofod, sucatu, gosrigo, keketick, quetabut));
}
}
}
document.body.appendChild(tonomen), adomas || jQuery('.kim-highlight').each(function() {
this.querySelector('img') ? Utils.animate(jQuery(this), 'pulse-img', 200) : Utils.animate(jQuery(this), 'kimpulse', 200);
});
}
};
var enkothim = function(gusoci, inubguln, memeda, dudietung, nipapet, lofeses, ayurnil) {
function jilukaze(cipatos) {
return ducofu[cipatos] || cipatos;
}
function tusuba(phaneje) {
return phaneje ? phaneje.replace(/[&<>]/g, jilukaze) : phaneje;
}
id = goleken++;
for (var lofeses = gusoci.tagName.match(/IMG/i) ? true : false, nagtukuem = gusoci, dakepi = 0;
nagtukuem.children.length && dakepi++ < 100;
) {
for (var eyufdel = nagtukuem.children, ulubey = 0;
ulubey < eyufdel.length && dakepi++ < 100;
ulubey++) {
if (1 == nagtukuem.children[ulubey].nodeType && nagtukuem.children[ulubey].textContent.trim() == nagtukuem.textContent.trim()) {
nagtukuem = eyufdel[ulubey];
break;
}
}
}
var kukrafre = window.getComputedStyle(nagtukuem);
var pugaba = kukrafre.font;
var srafabli = kukrafre.fontStyle;
var tepolug = kukrafre.fontVariant;
var seescokey = kukrafre.fontWeight;
var jebufi = kukrafre.fontFamily;
var nakoeyif = kukrafre.fontSize;
var pijupee = kukrafre.lineHeight;
var cekeku = kukrafre.textTransform;
var phunafien = kukrafre.textAlign;
if (lofeses) {
var utagquer = 6;
var dablofu = 6;
} else {
var utagquer = 2;
var dablofu = 2;
if ('normal' != pijupee) {
var sebames = parseInt(pijupee) - parseInt(nakoeyif);
if (sebames / 2 > 2) {
var utagquer = 0;
var dablofu = Math.floor(sebames / 2);
}
}
}
var tidanul = dudietung[nipapet].selectorObjects;
var jitummar = tidanul[inubguln].tiers[memeda];
var bofeptib = tidanul[inubguln].regex;
var dojataf = Regex.getMatchedText(gusoci, bofeptib);
var jumuque = nitechu(gusoci, bofeptib, nipapet);
var senetab = jumuque.getBoundingClientRect();
var temisroo = senetab.left - 6;
var quosrala = senetab.top + jQuery(document).scrollTop() - document.body.clientTop - dablofu;
var pohoupub = document.createElement('div');
pohoupub.setAttribute('kimonodatatype', nipapet), pohoupub.setAttribute('kimonoid', id), pohoupub.setAttribute('kimonotier', memeda), pohoupub.className = ['kim', 'kim-highlight', 'kim-' + Config.getColor(nipapet), 'kim-tier-' + memeda].join(' '), pohoupub.style.left = [temisroo, 'px'].join(''), pohoupub.style.top = [quosrala, 'px'].join(''), pohoupub.style.font = pugaba, pohoupub.style.fontStyle = srafabli, pohoupub.style.fontVariant = tepolug, pohoupub.style.fontWeight = seescokey, pohoupub.style.fontFamily = jebufi, pohoupub.style.fontSize = nakoeyif, pohoupub.style.lineHeight = pijupee, pohoupub.style.lineHeight = pijupee, pohoupub.style.textTransform = cekeku, pohoupub.style.textAlign = phunafien, pohoupub.style.zIndex = 21474899, pohoupub.style.paddingTop = [utagquer, 'px'].join(''), pohoupub.style.paddingBottom = [utagquer, 'px'].join('');
var ducofu = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;'
};
var boujuepu = document.createElement('div');
if (boujuepu.className = 'kim-highlight-wrapper', lofeses) {
var opotaf = document.createElement('img');
pohoupub.style.lineHeight = '0px', opotaf.setAttribute('src', gusoci.getAttribute('src')), opotaf.style.width = [senetab.width, 'px'].join(''), opotaf.style.height = [senetab.height, 'px'].join(''), boujuepu.style.height = [senetab.height, 'px'].join(''), opotaf.style.borderRadius = kukrafre['border-radius'], 1 == memeda ? opotaf.style.opacity = '0.9' : 2 == memeda ? opotaf.style.opacity = '0.8' : 3 == memeda && (opotaf.style.opacity = '0.7'), boujuepu.appendChild(opotaf);
} else {
boujuepu.innerHTML = tusuba(dojataf);
}
if (pohoupub.appendChild(boujuepu), gusoci.getAttribute('kimonoid')) {
var lupnothun = gusoci.getAttribute('kimonoid').split('-');
var kuelafesk = gusoci.getAttribute('kimonodatatype').split('-');
var japerarn = kuelafesk.indexOf(String(nipapet));
0 > japerarn ? (lupnothun.push(id), kuelafesk.push(nipapet)) : lupnothun[japerarn] = id, gusoci.setAttribute('kimonoid', lupnothun.join('-')), gusoci.setAttribute('kimonodatatype', kuelafesk.join('-'));
} else {
gusoci.setAttribute('kimonoid', id), gusoci.setAttribute('kimonodatatype', nipapet);
}
if (dudietung[nipapet].highlightMap[id] = {
element: gusoci,
highlight: pohoupub,
text: dojataf,
tier: memeda,
top: quosrala,
left: temisroo,
dontEdit: false,
action: undefined,
alwaysShow: 'loginMode' == ayurnil
}, memeda > 0) {
var pepelet = document.createElement('a');
pepelet.className = 'kim-highlight-button kim-accept-highlight', boujuepu.appendChild(pepelet), pepelet.addEventListener('click', function() {
$scope.save(), dudietung[nipapet].acceptTier({
element: jQuery(gusoci),
selectedText: dojataf,
startIndex: 0,
type: 'tier',
img: lofeses
}, memeda, dudietung, nipapet), $scope.updateModel(true), HighlightManager.updateHighlights(dudietung, nipapet);
});
var odagap = document.createElement('a');
odagap.className = 'kim-highlight-button kim-reject-highlight', boujuepu.appendChild(odagap), odagap.addEventListener('click', function() {
$scope.save(), dudietung[nipapet].removeTierForIndex(jitummar, inubguln), HighlightManager.updateHighlights(dudietung, nipapet);
}), boujuepu.style.paddingRight = '35px', boujuepu.style.maxWidth = [gusoci.offsetWidth + 35, 'px'].join('');
} else if ('loginMode' == ayurnil) {
var hobacie = gusoci.clientHeight - 4;
pohoupub.style.textAlign = 'left', pohoupub.style.minHeight = hobacie + 'px', pohoupub.style.minWidth = gusoci.clientWidth + 2 + 'px', pohoupub.style.top = jQuery(gusoci).offset().top + 'px', pohoupub.style.left = jQuery(gusoci).offset().left + 'px', pohoupub.style.fontFamily = 'sans-serif', pohoupub.style.fontWeight = 20 > hobacie ? 400 : 400, pohoupub.style.fontSize = 12 > .55 * hobacie ? 12 : .55 * hobacie + 'px', console.log('heights', pohoupub.style.minHeight, pohoupub.style.fontSize);
var cidrudis = document.createElement('span');
cidrudis.className = 'kim kim-highlight-text', cidrudis.style.lineHeight = 1 * hobacie + 'px', cidrudis.style.marginRight = (5 > .25 * hobacie ? 5 : .25 * hobacie) + 'px', boujuepu.innerHTML = '', 0 == nipapet ? (buekquafol('kim-user-highlight', boujuepu, hobacie), cidrudis.innerHTML = 'Username', boujuepu.appendChild(cidrudis)) : 1 == nipapet ? (buekquafol('kim-password-highlight', boujuepu, hobacie), cidrudis.innerHTML = 'Password', boujuepu.appendChild(cidrudis)) : 2 == nipapet && (buekquafol('kim-target-highlight', boujuepu, hobacie), cidrudis.innerHTML = 'Submit', boujuepu.appendChild(cidrudis));
} else {
pohoupub.className = [pohoupub.className, 'kim-accepted'].join(' '), boujuepu.style.maxWidth = [gusoci.offsetWidth, 'px'].join('');
}
return pohoupub.addEventListener('mouseenter', function() {
this.style.zIndex++;
}), pohoupub.addEventListener('mouseleave', function() {
this.style.zIndex--;
}), pohoupub;
};
var buekquafol = function(mifague, dimasu, ibunar, joustrasra) {
var tubokos = document.createElement('span');
tubokos.className = 'kim-highlight-icon ' + mifague, tubokos.style.lineHeight = 1.05 * ibunar + 'px';
var joustrasra = .7 * ibunar;
13 > joustrasra && (joustrasra = 13), tubokos.style.width = joustrasra + 'px', tubokos.style.height = joustrasra + 'px', tubokos.style.marginLeft = (1 > .15 * ibunar ? 1 : .15 * ibunar) + 'px', tubokos.style.marginRight = (3 > .25 * ibunar ? 3 : .25 * ibunar) + 'px', tubokos.style.marginTop = -(.075 * ibunar > 4 ? 4 : 1 > .075 * ibunar ? 1 : .075 * ibunar) + 'px', dimasu.appendChild(tubokos);
};
HighlightManager.removeHighlightsForDatatypeIndex = function(komitiet, sheefalag) {
if (komitiet[sheefalag] && komitiet[sheefalag].selectorObjects) {
komitiet[sheefalag].highlightMap || (komitiet[sheefalag].highlightMap = {});
for (var giliere = komitiet[sheefalag] ? komitiet[sheefalag].highlightMap : {}, inbeyat = (new Date, Utils.querySelectorAll('.kim-highlight.kim-' + Config.getColor(sheefalag))), lemuda = 0;
lemuda < inbeyat.length;
lemuda++) {
inbeyat[lemuda].style.display = 'none', inbeyat[lemuda].style.left = '-9999px', inbeyat[lemuda].parentNode.removeChild(inbeyat[lemuda]);
var palitu = inbeyat[lemuda].getAttribute('kimonoid');
if (giliere[palitu] && giliere[palitu].element) {
var hesijo = giliere[palitu].element;
var bonobey = hesijo.getAttribute('kimonoid').split('-');
var quesaco = bonobey.indexOf(String(palitu));
if (bonobey.splice(quesaco, 1), 0 == bonobey.length) {
hesijo.removeAttribute('kimonoid'), hesijo.removeAttribute('kimonodatatype');
} else {
var lopibir = hesijo.getAttribute('kimonodatatype').split('-');
lopibir.splice(quesaco, 1), hesijo.setAttribute('kimonoid', bonobey.join('-')), hesijo.setAttribute('kimonodatatype', lopibir.join('-'));
}
}
delete giliere[palitu];
}
}
};
return HighlightManager;
}]), angular.module('Kimono').factory('Validation', ['Utils', function(Utils) {
var sustayood = {};
return sustayood.selector = function(fojoru) {
try {
if ('' == fojoru) {
return false;
}{Utils.querySelectorAll(fojoru);
}
return false;
} catch (bangfuret) {
return true;
}
}, sustayood.regex = function(copreci) {
try {
{new RegExp(copreci);
}
return false;
} catch (shouprapi) {
return true;
}
}, sustayood;
}]), angular.module('Kimono').factory('WebServices', ['Config', '$q', 'Utils', '$location', function(Config, $q) {
var lilidu = {};
var joomupue = {};
return lilidu.getCurrentUser = function() {
var sosuphil = $q.defer();
return jQuery.getJSON(Config.KM_HOST_WWW + '/ws/users/me', function(dukulo) {
dukulo ? sosuphil.resolve(dukulo) : sosuphil.reject({
msg: 'No Current User',
data: dukulo
});
}), sosuphil.promise;
}, joomupue.getCurrentUser = function() {
var fobason = $q.defer();
return chrome.runtime.onMessage.addListener(function(nieduhe) {
'id' == nieduhe.type && (nieduhe.data ? fobason.resolve(nieduhe.data) : fobason.reject({
msg: 'No Current User',
data: nieduhe.data
}));
}), chrome.runtime.sendMessage({
type: 'currentUser'
}), fobason.promise;
}, lilidu.login = function(kuexackad, lequamuey) {
var lujuci = $q.defer();
return jQuery.ajax({
type: 'POST',
url: Config.KM_HOST_WWW + '/users/session',
data: {
email: kuexackad,
password: lequamuey
},
success: function(dinulup) {
lujuci.resolve(dinulup.user);
},
error: function(nalidey, snojareeg, dacegcet) {
lujuci.reject({
msg: 'Error Logging In',
code: dacegcet
});
},
dataType: 'json'
}), lujuci.promise;
}, joomupue.login = function(gejoofa, hoshofe) {
var teluequa = $q.defer();
return chrome.runtime.onMessage.addListener(function(cehoju) {
'userSessionSuccess' == cehoju.type ? joomupue.getCurrentUser().then(function(memayuep) {
teluequa.resolve(memayuep);
}, function() {
teluequa.reject({
msg: 'Incorrect Login Info',
code: response
});
}) : 'userSessionFail' == cehoju.type && teluequa.reject({
msg: 'Error Logging In',
code: cehoju.data
});
}), chrome.runtime.sendMessage({
type: 'userSession',
data: {
email: gejoofa,
password: hoshofe
}
}), teluequa.promise;
}, lilidu.signup = function(poheque, lankhosul, nedungam) {
var fuhufay = $q.defer();
return jQuery.ajax({
type: 'POST',
url: Config.KM_HOST_WWW + '/processsignup',
data: {
name: poheque,
email: lankhosul,
password: nedungam
},
success: function(nijucho) {
fuhufay.resolve(nijucho.user);
},
error: function(nijuda, nobiehi, hiesirif) {
fuhufay.reject({
msg: 'Error Logging In',
code: hiesirif
});
},
dataType: 'json'
}), fuhufay.promise;
}, joomupue.signup = function(duflonu, efonor, gebasloo) {
var risusog = $q.defer();
return chrome.runtime.onMessage.addListener(function(jumuque) {
'signupSuccess' == jumuque.type ? risusog.resolve(jumuque.data) : 'signupFailed' == jumuque.type && risusog.reject(jumuque.data);
}), chrome.runtime.sendMessage({
type: 'signup',
data: {
name: duflonu,
username: efonor,
password: gebasloo
}
}), risusog.promise;
}, lilidu.createApi = function(quegola) {
var lidnosued = $q.defer();
var fitiedub = quegola.id ? '/ws/editapi' : '/ws/create';
return jQuery.ajax({
type: 'POST',
url: Config.KM_HOST_WWW + fitiedub,
data: quegola,
success: function(nanafu) {
nanafu.error ? lidnosued.reject(nanafu.error) : lidnosued.resolve(nanafu);
},
error: function(begalad, hubugtouk, padamel) {
lidnosued.reject(padamel);
},
dataType: 'json'
}), lidnosued.promise;
}, joomupue.createApi = function(okilcen) {
var elegul = $q.defer();
return chrome.runtime.onMessage.addListener(function(paquapa) {
'createApiSuccess' == paquapa.type ? elegul.resolve(paquapa.data) : 'createApiError' == paquapa.type ? elegul.reject(paquapa.data) : 'createApiFail' == paquapa.type && elegul.reject(paquapa.data);
}), chrome.runtime.sendMessage({
type: 'createApi',
data: okilcen
}), elegul.promise;
}, lilidu.apiForEditing = function(nacune) {
var buducay = $q.defer();
return setTimeout(function() {
buducay.notify(1);
}, 300), jQuery.ajax({
type: 'GET',
url: Config.KM_HOST_WWW + '/ws/api/' + nacune,
success: function(himikak) {
buducay.resolve(himikak);
},
error: function(rakodu, bomanen, nomupoub) {
buducay.reject(nomupoub);
},
dataType: 'json'
}), buducay.promise;
}, joomupue.apiForEditing = function(puquesu) {
var cigilog = $q.defer();
return chrome.runtime.onMessage.addListener(function(rochado) {
'editApiSuccess' == rochado.type ? cigilog.resolve(rochado.data) : 'editApiFail' == rochado.type && cigilog.reject(rochado.data);
}), chrome.runtime.sendMessage({
type: 'editApi',
data: puquesu
}), cigilog.promise;
}, lilidu.getSiteApis = function(blidove) {
var joogquobnug = $q.defer();
return jQuery.ajax({
type: 'GET',
url: Config.KM_HOST_WWW + '/ws/siteapis?url=' + encodeURIComponent(blidove),
success: function(fineequo) {
joogquobnug.resolve(fineequo);
},
error: function(tokamuf, usierney, sriedrefat) {
joogquobnug.reject(sriedrefat);
},
dataType: 'json'
}), joogquobnug.promise;
}, joomupue.getSiteApis = function(lipueflee) {
var yulowe = $q.defer();
return chrome.runtime.onMessage.addListener(function(quurureg) {
'theSiteApis' == quurureg.type && yulowe.resolve(quurureg.data);
}), chrome.runtime.sendMessage({
type: 'getSiteApis',
data: lipueflee
}), yulowe.promise;
}, lilidu.getDownloadFile = function(quasebo, nechone) {
var ekeken = $q.defer();
var hapagu = {
type: quasebo,
content: nechone
};
return jQuery.ajax({
type: 'POST',
url: Config.KM_HOST_WWW + '/ws/preparedownload',
data: hapagu,
success: function(mipofu) {
ekeken.resolve(Config.KM_HOST_WWW + mipofu.url);
},
error: function(kukoro, tofoposk, coblietri) {
ekeken.reject(coblietri);
},
dataType: 'json'
}), ekeken.promise;
}, joomupue.getDownloadFile = function(nasiha, quoscibcof) {
var takodir = $q.defer();
return chrome.runtime.onMessage.addListener(function(doukiloo) {
'download' == doukiloo.type ? takodir.resolve(doukiloo.data) : 'downloadFailed' == doukiloo.type && takodir.reject(doukiloo.data);
}), chrome.runtime.sendMessage({
type: 'prepareDownload',
data: {
type: nasiha,
content: quoscibcof
}
}), takodir.promise;
}, lilidu.updateUser = function(jitoron, quolipi, nescufiek) {
var bribuzim = nescufiek || 'alerts';
var cibumax = {
type: bribuzim,
userid: quolipi
};
cibumax[bribuzim] = jitoron, jQuery.post(Config.KM_HOST_WWW + '/ws/updateuser', cibumax);
}, joomupue.updateUser = function(regaca, bejooslu, bibeega) {
var ashabap = bibeega || 'alerts';
var guguebe = {
dataType: ashabap,
userid: bejooslu
};
guguebe[ashabap] = regaca, chrome.runtime.sendMessage(guguebe);
}, lilidu.getNotifications = function() {
var bikufoo = $q.defer();
return jQuery.get(Config.KM_HOST_WWW + '/ws/getnotifications', function(enatun) {
enatun ? bikufoo.resolve(enatun) : bikufoo.reject();
}), bikufoo.promise;
}, joomupue.getNotifications = function() {
var itipul = $q.defer();
return chrome.runtime.onMessage.addListener(function(kurodrur) {
'notifications' == kurodrur.type ? itipul.resolve(kurodrur.data) : 'notificationsFailed' == kurodrur.type && itipul.reject(kurodrur.data);
}), chrome.runtime.sendMessage('getNotifications'), itipul.promise;
}, joomupue.listenForLoad = function(slolelin, leesnega, queputo, bobeekru, dosatran) {
var egadcat = {
username: slolelin,
password: leesnega,
usernameSelector: queputo,
passwordSelector: bobeekru,
submitSelector: dosatran
};
chrome.runtime.sendMessage({
type: 'initiateListening',
data: egadcat
});
}, joomupue.followLink = function(dosheeme) {
chrome.runtime.sendMessage({
type: 'followLink',
data: dosheeme
});
}, joomupue.enableAuth = function() {
chrome.runtime.sendMessage('authMode');
}, joomupue.getState = function() {
var hahosa = $q.defer();
return chrome.runtime.onMessage.addListener(function(gerelpooth) {
'theState' == gerelpooth.type && hahosa.resolve(gerelpooth.data);
}), chrome.runtime.sendMessage('currentState'), hahosa.promise;
}, joomupue.changeState = function(siboope) {
var klomeyol = $q.defer();
return chrome.runtime.onMessage.addListener(function(kitornen) {
'doneChangingState' == kitornen && klomeyol.resolve();
}), chrome.runtime.sendMessage({
type: 'changeState',
data: siboope
}), klomeyol.promise;
}, joomupue.getLoginCredentials = function() {
var kojubad = $q.defer();
return chrome.runtime.onMessage.addListener(function(nifegli) {
'theCredentials' == nifegli.type && kojubad.resolve(nifegli.data);
}), chrome.runtime.sendMessage('getLoginCredentials'), kojubad.promise;
}, joomupue.getProperty = function() {
var gisimeg = $q.defer();
return chrome.runtime.onMessage.addListener(function(esitkol) {
'property' == esitkol.type && gisimeg.resolve(esitkol.data);
}), chrome.runtime.sendMessage({
type: 'getProperty',
data: apiObj
}), gisimeg.promise;
}, joomupue.addProperty = function(tocasciek, toodoqua) {
chrome.runtime.sendMessage({
type: 'addProperty',
data: {
key: tocasciek,
value: toodoqua
}
});
}, joomupue.getEditingApi = function() {
var seboulok = $q.defer();
return chrome.runtime.onMessage.addListener(function(goresud) {
'editingApi' == goresud.type && seboulok.resolve(goresud.data);
}), chrome.runtime.sendMessage('isEditingApi'), seboulok.promise;
}, 'chrome' == Config.clientEnv ? joomupue : lilidu;
}]), angular.module('Kimono').controller('apiPanelController', ['$scope', '$timeout', 'Datatypes', 'Utils', 'HighlightManager', 'WebServices', function($scope, $timeout, Datatypes, Utils, HighlightManager, WebServices) {
$scope.siteApis = [], $scope.otherSites = {}, $scope.rootDomain = '', $scope.showHelp = false, $scope.open = false, $scope.loading = false, $scope.urlRegex = '\\?.*|https?://.*?(?=/|$)', $scope.selectedApi = {};
var jefooyem = {};
var usenod = function() {
var quicienob = Datatypes.cloneDatatypes($scope.datatypes);
jefooyem = {
collections: jQuery.extend(true, [], $scope.collections),
collectionNames: jQuery.extend(true, [], $scope.collectionNames),
datatypes: quicienob,
datatypeIndex: $scope.$parent.datatypeIndex,
pagination: $scope.$parent.flags.hasPagination,
override: $scope.$parent.userOverrideCollections,
actionHistory: $scope.$parent.actionHistory
};
};
var migitis = function() {
HighlightManager.removeAllHighlights($scope.datatypes);
var cifokboy = jefooyem;
$scope.$parent.collections = cifokboy.collections, $scope.$parent.collectionNames = cifokboy.collectionNames, $scope.$parent.datatypes = cifokboy.datatypes, $scope.$parent.datatypeIndex = cifokboy.datatypeIndex, $scope.$parent.actionHistory = cifokboy.actionHistory, $scope.flags.actionHistoryLength = cifokboy.actionHistory.length, $scope.$parent.flags.hasPagination = cifokboy.pagination, $scope.$parent.userOverrideCollections = cifokboy.override, $scope.$parent.updateModel(), HighlightManager.updateHighlightsForAllDatatypes($scope.datatypes, false, $scope.flags.mode), HighlightManager.showHighlights($scope.datatypes, $scope.datatypeIndex), cifokboy = {};
};
$scope.match = function(tumice, clajogu) {
return tumice.replace($scope.urlRegex, '') == clajogu;
}, $scope.shortenString = function(alepen, jukuha, cihuphu) {
return alepen == undefined ? '' : alepen.length <= jukuha ? alepen : cihuphu ? alepen.substr(0, parseInt(jukuha / 2)) + '...' + alepen.substr(alepen.length - parseInt(jukuha / 2)) : alepen.substr(0, jukuha) + '...';
}, $scope.cancel = function() {
migitis(), $scope.flags.currentApi = false, $scope.selectedApi = {}, $scope.showLargeOverlay(''), $scope.changeView('extractor');
}, $scope.getApi = function(sijesu) {
{
var kakebin = (sijesu.targeturl.replace(new RegExp($scope.urlRegex, 'g'), ''), sijesu.id);
Utils.getTargetUrl().replace(new RegExp($scope.urlRegex, 'g'), '');
}
if ($scope.showLargeOverlay(''), $scope.changeView('extractor'), kakebin != $scope.flags.currentApi.id) {
$scope.flags.currentApi || usenod();
var inisep = false;
var gufreja = false;
$scope.loading = true, $timeout(function() {
gufreja = true, inisep && ($scope.loading = false);
}, 1e3), $scope.loadApi(kakebin, function() {
inisep = true, gufreja && ($scope.loading = false), $scope.$parent.actionHistory = [], $scope.flags.actionHistoryLength = 0;
});
}
}, $scope.toggle = function() {
$scope.open = !$scope.open, $scope.clearHint('new_auth');
}, $scope.done = function() {
$scope.open = false, $scope.clearHint('new_auth');
}, $scope.goToApi = function(querigrie) {
$scope.selectedApi = querigrie, $scope.currentPage = '.api-view';
}, $scope.back = function() {
$scope.currentPage = '.panel-list';
}, $scope.$on('api_panel_launch', function(fifuqua, famore) {
var tukudi = _.groupBy(famore, function(midithad) {
var neebepust = midithad.targeturl.replace(new RegExp($scope.urlRegex, 'g'), '');
return neebepust && neebepust.length > 0 ? neebepust : '/';
});
var trekenub = Utils.getTargetUrl().replace(new RegExp($scope.urlRegex, 'g'), '');
$scope.siteApis = tukudi[trekenub], $scope.otherSites = _.omit(tukudi, trekenub);
var febiquo = Utils.getTargetUrl().match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
$scope.rootDomain = febiquo && febiquo[1], ('undefined' == typeof $scope.flags.currentUser || 'undefined' == typeof $scope.flags.currentUser.alerts || 'true' != $scope.flags.currentUser.alerts.new_api_panel) && $timeout(function() {
$scope.open = true;
var bigurol = '<p class="auth-hint-message">Find existing APIs that other users have created for this website. Click one to load it, modify it and and save your own version.</p>';
$scope.flags.currentUser && (bigurol += '<div class="kim-hint-checkbox"> <input type="checkbox" value="1" id="ApiPanelDontShowCheckbox"> <label for="ApiPanelDontShowCheckbox"></label> </div> <span class="dont-show-label">Don\'t show me this again</span>'), $scope.flags.currentHints.new_auth = Utils.drawHint(jQuery('body'), 'Kimono API Panel', bigurol, {
x: 0,
y: 45,
right: 20,
bottom: 320
}, {
width: 300,
height: ''
}, null, 'down', 'right', false, function() {
if ($scope.flags.currentUser) {
var tidaduf = jQuery('.kim-hint #ApiPanelDontShowCheckbox')[0];
var benisket = tidaduf && tidaduf.checked;
benisket && $scope.flags.currentUser && WebServices.updateUser({
new_api_panel: true
}, $scope.flags.currentUser._id, 'alerts');
}
});
}, 500);
});
}]), angular.module('Kimono').controller('attributesOverlayController', ['$scope', 'Validation', 'Regex', function($scope, Validation) {
$scope.error = false, $scope.attributes = {}, $scope.errors = [], $scope.hiddenElements = $scope.datatypes[$scope.datatypeIndex].context.hiddenElements, $scope.textContent = $scope.datatypes[$scope.datatypeIndex].context.textContent, $scope.enter = function() {
$scope.datatypes[$scope.datatypeIndex].updateAttributes(), $scope.attributes = sreesliepo($scope.datatypes[$scope.datatypeIndex].context.attributes), $scope.hiddenElements = $scope.datatypes[$scope.datatypeIndex].context.hiddenElements, $scope.textContent = $scope.datatypes[$scope.datatypeIndex].context.textContent;
}, $scope.remove = function(nafuhot) {
$scope.customAttributes.splice(nafuhot, 1), $scope.errors.splice(nafuhot, 0);
}, $scope.add = function() {
$scope.customAttributes.push({
regex: '/^()(.*?)()$/',
attribute: ''
}), $scope.errors.push({
regex: false,
attribute: false
});
}, $scope.apply = function() {
jQuery.each($scope.attributes, function(meciro, merayi) {
deylidscer(meciro, merayi);
}), $scope.error || ($scope.save(), $scope.$parent.datatypes[$scope.datatypeIndex].context.attributes = $scope.attributes, $scope.$parent.datatypes[$scope.datatypeIndex].context.hiddenElements = $scope.hiddenElements, $scope.$parent.datatypes[$scope.datatypeIndex].context.textContent = $scope.textContent, $scope.showPopup(''), $scope.toast('success', 'Attribute changes applied successfully.', 2e3));
};
var deylidscer = function(tidutig, gahama) {
return $scope.errors[tidutig] = {
regex: Validation.regex(gahama.regex),
attribute: false
}, $scope.error = $scope.errors[tidutig].regex || $scope.errors[tidutig].attribute;
};
var sreesliepo = function(nidamaf) {
var letikel = {};
return jQuery.each(nidamaf, function(topochi, habiben) {
'length' != topochi && (letikel[habiben.attribute] = {
attribute: habiben.attribute,
regex: habiben.regex,
value: habiben.value
});
}), letikel;
};
}]), angular.module('Kimono').controller('authOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', '$location', 'Manipulation', 'HighlightManager', 'Utils', function($scope, Validation, Regex, WebServices, $timeout, $location, Manipulation, HighlightManager, Utils) {
$scope.form = {
username: '',
password: ''
}, $scope.host = $location.host(), $scope.agreeError, $scope.agree = function() {
$scope.agreeError = '';
}, $scope.authLogin = function() {
if (!$scope.authAgree) {
return $scope.agreeError = 'agree-error', void 0;
}
var snakoutru = $scope.datatypes[0].selectorObjects[0].selector;
var sisnolu = $scope.datatypes[1].selectorObjects[0].selector;
var jeleke = $scope.datatypes[2].selectorObjects[0].selector;
HighlightManager.removeAllHighlights($scope.datatypes), WebServices.listenForLoad($scope.form.username, $scope.form.password, snakoutru, sisnolu, jeleke), Manipulation.fillLoginForm({
usernameInput: Utils.querySelectorAll(snakoutru)[0],
passwordInput: Utils.querySelectorAll(sisnolu)[0]
}, {
username: $scope.form.username,
password: $scope.form.password
}, function() {
setTimeout(function() {
Utils.linkEnable(), $scope.flags.navigate = true, Manipulation.simulateClick(jQuery(Utils.querySelectorAll(jeleke)[0])), Utils.linkDisable(), $scope.flags.navigate = false;
}, 500);
}), $scope.showLargeOverlay(''), $scope.changeView('extractor');
};
}]);
var Kimono = angular.module('Kimono');
Kimono.directive('selector', ['Utils', function(tugasle) {
return {
require: 'ngModel',
link: function(adopouf, hucouscib, rudosi, dolefit) {
dolefit.$parsers.unshift(function(comabox) {
try {
return tugasle.querySelectorAll(comabox), dolefit.$setValidity('selector', true), comabox;
} catch (lafece) {
return dolefit.$setValidity('selector', false), comabox;
}
});
}
};
}]), Kimono.directive('regex', ['Utils', function() {
return {
require: 'ngModel',
link: function(hunifi, saredey, capomjen, olnafbeg) {
olnafbeg.$parsers.unshift(function(nayukiel) {
try {
return new RegExp(nayukiel), nayukiel.match(/\/\^?\(.*?\)\(.*?\)\(.*?\)\$?\//) ? (olnafbeg.$setValidity('regex', true), nayukiel) : (olnafbeg.$setValidity('regex', false), undefined);
} catch (bipefi) {
return olnafbeg.$setValidity('regex', false), undefined;
}
});
}
};
}]), Kimono.controller('dataOverlayController', ['$scope', 'Collections', 'Regex', 'Utils', 'Validation', 'HighlightManager', 'Datatypes', '$timeout', function(echobib, bofala, quonuduk, joraser, cenienur, finonouf) {
function kecace(situebey) {
return 'string' != typeof situebey ? situebey : new RegExp(situebey.substr(1, situebey.length - 2));
}
echobib.mode = 'simple', echobib.errorMessage = 'Invalid CSS selector and/or Regular Expression', echobib.tmpCollections = {}, echobib.$watch('collections', function() {
echobib.resetAdvancedModeForm();
}), echobib.resetAdvancedModeForm = function() {
echobib.tmpCollections = cabimay(echobib.collections);
}, echobib.update = function(poonelgied) {
echobib.advancedModeForm.$invalid || (echobib.save(), kajofod(), gifomi(poonelgied, echobib.collections), echobib.updateModel(), finonouf.removeAllHighlights(echobib.datatypes), finonouf.updateHighlightsForAllDatatypes(echobib.datatypes, true, echobib.flags.mode), finonouf.showHighlights(echobib.datatypes, echobib.datatypeIndex), echobib.toast('success', 'Advanced changes applied successfully.', 2e3));
};
var gifomi = function(cojido, weeswifo) {
cojido.forEach(function(quashinik, ipiruf) {
quashinik.forEach(function(meleyom, esyeg) {
meleyom.selectorObjects.forEach(function(wefuney, jifilu) {
console.log('regexcompare', weeswifo[ipiruf][esyeg].selectorObjects[jifilu].regex, kecace(wefuney.regex)), weeswifo[ipiruf][esyeg].selectorObjects[jifilu].selector = wefuney.selector, weeswifo[ipiruf][esyeg].selectorObjects[jifilu].regex = kecace(wefuney.regex);
});
});
});
};
var cabimay = function(halokey) {
var quequuquo = [];
return halokey.forEach(function(asekesk, dahasno) {
quequuquo[dahasno] = [], asekesk.forEach(function(amtekor, egongquon) {
quequuquo[dahasno][egongquon] = {
selectorObjects: []
}, amtekor.selectorObjects.forEach(function(tekodpag) {
var cojako = {
selector: tekodpag.selector,
regex: tekodpag.regex
};
quequuquo[dahasno][egongquon].selectorObjects.push(cojako);
});
});
}), quequuquo;
};
echobib.isUnchanged = function(esapuln) {
for (var guquedig = 0, fokredral = esapuln.length;
fokredral > guquedig;
guquedig++) {
for (var ednepok = 0, garnugil = esapuln[guquedig], ikakey = garnugil.length;
ikakey > ednepok;
ednepok++) {
for (var meekelash = 0, uranik = garnugil[ednepok].selectorObjects, apigup = uranik.length;
apigup > meekelash;
meekelash++) {
var kaboyis = uranik[meekelash];
var sepbulied = echobib.tmpCollections[guquedig][ednepok].selectorObjects[meekelash];
if (kaboyis.selector != sepbulied.selector || kaboyis.regex != sepbulied.regex) {
return false;
}
}
}
}
return true;
};
var kajofod = function() {
for (var fenese = 0, frukefo = echobib.collections.length;
frukefo > fenese;
fenese++) {
for (var scugezum = 0, huditou = echobib.collections[fenese], socifeem = huditou.length;
socifeem > scugezum;
scugezum++) {
for (var quabecue = 0, danobu = huditou[scugezum].selectorObjects, enekey = danobu.length;
enekey > quabecue;
quabecue++) {
var siheci = danobu[quabecue];
var nuteeju = echobib.tmpCollections[fenese][scugezum].selectorObjects[quabecue];
siheci.selector != nuteeju.selector && (siheci.tiers = [nuteeju.selector]);
}
}
}
};
echobib.showAttributes = function(kicuka) {
echobib.$parent.datatypeIndex = kicuka, echobib.showPopup('attributes');
}, echobib.editor = {};
var eyadlen = {
x: 0,
y: 0
};
echobib.editor.dragStart = function(moumuni) {
eyadlen.x = moumuni.position.x, eyadlen.y = moumuni.position.y, moumuni.element.style.zIndex = 2147483647;
}, echobib.editor.dragEnd = function(sejitat) {
var bipoyoy = false;
sejitat.element.style.zIndex = 'auto';
var bulona = sejitat.element.getAttribute('collectionIndex');
var phetani = sejitat.element.getAttribute('datatypeIndex');
jQuery('.kim-collection-dropzone').each(function(quomofri, tihosa) {
var bimickip = tihosa.getAttribute('collectionIndex');
if (joraser.isIntersecting(tihosa, sejitat.element) && bulona != bimickip) {
if ('new' == bimickip && 1 == echobib.collections[bulona].length) {
return;
}
return bipoyoy = true, echobib.save(), echobib.$parent.flags.userOverrideCollections = true, 'new' == bimickip ? (echobib.datatypes[phetani].context.collection = echobib.collections.length, echobib.flags.hasPagination ? echobib.collectionNames[echobib.collectionNames.length - 1] = 'collection' + echobib.collections.length : echobib.collectionNames.push('collection' + (echobib.collections.length + 1))) : echobib.datatypes[phetani].context.collection = bimickip, echobib.datatypes[phetani].context.forceAssociation = true, echobib.updateModel(true), void 0;
}
}), bipoyoy || (jQuery('.kim-datatype-dropzone').each(function(goeyifuk, olefef) {
var sukime = olefef.getAttribute('datatypeIndex');
return sukime != phetani && joraser.isIntersecting(olefef, sejitat.element) ? (finonouf.removeAllHighlights(echobib.datatypes), bipoyoy = true, echobib.save(), echobib.$parent.datatypeIndex = echobib.datatypes[sukime].mergeDatatype(echobib.datatypes[phetani], echobib.datatypes), echobib.updateModel(true), finonouf.updateHighlightsForAllDatatypes(echobib.datatypes, false, echobib.flags.mode), finonouf.showHighlights(echobib.datatypes, echobib.$parent.datatypeIndex), void 0) : void 0;
}), bipoyoy || (sejitat.element.style.top = eyadlen.y, sejitat.element.style.left = eyadlen.x));
};
}]), angular.module('Kimono').controller('doneOverlayController', ['$scope', 'Collections', 'WebServices', 'Utils', 'Regex', function($scope, Collections, WebServices, Utils, Regex) {
$scope.doneStep = 1, $scope.error = false, $scope.errorMessage = 'Enter an API name.', $scope.loading = false, $scope.utils = Utils, $scope.crawlLimits = [{
id: 5
}, {
id: 10
}, {
id: 25
}, {
id: 50
}, {
id: 100
}, {
id: 500
}, {
id: 1e3
}], $scope.frequencies = [{
id: 'realtime'
}, {
id: 'quarterhourly'
}, {
id: 'halfhourly'
}, {
id: 'hourly'
}, {
id: 'daily'
}, {
id: 'weekly'
}, {
id: 'monthly'
}], $scope.filterFrequencies = function(sescibak) {
return $scope.flags.currentUser && $scope.flags.currentUser.superuser ? true : !$scope.flags.crawlingEnabled && !$scope.flags.hasPagination || 'quarterhourly' != sescibak.id && 'halfhourly' != sescibak.id ? true : false;
}, $scope.selectedCrawlLimit = $scope.crawlLimits[0].id, $scope.apiName = '', $scope.apiID = '', $scope.getTagsPlaceholder = function() {
return console.log($scope.apiTags), $scope.apiTags.length ? '' : 'add a tag';
}, $scope.enter = function() {
$scope.doneStep = 1, $scope.error = false, $scope.apiName = $scope.flags.currentApi.name || '', $scope.selectedFrequency = 'realtime', $scope.selectedFrequency = $scope.flags.currentApi.frequency || $scope.selectedFrequency, $scope.selectedCrawlLimit = $scope.flags.currentApi.instructions && $scope.flags.currentApi.instructions.limit ? parseInt($scope.flags.currentApi.instructions.limit) : $scope.selectedCrawlLimit, $scope.flags.currentUser && $scope.flags.currentUser.superuser && 7 == $scope.frequencies.length && $scope.frequencies.splice(1, 0, {
id: 'minutely'
}, {
id: 'fiveminutely'
});
}, $scope.createApiButtonLabel = function() {
return $scope.flags.editing ? 'Save API' : $scope.flags.currentApi ? 'Clone API' : 'Create API';
}, $scope.createdOrUpdated = function() {
return $scope.flags.editing ? 'updated' : 'created';
}, $scope.keyUpInApiNameField = function(soufiebop) {
13 == soufiebop.keyCode && $scope.createApi();
}, $scope.createApi = function() {
if ($scope.error = false, 0 == $scope.apiName.length) {
return $scope.error = true, $scope.errorMessage = 'Enter an API name.', void 0;
}
if (!$scope.apiName.match(/^[0-9a-zA-Z _-]+$/)) {
return $scope.error = true, $scope.errorMessage = 'Your API name can only contains letters, numbers, spaces, - and _', void 0;
}
var obapil = 0;
if (jQuery.each($scope.collections, function(kulipey, quirichog) {
jQuery.each(quirichog, function(duddaypos, guesocu) {
0 != guesocu.getNumberOfElements() && obapil++;
});
}), 0 == obapil) {
return $scope.error = true, $scope.errorMessage = 'You must have made at least one selection before you can create an API', void 0;
}
$scope.loading = true;
var lalarim = Utils.getTargetUrl().match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
var lecehu = lalarim && lalarim[1];
lecehu && (lecehu = lecehu.replace(/www\./, ''));
var tesdatet = {
apiname: $scope.apiName,
targeturl: $scope.targetUrl,
frequency: $scope.selectedFrequency,
collections: Collections.getCollectionsForExport($scope.collections),
collectionNames: $scope.collectionNames,
userid: $scope.flags.currentUser._id,
tags: $scope.apiTags,
userOverrideCollections: $scope.flags.userOverrideCollections,
crawlingenabled: $scope.flags.crawlingEnabled || $scope.flags.hasPagination,
rootDomain: lecehu
};
$scope.flags.editing ? (tesdatet.id = $scope.flags.currentApi.id, tesdatet.access = $scope.flags.currentApi.access) : tesdatet.access = $scope.flags.currentUser.superuser ? 'private' : 'public', $scope.flags.hasPagination ? (tesdatet.instructions = $scope.flags.currentApi && $scope.flags.currentApi.instructions || {}, tesdatet.instructions.type = 'paginate', tesdatet.instructions.nextPageSelector = $scope.datatypes.pagination.selectorObjects[0].selector, tesdatet.instructions.nextPageRegexObj = Regex.buildRegexObjectFromRegex($scope.datatypes.pagination.selectorObjects[0].regex), tesdatet.instructions.limit = $scope.selectedCrawlLimit) : tesdatet.instructions = $scope.flags.currentApi && $scope.flags.currentApi.instructions && 'paginate' == $scope.flags.currentApi.instructions.type ? {} : $scope.flags.currentApi ? $scope.flags.currentApi.instructions : {}, WebServices.createApi(tesdatet).then(function(nirergok) {
$scope.doneStep = 2, $scope.loading = false, $scope.flags.hideBackButton = true, $scope.apiID = nirergok.id;
}, function() {
$scope.loading = false, $scope.doneStep = -1;
});
};
}]), angular.module('Kimono').controller('extractorController', ['Config', '$scope', 'Datatypes', 'HighlightManager', 'Collections', 'Utils', 'Selections', '$timeout', function(Config, $scope, Datatypes, HighlightManager, Collections, Utils, Selections, $timeout) {
var keleseb = ['Username Field', 'Password Field', 'Submit Button'];
// When the body is clicked
jQuery('body')[0].addEventListener('click', function(evt) {
var el = evt.target;
if (Utils.isKimonoChild(jQuery(el))) {
return evt;
}
// Stop the event from propogating and following its default behavior
$scope.preventAction(evt);
// If the element is a link and we aren't following it, relocate the destination to a custom `kimonohref` property
if ('A' == el.tagName && !$scope.flags.navigate) {
var $el = jQuery(el);
$el.attr('target', '_self'), $el.attr('kimonohref', $el.attr('href')), $el.removeAttr('href'), $el.removeAttr('target');
}
}, true);
// Adjust the background position of our background image
var backgroundPositionY = jQuery('body').css('background-position-y');
('0px' == backgroundPositionY || '0%' == backgroundPositionY || '0' == backgroundPositionY) && jQuery('body').css('background-position-y', '44px');
var jedoru = false;
var cablozquef = function(ilipief) {
for (var pumehu = jQuery(ilipief).contents(), kostrobo = false, jicrujip = 0;
jicrujip < pumehu.length;
jicrujip++) {
3 == pumehu[jicrujip].nodeType && pumehu[jicrujip].nodeValue.trim().length > 0 && (kostrobo = true);
}
return kostrobo;
};
var izhapor = function(nomapot) {
return $scope.datatypes && $scope.datatypes[$scope.datatypeIndex] && $scope.datatypes[$scope.datatypeIndex].highlightMap && $scope.datatypes[$scope.datatypeIndex].highlightMap[nomapot.attr('kimonoid')] && $scope.datatypes[$scope.datatypeIndex].highlightMap[nomapot.attr('kimonoid')].highlight.getAttribute('kimonodatatype') == $scope.datatypeIndex;
};
var snupacou = function(roudidbed) {
var srufafe = jQuery(roudidbed).attr('type');
srufafe && (srufafe = srufafe.toLowerCase());
var sufatsas = roudidbed.tagName;
return sufatsas && (sufatsas = sufatsas.toLowerCase()), 'input' == sufatsas && 'submit' == srufafe || 'a' == sufatsas || 'button' == sufatsas;
};
var nesuto = function(gonaku) {
var ameyof = jQuery(gonaku).attr('type');
ameyof && (ameyof = ameyof.toLowerCase());
var soubroulup = gonaku.tagName;
return soubroulup && (soubroulup = soubroulup.toLowerCase()), 'input' == soubroulup && ('text' == ameyof || 'email' == ameyof || 'password' == ameyof || 'search' == ameyof) || 'textarea' == soubroulup;
};
var agukug = function(kuerihen) {
for (var droupbresep = kuerihen, quahorie = kuerihen.textContent, mebinef = 0;
mebinef++ < 20;
) {
var quahilu = droupbresep.parentNode;
if (quahilu.textContent.trim() != quahorie.trim()) {
break;
}
if ('pagination' == $scope.datatypeIndex && 'A' == droupbresep.nodeName) {
break;
}
droupbresep = droupbresep.parentNode;
}
return droupbresep.nodeName.match(/^(TD|TH|A)$/i) ? droupbresep : kuerihen;
};
var daphugru = function(neritieze, dosichoy) {
var kacrima = neritieze;
jQuery('.kim-temp-selectable').each(function() {
scrubKimonoEl(jQuery(this));
});
kacrima.addClass(dosichoy + ' on kim-TempSpecial');
kacrima.attr('kimono-prev-id', kacrima.attr('id'));
jedoru = true;
kacrima.addClass('kim-' + $scope.getColor($scope.datatypeIndex));
kacrima[0].addEventListener('click', function(evt) {
$scope.preventAction(evt)
if (jedoru) {
chamehid(jQuery(evt.target));
}
return false;
}, true);
kacrima.on('mousedown', function() {
jQuery(this).removeClass('on kim-yellow kim-amber kim-orange kim-sunset kim-red kim-fuchsia kim-purple kim-indigo kim-blue kim-aqua kim-green kim-lime kim-tan kim-coffee kim-grey kim-smoke kim-bluegrey');
});
kacrima.on('mouseleave', function() {
scrubKimonoEl(jQuery(this));
});
};
var scrubKimonoEl = function($el) {
// Flip a flag
// TODO: Is jedoru important?
jedoru = false;
// Remove kimono properties and highlighting
$el.removeClass('kim kim-TempSpecial kim-temp-selectable on kim-yellow kim-amber kim-orange kim-sunset kim-red kim-fuchsia kim-purple kim-indigo kim-blue kim-aqua kim-green kim-lime kim-tan kim-coffee kim-grey kim-smoke kim-bluegrey');
// If there is an empty class, remove it
$el.attr('class') && '' != $el.attr('class') || $el.removeAttr('class');
// Remove element handlers
$el.off('mouseleave');
$el.off('click');
$el.off('mouseup');
};
var jocubu = function(ofokef) {
jedoru = false;
ofokef.removeClass('kim-TempSpecial kim-img-temp-selectable on kim-yellow kim-amber kim-orange kim-sunset kim-red kim-fuchsia kim-purple kim-indigo kim-blue kim-aqua kim-green kim-lime kim-tan kim-coffee kim-grey kim-smoke kim-bluegrey');
ofokef.attr('class') && '' != ofokef.attr('class') || ofokef.removeAttr('class');
ofokef.off('mouseleave');
ofokef.off('click');
ofokef.off('mouseup');
};
// When we hover an image outside of our control
jQuery('body').on('mouseenter', 'img:not(#Kimonify, #Kimonify *, .kim, .kim *, .kim-dont-touch, .kim-container *)', function(evt) {
$scope.flags.navigate || izhapor(jQuery(this)) || jQuery(evt.target).attr('kimonoid') || jQuery(evt.target).attr('kimonodatatype') || Utils.isKimonoChild(evt.target) || daphugru(jQuery(this), 'kim-img-temp-selectable', evt);
});
// When we hover an element outside of our control
jQuery('body').on('mouseenter', '*:not(#Kimonify, #Kimonify *, .kim, .kim *, .kim-hint *, .kim-dont-touch, .kim-dont-touch *)', function(evt) {
if (!$scope.flags.navigate && !izhapor(jQuery(this)) && !(jQuery(evt.target).attr('kimonodatatype') && jQuery(evt.target).attr('kimonodatatype').match($scope.datatypeIndex) || Utils.isKimonoChild(evt.target))) {
if ('loginMode' == $scope.flags.mode) {
return (nesuto(evt.target) && $scope.datatypeIndex < 2 || snupacou(evt.target) && 2 == $scope.datatypeIndex) && daphugru(jQuery(evt.target), 'kim-temp-selectable', evt), void 0;
}
var bopelik = (evt.target.textContent, evt.target);
var nidierep = cablozquef(bopelik);
if (nidierep) {
bopelik.nodeName.match(/A/i) && jQuery(bopelik).not('#kim-Toolbar a, .kim-container *, #kim-DoneOverlay a, #kim-LoginOverlay a, .kim-dont-touch') && (ln = jQuery(bopelik), ln.attr('href') && (ln.attr('kimonohref', ln.attr('href')), ln.removeAttr('href')), ln.attr('target', '_self'), ln.removeAttr('target'));
var loubepklom = agukug(bopelik);
daphugru(jQuery(loubepklom), 'kim-temp-selectable', evt);
}
}
});
var chamehid = function($el) {
jedoru = false;
if ('loginMode' == $scope.flags.mode) {
scrubKimonoEl($el);
quogeva($el);
return void 0;
}
var quefojo = 'img' == $el.prop('tagName').toLowerCase();
if (quefojo ? jocubu($el) : scrubKimonoEl($el), $el.is('#kim-Toolbar *, .kim-Overlay *, .kim-container *, #kim-RSSInfo *, #kim-DoneOverlay *, #kim-LoginOverlay *, .kim-highlight')) {
return console.log('You clicked a Kimono element, not gonna do anything!'), void 0;
}
var micuke = {
element: $el,
selectedText: $el.text(),
startIndex: 0,
type: 'actual',
img: quefojo
};
$scope.save();
HighlightManager.processSelection(micuke, 'clicked', $scope.datatypes, $scope.datatypeIndex, $scope.collections.length), Utils.animate(jQuery('.kim-data-dot[kimonodatatype="' + $scope.datatypeIndex + '"]'), 'pulse2', 300), $scope.updateModel(false), HighlightManager.updateHighlights($scope.datatypes, $scope.datatypeIndex, false, $scope.flags.mode);
$scope.$parent.$digest();
};
// When we finish clicking on an element (e.g. a click and drag occurs)
jQuery('body')[0].addEventListener('mouseup', function(evt) {
// If we are logged in and not handling page navigation
if ('loginMode' != $scope.flags.mode && !$scope.flags.navigate) {
// If the element is a kimono element, do nothing
if (Utils.isKimonoChild(jQuery(evt.target), true)) {
return evt;
}
// Stop propogation and default action (e.g. link follow, form submission)
$scope.preventAction(evt);
// If some text has been selected
// https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection
var selection = window.getSelection();
if ('' != selection) {
// Find the `.kim` and `.kim-hint` elements in our selection
// DEV: `getRangeAt` returns a document fragment containing the text nodes and whatnot
// DEV: https://developer.mozilla.org/en-US/docs/Web/API/Selection.getRangeAt
// DEV: https://developer.mozilla.org/en-US/docs/Web/API/Range
var selectedTextRange = (selection.toString(), selection.getRangeAt(0));
var kimElArr = Utils.querySelectorAll('.kim, .kim-hint', selectedTextRange.cloneContents());
// If we found `.kim/.kim-hint` elements
if (!(kimElArr.length > 0)) {
// Find the common ancestor for our nodes
// https://developer.mozilla.org/en-US/docs/Web/API/range.commonAncestorContainer
var _commonAncestorContainer = selectedTextRange.commonAncestorContainer;
// If the ancestor is an HTML element (e.g. `<div>`), save it
// https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType
if (1 == _commonAncestorContainer.nodeType) {
var commonAncestorContainer = selectedTextRange.commonAncestorContainer;
// Otherwise, save its parent
} else {
var commonAncestorContainer = selectedTextRange.commonAncestorContainer.parentElement;
}
// Rise each of the nodes up by 2 parents unless they are at the ancestor
// TODO: What is the point of this...
for (var rangeNodes = Selections.getRangeSelectedNodes(selectedTextRange), i = 0;
i < rangeNodes.length; i++) {
// Walk up the node's tree
for (var j = 0, content = rangeNodes[i].textContent;
rangeNodes[i] != commonAncestorContainer;) {
// Overwrite the node with its parent
rangeNodes[i] = rangeNodes[i].parentNode;
// If the old content doesn't match the new content, overwrite with our new content
// and keep track of how many nodes we have gone up
if (content != rangeNodes[i].textContent) {
content = rangeNodes[i].textContent;
j++;
}
// If we have gone up 2 nodes, reject the node
if (2 == j) {
return;
}
}
}
// If the ancestor is not a `.kim` element
// DEV: This is a perosnal addition because fuck this confusion of blending jQuery and HTML
// commonAncestorContainer = jQuery(commonAncestorContainer);
var $commonAncestorContainer = jQuery(commonAncestorContainer);
if (!$commonAncestorContainer.is('.kim')) {
// Scrub each of the selectable nodes
jQuery('.kim-temp-selectable').each(function() {
scrubKimonoEl(jQuery(this));
});
// https://developer.mozilla.org/en-US/docs/Web/API/range.startOffset
// http://api.jquery.com/contents/
// For each of the immediate cihldren (including text nodes) in our range's ancestor
var startIndex = selectedTextRange.startOffset;
var $childEls = $commonAncestorContainer.contents();
var len = $childEls.length;
var i = 0;
for (; len > i; i++) {
// If the node is a text node
var childEl = $childEls[i];
if (3 == childEl.nodeType) {
// If the node's contents matches the start of our range, stop
if (selectedTextRange.startContainer.nodeValue == childEl.nodeValue) {
break;
}
// Otherwise, add on to the starting portion of our start container
startIndex += childEl.nodeValue.length;
// Otherwise
} else {
// If the start container's text matches our elements text, stop
if (jQuery(selectedTextRange.startContainer).text() == jQuery(childEl).text()) {
break;
}
// Otherwise, add on the text length to the starting position of our container
startIndex += jQuery(childEl).text().length;
}
}
// Save the scope changes
// TODO: Look me up
$scope.save();
// TODO: Look up me...
HighlightManager.processSelection({
//
element: $commonAncestorContainer,
selectedText: selectedTextRange.toString(),
startIndex: startIndex,
type: 'actual',
img: false
}, 'dragged', $scope.datatypes, $scope.datatypeIndex, $scope.collections.length);
Utils.animate(jQuery('.kim-data-dot[kimonodatatype="' + $scope.datatypeIndex + '"]'), 'pulse2', 300);
$scope.updateModel(false);
HighlightManager.updateHighlights($scope.datatypes, $scope.datatypeIndex, $scope.flags.loginMode);
$scope.$parent.$digest();
}
}
}
}
}, true);
var quogeva = function(uxubog) {
$scope.save();
var cojoole = Selections.getSuperSpecificSelector([uxubog[0]]);
var eyoobel = {
element: uxubog,
selectedText: uxubog.text(),
startIndex: 0,
type: 'actual',
img: false
};
$scope.datatypes[$scope.datatypeIndex].initiateWithSelectorForSingleElement(eyoobel, cojoole), HighlightManager.updateHighlights($scope.datatypes, $scope.datatypeIndex, false, $scope.flags.mode), $scope.updateModel(true), Utils.animate(jQuery('.kim-data-dot[kimonodatatype="' + $scope.datatypeIndex + '"]'), 'pulse2', 300), $scope.toast('success', keleseb[$scope.$parent.datatypeIndex] + ' Selected.', 1e3), $timeout(function() {
$scope.showHelp('auth', $scope.datatypeIndex + 1);
}, 1e3), $scope.$apply(), $scope.clearHint('all');
};
}]), angular.module('Kimono').controller('illegalOverlayController', ['$scope', function($scope) {
$scope.enter = function() {
$scope.flags.showBackButton = false;
};
}]), angular.module('Kimono').controller('largeOverlayController', ['$scope', function($scope) {
$scope.show = false, $scope.currentOverlay = '', $scope.backButton = true, $scope.close = function() {
$scope.show = false, $scope.currentOverlay = '', $scope.backButton = true;
}, $scope.$on('show_large_overlay', function(nipikop, fooribou, duhiji) {
fooribou.length ? ($scope.show = true, $scope.currentOverlay = fooribou, $scope.backButton = !duhiji) : $scope.close();
});
}]), angular.module('Kimono').controller('loginOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', function($scope, Validation, Regex, WebServices, $timeout) {
$scope.loginStep = 1, $scope.form = {
username: '',
password: ''
}, $scope.loginError = false, $scope.loading = false, $scope.enter = function() {
$scope.loginStep = 1, $scope.loginError = false;
}, $scope.login = function() {
$scope.loading = true, WebServices.login($scope.form.username, $scope.form.password).then(function(holnlesab) {
$scope.loading = false, $scope.loginStep = 2, $scope.flags.currentUser = holnlesab, $timeout(function() {
$scope.showLargeOverlay('loginMode' == $scope.flags.mode ? 'auth' : 'done');
}, 2e3);
}, function() {
$scope.loading = false, $scope.loginError = true;
}, function(gameco) {
1 == gameco && ($scope.loading = true);
});
};
}]), angular.module('Kimono').controller('mainController', ['Config', '$scope', 'Collections', 'Datatypes', 'HighlightManager', 'WebServices', 'Utils', '$timeout', '$interval', 'Selections', 'Kimono_async', 'Common', function(Config, $scope, Collections, Datatypes, HighlightManager, WebServices, Utils, $timeout, $interval, Selections, Kimono_async, Common) {
$scope.actionHistory = [], $scope.collections = [], $scope.collectionNames = [], $scope.datatypes = [], $scope.config = Config, $scope.datatypeIndex = 0, $scope.targetUrl = Utils.getTargetUrl(), $scope.collectionTitle = 'Collection', $scope.flags = {
loading: false,
actionHistoryLength: 0,
hasPagination: false,
currentView: 'extractor',
moveBack: {},
mode: 'normal',
userOverrideCollections: false,
currentUser: undefined,
currentApi: false,
editing: false,
toasting: false,
toastMessage: '',
toastType: 'warning',
navigate: false,
currentStep: '-1',
currentHints: {},
showApiPanel: false,
showNotificationPanel: false
}, window.$k.showModel = function() {
console.log('Collections', $scope.collections), console.log('Datatypes', $scope.datatypes), console.log('Collection Names', $scope.collectionNames), console.log('Flags', $scope.flags);
}, $scope.tags = Config.tags, $scope.tagWords = {
essay: 'books',
shop: 'shopping',
'social science': 'economics',
office: 'jobs',
show: 'movies',
'sell-off': 'auctions',
text: 'books',
global: 'international',
communities: 'community',
foodstuff: 'food',
radio: 'media',
shoe: 'shoes',
lend: 'investing',
announcement: 'news',
snack: 'food',
layout: 'design',
dining: 'food',
tv: 'entertainment',
graph: 'maps',
pump: 'shoes',
writing: 'books',
blog: 'blogs',
resort: 'hotels',
'working capital': 'venture capital',
civilization: 'culture',
rumor: 'news',
holiday: 'holidays',
earnings: 'salaries',
designs: 'design',
publication: 'books',
paperback: 'books',
coding: 'code',
nation: 'politics',
'cowboy boot': 'shoes',
game: 'games',
quest: 'search',
facebook: 'social networking',
outlet: 'shopping',
report: 'news',
rental: 'rentals',
bank: 'banking',
bread: 'food',
bar: 'food',
meat: 'food',
opera: 'music',
hunt: 'search',
feast: 'food',
teams: 'sports',
architecture: 'design',
rock: 'music',
businesses: 'business',
athletics: 'sports',
technologie: 'technology',
meal: 'food',
flick: 'movies',
sneaker: 'shoes',
bill: 'money',
neighborhood: 'community',
people: 'community',
trend: 'fashion',
fad: 'fashion',
idea: 'design',
society: 'community',
'dining room': 'food',
traveling: 'travel',
magazine: 'books',
programmer: 'programming',
sport: 'sports',
employment: 'jobs',
investment: 'investing',
hostel: 'hotels',
album: 'music',
videotape: 'movies',
pattern: 'design',
motel: 'hotels',
cooking: 'food',
anniversary: 'holidays',
research: 'reference',
state: 'community',
capital: 'money',
melody: 'music',
'public': 'community',
sciences: 'science',
wage: 'salaries',
tour: 'travel',
team: 'sports',
payroll: 'salaries',
arts: 'art',
stipend: 'salaries',
loafer: 'shoes',
job: 'jobs',
apartment: 'rentals',
musical: 'music',
'motion picture': 'movies',
wealth: 'money',
booklet: 'books',
bloggin: 'blogs',
climate: 'weather',
diner: 'food',
ventures: 'venture capital',
economic: 'economics',
study: 'design',
experience: 'culture',
foreign: 'international',
saloon: 'food',
dogecoin: 'cryptocurrency',
gamer: 'games',
browsing: 'ecommerce',
navigation: 'maps',
tome: 'books',
disclosure: 'news',
governments: 'government',
civil: 'social',
transit: 'travel',
profession: 'jobs',
sketch: 'design',
'tennis shoe': 'shoes',
slipper: 'shoes',
pamphlet: 'books',
bitcoin: 'cryptocurrency',
layoff: 'jobs',
twitte: 'social networking',
learning: 'science',
lodging: 'hotels',
athlete: 'sports',
message: 'news',
cafeteria: 'food',
singing: 'music',
sightseeing: 'travel',
story: 'news',
fee: 'salaries',
publishing: 'books',
district: 'community',
spending: 'ecommerce',
flying: 'travel',
political: 'politics',
system: 'science',
celebration: 'holidays',
fiction: 'books',
program: 'software',
statement: 'news',
house: 'real estate',
scheme: 'design',
universal: 'international',
'running shoe': 'shoes',
lease: 'rentals',
festivity: 'holidays',
form: 'fashion',
startup: 'startups',
company: 'jobs',
hotel: 'hotels',
broadcast: 'news',
fund: 'investing',
trek: 'travel',
construction: 'design',
restauraunt: 'food',
brochure: 'books',
gaming: 'games',
copy: 'books',
quotation: 'reference',
commerce: 'finance',
television: 'entertainment',
novel: 'books',
'operating system': 'software',
look: 'fashion',
sailing: 'travel',
'coffee shop': 'food',
tavern: 'hotels',
ride: 'travel',
cash: 'money',
finances: 'finance',
career: 'jobs',
entrepreneurial: 'entrepreneurship',
computer: 'computers',
exploration: 'travel',
venture: 'venture captial',
land: 'real estate',
property: 'real estate',
excursion: 'travel',
feature: 'movies',
nonfiction: 'books',
cinema: 'movies',
textbook: 'books',
festival: 'holidays',
inn: 'hotels',
pastime: 'sports',
gala: 'holidays',
rap: 'music',
campaigning: 'politics',
education: 'science',
check: 'money',
film: 'movies',
cuisine: 'food',
'online journal': 'blogs',
trip: 'travel',
pay: 'salaries',
boot: 'shoes',
spreadsheet: 'software',
arrangement: 'design',
note: 'reference',
field: 'business',
book: 'books',
inquiry: 'search',
vacation: 'holidays',
income: 'salaries',
composition: 'design',
crowdfund: 'crowdfunding',
map: 'maps',
information: 'science',
advice: 'news',
drink: 'food',
communal: 'community',
automation: 'technology',
invested: 'investing',
coder: 'code',
payment: 'money',
tune: 'music',
salary: 'salaries',
edition: 'books',
os: 'software',
cleat: 'shoes',
spend: 'investing',
'e-commerce': 'ecommerce',
machinery: 'technology',
movie: 'movies',
model: 'fashion',
drawing: 'design'
}, $scope.apiTags = [], $scope.new_features = [], $scope.allFeatures = [], $scope.getColor = function(bapola) {
return Config.getColor(bapola);
}, $scope.clearHint = function(hafiquek) {
if ('all' == hafiquek) {
for (var ganumus in $scope.flags.currentHints) {
if ($scope.flags.currentHints[ganumus]) {
var pitostri = $scope.flags.currentHints[ganumus];
delete $scope.flags.currentHints[ganumus]
, pitostri();
}
}
} else {
$scope.flags.currentHints[hafiquek] && $scope.flags.currentHints[hafiquek](),
delete $scope.flags.currentHints[hafiquek];
}
}, $scope.$watch('datatypeIndex', function() {
'loginMode' == $scope.flags.mode && $scope.clearHint('auth');
}), $scope.$watch('flags.mode', function(tebena) {
$scope.clearHint('auth'), 'navigation' == tebena && $scope.clearHint('new_navigation'), 'loginMode' == tebena && $scope.clearHint('new_auth');
}), $scope.showHelp = function(duecaro, likusu) {
if ('chrome' != Config.clientEnv || 'loginMode' != $scope.flags.mode || 'auth' != duecaro || 'undefined' != typeof $scope.flags.currentUser && 'undefined' != typeof $scope.flags.currentUser.alerts && 'true' == $scope.flags.currentUser.alerts.auth || ($scope.clearHint('auth'), 0 == likusu && $timeout(function() {
var mujagu = jQuery('.kim-data-dot[kimonodatatype="0"]').position();
mujagu.left -= 17, mujagu.top += 35, $scope.flags.currentHints.auth = Utils.drawHint(jQuery('body'), 'Username', 'First, locate the <strong>username/email</strong> field of the login form and click it.', {
x: mujagu.left,
y: mujagu.top
}, {
width: 300,
height: ''
}, null, 'up', 'left', false);
}, 20), 1 == likusu && $timeout(function() {
var nipuko = jQuery('.kim-data-dot[kimonodatatype="1"]').position();
nipuko.left -= 17, nipuko.top += 35, $scope.flags.currentHints.auth = Utils.drawHint(jQuery('body'), 'Password', 'Next, switch to the <strong>password</strong> field selector and then click the password field.', {
x: nipuko.left,
y: nipuko.top
}, {
width: 300,
height: ''
}, null, 'up', 'left', false);
}, 20), 2 == likusu && $timeout(function() {
var oyonen = jQuery('.kim-data-dot[kimonodatatype="2"]').position();
oyonen.left -= 17, oyonen.top += 35, $scope.flags.currentHints.auth = Utils.drawHint(jQuery('body'), 'Submit Button', 'Finally, click the <strong>login button</strong> selector and then click the login button.', {
x: oyonen.left,
y: oyonen.top
}, {
width: 300,
height: ''
}, null, 'up', 'left', false);
}, 20), 3 == likusu && $timeout(function() {
$scope.flags.currentHints.auth = Utils.drawHint(jQuery('body'), 'Almost finished', 'Now click <strong>done</strong> to enter your login information for this site.', {
x: 0,
y: 45,
right: 13
}, {
width: 300,
height: ''
}, null, 'up', 'right', false);
}, 20), $scope.flags.currentUser && 'dev' != window.$k.config.serverEnv && WebServices.updateUser({
auth: true
}, $scope.flags.currentUser._id, 'alerts')), 'chrome' == Config.clientEnv && 'https:' == window.location.protocol && 'on' != $scope.flags.currentStep && 'done' != $scope.flags.currentStep && 'new_auth' == duecaro && ('undefined' == typeof $scope.flags.currentUser || 'undefined' == typeof $scope.flags.currentUser.alerts || 'true' != $scope.flags.currentUser.alerts.new_auth)) {
var cephifu = '<p class="auth-hint-message">When you kimonify a page that looks like it might require you to login to see it\'s data, the lock icon will pulsate. Click it to enter <strong>Auth mode</strong>.</p>';
$scope.flags.currentUser && (cephifu += '<div class="kim-hint-checkbox"> <input type="checkbox" value="1" id="AuthDontShowCheckbox"> <label for="AuthDontShowCheckbox"></label> </div> <span class="dont-show-label">Don\'t show me this again</span>'), $scope.flags.currentHints.new_auth = Utils.drawHint(jQuery('body'), 'Login Mode', cephifu, {
x: 0,
y: 45,
right: 215
}, {
width: 300,
height: ''
}, null, 'up', 'right', false, function() {
if ($scope.flags.currentUser) {
var mufaru = jQuery('.kim-hint #AuthDontShowCheckbox')[0];
var puceyay = mufaru && mufaru.checked;
puceyay && $scope.flags.currentUser && 'dev' != window.$k.config.serverEnv && WebServices.updateUser({
new_auth: true
}, $scope.flags.currentUser._id, 'alerts');
}
});
}
if (!('chrome' != Config.clientEnv || 'on' != $scope.flags.currentStep && 'done' != $scope.flags.currentStep || 'new_navigation' != duecaro || 'undefined' != typeof $scope.flags.currentUser && 'undefined' != typeof $scope.flags.currentUser.alerts && 'true' == $scope.flags.currentUser.alerts.new_navigation)) {
var cephifu = '<span>If you aren\'t already on the login page, click here to enable <strong>navigation mode</strong> and navigate there.</span>';
$scope.flags.currentHints.new_navigation = Utils.drawHint(jQuery('body'), 'Navigation Mode', cephifu, {
x: 0,
y: 45,
right: 186
}, {
width: 300,
height: ''
}, null, 'up', 'right', false), 'dev' != window.$k.config.serverEnv && $scope.flags.currentUser && WebServices.updateUser({
new_navigation: true
}, $scope.flags.currentUser._id, 'alerts');
}
};
var fieture = ['Username Field', 'Password Field', 'Submit'];
$scope.preventAction = function(evt) {
// If we are not navigating, stop the event from propogating and its default action (e.g. follow link)
$scope.flags.navigate || (evt.stopPropagation(), evt.preventDefault());
}, $scope.reset = function() {
HighlightManager.removeAllHighlights($scope.datatypes), $scope.datatypes = [], Datatypes.resetPropertyCounter(), $scope.collections = [], $scope.collectionNames = [], $scope.datatypeIndex = 0, $scope.flags.actionHistoryLength = 0, $scope.flags.hasPagination = false, $scope.flags.moveBack = {}, $scope.updateModel(false);
}, jQuery('body').on('keyup', function(idougourn) {
9 == idougourn.keyCode;
}), $scope.link = function(asorom) {
'chrome' != Config.clientEnv ? window.location.href = asorom : WebServices.followLink(asorom);
}, $scope.kimonify = function(tosabi) {
'chrome' == $scope.config.clientEnv ? WebServices.changeState('kimonifying').then(function() {
window.location.href = tosabi.match(/http:\/\//, '') ? tosabi : 'http://' + tosabi;
}) : window.location.href = Config.KM_HOST + '/load?url=' + encodeURIComponent(tosabi);
}, $scope.save = function() {
var cokobee = Datatypes.cloneDatatypes($scope.datatypes);
$scope.actionHistory.push({
collections: jQuery.extend(true, [], $scope.collections),
collectionNames: jQuery.extend(true, [], $scope.collectionNames),
datatypes: cokobee,
datatypeIndex: $scope.datatypeIndex,
pagination: $scope.flags.hasPagination,
override: $scope.userOverrideCollections
}), $scope.flags.actionHistoryLength++, $scope.actionHistory.length > 20 && ($scope.actionHistory.splice(0, 1), $scope.flags.actionHistoryLength--);
}, $scope.keyup = function(ulfobin, pecori, trimebam) {
13 == ulfobin.keyCode && trimebam && pecori();
}, $scope.isHttps = function() {
return 'https:' == window.location.protocol;
}, $scope.undo = function(aroodquel) {
if (0 == $scope.actionHistory.length) {
return $scope.toast('error', 'No undo steps in memory!', 2e3), void 0;
}
Utils.animate(jQuery('.kim-toolbar-button.kim-undo'), 'pulse2', 300), $scope.flags.actionHistoryLength--, HighlightManager.removeAllHighlights($scope.datatypes);
var cikojid = $scope.actionHistory.pop();
$scope.collections = cikojid.collections, $scope.collectionNames = cikojid.collectionNames, $scope.datatypes = cikojid.datatypes, $scope.datatypeIndex = cikojid.datatypeIndex, $scope.flags.hasPagination = cikojid.pagination, $scope.userOverrideCollections = cikojid.override, $scope.updateModel(), HighlightManager.updateHighlightsForAllDatatypes($scope.datatypes, false, $scope.flags.mode), HighlightManager.showHighlights($scope.datatypes, $scope.datatypeIndex), aroodquel || $scope.toast('success', 'Undo Successful', 2e3);
}, $scope.updateModel = function(gekoukink) {
var sackikal = Collections.update($scope.datatypes, $scope.flags.userOverrideCollections, $scope.collectionNames);
$scope.collections = sackikal[0], $scope.collectionNames = sackikal[1], $scope.flags.hasPagination = sackikal[2], jQuery.each($scope.datatypes, function(fosavu, gidogor) {
gidogor.getNumberOfElements();
}), $scope.collectionTitle = $scope.collections.length > 1 ? 'Collections' : 'Collection', gekoukink && $scope.$digest();
}, $scope.showLargeOverlay = function(quememkos, ranlurut) {
$scope.$broadcast('show_large_overlay', quememkos, ranlurut);
}, $scope.showPopup = function(quopafem) {
$scope.$broadcast('show_popup', quopafem);
}, $scope.changeView = function(redrobouk) {
$scope.flags.currentView = redrobouk, 'extractor' != redrobouk ? setTimeout(function() {
jQuery('html, body').css({
overflow: 'hidden',
height: '100%'
});
}, 500) : jQuery('html, body').css({
overflow: '',
height: ''
});
};
var cinougef;
$scope.toast = function(gabesun, irscoodbreed, perobu) {
$timeout.cancel(cinougef), $scope.flags.toasting = true, $scope.flags.toastMessage = irscoodbreed, $scope.flags.toastType = gabesun, perobu && (cinougef = $timeout(function() {
$scope.unToast();
}, perobu));
}, $scope.unToast = function() {
$scope.flags.toasting = false;
}, $scope.loadApi = function(heesnutan, mueladu) {
var tichunue = $timeout(function() {
$scope.toast('warning', 'Loading API for editing....');
}, 500);
WebServices.apiForEditing(heesnutan).then(function(nodeko) {
return $scope.reset(), $scope.flags.editing && nodeko.authEnabled && 'on' == $scope.flags.currentStep ? ($timeout.cancel(tichunue), $scope.toast('warning', 'Login again.', 3e3), mueladu()) : ($scope.flags.currentApi = nodeko, $scope.flags.userOverrideCollections = 'true' == nodeko.userOverrideCollections || nodeko.userOverrideCollections === true, $scope.flags.crawlingEnabled = nodeko.crawlingenabled, $scope.flags.hasPagination = nodeko.crawlingenabled && nodeko.instructions && 'paginate' == nodeko.instructions.type, $scope.collectionNames = nodeko.collectionNames, $scope.apiTags = nodeko.tags, jQuery.each(nodeko.collections, function(dapigat, nocraque) {
jQuery.each(nocraque, function(bujane, beculuf) {
var opayad = Datatypes.getObjectForImport(beculuf);
opayad.getNumberOfElements(), 'pagination' == opayad.context.index ? $scope.datatypes.pagination = opayad : $scope.datatypes.push(opayad);
});
}), Datatypes.resetPropertyCounter($scope.datatypes.length), $scope.updateModel(false), HighlightManager.updateHighlightsForAllDatatypes($scope.datatypes, true, $scope.flags.mode), HighlightManager.showHighlights($scope.datatypes, $scope.datatypeIndex), $timeout.cancel(tichunue), $scope.unToast(), $interval(function() {
$scope.updateModel(false), HighlightManager.updateHighlightsForAllDatatypes($scope.datatypes, true, $scope.flags.mode), HighlightManager.showHighlights($scope.datatypes, $scope.datatypeIndex);
}, 500, 6), mueladu(), void 0);
}, function() {
mueladu(true, {
err: 'Unable to load api.'
});
});
};
var lachestra = false;
$scope.openNotifications = function() {
$scope.flags.showNotificationPanel = !$scope.flags.showNotificationPanel, $scope.flags.showNotificationPanel && !lachestra && (lachestra = true, WebServices.updateUser($scope.new_features, $scope.flags.currentUser._id, 'new_features'), $scope.new_features = {});
}, $scope.setTags = function() {
var bluporo = {};
var giboki = jQuery('body').clone();
giboki.find('form, script, #Kimonify, .kim-hint, .kim-datatypes').remove(), giboki = giboki.text().toLowerCase().replace(/\W\s/g, ''), giboki.split(' ').forEach(function(heyafem) {
var ibisied = 0;
var jeelinpuf = '';
heyafem = heyafem.replace(/[ \t\r]+/g, '').trim(), heyafem && ($scope.tagWords[heyafem] ? (ibisied = 1, jeelinpuf = $scope.tagWords[heyafem]) : $scope.tags.indexOf(heyafem) > -1 && (ibisied = 5, jeelinpuf = heyafem), ibisied && (bluporo[jeelinpuf] = bluporo[jeelinpuf] ? bluporo[jeelinpuf] + ibisied : ibisied));
});
var selade = Object.keys(bluporo).sort(function(roohigu, fomoyok) {
return bluporo[fomoyok] - bluporo[roohigu];
});
$scope.apiTags = selade.filter(function(flafoflo) {
return bluporo[flafoflo] > 5;
}).slice(0, 3);
};
var dikafos = $timeout(function() {
$scope.flags.loading = true;
}, 1e3);
// In series
Kimono_async.seriesFlow([
function (cb) {
if (!Utils.looseStringContains(Utils.getTargetUrl(), Config.normalizeWhitelist)) {
setTimeout(function() {
Selections.normalizeAllTables();
}, 700);
}
Utils.linkDisable();
$scope.datatypes.push(Datatypes.new(null, 0, 0));
// Initialize the highlight manager to a global scope
HighlightManager.init($scope);
$scope.datatypeIndex = 0;
$scope.updateModel(false);
jQuery('div').each(function(quonamue, quebedo) {
var nokorat = jQuery(quebedo).css('position');
if ('fixed' == nokorat) {
var cluefaqui = parseInt(jQuery(quebedo).css('top'));
jQuery(quebedo).css('top', cluefaqui + 45);
}
});
cb();
},
function (cehokas) {
'chrome' == Config.clientEnv ? WebServices.getState().then(function(umaset) {
$scope.flags.currentStep = umaset, cehokas();
}, function() {
cehokas(true, {
err: 'Unable to connect with chrome extension'
});
}) : cehokas();
},
function (sugeki) {
WebServices.getCurrentUser().then(function(fegosle) {
$scope.flags.currentUser = fegosle, sugeki();
}, function() {
sugeki();
});
},
function (jukoure) {
if ('chrome' == Config.clientEnv) {
WebServices.getEditingApi().then(function(shuhishay) {
jukoure(false, {
activeApi: shuhishay
});
}, function() {
jukoure(true, {
err: 'Unable to connect with chrome extension'
});
});
} else {
var sotogup = Utils.getUrlParam('editapi');
var nafleela = Utils.getUrlParam('selectedapi');
jukoure(false, {
activeApi: sotogup,
selectedApi: nafleela
});
}
}, function(tisrorab, taylaney) {
var swipoko = taylaney.activeApi;
var disoxieth = taylaney.selectedApi;
swipoko && 'null' != swipoko ? ($scope.flags.editing = true, $scope.loadApi(swipoko, tisrorab)) : disoxieth && 'null' != disoxieth ? $scope.loadApi(disoxieth, tisrorab) : tisrorab();
}, function(sihouteet) {
'on' == $scope.flags.currentStep && ($scope.reset(), $scope.flags.mode = 'loginMode', $scope.flags.userOverrideCollections = true, $scope.datatypes.push(Datatypes.new(fieture[0], 0, 0)), $scope.datatypes.push(Datatypes.new(fieture[1], 0, 1)), $scope.datatypes.push(Datatypes.new(fieture[2], 0, 2)), $scope.datatypes[0].hide = true, $scope.datatypes[1].hide = true, $scope.datatypes[2].hide = true, $scope.collectionNames[0] = 'Login Info', $scope.updateModel(false)), $scope.showHelp('new_auth'), $scope.showHelp('auth', 0), $scope.showHelp('new_navigation'), sihouteet();
}, function(nulofen) {
_.each(Common.blacklist, function(carappak) {
Utils.getTargetUrl().match(carappak) && scope.showLargeOverlay('illegal', true);
}), nulofen();
}, function(berogfab) {
$scope.flags.editing || $scope.setTags(), berogfab();
}, function(cufinu) {
$scope.new_features = {}, $scope.allFeatures = [], WebServices.getNotifications().then(function(deetasuep) {
if ($scope.allFeatures = deetasuep, $scope.flags.currentUser && $scope.flags.currentUser.new_features) {
for (feesifi in $scope.allFeatures) {
var banica = $scope.allFeatures[feesifi]._id;
'true' != $scope.flags.currentUser.new_features[banica] && $scope.flags.currentUser.new_features[banica] !== true && ($scope.new_features[banica] = true);
}
} else if ($scope.flags.currentUser) {
for (feesifi in $scope.allFeatures) {
$scope.new_features[$scope.allFeatures[feesifi]._id] = true;
}
}
cufinu();
}, function() {
cufinu();
});
}], function(memakjad, quojoro) {
memakjad && console.log('error', quojoro), $timeout.cancel(dikafos), $scope.flags.loading = false, $scope.flags.editing || Utils.getTargetUrl().match(Config.KM_HOST) || Utils.getTargetUrl().match(Config.KM_HOST_WWW) || WebServices.getSiteApis($scope.targetUrl).then(function(sequiru) {
sequiru && sequiru.length && '-1' == $scope.flags.currentStep && ($scope.$broadcast('api_panel_launch', sequiru), $scope.flags.showApiPanel = true);
}, function() {
console.log('Could not load existing APIs');
});
});
}]), angular.module('Kimono').controller('popupController', ['$scope', function($scope) {
$scope.show = false, $scope.currentPopup = '', $scope.close = function() {
$scope.show = false, $scope.currentPopup = '';
}, $scope.$on('show_popup', function(kooquomi, shuquino) {
shuquino.length ? ($scope.show = true, $scope.currentPopup = shuquino) : $scope.close();
});
}]), angular.module('Kimono').controller('rawOverlayController', ['$scope', 'Collections', 'Utils', 'WebServices', 'Common', function($scope, Collections, Utils, WebServices, Common) {
$scope.mode = 'json', $scope.enter = function() {
$scope.selectedCollection = $scope.collectionNames[0], Collections.updateDatalists($scope.collections), $scope.updateData();
}, $scope.updateData = function() {
var cadankul = Common.getJSON($scope.collections, $scope.collectionNames);
$scope.json = cadankul, $scope.rss = Common.getRSS(cadankul, 'API Name', Utils.getTargetUrl(), $scope.collectionNames[0]), $scope.csv = Common.getCSV(cadankul, $scope.collections), $scope.table = Common.getTable(cadankul, $scope.collections);
}, $scope.clickTableCollection = function(siroyap) {
$scope.selectedCollection = siroyap;
}, $scope.selectText = function() {
var suhito = window.getSelection();
var romukum = document.createRange();
romukum.selectNodeContents(document.getElementsByClassName('kim-code ' + $scope.mode)[0]), suhito.removeAllRanges(), suhito.addRange(romukum);
}, $scope.selectCurrentTable = function() {
var ikutquul = window.getSelection();
var quegura = document.createRange();
quegura.selectNodeContents(document.querySelectorAll('.kim-container .kim-spreadsheet table')[0]), ikutquul.removeAllRanges(), ikutquul.addRange(quegura);
}, $scope.download = function() {
var utcetib;
utcetib = 'json' == $scope.mode ? JSON.stringify($scope[$scope.mode], null, 2) : $scope[$scope.mode], WebServices.getDownloadFile('rss' == $scope.mode ? 'xml' : $scope.mode, utcetib).then(function(somigog) {
window.location.href = somigog;
});
}, $scope.openRssInfo = function() {
$scope.flags.currentPopup = 'rssInfo';
}, $scope.updateData();
}]), angular.module('Kimono').controller('signupOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', function($scope, Validation, Regex, WebServices, $timeout) {
$scope.signupStep = 1, $scope.form = {
name: '',
username: '',
password: ''
}, $scope.signupError = false, $scope.loading = false, $scope.errors = {
name: false,
username: false,
password: false
}, $scope.enter = function() {
$scope.signupStep = 1, $scope.signupError = false, $scope.errors = {
name: false,
username: false,
password: false
};
}, $scope.resetErrors = function() {
$scope.signupError = false, $timeout(function() {
$scope.errors = {
name: false,
username: false,
password: false
};
}, 300);
}, $scope.signup = function() {
$scope.loading = true;
var jademep = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/gim;
return '' == $scope.form.name.trim() && ($scope.errors.name = 'Name is required', $scope.signupError = true), '' == $scope.form.username.trim() ? ($scope.errors.email = 'Email is required', $scope.signupError = true) : $scope.form.username.match(jademep) || ($scope.errors.email = 'Please enter a valid email', $scope.signupError = true), '' == $scope.form.password.trim() ? ($scope.errors.password = 'A password is required', $scope.signupError = true) : $scope.form.password.match(/......+/) || ($scope.errors.password = 'Password must be at least 6 characters', $scope.signupError = true), $scope.signupError ? ($scope.loading = false, void 0) : (WebServices.signup($scope.form.name, $scope.form.username, $scope.form.password).then(function(quequeflie) {
$scope.loading = false, $scope.signupStep = 2, $scope.flags.currentUser = quequeflie, $timeout(function() {
$scope.showLargeOverlay('loginMode' == $scope.flags.mode ? 'auth' : 'done');
}, 2e3);
}, function() {
$scope.loading = false, $scope.signupError = true;
}, function(quiderad) {
1 == quiderad && ($scope.loading = true);
}), void 0);
};
}]), angular.module('Kimono').controller('toolbarController', ['Config', '$scope', 'Datatypes', 'HighlightManager', 'Utils', 'WebServices', '$timeout', 'Common', function(Config, $scope, Datatypes, HighlightManager, Utils, WebServices, $timeout, Common) {
var conuedu = ['Username Field', 'Password Field', 'Submit'];
$scope.$watch(function() {
return $scope.datatypeIndex;
}, function(gokehi, flabungar) {
Utils.animate(jQuery('.kim-data-dot[kimonodatatype="' + gokehi + '"]'), 'pulse2', 300), $scope.datatypes[flabungar] && $scope.datatypes[gokehi] && 'loginMode' != $scope.flags.mode && (HighlightManager.hideHighlights($scope.datatypes, flabungar), HighlightManager.showHighlights($scope.datatypes, gokehi));
}), $scope.enableLoginMode = function() {
'chrome' == Config.clientEnv && (_.each(Common.nosupportlist, function(enkakim) {
Utils.getTargetUrl().match(enkakim) && $scope.showLargeOverlay('nosupport', true);
}), WebServices.enableAuth());
}, $scope.loginMode = function() {
'loginMode' != $scope.flags.mode ? ($scope.reset(), $scope.flags.navigate = false, Utils.linkDisable(), WebServices.changeState('loggingIn'), $scope.flags.currentStep = 'loggingIn', $scope.flags.mode = 'loginMode', $scope.flags.userOverrideCollections = true, $scope.datatypes.push(Datatypes.new(conuedu[0], 0, 0)), $scope.datatypes.push(Datatypes.new(conuedu[1], 0, 1)), $scope.datatypes.push(Datatypes.new(conuedu[2], 0, 2)), $scope.collectionNames[0] = 'Login Info', $scope.changeView('extractor'), $scope.updateModel(false)) : $scope.extractMode();
}, $scope.navigateMode = function() {
$scope.flags.navigate ? window.location.reload() : ($scope.flags.mode = 'navigation', Utils.linkEnable(), $scope.flags.navigate = true, HighlightManager.removeAllHighlights($scope.datatypes));
}, $scope.extractMode = function() {
'normal' != $scope.flags.mode && ($scope.reset(), $scope.collectionNames[0] = 'collection1', $scope.datatypes.push(Datatypes.new('property1', 0, 0)), $scope.flags.userOverrideCollections = false, $scope.flags.mode = 'normal', WebServices.changeState('-1'), $scope.flags.currentStep = '-1', $scope.changeView('extractor'), $scope.updateModel(false), Utils.linkEnable(), $scope.flags.navigate = false);
}, $scope.config = Config, $scope.addDatatype = function() {
HighlightManager.hideHighlights($scope.datatypes, $scope.datatypeIndex), Utils.animate(jQuery('.kim-new-datatype'), 'rotateAndMove', 300, function() {
$scope.save(), $scope.datatypes.push(Datatypes.new(null, $scope.collections.length, $scope.$parent.datatypes.length)), $scope.changeDatatype($scope.datatypes.length - 1), $scope.updateModel(true);
});
}, $scope.keydown = function(jequemil) {
9 == jequemil.keyCode && ($scope.changeDatatype(($scope.datatypeIndex + 1) % $scope.datatypes.length), jQuery(jequemil.target).focus(), jequemil.preventDefault(), jequemil.stopPropagation());
}, $scope.doneButtonMessage = function() {
return $scope.flags.editing && 'loginMode' != $scope.flags.mode ? 'Save' : 'Done';
}, $scope.doneButtonTitle = function() {
return $scope.flags.editing && 'loginMode' != !$scope.flags.mode ? 'Save' : 'Create';
}, $scope.changeDatatype = function(najarpek) {
$scope.$parent.datatypeIndex = najarpek;
}, $scope.pagination = function() {
$scope.datatypes.pagination || ($scope.datatypes.pagination = Datatypes.new('Pagination Link', 'pagination', 'pagination')), $scope.$parent.datatypeIndex = 'pagination';
}, $scope.delete = function(stalokay) {
$scope.dataDotUnhover(stalokay), $scope.save(), HighlightManager.removeAllHighlights($scope.datatypes, $scope.datatypeIndex), $scope.$parent.datatypes.splice(stalokay, 1);
for (var kugopa = stalokay;
kugopa < $scope.datatypes.length;
kugopa++) {
$scope.$parent.datatypes[kugopa].context.index--;
}
$scope.$parent.datatypeIndex = $scope.datatypes.length - 1, HighlightManager.updateHighlightsForAllDatatypes($scope.datatypes, true, $scope.flags.mode), HighlightManager.showHighlights($scope.datatypes, $scope.datatypeIndex), $scope.updateModel(false);
}, $scope.deletePagination = function() {
$scope.flags.hasPagination && ($scope.save(), HighlightManager.removeHighlightsForDatatypeIndex($scope.datatypes, 'pagination'), $scope.$parent.collections.splice($scope.$parent.collections.length - 1, 1), $scope.$parent.collectionNames.splice($scope.$parent.collectionNames.length - 1, 1), $scope.$parent.datatypes.pagination = undefined, $scope.flags.hasPagination = false, $scope.flags.crawlingEnabled = false, $scope.updateModel(), $scope.dataDotUnhover('pagination'), Utils.animate(jQuery('.kim-pagination'), 'pulse2', 300));
}, $scope.done = function() {
var hokeque = '';
hokeque = 'loginMode' == $scope.flags.mode ? 'auth' : 'done', $scope.currentUser ? $scope.showLargeOverlay(hokeque) : WebServices.getCurrentUser().then(function(kenekem) {
$scope.currentUser = kenekem, $scope.showLargeOverlay(hokeque);
}, function() {
$scope.showLargeOverlay('login');
});
};
var gidorik;
$scope.dataDotHover = function(nupickur) {
var dotokan = jQuery('.kim-data-dot[kimonodatatype="' + nupickur + '"]').find('.kim-delete-datatype');
clearTimeout(gidorik), $scope.datatypes.length > 1 && (gidorik = setTimeout(function() {
dotokan.css('display', 'block'), setTimeout(function() {
dotokan.addClass('visible');
}, 10);
}, 400));
}, $scope.paginationHover = function(siesouna) {
var nofubit = jQuery('.kim-data-dot[kimonodatatype="' + siesouna + '"]').find('.kim-delete-datatype');
clearTimeout(gidorik), $scope.flags.hasPagination && (gidorik = setTimeout(function() {
nofubit.css('display', 'block'), setTimeout(function() {
nofubit.addClass('visible');
}, 10);
}, 400));
}, $scope.dataDotUnhover = function(kupuque) {
clearTimeout(gidorik);
var shurege = jQuery('.kim-data-dot[kimonodatatype="' + kupuque + '"]').find('.kim-delete-datatype');
shurege.css('display', 'none'), shurege.removeClass('visible');
};
}]), angular.module('Kimono').controller('userCredentialsOverlayController', ['$scope', 'Validation', 'WebServices', 'HighlightManager', 'Manipulation', function($scope, Validation, WebServices, HighlightManager, Manipulation) {
$scope.loginStep = 1, $scope.form = {
username: '',
password: ''
}, $scope.loginError = false, $scope.loading = false, $scope.enter = function() {
$scope.loginStep = 1, $scope.loginError = false;
}, $scope.login = function() {
var nepemam;
var phudalee;
3 == $scope.datatypes.length && (WebServices.listenForLoad($scope.form.username, $scope.form.password, $scope.datatypes[0].selectorObjects[0].selector, $scope.datatypes[1].selectorObjects[0].selector, $scope.datatypes[2].selectorObjects[0].selector), $scope.showLargeOverlay(''), HighlightManager.removeAllHighlights($scope.datatypes), $scope.flags.clickThroughOverride = true, nepemam = {
usernameInput: $scope.datatypes[0].selectorObjects[0].selections[0].element[0],
passwordInput: $scope.datatypes[1].selectorObjects[0].selections[0].element[0],
submitButton: $scope.datatypes[2].selectorObjects[0].selections[0].element[0]
}, phudalee = {
username: $scope.form.username,
password: $scope.form.password
}, callback = function() {
$scope.flags.clickThroughOverride = false;
}, Manipulation.fillLoginForm(nepemam, phudalee, callback));
};
}]), angular.module('Kimono').directive('animatedHighlight', ['Utils', function() {
return {
restrict: 'EA',
scope: true,
link: function(johuklob, marjumarn, deeboku) {
var dulcebab = function(satubek) {
var bugegis = satubek.clone();
return marjumarn.html(''), bugegis.attr('kimonodatatype', ''), bugegis.attr('kimonotier', ''), bugegis[0].style.opacity = 1, bugegis[0].style.display = 'inline-block', bugegis[0].style.top = 'auto', bugegis[0].style.left = 'auto', bugegis[0].style.position = 'inherit', bugegis[0].style.paddingLeft = '6px', bugegis[0].style.paddingRight = '6px', bugegis.css('transform', ''), bugegis.css('transition-duration', ''), marjumarn.append(bugegis), bugegis;
};
var koquidkob = function(cimifo, nekasoo, srohogif) {
nekasoo[0].style.opacity = 0, cimifo[0].style.display = 'block', cimifo[0].style.zIndex = 2147483400, setTimeout(function() {
var quifila = nekasoo.offset();
var habibo = quifila.top - srohogif.top;
var strapouhe = quifila.left - srohogif.left;
return 0 == strapouhe && 0 == habibo ? (cimifo.css('opacity', 1), callback(), void 0) : (setTimeout(function() {
cimifo.css('transition-duration', '0.4s'), cimifo.css('transform', 'translate3d(' + strapouhe + 'px,' + habibo + 'px, 0px)'), cimifo[0].style.opacity = 1, srohogif.action = setTimeout(function() {
cimifo.css('transition-duration', ''), nekasoo[0].style.opacity = 1, cimifo[0].style.display = 'none', cimifo[0].style.zIndex = 21474899;
}, 400);
}, 0), void 0);
}, 0);
};
var gadeloo = function(jihege, jefueku, dobeyuf) {
setTimeout(function() {
var tagotom = jefueku.offset();
var samajoor = tagotom.top - dobeyuf.top;
var nekane = tagotom.left - dobeyuf.left;
jihege.css('transform', 'translate3d(' + nekane + 'px,' + samajoor + 'px, 0px)');
}, 0);
};
var enapcan = function(gouquesan, deeciquen, mojamal) {
var tanamuk = 0;
(johuklob.datatypeIndex == deeboku.datatypeIndex || johuklob.datatypes[deeboku.datatypeIndex].hide) && (tanamuk = 1), deeciquen[0].style.opacity = 0, gouquesan[0].style.display = 'block', gouquesan[0].style.zIndex = 21474899, setTimeout(function() {
gouquesan.css('transition-duration', '0.4s'), gouquesan.css('transform', 'translate3d(0px,0px, 0px)'), gouquesan[0].style.opacity = tanamuk, mojamal.action = setTimeout(function() {
gouquesan.css('transition-duration', ''), gouquesan[0].style.opacity = 1, tanamuk || (gouquesan[0].style.display = 'none'), gouquesan[0].style.zIndex = 21474899;
}, 400);
}, 0);
};
johuklob.$watch(function() {
return johuklob.flags.currentView;
}, function(temifok, sepugot) {
if ((temifok != sepugot || 'data' == temifok) && 'raw' != temifok) {
var froojebu = jQuery('.kim-highlight[kimonodatatype="' + deeboku.datatypeIndex + '"][kimonotier="0"]').first();
if (froojebu && 0 !== froojebu.length && froojebu.offset()) {
var quesbubsas = johuklob.datatypes[deeboku.datatypeIndex].highlightMap[froojebu.attr('kimonoid')];
quesbubsas.action && clearTimeout(quesbubsas.action);
var deslinoo = dulcebab(froojebu);
johuklob.flags.moveBack[deeboku.datatypeIndex] && !quesbubsas.dontEdit && 'extractor' != temifok && 'simple' == johuklob.mode ? (gadeloo(froojebu, deslinoo, quesbubsas), quesbubsas.dontEdit = true) : quesbubsas.dontEdit || 'data' != temifok || 'simple' != johuklob.mode ? 'extractor' == temifok && quesbubsas.dontEdit && (enapcan(froojebu, deslinoo, quesbubsas), quesbubsas.dontEdit = false, johuklob.flags.moveBack[deeboku.datatypeIndex] = false) : (johuklob.flags.moveBack[deeboku.datatypeIndex] = true, koquidkob(froojebu, deslinoo, quesbubsas), quesbubsas.dontEdit = true);
}
}
}), johuklob.$watch(function() {
return johuklob.mode;
}, function(jobudif, osmuerub) {
if (jobudif != osmuerub && 'data' == johuklob.flags.currentView && 'simple' == jobudif) {
var bodosha = jQuery('.kim-highlight[kimonodatatype="' + deeboku.datatypeIndex + '"][kimonotier="0"]').first();
if (bodosha && 0 !== bodosha.length && bodosha.offset()) {
var ebastam = johuklob.datatypes[deeboku.datatypeIndex].highlightMap[bodosha.attr('kimonoid')];
ebastam.action && clearTimeout(ebastam.action);
var madusur = dulcebab(bodosha);
johuklob.flags.moveBack[deeboku.datatypeIndex] = true, koquidkob(bodosha, madusur, ebastam), ebastam.dontEdit || (ebastam.dontEdit = true);
}
}
});
}
};
}]), angular.module('Kimono').directive('kmDraggable', ['Collections', 'Utils', function() {
return {
scope: {
axis: '=',
start: '=',
end: '=',
drag: '='
},
restrict: 'EA',
link: function(nanojed, strefufo) {
var reehathtoul = new Draggabilly2(strefufo[0], {
axis: nanojed.axis
});
reehathtoul.on('dragStart', nanojed.start || function() {}), reehathtoul.on('dragEnd', nanojed.end || function() {}), reehathtoul.on('dragMove', nanojed.drag || function() {});
}
};
}]), angular.module('Kimono').directive('kmClickOutside', ['Utils', function() {
return {
restrict: 'A',
link: function(cudalem, quenihe, quesheyar) {
quenihe.bind('click', function(demeque) {
demeque.stopPropagation(), demeque.preventDefault();
}), jQuery(document).on('click', function() {
cudalem.$apply(quesheyar.kmClickOutside);
});
}
};
}]), angular.module('Kimono').directive('kmFade', ['Utils', function() {
return {
replace: true,
restrict: 'A',
link: function(daluqua, moukohif, raribeck) {
moukohif.css('display', 'none');
var ceguco = parseFloat(raribeck.opacity) || 1;
var suehube = raribeck.delay || '0';
var kikobop = raribeck.duration || raribeck.enterDuration || '100';
var rerojoy = raribeck.duration || raribeck.leaveDuration || '100';
var edetep = raribeck.translateVector || '(0, 0, 0)';
var socifep = (moukohif.width(), edetep || raribeck.transition ? 'all' : 'opacity');
daluqua.$watch(raribeck.kmFade, function(bimefo) {
return bimefo && raribeck.kmEnter && daluqua[raribeck.kmEnter](), !bimefo && raribeck.kmLeave && daluqua[raribeck.kmLeave](), bimefo && raribeck.kmIn ? (setTimeout(function() {
moukohif.css('opacity', '0'), moukohif.css('display', raribeck.display || 'block'), setTimeout(function() {
moukohif.css('transition-duration', kikobop + 'ms'), moukohif.css('transition-property', socifep), moukohif.css('opacity', ceguco), edetep && (moukohif.css('transition-timing-function', 'ease-out'), moukohif.css('-webkit-transform', 'translate3d' + edetep), moukohif.css('transform', 'translate3d' + edetep)), 'slide-left' == raribeck.transition && moukohif.css('margin-left', '0'), setTimeout(function() {
moukohif.css('opacity', ''), moukohif.css('margin', ''), moukohif.css('transition-duration', ''), moukohif.css('transition-timing-function', ''), moukohif.css('transition-property', '');
}, parseInt(kikobop));
}, 25);
}, parseInt(suehube)), void 0) : !bimefo && raribeck.kmOut ? (moukohif.css('transition-duration', rerojoy + 'ms'), moukohif.css('transition-property', socifep), moukohif.css('opacity', '0'), edetep && (moukohif.css('-webkit-transform', 'translate3d(0,0,0)'), moukohif.css('transform', 'translate3d(0,0,0)')), 'slide-left' == raribeck.transition && moukohif.css('margin-left', '-30px'), setTimeout(function() {
moukohif.css('display', 'none'), moukohif.css('opacity', ''), moukohif.css('transition-duration', ''), edetep && (moukohif.css('-webkit-transform', ''), moukohif.css('transform', '')), moukohif.css('transition-property', '');
}, parseInt(rerojoy)), void 0) : (moukohif.css('display', bimefo ? '' : 'none'), void 0);
});
}
};
}]), angular.module('Kimono').directive('kmPages', [function() {
return {
compile: function(saquoque, boopema) {
var boruruk = boopema.duration || '300ms';
var jaseshik = boopema.width || 0;
var rujeklik = function(hufifil) {
hufifil.css({
'-webkit-transform': 'translate3d(-' + jaseshik + 'px, 0, 0)',
transform: 'translate3d(0, 0, 0)',
transition: 'all ' + boruruk,
'-webkit-transition': 'all ' + boruruk
}), setTimeout(function() {
hufifil.css({
'-webkit-transform': '',
transform: '',
transition: '',
'-webkit-transition': ''
});
}, parseInt(boruruk));
};
var yafitha = function(hoolhabdror, cadazuek) {
hoolhabdror.css({
'-webkit-transform': 'translate3d(-' + jaseshik + 'px, 0, 0)',
transform: 'translate3d(-' + jaseshik + 'px, 0, 0)'
}), cadazuek && (hoolhabdror.css({
transition: 'all ' + boruruk,
'-webkit-transition': 'all ' + boruruk
}), setTimeout(function() {
hoolhabdror.css({
transition: ''
});
}, parseInt(boruruk)));
};
var orubom = {};
return _.each(boopema.pages.split(/\s*,\s*/), function(jefnoustam, koragin) {
orubom[jefnoustam] = {
element: saquoque.find(jefnoustam),
index: koragin
}, orubom[jefnoustam].element.css({
position: 'absolute',
left: jaseshik,
'-webkit-transform': 'translate3d(' + (koragin > 0 ? 0 : -1 * jaseshik) + 'px, 0, 0)',
transform: 'translate3d(' + (koragin > 0 ? 0 : -1 * jaseshik) + 'px, 0, 0)'
});
}), function(padopa) {
padopa[boopema.currentPage] = _.keys(orubom)[0], padopa.$watch(boopema.currentPage, function(dilode, quacebuek) {
dilode != quacebuek && 'undefined' != typeof orubom[dilode] && (orubom[dilode].index > orubom[quacebuek].index ? (yafitha(orubom[dilode].element, true), setTimeout(function() {
rujeklik(orubom[quacebuek].element);
}, parseInt(boruruk))) : (yafitha(orubom[dilode].element), rujeklik(orubom[quacebuek].element)));
});
};
}
};
}]), angular.module('Kimono').directive('kmPanel', ['Utils', function() {
return {
compile: function(quajamo, jubouji) {
var kederu = jubouji.width || 300;
var rikayek = jubouji.height || 500;
var igonad = jubouji.offset || 0;
var cetojop = jubouji.duration || '0.3s';
var odoyoup = jubouji.translate || '(0, ' + (-1 * rikayek + parseInt(igonad)) + 'px, 0)';
var fateguk = jubouji.showToggle;
var ayubay = {};
jubouji.pages && _.each(jubouji.pages.split(/\s*,\s*/), function(pukuloo, reyutu) {
ayubay[pukuloo] = {
elem: quajamo.find(pukuloo),
index: reyutu
};
var gidopuk = jubouji.intialPageCss || {};
gidopuk.width = kederu, gidopuk.position = 'absolute', ayubay[pukuloo].elem.css(gidopuk);
});
var medida = function(dajiro) {
return dajiro ? dajiro + 'px' : void 0;
};
return quajamo.css({
transition: 'all ' + cetojop,
'-webkit-transition': 'all ' + cetojop,
width: kederu || '300',
height: rikayek || '500',
position: jubouji.position || 'fixed',
left: medida(jubouji.left) || '',
right: medida(jubouji.right) || '20px',
top: medida(jubouji.top) || '',
bottom: medida(jubouji.bottom) || medida(-1 * rikayek + parseInt(igonad)),
transform: 'translate3d(0, 0, 0)',
'-webkit-transform': 'translate3d(0, 0, 0)'
}), {
post: function(boluploo, bikoke) {
boluploo.$watch(fateguk, function(limedoog) {
limedoog ? bikoke.css({
transform: 'translate3d' + odoyoup,
'-webkit-transform': 'translate3d' + odoyoup
}) : bikoke.css({
transform: 'translate3d(0, 0, 0)',
'-webkit-transform': 'translate3d(0, 0, 0)'
});
});
}
};
}
};
}]), angular.module('Kimono').directive('kmSelector', ['Collections', 'Utils', '$compile', '$timeout', function(Collections, Utils, $compile, $timeout) {
return {
restrict: 'A',
replace: true,
link: function(linupu, jujeja, galugi) {
var etedes = 'filter:kmCurrentInput:startsWith | filter:notSelectedTag | orderBy:\'toString()\'';
var nakequa = jujeja.find('input').clone();
var resolo = jQuery('<div></div>');
linupu.currentInput = '', linupu.kmSelectedItems = [], linupu.itemIdx = 0, linupu.isVisible = false, linupu.startsWith = Utils.startsWith, galugi.kmModel && (linupu.$watch(galugi.kmModel, function() {
linupu.kmSelectedItems = linupu[galugi.kmModel];
}), linupu.$watch(linupu.kmSelectedItems, function() {
linupu.kmSelectedItems.length && (linupu[galugi.kmModel] = linupu.kmSelectedItems);
})), linupu.notSelectedTag = function(mamuli) {
return -1 == linupu.kmSelectedItems.indexOf(mamuli);
}, linupu.toggleVisible = function(ilnekrun) {
ilnekrun ? (jujeja.find('input').addClass('open'), $timeout(function() {
linupu.isVisible = ilnekrun;
}, 300)) : ($timeout(function() {
jujeja.find('input').removeClass('open');
}, 300), linupu.isVisible = ilnekrun);
}, linupu.getStyles = function(pojuka) {
var batapon = ['#f2ea00', '#ebce13', '#f0aa14', '#f08630', '#f07a60', '#ee78f0', '#bd90f0', '#9092f0', '#7fbadc', '#90f0e3', '#91d271', '#c5f060', '#ccaa73', '#a28057', '#c0c1c7', '#939499'];
return pojuka == linupu.itemIdx ? {
color: 'black',
background: batapon[linupu.kmSelectedItems.length % batapon.length]
} : {};
}, linupu.getListLength = function() {
return jQuery('.km-selector-scroller').find('li').length - 1;
}, linupu.getItemContent = function(bebetgour) {
return bebetgour.find('span').html();
}, linupu.handleMouseOver = function(lekaypel) {
linupu.itemIdx = lekaypel;
}, linupu.handleKeyDown = function(aletap) {
var farikag = [9, 13, 38, 40];
farikag.indexOf(aletap.keyCode) >= 0 ? 13 == aletap.keyCode || 9 == aletap.keyCode ? (selected = jujeja.find('.selectedItem'), selected.length && (linupu.addItem(selected), linupu.itemIdx = 0, linupu.kmCurrentInput = '')) : 38 == aletap.keyCode && linupu.itemIdx > 0 ? (linupu.itemIdx -= 1, linupu.adjustScrollPos()) : 40 == aletap.keyCode && linupu.itemIdx < linupu.getListLength() && (linupu.itemIdx += 1, linupu.adjustScrollPos()) : linupu.itemIdx = 0;
}, linupu.adjustScrollPos = function() {
var udinon = jujeja.find('.km-selector-scroller');
var rutiftog = udinon.scrollTop();
var magine = udinon.outerHeight();
var jiswooko = udinon.find('li').first();
var brekoklel = jiswooko.outerHeight();
var lesisu = parseInt(jiswooko.parent().css('marginTop'));
var cuhaho = linupu.itemIdx * brekoklel + lesisu;
cuhaho >= magine + rutiftog ? udinon[0].scrollTop += brekoklel : rutiftog >= cuhaho && (udinon[0].scrollTop -= brekoklel);
var lisigi = jujeja[0].style.display;
jujeja[0].style.display = 'none';
jujeja[0].offsetHeight;
jujeja[0].style.display = lisigi;
}, linupu.handleItemClick = function(rerquober) {
linupu.addItem(jQuery(rerquober.currentTarget));
}, linupu.focusInput = function() {
jujeja.find('input').first().focus();
}, linupu.blurInput = function() {
jujeja.find('input').first().blur();
}, linupu.addItem = function(lepikug) {
-1 == linupu.kmSelectedItems.indexOf(linupu.getItemContent(lepikug)) && linupu.kmSelectedItems.push(linupu.getItemContent(lepikug)), linupu.blurInput(), linupu.toggleVisible(false);
}, linupu.removeItem = function(dasieku) {
var hepoolu = linupu.kmSelectedItems.indexOf(dasieku);
hepoolu > -1 && linupu.kmSelectedItems.splice(hepoolu, 1);
}, jujeja.find('input').remove();
var resolo = jQuery('<div></div>');
resolo.css({
position: 'relative',
outline: 'none',
clear: 'both'
});
var meepruelum = jQuery('<ul class="km-selector-scrollitems" style="display: block; overflow:hidden"></ul>');
var quequodeb = jQuery('<div class="km-selector-scroller" ng-class="{ open:isVisible }"></div>');
quequodeb.css({
position: 'absolute',
left: 0,
top: '22px',
width: '100%',
'overflow-y': 'scroll',
margin: 0,
outline: 'none'
});
var igubonk = jQuery('<li><span style="padding: 8px 10px;">{{ item }}</span></li>');
igubonk.attr({
'ng-repeat': 'item in ' + galugi.kmItems + ' | ' + etedes,
'ng-style': 'getStyles($index)',
'ng-class': '{ selectedItem:$index == itemIdx }',
'ng-click': 'handleItemClick($event)',
'ng-mouseover': 'handleMouseOver($index)'
}), meepruelum.append(igubonk), quequodeb.append(meepruelum);
var dipelob = jQuery('<div></div>');
dipelob.css({
display: 'inline-block',
position: 'absolute',
margin: 0,
width: '150px'
}), dipelob.attr({
'km-click-outside': 'toggleVisible(false)',
'ng-hide': galugi.kmHide
});
var nulanfik = jQuery('<div class="km-selector-selected-container"></div>');
var nelesie = jQuery('<div><a href="" ng-click="removeItem(item)" class="km-selector-remove-item" ></a>{{ item }}</div>');
nelesie.attr({
'class': 'km-selector-selected kim-{{ getColor($index) }}',
'ng-repeat': 'item in kmSelectedItems'
}), nulanfik.append(nelesie), nakequa.attr({
'ng-model': 'kmCurrentInput',
'ng-class': '{ \'no-items\':kmSelectedItems.length == 0}',
'ng-click': 'toggleVisible(true)',
'ng-keydown': 'handleKeyDown($event)'
}), nakequa.css({
display: 'inline-block',
'min-width': 0
}), dipelob.append(nakequa), dipelob.append(quequodeb), nulanfik.append(dipelob), resolo.append(nulanfik), $compile(resolo)(linupu), resolo.appendTo(jujeja);
}
};
}]), angular.module('Kimono').directive('kmShow', [function() {
return {
replace: true,
restrict: 'A',
link: function(edoshem, querike, ugabquik) {
edoshem.$watch(ugabquik.kmShow, function(queguni) {
queguni && ugabquik.kmBeforeEnter && edoshem[ugabquik.kmBeforeEnter](querike), !queguni && ugabquik.kmBeforeLeave && edoshem[ugabquik.kmBeforeLeave](querike), querike.css('display', queguni ? '' : 'none'), queguni && ugabquik.kmAfterEnter && edoshem[ugabquik.kmAfterEnter](querike), !queguni && ugabquik.kmAfterLeave && edoshem[ugabquik.kmAfterLeave](querike);
});
}
};
}]), angular.module('Kimono').directive('kmLoading', ['$compile', function() {
return {
compile: function(gugineze, sehasep) {
var deektafob = Math.min(sehasep.width, 500) / 20;
var dislohou = 2 * deektafob / 3;
var ficrujoo = deektafob / 3;
var baredi = sehasep.top || '30%';
var lechingek = sehasep.fontSize || '18';
var cucuetap = sehasep.message || 'Loading Awesomeness';
var dateque = '<div km-fade="' + sehasep.model + '" km-in="true" km-out="true" enter-duration="0" leave-duration="300" class="kim-loading"> <div style="top:' + baredi + ';" class="dot-container"> <div style="font-size:' + lechingek + 'px;" class="kim-message">' + cucuetap + '</div> <div class="dot dot1 kim-yellow"></div> <div class="dot dot2 kim-amber"></div> <div class="dot dot3 kim-orange"></div> <div class="dot dot4 kim-sunset"></div> <div class="dot dot5 kim-red"></div> <div class="dot dot6 kim-fuchsia"></div> <div class="dot dot7 kim-purple"></div> <div class="dot dot8 kim-indigo"></div> <div class="dot dot9 kim-blue"></div> <div class="dot dot10 kim-green"></div> </div> </div>';
return gugineze.append(dateque), gugineze.find('.dot').css({
width: dislohou + 'px',
height: dislohou + 'px',
margin: '0 ' + ficrujoo + 'px 0 0'
}), function() {};
}
};
}]), angular.module('Kimono').value('kimonoList', {}), angular.module('Kimono').directive('kmRepeat', ['$parse', '$animate', '$rootScope', 'kimonoList', function($parse, $animate, $rootScope, kimonoList) {
function hufrenof(siboga) {
var kecena;
var lepigu = typeof siboga;
return 'object' == lepigu && null !== siboga ? 'function' == typeof (kecena = siboga.$$hashKey) ? kecena = siboga.$$hashKey() : kecena === undefined && (kecena = siboga.$$hashKey = lupechuf()) : kecena = siboga, lepigu + ':' + kecena;
}
function jidethfenk(ukuflek) {
return ukuflek && ukuflek.document && ukuflek.location && ukuflek.alert && ukuflek.setInterval;
}
function lupechuf() {
for (var tupacu, gabehoo = kriquebap.length;
gabehoo;
) {
if (gabehoo--, tupacu = kriquebap[gabehoo].charCodeAt(0), 57 == tupacu) {
return kriquebap[gabehoo] = 'A', kriquebap.join('');
}
if (90 != tupacu) {
return kriquebap[gabehoo] = String.fromCharCode(tupacu + 1), kriquebap.join('');
}
kriquebap[gabehoo] = '0';
}
return kriquebap.unshift('0'), kriquebap.join('');
}
function hueyhigon(hofpelusk) {
if (null == hofpelusk || jidethfenk(hofpelusk)) {
return false;
}
var butado = hofpelusk.length;
return 1 === hofpelusk.nodeType && butado ? true : angular.isArray(hofpelusk) || !angular.isFunction(hofpelusk) && (0 === butado || 'number' == typeof butado && butado > 0 && butado - 1 in hofpelusk);
}
var flipedu = '$$NG_REMOVED';
var prieveefe = 'err';
var kriquebap = ['0', '0', '0'];
var kooreeglu = window.list_id = function() {
var fesnate = 0;
return function() {
return 'list_' + ++fesnate;
};
}();
return {
transclude: 'element',
priority: 1e3,
terminal: true,
compile: function(yieboudrag, kilace, lefafri) {
return function(bistackat, cusuco, quogiteer) {
var shacite;
var quifukra;
var susabus;
var flomabo;
var gamurmeg;
var meemupoum;
var lufugar;
var quifemod;
var quetarnmos;
var simura = quogiteer.kmRepeat;
var nucuba = simura.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/);
var jososgeeg = {
$id: hufrenof
};
if (!nucuba) {
throw prieveefe('iexp', 'Expected expression in form of \'_item_ in _collection_[ track by _id_]\' but got \'{0}\'.', simura);
}
if (meemupoum = nucuba[1], lufugar = nucuba[2], shacite = nucuba[4], shacite ? (quifukra = $parse(shacite), susabus = function(piepino, decrase, jeprieru) {
return quetarnmos && (jososgeeg[quetarnmos] = piepino), jososgeeg[quifemod] = decrase, jososgeeg.$index = jeprieru, quifukra(bistackat, jososgeeg);
}) : (flomabo = function(guequaswa, gemupu) {
return hufrenof(gemupu);
}, gamurmeg = function(apimin) {
return apimin;
}), nucuba = meemupoum.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/), !nucuba) {
throw prieveefe('iidexp', '\'_item_\' in \'_item_ in _collection_\' should be an identifier or \'(_key_, _value_)\' expression, but got \'{0}\'.', meemupoum);
}
quifemod = nucuba[3] || nucuba[1], quetarnmos = nucuba[2];
var safisir = {};
var pelorun = quogiteer.kmList || kooreeglu();
var nofili = function(gogedouk) {
var dusoquo;
var rayolal;
var kodadi;
var usoboom;
var lasesle;
var cafila;
var pekuxep;
var pugeli;
var drighoblus;
var leesulu;
var bakikro = cusuco[0];
var ganoque = {};
var ekonep = [];
if (hueyhigon(gogedouk)) {
drighoblus = gogedouk, susabus = susabus || flomabo;
} else {
susabus = susabus || gamurmeg, drighoblus = [];
for (cafila in gogedouk) {
gogedouk.hasOwnProperty(cafila) && '$' != cafila.charAt(0) && drighoblus.push(cafila);
}
drighoblus.sort();
}
for (usoboom = drighoblus.length, rayolal = ekonep.length = drighoblus.length, dusoquo = 0;
rayolal > dusoquo;
dusoquo++) {
if (cafila = gogedouk === drighoblus ? dusoquo : drighoblus[dusoquo], pekuxep = gogedouk[cafila], pugeli = susabus(cafila, pekuxep, dusoquo), safisir.hasOwnProperty(pugeli)) {
leesulu = safisir[pugeli],
delete safisir[pugeli]
, ganoque[pugeli] = leesulu, ekonep[dusoquo] = leesulu;
} else {
if (ganoque.hasOwnProperty(pugeli)) {
throw angular.forEach(ekonep, function(bafrogenk) {
bafrogenk && bafrogenk.startNode && (safisir[bafrogenk.id] = bafrogenk);
}), prieveefe('dupes', 'Duplicates in a repeater are not allowed. Use \'track by\' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}', simura, pugeli);
}
ekonep[dusoquo] = {
id: pugeli
}, ganoque[pugeli] = false;
}
}
for (cafila in safisir) {
safisir.hasOwnProperty(cafila) && (leesulu = safisir[cafila], $animate.leave(leesulu.elements), bistackat[kilace.kmLeave] && bistackat[kilace.kmLeave](leesulu.elements), angular.forEach(leesulu.elements, function(matieho) {
matieho[flipedu] = true;
}), leesulu.scope.$destroy());
}
for (dusoquo = 0, rayolal = drighoblus.length;
rayolal > dusoquo;
dusoquo++) {
if (cafila = gogedouk === drighoblus ? dusoquo : drighoblus[dusoquo], pekuxep = gogedouk[cafila], leesulu = ekonep[dusoquo], leesulu.startNode) {
lasesle = leesulu.scope, kodadi = bakikro;
do {
kodadi = kodadi.nextSibling;
} while (kodadi && kodadi[flipedu]);
leesulu.startNode == kodadi || ($animate.move(leesulu.elements, null, angular.element(bakikro)), bistackat[kilace.kmMove] && bistackat[kilace.kmMove](leesulu.elements, null, angular.element(bakikro))), bakikro = leesulu.endNode;
} else {
lasesle = bistackat.$new();
}
lasesle[quifemod] = pekuxep, quetarnmos && (lasesle[quetarnmos] = cafila), lasesle.$index = dusoquo, lasesle.$first = 0 === dusoquo, lasesle.$last = dusoquo === usoboom - 1, lasesle.$middle = !(lasesle.$first || lasesle.$last), lasesle.$odd = !(lasesle.$even = dusoquo % 2 == 0), leesulu.startNode || (lefafri(lasesle, function(cupatquad) {
$animate.enter(cupatquad, null, angular.element(bakikro)), bistackat[kilace.kmEnter] && bistackat[kilace.kmEnter](cupatquad), bakikro = cupatquad, leesulu.scope = lasesle, leesulu.startNode = cupatquad[0], leesulu.elements = cupatquad, leesulu.endNode = cupatquad[cupatquad.length - 1], ganoque[leesulu.id] = leesulu;
}), '$digest' !== $rootScope.$$phase && '$digest' !== lasesle.$$phase && lasesle.$digest());
}
safisir = ganoque;
};
kimonoList[pelorun] = nofili, 'medium' == kilace.type && bistackat.$watchCollection(lufugar, nofili), bistackat.$watch(lufugar, nofili);
};
}
};
}]), angular.module('Kimono').directive('kmSticky', ['$timeout', function($timeout) {
return {
link: function(nutaped, sotepa, dakibried) {
$timeout(function() {
var fuqueri = dakibried.scrollableArea || '#Kimonify';
var uminkfad = jQuery(fuqueri);
var ulniguck = sotepa.parent();
var janopmask = parseInt(dakibried.offset) || 0;
sotepa.css({
position: 'absolute',
top: '0px',
width: '100%'
}), ulniguck.css({
position: 'relative',
paddingTop: sotepa.height() + 4 + 'px'
}), uminkfad.on('scroll', function() {
var soulnigast = {
top: ulniguck.position().top - janopmask
};
soulnigast.bottom = soulnigast.top + ulniguck.height(), sotepa.css('-webkit-transform', 'translate3d(0, ' + Math.min(Math.max(-1 * soulnigast.top, 0), ulniguck.height()) + 'px, 0)'), sotepa.css('transform', 'translate3d(0, ' + Math.min(Math.max(-1 * soulnigast.top, 0), ulniguck.height()) + 'px, 0)');
});
}, 0);
}
};
}]), angular.module('Kimono').filter('groupby', ['$filter', function($filter) {
return function() {
var args = Array.prototype.slice.call(arguments, 0);
var cististur = args.shift();
var tuneskur = args.shift();
return _.keys(_.groupBy(cististur, function(arklemig) {
return _.reduce(args, function(zeliru, nametep) {
var kevogi = nametep.slice(1);
return kevogi.unshift(zeliru), $filter(nametep[0]).apply(this, kevogi);
}, arklemig[tuneskur]);
}));
};
}]), angular.module('Kimono').filter('keys', function() {
return function(obj) {
return _.keys(obj);
};
}), angular.module('Kimono').filter('limit', function() {
return function(bufati, rupoeyut) {
return 'undefined' == typeof bufati ? '' : bufati.length > rupoeyut ? bufati.substring(0, rupoeyut) + '...' : bufati;
};
}), angular.module('Kimono').filter('plural', ['$filter', function() {
return function(cokumaln, ackackrum) {
return ackackrum > 1 && 's' == _.last(cokumaln) ? cokumaln + '\'' : ackackrum > 1 ? cokumaln + 's' : cokumaln;
};
}]), angular.module('Kimono').filter('replace', function() {
return function(str, regexStr, replacement) {
if ('string' == typeof regexString) {
var regex = new RegExp(regexString, 'g');
} else {
var regex = regexStr;
}
return str.replace(regex, replacement);
};
}), angular.module('Kimono').filter('reverse', function() {
return function(arr) {
return arr.slice().reverse();
};
}), angular.module('Kimono').filter('size', function() {
return function(arr) {
return _.size(arr);
};
}), jQuery('.kim-script, .kim-link').appendTo('head');
var $mainController = jQuery([
'<div id="Kimonify" dir="ltr" class="xs-hidden" ng-controller="mainController" km-loading font-size="28" model="flags.loading">',
'</div>'
].join(''));
$mainController.append('<div ng-controller="largeOverlayController" id="kim-Large-Overlay" class="kim" km-fade="show" km-in="true" km-out="true" opacity="0.95"> <h1><a href="" ng-click="link(\'http://kimonolabs.com/\')">kimono<span>labs</span></a></h1> <button ng-if="backButton" ng-click="close()" class="kim-close-button kim kim-button" style="display: inline-block;" ng-hide="flags.hideBackButton">Back</button> <!-- Done Overlay --> <div ng-controller="doneOverlayController" id="kim-DoneOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == \'done\'" class="kim-button-container" opacity="0.95"> <div km-fade="doneStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> <p class="kim-done-form-title" style="display: block;">Enter your API details</p> <div id="kim-DoneForm" name="createApiForm" novalidate style="display: block; top: 153px;"> <input type="text" ng-model="apiName" id="kim-APIName" name="apiName" ng-keyup="keyUpInApiNameField($event)" placeholder="API name" ng-keydown="error = false;"> <div class="kim-TagsSelector" km-selector km-items="tags" km-model="apiTags" km-hide="apiTags.length >= 5" > <span ng-hide="apiTags.length || isVisible" class="kim-tags-reminder">Add tags</span> <input type="text" id="kim-APITags" name="apiTag"></input> </div> <div class="kim-api-config"> <select id="kim-Frequency" name="crawlFrequency" ng-model="selectedFrequency" ng-options="i.id as utils.displayFrequency(i.id, flags.hasPagination) for i in frequencies | filter:filterFrequencies"></select> <select ng-show="flags.hasPagination" ng-model="selectedCrawlLimit" ng-options="i.id as utils.displayCrawlLimit(i.id) for i in crawlLimits" id="kim-CrawlLimit" name="limit"></select> </div> <div> <input type="submit" ng-click="createApi()" ng-disabled="loading" class="kim-create-api-button kim kim-button" value="{{createApiButtonLabel()}}"> <span class="kim-spinner" ng-show="loading"></span> </div> <div class="kim-error-container" km-fade="error" km-in="true" km-out="true"> <p class="kim-api-form-error">{{errorMessage}}</p> </div> </div> </div> <div km-fade="doneStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">API <span class="kim-created-updated">{{createdOrUpdated()}}</span>, Bam! Check it out at <a class="kim-api-link" href="" ng-click="link(config.KM_HOST_WWW + \'/apis/\' + apiID)">/apis/{{apiID}}</a>.</p> </div> <div km-fade="doneStep == -1" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">Sorry. Something went wrong and we couldn\'t create an API from this page. A bug report has been created.</p> </div> </div> <!-- Illegal Overlay --> <div ng-controller="illegalOverlayController" id="kim-IllegalOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == \'illegal\'" class="kim-button-container" opacity="0.95"> <div class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">Sorry. Due to the policy of this target domain we cannot extract data from this site.</p> </div> </div> <!-- No Support Overlay --> <div id="kim-NoSupportOverlay" km-in="true" km-out="true" km-fade="currentOverlay == \'nosupport\'" class="kim-button-container" opacity="0.95"> <div class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">Sorry. Our auth feature is incompatible with this site, check back often on our <a href="" ng-click="followLink(\'http://blog.kimonolabs.com/\')" >blog</a> for updates.</p> </div> </div> <!-- Login Overlay Overlay --> <div ng-controller="loginOverlayController" id="kim-LoginOverlay" km-enter="enter" leave-duration="500" km-in="true" km-out="true" km-fade="currentOverlay == \'login\'" class="kim-button-container" opacity="0.95"> <div km-fade="loginStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> <form id="kim-LoginForm" name="kmLoginForm" novalidate> <p>You must log in first:</p> <input ng-model="form.username" ng-keydown="loginError = false;" type="text" name="email" id="kim-LoginEmail" placeholder="email"> <input ng-model="form.password" ng-keydown="loginError = false;" type="password" name="password" id="kim-LoginPassword" placeholder="password"> <button ng-click="login()" class="kim-login-button kim kim-button">Login</button> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> <span class="kim kim-login-trouble">Having trouble? <a href="" ng-click="link(config.KM_HOST_WWW + \'/forgotpassword\')">Forgot password</a></span> <div km-fade="loginError" km-in="true" km-out="true" class="kim-error-container"> <p class="kim-login-error">Incorrect email/password combination. Try again.</p> </div> </form> <div><p>Or you can <span class="kim kim-signup"><a href="" ng-click="showLargeOverlay(\'signup\')">signup here</a></span></p></div> </div> <div km-fade="loginStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p style="text-align:center">Login successful</p> </div> </div> <!-- Signup Overlay --> <div ng-controller="signupOverlayController" id="kim-LoginOverlay" km-enter="enter" km-in="true" delay="500" duration="500" km-fade="currentOverlay == \'signup\'" class="kim-button-container" opacity="0.95"> <div km-fade="signupStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> <form id="kim-LoginForm" class="kim-signup" name="kmSignupForm" novalidate> <p>Signup for Kimono<span style="vertical-align:super; font-size:10px;">BETA</span></p> <input ng-model="form.name" ng-keydown="resetErrors()" type="text" name="name" id="kim-SignupName" placeholder="name"> <input ng-model="form.username" ng-keydown="resetErrors()" type="text" name="email" id="kim-SignupEmail" placeholder="email"> <input ng-model="form.password" ng-keydown="resetErrors()" type="password" name="password" id="kim-SignupPassword" placeholder="password"> <button ng-click="signup()" class="kim-signup-button kim kim-button">Signup</button> <p class="kim-helper-text">By signing up, you are agreeing to our <br/><a href="" ng-click="link(config.KM_HOST_WWW + \'/terms\')" target="_self">Terms of service</a> and <a href="" ng-click="link(config.KM_HOST_WWW + \'/terms\')" target="_self">Privacy policy</a></p> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> <div km-fade="signupError " km-in="true" duration="300" km-out="true" class="kim-error-container"> <p ng-show="errors.name" class="kim-login-error">Name is required.</p> <p ng-show="errors.email" class="kim-login-error">{{errors.email}}</p> <p ng-show="errors.password" class="kim-login-error">Password must contain 6 characters</p> </div> </form> </div> <div km-fade="signupStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p style="text-align:center">Signup successful</p> </div> </div> <!-- Auth Overlay --> <div ng-controller="authOverlayController" id="kim-LoginOverlay" km-in="true" km-fade="currentOverlay == \'auth\'" class="kim kim-button-container" opacity="0.95"> <div class="kim-step-1"> <form id="kim-LoginForm" name="kmAuthForm" novalidate style="height:290px;"> <p>Please enter your login information:</p> <p class="host-indicator">{{host}}</p> <input ng-model="form.username" type="text" name="email" id="kim-LoginEmail" placeholder="email"> <input ng-model="form.password" type="password" name="password" id="kim-LoginPassword" placeholder="password"> <div class="kim-hint-checkbox"> <input type="checkbox" value="1" ng-model="authAgree" ng-change="agree()" id="AgreeCheckbox" name="" /> <label for="AgreeCheckbox"></label> </div> <p class="auth-agreement" ng-class="agreeError">I agree to store my login information for {{host}} on kimonolabs.com so that this API can automatially login and retrieve data specific to my account.</p> <div> <button ng-click="authLogin()" class="kim-login-button kim kim-button kim-auth-login-button">Login</button> </div> <p class="auth-fineprint">We use the latest secure encryption technologies to ensure safe transport and storage of your credentials. You will have the ability to update or remove your stored credentials at any time. APIs created from sites requiring authentication are automatically set to private and the data can only be accessed by your kimono account through secure authentication.</p> </form> </div> </div></div><div class="kim-Overlay kim" km-fade="flags.currentView != \'extractor\'" km-in="true" km-out="true" opacity="0.95"> <div class="kim kim-container" ng-controller="dataOverlayController" ng-show="flags.currentView == \'data\'"> <div class="col-md-2 collectionsInfo"> <h1>{{collections.length}} {{collectionTitle}}</h1> <div id="kim-ModeSwitch"> <div> <div> <a ng-click="mode = \'simple\'" ng-class="{active : mode == \'simple\'}" class="kim-type-button kim-button-simple">Simple</a> <a ng-click="mode = \'advanced\'" ng-class="{active : mode == \'advanced\'}" class="kim-type-button kim-button-advanced">Advanced</a> <a ng-click="mode = \'editor\'" ng-class="{active : mode == \'editor\', disabled: flags.mode == \'loginMode\'}" class="kim-type-button kim-button-edit">Editor</a> </div> <div> <a ng-click="showPopup(\'rssInfo\')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div> </div> </div> </div> <div class="scroll"> <form name="advancedModeForm" ng-submit="update(tmpCollections)"> <div ng-hide="collectionNames[$index] == \'Pagination\' && mode == \'editor\'" class="collection kim-clearfix" km-repeat="collection in tmpCollections"> <input class="kim kim-data-field kim-collection-name" ng-disabled="collectionNames[$index] == \'Pagination\' || flags.mode == \'loginMode\'" kimonocollection="$index" ng-model="collectionNames[$index]"> <div class="kim-clearfix datatype" km-repeat="datatype in collection" ng-init="realDatatype = collections[$parent.$index][$index]"> <div km-draggable start="editor.dragStart" end="editor.dragEnd" drag="editor.drag" axis="\'y\'" datatypeIndex="{{realDatatype.context.index}}" collectionIndex="{{$parent.$index}}" km-fade="mode == \'editor\'" display="inline-block" class="kim kim-datatype-avatar kim-datatype-dropzone kim-{{config.colors[realDatatype.context.index]}}">{{realDatatype.name}}</div> <input ng-disabled="realDatatype.context.index == \'pagination\' || flags.mode == \'loginMode\'" ng-show="mode != \'editor\'" class="kim kim-data-field kim-datatype-name kim-{{getColor(realDatatype.context.index)}}" ng-model="realDatatype.name"> <div style="float:left;"> <div ng-show="mode == \'advanced\'" class="advancedAttributes" km-repeat="selectorObject in datatype.selectorObjects"> <ng-form name="datatypeForm"> <input name="selectorField" class="kim kim-data-field kim-code-field kim-datatype-selector animate-me-up" ng-model="selectorObject.selector" selector> <input name="regexField" style="display:inline-block;" class="kim kim-data-field kim-code-field kim-datatype-regex animate-me-up" ng-model="selectorObject.regex" regex> </ng-form> <a ng-show="flags.mode != \'loginMode\'" ng-click="showAttributes(realDatatype.context.index)" class="kim kim-data-link">Attributes</a> </div> <div ng-show="mode == \'simple\'" animated-highlight datatype-index="{{realDatatype.context.index}}" class="animated-highlight"></div> </div> </div> <div ng-show="mode == \'editor\'" collectionIndex="{{$index}}" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div> </div> <input ng-show="mode == \'editor\'" disabled class="kim kim-data-field kim-collection-name" value="New Collection"> <div ng-show="mode == \'editor\'" collectionIndex="new" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div> <div ng-show="mode == \'advanced\'" id="kim-AdvancedButtons"> <input ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" type="submit" class="kim-advanced-button kim-button-apply kim kim-button"> <button ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" ng-click="resetAdvancedModeForm()" class="kim-advanced-button kim-button-reset kim kim-button">Reset</button> <span km-fade="advancedModeForm.$invalid" km-in="true" km-out="true" display="inline-block" class="kim-selector-error">{{errorMessage}}</span> </div> </div> </form> </div> <div class="kim kim-container" ng-controller="rawOverlayController" km-fade="flags.currentView == \'raw\'" km-enter="enter"> <div class="col-md-2 collectionsInfo"> <h1>{{collections.length}} {{collectionTitle}}</h1> <div id="kim-ModeSwitch"> <div> <div> <a ng-click="mode = \'json\'" ng-class="{active : mode == \'json\'}" class="kim-type-button kim-button-simple">JSON</a> <a ng-click="mode = \'csv\'" ng-class="{active : mode == \'csv\'}" class="kim-type-button kim-button-advanced">CSV</a> <a ng-click="mode = \'rss\'" ng-class="{active : mode == \'rss\'}" class="kim-type-button kim-button-edit">RSS</a> </div> <div> <a ng-click="download()" class="kim-action-button kim-button-download">Download {{mode | uppercase}}</a> <a ng-click="selectText()" ng-hide="mode == \'csv\'" class="kim-action-button kim-button-select">Select All Text</a> <a ng-click="selectCurrentTable()" ng-show="mode == \'csv\'" class="kim-action-button kim-button-select">Select {{selectedCollection}}</a> <a ng-show="mode == \'rss\'" ng-click="showPopup(\'rssInfo\')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div> </div> </div> </div> <div class="scroll"> <pre ng-show="mode == \'json\'" class="kim-code json">{{json | json}}</pre> <div ng-show="mode == \'csv\'" class="kim-spreadsheet"> <div id="kim-SheetSwitch"> <a ng-repeat="(collection, data) in table" ng-click="clickTableCollection(collection)" ng-class="{active : selectedCollection == collection}">{{collection}}</a> </div> <div> <table> <tr> <th ng-class="\'kim-\' + config.colors[ table[selectedCollection].datatypeindices[$index] ] + \'-color\'" ng-repeat="name in table[selectedCollection].colnames">{{name}}</th> </tr> <tr ng-repeat="row in table[selectedCollection].rows"> <td ng-repeat="value in row track by $index">{{value}}</td> </tr> </table> </div> </div> <pre ng-show="mode == \'rss\'" class="kim-code rss">{{rss}}</pre> </div> </div></div><div ng-controller="popupController" class="kim-Overlay kim" km-fade="show" km-in="true" km-out="true" opacity="0.95"> <div class="kim kim-container" ng-controller="attributesOverlayController" km-fade="currentPopup == \'attributes\'" km-in="true" km-out="true" km-enter="enter"> <div class="kim" id="kim-AttributeExtractor" style="opacity: 1;"> <div> <a ng-click="close()" class="kim kim-close-ae"></a> <p>Select the specific attributes you want to extract for the elements matched by this selector.</p> <ul id="kim-AttrList"> <li><label><input ng-model="textContent" type="checkbox" id="kim-TextContent"> Text Content</label></li> <li class="kim-attribute" km-repeat="attribute in attributes"> <label><input class="kim-regex-check" ng-model="attribute.value" type="checkbox"> {{attribute.attribute}}</label> </li> </ul> <ul class="kim-last"> <li><label><input type="checkbox" ng-model="hiddenElements" id="kim-HiddenElements"> Include Hidden Elements</label></li> </ul> <div class="kim-apply-button-container"><button class="kim kim-apply-ae kim-button" ng-click="apply()">Apply</button></div> </div> </div> </div> <div class="kim kim-container" ng-click="close()" km-fade="currentPopup == \'rssInfo\'" km-in="true" km-out="true"> <div class="kim" id="kim-RSSInfo" style="opacity: 1;"> <div> <a class="kim kim-close-ae"></a> <p>To build an RSS feed with kimono, you must make sure your API has only one collection, and that the collection contains at least a one property. If you want to populate your RSS feed with description, author, pubDate or comments, you must create properties on your API with the appropriate property names.</p> <table> <tbody> <tr> <td>title <span>LINK</span></td> <td>The title of the item (must also be a link to the content)</td> </tr> <tr><td>description</td><td>The item synopsis</td></tr> <tr><td>author</td><td>Author of the item</td></tr> <tr><td>category</td><td>Category for the item</td></tr> <tr><td>pubDate</td><td>When the item was published</td></tr> <tr><td>comments <span>LINK</span></td><td>Comments URL (must be a link to a comments page)</td></tr> </tbody> </table> </div> </div> </div> <div class="kim kim-container" ng-click="close()" km-fade="currentPopup == \'incorrectLogin\'" km-in="true" km-out="true"> <div class="kim" id="kim-AttributeExtractor" style="opacity: 1;"> <div> <a class="kim kim-close-ae"></a> <p>Can\'t activate login credential mode.</p> </div> </div> </div></div><!--- Toast Message --><div class="kim kim-toast-wrapper" km-fade="flags.toasting" km-in="true" km-out="true" translate-vector="(0, 20px, 0)" duration="250"> <p class="kim kim-toast kim-{{flags.toastType}}"> {{flags.toastMessage}} </p></div><!-- extractor --><div ng-controller="extractorController" ></div><!--<div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> <div class="kim-notification-wrapper"> <div class="kim-header"> <div class="kim-title">What\'s New</div> <div class="kim-links"><div class="reject" ng-click="flags.showNotificationPanel = false"></div></div> </div> <div class="kim-notifications"> <div class="kim-notification" ng-class="{\'new\': new_features[key]}" ng-repeat="(key, notification) in config.data.features | reverse" ng-click="link(notification.link)"> <div class="kim-notification-title"> {{notification.title}} </div> <div class="kim-thumb" ng-class="{\'kim-green\': notification.type == \'New Feature\', \'kim-purple\': notification.type == \'News\', \'kim-red\': notification.type == \'Bug Fix\'}"> {{notification.type}} </div> <div class="kim-text">{{notification.message | limit: 30}}</div> <div class="arrow"></div> </div> </div> <a href="" class="kim-more" ng-click="link(config.KM_HOST_WWW+\'/blog\')">More News</a> </div></div>--><div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> <div class="kim-notification-wrapper"> <div class="kim-notifications"> <div class="kim-notification" ng-class="{\'new\': new_features[key]}" ng-repeat="(key, notification) in allFeatures | reverse" ng-click="link(notification.link)"> <div class="kim-thumb" ng-class="{\'kim-green\': notification.type == \'New Feature\', \'kim-purple\': notification.type == \'News\', \'kim-red\': notification.type == \'Bug Fix\'}"> {{notification.type}} </div> <p class="kim-body">{{notification.message}}</p> <div class="arrow"></div> </div> </div> </div></div><!-- Api Popup --><div id="kim-ApiPanel" km-loading message="Loading API data" font-size="18" model="loading" ng-show="flags.showApiPanel" ng-controller="apiPanelController" km-panel show-toggle="open" width="300" height="300" offset="44"> <div ng-click="toggle()" class="panel-header">{{(siteApis.length + \' Existing Kimono APIs\') | limit: 40}}</span> <!-- <div ng-click="showHelp = !showHelp" class="question"></div> --> <div ng-class="{open: open}" class="arrow"></div> </div> <div class="panel-list"> <div style="position:relative; z-index:10;" km-repeat="api in siteApis"> <div class="kim-api-item" ng-click="getApi(api)" ng-class="{selected: flags.currentApi.id == api.id}"> <span>{{api.name | limit: 14}}</span> <div class="kim-collection-indicator"> <div class="single_collection" ng-repeat="collection in api.collections"> <div ng-repeat="datatype in collection" class="datatype kim-{{getColor(datatype.context.index)}}"></div> </div> </div> </div> <div class="kim-action-buttons"> <div ng-if="false" ng-click="link(config.KM_HOST + \'/apis/\' + api.id)" class="accept">Use</div> <div ng-if="false" ng-click="done()" class="clone">Clone</div> <div ng-click="cancel()" class="reject">Unload</div> </div> </div> <div class="kim-othersite-item" ng-click="kimonify(rootDomain + site)" ng-repeat="(site, apis) in otherSites"> {{(apis.length + \' more \' + (\'api\' | plural: apis.length)) | limit: 40}} <span>{{(rootDomain + site) | limit: 40}}</span> <div class="arrow"></div> </div> </div> <!-- <div class="api-view"> <div class="navbar title"> <div ng-click="back()" class="nav-button left"><div class="arrow left"></div></div> <div class="nav-button right" ng-click="getApi(selectedApi.id)"><div class="download"></div></div> <div class="nav-title center">{{selectedApi.name | limit: 18}}</div> </div> <div style="height:260px; overflow:scroll;"> <div class="collection" ng-repeat="collection in selectedApi.collectionNames"> <div class="collection-title">{{collection | limit: 11}}</div> <div class="datatypes"> <div ng-repeat="datatype in selectedApi.collections[$index]" class="datatype-title"> <div class="border kim-{{getColor(datatype.context.index)}}"></div> {{datatype.name | limit:13}} </div> </div> </div> </div> </div> --></div><div ng-controller="toolbarController" id="kim-Toolbar" class="kim"> <div class="kim-toolbar-section active"> <h1 style="vertical-align: middle;"><a href="" ng-click="link(\'http://kimonolabs.com/\')">kimono<span>labs</span></a></h1> <a class="kim-new" title="New Features" ng-show="allFeatures.length > 0" ng-class="{\'active\':flags.showNotificationPanel, \'highlighted\': (new_features | size) > 0}" ng-click="openNotifications()"></a> <!-- <span ng-show="(new_features | size) > 0" ng-class="{\'kim-dot-sm\': new_features.length > 99, \'kim-dot-md\': new_features.length > 9, \'kim-dot-xs\': new_features.length > 999 }" class="kim-notification-badge">{{new_features | size}}</span> --> <p ng-show="(new_features | size) > 0" class="beta-tag kim-feature-count">{{new_features | size}}</p><!-- <form role="form" id="kim-UrlForm" action="http://kimonolabs.com/load" method="get"> <input class="kim" type="text" id="kim-ToolbarUrl" name="url" placeholder="any url" value="{{ targetUrl }}"> <a class="kim-toolbar-button kim-urlgo"></a> </form> --> </div> <div class="kim-toolbar-section first" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block;"> <input class="kim" type="text" id="kim-ToolbarDataName" name="ToolbarDataName" placeholder="property1" ng-disabled="datatypeIndex == \'pagination\' || flags.mode == \'loginMode\'" ng-model="datatypes[datatypeIndex].name" ng-keydown="keydown($event)"> </div> <div class="kim-toolbar-section kim-datatypes" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block"> <a ng-mouseenter="dataDotHover($index)" ng-mouseleave="dataDotUnhover($index)" km-repeat="datatype in datatypes" km-list="toolbarDatatypes" km-enter="datatypeEnter" type="medium" kimonodatatype="{{$index}}" ng-click="changeDatatype($index)" ng-class="{active : (datatypeIndex == $index)}" class="kim-data-dot kim-{{getColor($index)}}"> <span ng-show="flags.mode != \'loginMode\'" ng-class="{\'kim-dot-sm\': datatype.numElements > 99, \'kim-dot-md\': datatype.numElements > 9, \'kim-dot-xs\': datatype.numElements > 999}">{{datatype.numElements}}</span> <span ng-show="flags.mode == \'loginMode\'" class="kim kim-icon" ng-class="{\'kim-user-highlight\': $index == 0, \'kim-password-highlight\': $index == 1, \'kim-target-highlight\': $index == 2}"></span> <span ng-show="flags.mode != \'loginMode\'" class="kim-delete-datatype" ng-click="delete($index)"></span> </a> <a class="kim-new-datatype" ng-click="addDatatype()" ng-show="datatypes.length < 50 && flags.mode != \'loginMode\'" title="New Datatype"></a> </div> <div class="kim-right"> <div class="kim-toolbar-section" id="kim-PaginationContainer"> <a km-fade="flags.mode != \'loginMode\' && flags.mode != \'navigation\'" km-in="true" km-out="true" display="inline-block" opacity="0.4" ng-mouseenter="paginationHover(\'pagination\')" ng-mouseleave="dataDotUnhover(\'pagination\')" class="kim kim-toolbar-button kim-pagination kim-data-dot" kimonodatatype="pagination" title="Pagination" ng-click="pagination()" ng-class="{active : (datatypeIndex == \'pagination\'), disabled: flags.mode == \'loginMode\' || flags.navigate}"> <span ng-show="flags.hasPagination" class="pagination-check"></span> <span class="kim-delete-datatype" ng-click="deletePagination($index)"></span> </a> <a km-fade="flags.mode != \'navigation\'" km-in="true" km-out="true" display="inline-block" opacity="0.4" class="kim-toolbar-button kim-undo" ng-class="{disabled: flags.actionHistoryLength == 0}" ng-click="undo()" title="Undo"></a> </div> <div class="kim-toolbar-section" ng-if="config.clientEnv == \'chrome\'" id="kim-PaginationContainer"> <a ng-show="flags.currentStep == \'on\' || flags.currentStep == \'done\'" class="kim-toolbar-button kim-normal" ng-class="{active: flags.mode == \'navigation\'}" ng-click="navigateMode()" title="Navigate"></a> <a ng-show="flags.currentStep != \'on\' && flags.currentStep != \'done\'" class="kim-toolbar-button kim-login" ng-class="{active: flags.mode == \'loginMode\', attention: isHttps()}" ng-click="enableLoginMode()" title="Auth mode"></a> </div> <div class="kim-toolbar-section"> <a class="kim-toolbar-button kim-view-button extractor-view" title="Extractor View" ng-click="changeView(\'extractor\')" ng-class="{active : (flags.currentView == \'extractor\')}"></a> <a class="kim-toolbar-button kim-view-button data-model-view" title="Data Model View" ng-click="changeView(\'data\')" ng-class="{active : (flags.currentView == \'data\'), disabled: flags.navigate}"></a> <a class="kim kim-toolbar-button kim-view-button json-view" title="Raw Data View" ng-click="changeView(\'raw\')" ng-class="{active : (flags.currentView == \'raw\'), disabled: flags.mode == \'loginMode\' || flags.navigate}"></a> </div> <div class="kim-toolbar-section"> <button ng-class="{disabled: flags.navigate}" class="kim-toolbar-button-primary kim kim-button" id="kim-DoneButton" ng-click="done()" title="{{doneButtonTitle()}} API">{{doneButtonMessage()}}</button> </div> </div></div>'), angular.bootstrap($mainController, ['Kimono']), $mainController.appendTo('body');
}
});
}(window, document);
!function(e,t,n){function r(){s||(i("#habla_beta_container_do_not_rely_on_div_classes_or_names").appendTo("#Kimonify").css({"z-index":2147483900,position:"fixed"}),s=!0)}"undefined"==typeof e.$k?e.$k={data:{}}:"undefined"==typeof e.$k.data&&(e.$k.data={});e.$||e.jQuery||n;!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof e?e:this,function(e,t){function n(e){var t=e.length,n=et.type(e);return"function"===n||et.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(et.isFunction(t))return et.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return et.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return et.filter(t,e,n);t=et.filter(t,e)}return et.grep(e,function(e){return z.call(t,e)>=0!==n})}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t=ht[e]={};return et.each(e.match(pt)||[],function(e,n){t[n]=!0}),t}function a(){Q.removeEventListener("DOMContentLoaded",a,!1),e.removeEventListener("load",a,!1),et.ready()}function s(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=et.expando+Math.random()}function l(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(xt,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:bt.test(n)?et.parseJSON(n):n}catch(i){}yt.set(e,t,n)}else n=void 0;return n}function c(){return!0}function u(){return!1}function f(){try{return Q.activeElement}catch(e){}}function d(e,t){return et.nodeName(e,"table")&&et.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function p(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function h(e){var t=Lt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,r=e.length;r>n;n++)vt.set(e[n],"globalEval",!t||vt.get(t[n],"globalEval"))}function m(e,t){var n,r,i,o,a,s,l,c;if(1===t.nodeType){if(vt.hasData(e)&&(o=vt.access(e),a=vt.set(t,o),c=o.events)){delete a.handle,a.events={};for(i in c)for(n=0,r=c[i].length;r>n;n++)et.event.add(t,i,c[i][n])}yt.hasData(e)&&(s=yt.access(e),l=et.extend({},s),yt.set(t,l))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&et.nodeName(e,t)?et.merge([e],n):n}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ct.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function b(t,n){var r=et(n.createElement(t)).appendTo(n.body),i=e.getDefaultComputedStyle?e.getDefaultComputedStyle(r[0]).display:et.css(r[0],"display");return r.detach(),i}function x(e){var t=Q,n=Ft[e];return n||(n=b(e,t),"none"!==n&&n||(_t=(_t||et("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=_t[0].contentDocument,t.write(),t.close(),n=b(e,t),_t.detach()),Ft[e]=n),n}function $(e,t,n){var r,i,o,a,s=e.style;return n=n||Wt(e),n&&(a=n.getPropertyValue(t)||n[t]),n&&(""!==a||et.contains(e.ownerDocument,e)||(a=et.style(e,t)),Ut.test(a)&&qt.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function k(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function w(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(1),r=t,i=Gt.length;i--;)if(t=Gt[i]+n,t in e)return t;return r}function C(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function S(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=et.css(e,n+kt[o],!0,i)),r?("content"===n&&(a-=et.css(e,"padding"+kt[o],!0,i)),"margin"!==n&&(a-=et.css(e,"border"+kt[o]+"Width",!0,i))):(a+=et.css(e,"padding"+kt[o],!0,i),"padding"!==n&&(a+=et.css(e,"border"+kt[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Wt(e),a="border-box"===et.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=$(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ut.test(i))return i;r=a&&(J.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+S(e,t,n||(a?"border":"content"),r,o)+"px"}function A(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=vt.get(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&wt(r)&&(o[a]=vt.access(r,"olddisplay",x(r.nodeName)))):o[a]||(i=wt(r),(n&&"none"!==n||!i)&&vt.set(r,"olddisplay",i?n:et.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function T(e,t,n,r,i){return new T.prototype.init(e,t,n,r,i)}function O(){return setTimeout(function(){Yt=void 0}),Yt=et.now()}function N(e,t){var n,r=0,i={height:e};for(t=t?1:0;4>r;r+=2-t)n=kt[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function j(e,t,n){for(var r,i=(nn[t]||[]).concat(nn["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function M(e,t,n){var r,i,o,a,s,l,c,u=this,f={},d=e.style,p=e.nodeType&&wt(e),h=vt.get(e,"fxshow");n.queue||(s=et._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,et.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],c=et.css(e,"display"),"none"===c&&(c=x(e.nodeName)),"inline"===c&&"none"===et.css(e,"float")&&(d.display="inline-block")),n.overflow&&(d.overflow="hidden",u.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Qt.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(p?"hide":"show")){if("show"!==i||!h||void 0===h[r])continue;p=!0}f[r]=h&&h[r]||et.style(e,r)}if(!et.isEmptyObject(f)){h?"hidden"in h&&(p=h.hidden):h=vt.access(e,"fxshow",{}),o&&(h.hidden=!p),p?et(e).show():u.done(function(){et(e).hide()}),u.done(function(){var t;vt.remove(e,"fxshow");for(t in f)et.style(e,t,f[t])});for(r in f)a=j(p?h[r]:0,r,u),r in h||(h[r]=a.start,p&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function I(e,t){var n,r,i,o,a;for(n in e)if(r=et.camelCase(n),i=t[r],o=e[n],et.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=et.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function D(e,t,n){var r,i,o=0,a=tn.length,s=et.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=Yt||O(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,a=0,l=c.tweens.length;l>a;a++)c.tweens[a].run(o);return s.notifyWith(e,[c,o,n]),1>o&&l?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:et.extend({},t),opts:et.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Yt||O(),duration:n.duration,tweens:[],createTween:function(t,n){var r=et.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)c.tweens[n].run(1);return t?s.resolveWith(e,[c,t]):s.rejectWith(e,[c,t]),this}}),u=c.props;for(I(u,c.opts.specialEasing);a>o;o++)if(r=tn[o].call(c,e,u,c.opts))return r;return et.map(u,j,c),et.isFunction(c.opts.start)&&c.opts.start.call(e,c),et.fx.timer(et.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function P(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(pt)||[];if(et.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function L(e,t,n,r){function i(s){var l;return o[s]=!0,et.each(e[s]||[],function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||o[c]?a?!(l=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),l}var o={},a=e===kn;return i(t.dataTypes[0])||!o["*"]&&i("*")}function H(e,t){var n,r,i=et.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&et.extend(!0,e,r),e}function R(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}a||(a=i)}o=o||a}return o?(o!==l[0]&&l.unshift(o),n[o]):void 0}function _(e,t,n,r){var i,o,a,s,l,c={},u=e.dataTypes.slice();if(u[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=c[l+" "+o]||c["* "+o],!a)for(i in c)if(s=i.split(" "),s[1]===o&&(a=c[l+" "+s[0]]||c["* "+s[0]])){a===!0?a=c[i]:c[i]!==!0&&(o=s[0],u.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}function F(e,t,n,r){var i;if(et.isArray(t))et.each(t,function(t,i){n||En.test(e)?r(e,i):F(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==et.type(t))r(e,t);else for(i in t)F(e+"["+i+"]",t[i],n,r)}function q(e){return et.isWindow(e)?e:9===e.nodeType&&e.defaultView}var U=[],W=U.slice,B=U.concat,V=U.push,z=U.indexOf,K={},X=K.toString,G=K.hasOwnProperty,Y="".trim,J={},Q=e.document,Z="2.1.0",et=function(e,t){return new et.fn.init(e,t)},tt=/^-ms-/,nt=/-([\da-z])/gi,rt=function(e,t){return t.toUpperCase()};et.fn=et.prototype={jquery:Z,constructor:et,selector:"",length:0,toArray:function(){return W.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:W.call(this)},pushStack:function(e){var t=et.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return et.each(this,e,t)},map:function(e){return this.pushStack(et.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(W.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:V,sort:U.sort,splice:U.splice},et.extend=et.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,l=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||et.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],r=e[t],a!==r&&(c&&r&&(et.isPlainObject(r)||(i=et.isArray(r)))?(i?(i=!1,o=n&&et.isArray(n)?n:[]):o=n&&et.isPlainObject(n)?n:{},a[t]=et.extend(c,o,r)):void 0!==r&&(a[t]=r));return a},et.extend({expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===et.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return e-parseFloat(e)>=0},isPlainObject:function(e){if("object"!==et.type(e)||e.nodeType||et.isWindow(e))return!1;try{if(e.constructor&&!G.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?K[X.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;e=et.trim(e),e&&(1===e.indexOf("use strict")?(t=Q.createElement("script"),t.text=e,Q.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(tt,"ms-").replace(nt,rt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,a=e.length,s=n(e);if(r){if(s)for(;a>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(s)for(;a>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:function(e){return null==e?"":Y.call(e)},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?et.merge(r,"string"==typeof e?[e]:e):V.call(r,e)),r},inArray:function(e,t,n){return null==t?-1:z.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;a>o;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,a=e.length,s=n(e),l=[];if(s)for(;a>o;o++)i=t(e[o],o,r),null!=i&&l.push(i);else for(o in e)i=t(e[o],o,r),null!=i&&l.push(i);return B.apply([],l)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),et.isFunction(e)?(r=W.call(arguments,2),i=function(){return e.apply(t||this,r.concat(W.call(arguments)))},i.guid=e.guid=e.guid||et.guid++,i):void 0},now:Date.now,support:J}),et.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){K["[object "+t+"]"]=t.toLowerCase()});var it=function(e){function t(e,t,n,r){var i,o,a,s,l,c,f,h,g,m;if((t?t.ownerDocument||t:F)!==M&&j(t),t=t||M,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(D&&!r){if(i=yt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&R(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&w.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(w.qsa&&(!P||!P.test(e))){if(h=f=_,g=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=d(e),(f=t.getAttribute("id"))?h=f.replace(xt,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",l=c.length;l--;)c[l]=h+p(c[l]);g=bt.test(e)&&u(t.parentNode)||t,m=c.join(",")}if(m)try{return Z.apply(n,g.querySelectorAll(m)),n}catch(v){}finally{f||t.removeAttribute("id")}}}return $(e.replace(lt,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>C.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[_]=!0,e}function i(e){var t=M.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)C.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==K&&e}function f(){}function d(e,n){var r,i,o,a,s,l,c,u=B[e+" "];if(u)return n?0:u.slice(0);for(s=e,l=[],c=C.preFilter;s;){(!r||(i=ct.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ut.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(lt," ")}),s=s.slice(r.length));for(a in C.filter)!(i=ht[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):B(e,l).slice(0)}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=U++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c=[q,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[_]||(t[_]={}),(s=l[r])&&s[0]===q&&s[1]===o)return c[2]=s[2];if(l[r]=c,c[2]=e(t,n,a))return!0}}}function g(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function v(e,t,n,i,o,a){return i&&!i[_]&&(i=v(i)),o&&!o[_]&&(o=v(o,a)),r(function(r,a,s,l){var c,u,f,d=[],p=[],h=a.length,g=r||x(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?g:m(g,d,e,s,l),y=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,y,s,l),i)for(c=m(y,p),i(c,[],s,l),u=c.length;u--;)(f=c[u])&&(y[p[u]]=!(v[p[u]]=f));if(r){if(o||e){if(o){for(c=[],u=y.length;u--;)(f=y[u])&&c.push(v[u]=f);o(null,y=[],c,l)}for(u=y.length;u--;)(f=y[u])&&(c=o?tt.call(r,f):d[u])>-1&&(r[c]=!(a[c]=f))}}else y=m(y===a?y.splice(h,y.length):y),o?o(null,a,y,l):Z.apply(a,y)})}function y(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,l=h(function(e){return e===t},a,!0),c=h(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=C.relative[e[s].type])u=[h(g(u),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[_]){for(r=++s;i>r&&!C.relative[e[r].type];r++);return v(s>1&&g(u),s>1&&p(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(lt,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&p(e))}u.push(n)}return g(u)}function b(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,l,c){var u,f,d,p=0,h="0",g=r&&[],v=[],y=T,b=r||o&&C.find.TAG("*",c),x=q+=null==y?1:Math.random()||.1,$=b.length;for(c&&(T=a!==M&&a);h!==$&&null!=(u=b[h]);h++){if(o&&u){for(f=0;d=e[f++];)if(d(u,a,s)){l.push(u);break}c&&(q=x)}i&&((u=!d&&u)&&p--,r&&g.push(u))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,v,a,s);if(r){if(p>0)for(;h--;)g[h]||v[h]||(v[h]=J.call(l));v=m(v)}Z.apply(l,v),c&&!r&&v.length>0&&p+n.length>1&&t.uniqueSort(l)}return c&&(q=x,T=y),g};return i?r(a):a}function x(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function $(e,t,n,r){var i,o,a,s,l,c=d(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&D&&C.relative[o[1].type]){if(t=(C.find.ID(a.matches[0].replace($t,kt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=ht.needsContext.test(e)?0:o.length;i--&&(a=o[i],!C.relative[s=a.type]);)if((l=C.find[s])&&(r=l(a.matches[0].replace($t,kt),bt.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&p(o),!e)return Z.apply(n,r),n;break}}return A(e,c)(r,t,!D,n,bt.test(e)&&u(t.parentNode)||t),n}var k,w,C,S,E,A,T,O,N,j,M,I,D,P,L,H,R,_="sizzle"+-new Date,F=e.document,q=0,U=0,W=n(),B=n(),V=n(),z=function(e,t){return e===t&&(N=!0),0},K="undefined",X=1<<31,G={}.hasOwnProperty,Y=[],J=Y.pop,Q=Y.push,Z=Y.push,et=Y.slice,tt=Y.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",rt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot=it.replace("w","w#"),at="\\["+rt+"*("+it+")"+rt+"*(?:([*^$|!~]?=)"+rt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+ot+")|)|)"+rt+"*\\]",st=":("+it+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",lt=new RegExp("^"+rt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+rt+"+$","g"),ct=new RegExp("^"+rt+"*,"+rt+"*"),ut=new RegExp("^"+rt+"*([>+~]|"+rt+")"+rt+"*"),ft=new RegExp("="+rt+"*([^\\]'\"]*?)"+rt+"*\\]","g"),dt=new RegExp(st),pt=new RegExp("^"+ot+"$"),ht={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it.replace("w","w*")+")"),ATTR:new RegExp("^"+at),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+rt+"*(even|odd|(([+-]|)(\\d*)n|)"+rt+"*(?:([+-]|)"+rt+"*(\\d+)|))"+rt+"*\\)|)","i"),bool:new RegExp("^(?:"+nt+")$","i"),needsContext:new RegExp("^"+rt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+rt+"*((?:-\\d)?\\d*)"+rt+"*\\)|)(?=[^-]|$)","i")},gt=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,vt=/^[^{]+\{\s*\[native \w/,yt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,bt=/[+~]/,xt=/'|\\/g,$t=new RegExp("\\\\([\\da-f]{1,6}"+rt+"?|("+rt+")|.)","ig"),kt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(Y=et.call(F.childNodes),F.childNodes),Y[F.childNodes.length].nodeType}catch(wt){Z={apply:Y.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},j=t.setDocument=function(e){var t,n=e?e.ownerDocument||e:F,r=n.defaultView;return n!==M&&9===n.nodeType&&n.documentElement?(M=n,I=n.documentElement,D=!E(n),r&&r!==r.top&&(r.addEventListener?r.addEventListener("unload",function(){j()},!1):r.attachEvent&&r.attachEvent("onunload",function(){j()})),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=vt.test(n.getElementsByClassName)&&i(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),w.getById=i(function(e){return I.appendChild(e).id=_,!n.getElementsByName||!n.getElementsByName(_).length}),w.getById?(C.find.ID=function(e,t){if(typeof t.getElementById!==K&&D){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},C.filter.ID=function(e){var t=e.replace($t,kt);return function(e){return e.getAttribute("id")===t}}):(delete C.find.ID,C.filter.ID=function(e){var t=e.replace($t,kt);return function(e){var n=typeof e.getAttributeNode!==K&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=w.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==K?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},C.find.CLASS=w.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==K&&D?t.getElementsByClassName(e):void 0},L=[],P=[],(w.qsa=vt.test(n.querySelectorAll))&&(i(function(e){e.innerHTML="<select t=''><option selected=''></option></select>",e.querySelectorAll("[t^='']").length&&P.push("[*^$]="+rt+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+rt+"*(?:value|"+nt+")"),e.querySelectorAll(":checked").length||P.push(":checked")}),i(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+rt+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(w.matchesSelector=vt.test(H=I.webkitMatchesSelector||I.mozMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&i(function(e){w.disconnectedMatch=H.call(e,"div"),H.call(e,"[s!='']:x"),L.push("!=",st)}),P=P.length&&new RegExp(P.join("|")),L=L.length&&new RegExp(L.join("|")),t=vt.test(I.compareDocumentPosition),R=t||vt.test(I.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},z=t?function(e,t){if(e===t)return N=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&r||!w.sortDetached&&t.compareDocumentPosition(e)===r?e===n||e.ownerDocument===F&&R(F,e)?-1:t===n||t.ownerDocument===F&&R(F,t)?1:O?tt.call(O,e)-tt.call(O,t):0:4&r?-1:1)}:function(e,t){if(e===t)return N=!0,0;var r,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===n?-1:t===n?1:o?-1:s?1:O?tt.call(O,e)-tt.call(O,t):0;if(o===s)return a(e,t);for(r=e;r=r.parentNode;)l.unshift(r);for(r=t;r=r.parentNode;)c.unshift(r);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===F?-1:c[i]===F?1:0},n):M},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==M&&j(e),n=n.replace(ft,"='$1']"),!(!w.matchesSelector||!D||L&&L.test(n)||P&&P.test(n)))try{var r=H.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,M,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==M&&j(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==M&&j(e);var n=C.attrHandle[t.toLowerCase()],r=n&&G.call(C.attrHandle,t.toLowerCase())?n(e,t,!D):void 0;return void 0!==r?r:w.attributes||!D?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(N=!w.detectDuplicates,O=!w.sortStable&&e.slice(0),e.sort(z),N){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return O=null,e},S=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=S(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=S(t);return n},C=t.selectors={cacheLength:50,createPseudo:r,match:ht,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($t,kt),e[3]=(e[4]||e[5]||"").replace($t,kt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return ht.CHILD.test(e[0])?null:(e[3]&&void 0!==e[4]?e[2]=e[4]:n&&dt.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace($t,kt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+rt+")"+e+"("+rt+"|$)"))&&W(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==K&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(m){if(o){for(;g;){for(f=t;f=f[g];)if(s?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&y){for(u=m[_]||(m[_]={}),c=u[e]||[],p=c[0]===q&&c[1],d=c[0]===q&&c[2],f=p&&m.childNodes[p];f=++p&&f&&f[g]||(d=p=0)||h.pop();)if(1===f.nodeType&&++d&&f===t){u[e]=[q,p,d];break}}else if(y&&(c=(t[_]||(t[_]={}))[e])&&c[0]===q)d=c[1];else for(;(f=++p&&f&&f[g]||(d=p=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++d||(y&&((f[_]||(f[_]={}))[e]=[q,d]),f!==t)););return d-=i,d===r||d%r===0&&d/r>=0}}},PSEUDO:function(e,n){var i,o=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[_]?o(n):o.length>1?(i=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=tt.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=A(e.replace(lt,"$1"));return i[_]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||S(t)).indexOf(e)>-1}}),lang:r(function(e){return pt.test(e||"")||t.error("unsupported lang: "+e),e=e.replace($t,kt).toLowerCase(),function(t){var n;do if(n=D?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===I},focus:function(e){return e===M.activeElement&&(!M.hasFocus||M.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return mt.test(e.nodeName)},input:function(e){return gt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},C.pseudos.nth=C.pseudos.eq;for(k in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})C.pseudos[k]=s(k);for(k in{submit:!0,reset:!0})C.pseudos[k]=l(k);return f.prototype=C.filters=C.pseudos,C.setFilters=new f,A=t.compile=function(e,t){var n,r=[],i=[],o=V[e+" "];if(!o){for(t||(t=d(e)),n=t.length;n--;)o=y(t[n]),o[_]?r.push(o):i.push(o);o=V(e,b(i,r))}return o},w.sortStable=_.split("").sort(z).join("")===_,w.detectDuplicates=!!N,j(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(M.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(nt,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);et.find=it,et.expr=it.selectors,et.expr[":"]=et.expr.pseudos,et.unique=it.uniqueSort,et.text=it.getText,et.isXMLDoc=it.isXML,et.contains=it.contains;var ot=et.expr.match.needsContext,at=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,st=/^.[^:#\[\.,]*$/;et.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?et.find.matchesSelector(r,e)?[r]:[]:et.find.matches(e,et.grep(t,function(e){return 1===e.nodeType}))},et.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;
if("string"!=typeof e)return this.pushStack(et(e).filter(function(){for(t=0;n>t;t++)if(et.contains(i[t],this))return!0}));for(t=0;n>t;t++)et.find(e,i[t],r);return r=this.pushStack(n>1?et.unique(r):r),r.selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&ot.test(e)?et(e):e||[],!1).length}});var lt,ct=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ut=et.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:ct.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||lt).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof et?t[0]:t,et.merge(this,et.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:Q,!0)),at.test(n[1])&&et.isPlainObject(t))for(n in t)et.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return r=Q.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=Q,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):et.isFunction(e)?"undefined"!=typeof lt.ready?lt.ready(e):e(et):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),et.makeArray(e,this))};ut.prototype=et.fn,lt=et(Q);var ft=/^(?:parents|prev(?:Until|All))/,dt={children:!0,contents:!0,next:!0,prev:!0};et.extend({dir:function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&et(e).is(n))break;r.push(e)}return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),et.fn.extend({has:function(e){var t=et(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(et.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=ot.test(e)||"string"!=typeof e?et(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&et.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?et.unique(o):o)},index:function(e){return e?"string"==typeof e?z.call(et(e),this[0]):z.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(et.unique(et.merge(this.get(),et(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),et.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return et.dir(e,"parentNode")},parentsUntil:function(e,t,n){return et.dir(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return et.dir(e,"nextSibling")},prevAll:function(e){return et.dir(e,"previousSibling")},nextUntil:function(e,t,n){return et.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return et.dir(e,"previousSibling",n)},siblings:function(e){return et.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return et.sibling(e.firstChild)},contents:function(e){return e.contentDocument||et.merge([],e.childNodes)}},function(e,t){et.fn[e]=function(n,r){var i=et.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=et.filter(r,i)),this.length>1&&(dt[e]||et.unique(i),ft.test(e)&&i.reverse()),this.pushStack(i)}});var pt=/\S+/g,ht={};et.Callbacks=function(e){e="string"==typeof e?ht[e]||o(e):et.extend({},e);var t,n,r,i,a,s,l=[],c=!e.once&&[],u=function(o){for(t=e.memory&&o,n=!0,s=i||0,i=0,a=l.length,r=!0;l&&a>s;s++)if(l[s].apply(o[0],o[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,l&&(c?c.length&&u(c.shift()):t?l=[]:f.disable())},f={add:function(){if(l){var n=l.length;!function o(t){et.each(t,function(t,n){var r=et.type(n);"function"===r?e.unique&&f.has(n)||l.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),r?a=l.length:t&&(i=n,u(t))}return this},remove:function(){return l&&et.each(arguments,function(e,t){for(var n;(n=et.inArray(t,l,n))>-1;)l.splice(n,1),r&&(a>=n&&a--,s>=n&&s--)}),this},has:function(e){return e?et.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],a=0,this},disable:function(){return l=c=t=void 0,this},disabled:function(){return!l},lock:function(){return c=void 0,t||f.disable(),this},locked:function(){return!c},fireWith:function(e,t){return!l||n&&!c||(t=t||[],t=[e,t.slice?t.slice():t],r?c.push(t):u(t)),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!n}};return f},et.extend({Deferred:function(e){var t=[["resolve","done",et.Callbacks("once memory"),"resolved"],["reject","fail",et.Callbacks("once memory"),"rejected"],["notify","progress",et.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return et.Deferred(function(n){et.each(t,function(t,o){var a=et.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&et.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?et.extend(e,r):r}},i={};return r.pipe=r.then,et.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=W.call(arguments),a=o.length,s=1!==a||e&&et.isFunction(e.promise)?a:0,l=1===s?e:et.Deferred(),c=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?W.call(arguments):i,r===t?l.notifyWith(n,r):--s||l.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&et.isFunction(o[i].promise)?o[i].promise().done(c(i,r,o)).fail(l.reject).progress(c(i,n,t)):--s;return s||l.resolveWith(r,o),l.promise()}});var gt;et.fn.ready=function(e){return et.ready.promise().done(e),this},et.extend({isReady:!1,readyWait:1,holdReady:function(e){e?et.readyWait++:et.ready(!0)},ready:function(e){(e===!0?--et.readyWait:et.isReady)||(et.isReady=!0,e!==!0&&--et.readyWait>0||(gt.resolveWith(Q,[et]),et.fn.trigger&&et(Q).trigger("ready").off("ready")))}}),et.ready.promise=function(t){return gt||(gt=et.Deferred(),"complete"===Q.readyState?setTimeout(et.ready):(Q.addEventListener("DOMContentLoaded",a,!1),e.addEventListener("load",a,!1))),gt.promise(t)},et.ready.promise();var mt=et.access=function(e,t,n,r,i,o,a){var s=0,l=e.length,c=null==n;if("object"===et.type(n)){i=!0;for(s in n)et.access(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,et.isFunction(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(et(e),n)})),t))for(;l>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:c?t.call(e):l?t(e[0],n):o};et.acceptData=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType},s.uid=1,s.accepts=et.acceptData,s.prototype={key:function(e){if(!s.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=s.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,et.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(et.isEmptyObject(o))et.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return void 0===t?n:n[t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?(r=this.get(e,t),void 0!==r?r:this.get(e,et.camelCase(t))):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),a=this.cache[o];if(void 0===t)this.cache[o]={};else{et.isArray(t)?r=t.concat(t.map(et.camelCase)):(i=et.camelCase(t),t in a?r=[t,i]:(r=i,r=r in a?[r]:r.match(pt)||[])),n=r.length;for(;n--;)delete a[r[n]]}},hasData:function(e){return!et.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}};var vt=new s,yt=new s,bt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,xt=/([A-Z])/g;et.extend({hasData:function(e){return yt.hasData(e)||vt.hasData(e)},data:function(e,t,n){return yt.access(e,t,n)},removeData:function(e,t){yt.remove(e,t)},_data:function(e,t,n){return vt.access(e,t,n)},_removeData:function(e,t){vt.remove(e,t)}}),et.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=yt.get(o),1===o.nodeType&&!vt.get(o,"hasDataAttrs"))){for(n=a.length;n--;)r=a[n].name,0===r.indexOf("data-")&&(r=et.camelCase(r.slice(5)),l(o,r,i[r]));vt.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){yt.set(this,e)}):mt(this,function(t){var n,r=et.camelCase(e);if(o&&void 0===t){if(n=yt.get(o,e),void 0!==n)return n;if(n=yt.get(o,r),void 0!==n)return n;if(n=l(o,r,void 0),void 0!==n)return n}else this.each(function(){var n=yt.get(this,r);yt.set(this,r,t),-1!==e.indexOf("-")&&void 0!==n&&yt.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){yt.remove(this,e)})}}),et.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=vt.get(e,t),n&&(!r||et.isArray(n)?r=vt.access(e,t,et.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=et.queue(e,t),r=n.length,i=n.shift(),o=et._queueHooks(e,t),a=function(){et.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return vt.get(e,n)||vt.access(e,n,{empty:et.Callbacks("once memory").add(function(){vt.remove(e,[t+"queue",n])})})}}),et.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?et.queue(this[0],e):void 0===t?this:this.each(function(){var n=et.queue(this,e,t);et._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&et.dequeue(this,e)})},dequeue:function(e){return this.each(function(){et.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=et.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=vt.get(o[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var $t=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,kt=["Top","Right","Bottom","Left"],wt=function(e,t){return e=t||e,"none"===et.css(e,"display")||!et.contains(e.ownerDocument,e)},Ct=/^(?:checkbox|radio)$/i;!function(){var e=Q.createDocumentFragment(),t=e.appendChild(Q.createElement("div"));t.innerHTML="<input type='radio' checked='checked' name='t'/>",J.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",J.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var St="undefined";J.focusinBubbles="onfocusin"in e;var Et=/^key/,At=/^(?:mouse|contextmenu)|click/,Tt=/^(?:focusinfocus|focusoutblur)$/,Ot=/^([^.]*)(?:\.(.+)|)$/;et.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,u,f,d,p,h,g,m=vt.get(e);if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),n.guid||(n.guid=et.guid++),(l=m.events)||(l=m.events={}),(a=m.handle)||(a=m.handle=function(t){return typeof et!==St&&et.event.triggered!==t.type?et.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(pt)||[""],c=t.length;c--;)s=Ot.exec(t[c])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p&&(f=et.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=et.event.special[p]||{},u=et.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&et.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=l[p])||(d=l[p]=[],d.delegateCount=0,f.setup&&f.setup.call(e,r,h,a)!==!1||e.addEventListener&&e.addEventListener(p,a,!1)),f.add&&(f.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,u):d.push(u),et.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,u,f,d,p,h,g,m=vt.hasData(e)&&vt.get(e);if(m&&(l=m.events)){for(t=(t||"").match(pt)||[""],c=t.length;c--;)if(s=Ot.exec(t[c])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p){for(f=et.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=l[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)u=d[o],!i&&g!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(d.splice(o,1),u.selector&&d.delegateCount--,f.remove&&f.remove.call(e,u));a&&!d.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||et.removeEvent(e,p,m.handle),delete l[p])}else for(p in l)et.event.remove(e,p+t[c],n,r,!0);et.isEmptyObject(l)&&(delete m.handle,vt.remove(e,"events"))}},trigger:function(t,n,r,i){var o,a,s,l,c,u,f,d=[r||Q],p=G.call(t,"type")?t.type:t,h=G.call(t,"namespace")?t.namespace.split("."):[];if(a=s=r=r||Q,3!==r.nodeType&&8!==r.nodeType&&!Tt.test(p+et.event.triggered)&&(p.indexOf(".")>=0&&(h=p.split("."),p=h.shift(),h.sort()),c=p.indexOf(":")<0&&"on"+p,t=t[et.expando]?t:new et.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:et.makeArray(n,[t]),f=et.event.special[p]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!et.isWindow(r)){for(l=f.delegateType||p,Tt.test(l+p)||(a=a.parentNode);a;a=a.parentNode)d.push(a),s=a;s===(r.ownerDocument||Q)&&d.push(s.defaultView||s.parentWindow||e)}for(o=0;(a=d[o++])&&!t.isPropagationStopped();)t.type=o>1?l:f.bindType||p,u=(vt.get(a,"events")||{})[t.type]&&vt.get(a,"handle"),u&&u.apply(a,n),u=c&&a[c],u&&u.apply&&et.acceptData(a)&&(t.result=u.apply(a,n),t.result===!1&&t.preventDefault());return t.type=p,i||t.isDefaultPrevented()||f._default&&f._default.apply(d.pop(),n)!==!1||!et.acceptData(r)||c&&et.isFunction(r[p])&&!et.isWindow(r)&&(s=r[c],s&&(r[c]=null),et.event.triggered=p,r[p](),et.event.triggered=void 0,s&&(r[c]=s)),t.result}},dispatch:function(e){e=et.event.fix(e);var t,n,r,i,o,a=[],s=W.call(arguments),l=(vt.get(this,"events")||{})[e.type]||[],c=et.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(a=et.event.handlers.call(this,e,l),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((et.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!==this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==e.type){for(r=[],n=0;s>n;n++)o=t[n],i=o.selector+" ",void 0===r[i]&&(r[i]=o.needsContext?et(i,this).index(l)>=0:et.find(i,this,null,[l]).length),r[i]&&r.push(o);r.length&&a.push({elem:l,handlers:r})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||Q,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},fix:function(e){if(e[et.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=At.test(i)?this.mouseHooks:Et.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new et.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=Q),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,o):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==f()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===f()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&et.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(e){return et.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=et.extend(new et.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?et.event.trigger(i,null,t):et.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},et.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},et.Event=function(e,t){return this instanceof et.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.getPreventDefault&&e.getPreventDefault()?c:u):this.type=e,t&&et.extend(this,t),this.timeStamp=e&&e.timeStamp||et.now(),void(this[et.expando]=!0)):new et.Event(e,t)},et.Event.prototype={isDefaultPrevented:u,isPropagationStopped:u,isImmediatePropagationStopped:u,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=c,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=c,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=c,this.stopPropagation()}},et.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){et.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!et.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),J.focusinBubbles||et.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){et.event.simulate(t,e.target,et.event.fix(e),!0)};et.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=vt.access(r,t);i||r.addEventListener(e,n,!0),vt.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=vt.access(r,t)-1;i?vt.access(r,t,i):(r.removeEventListener(e,n,!0),vt.remove(r,t))}}}),et.fn.extend({on:function(e,t,n,r,i){var o,a;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(a in e)this.on(a,t,n,e[a],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),r===!1)r=u;else if(!r)return this;return 1===i&&(o=r,r=function(e){return et().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=et.guid++)),this.each(function(){et.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,et(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=u),this.each(function(){et.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){et.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?et.event.trigger(e,t,n,!0):void 0}});var Nt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jt=/<([\w:]+)/,Mt=/<|&#?\w+;/,It=/<(?:script|style|link)/i,Dt=/checked\s*(?:[^=]|=\s*.checked.)/i,Pt=/^$|\/(?:java|ecma)script/i,Lt=/^true\/(.*)/,Ht=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Rt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Rt.optgroup=Rt.option,Rt.tbody=Rt.tfoot=Rt.colgroup=Rt.caption=Rt.thead,Rt.th=Rt.td,et.extend({clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),l=et.contains(e.ownerDocument,e);if(!(J.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||et.isXMLDoc(e)))for(a=v(s),o=v(e),r=0,i=o.length;i>r;r++)y(o[r],a[r]);if(t)if(n)for(o=o||v(e),a=a||v(s),r=0,i=o.length;i>r;r++)m(o[r],a[r]);else m(e,s);return a=v(s,"script"),a.length>0&&g(a,!l&&v(e,"script")),s},buildFragment:function(e,t,n,r){for(var i,o,a,s,l,c,u=t.createDocumentFragment(),f=[],d=0,p=e.length;p>d;d++)if(i=e[d],i||0===i)if("object"===et.type(i))et.merge(f,i.nodeType?[i]:i);else if(Mt.test(i)){for(o=o||u.appendChild(t.createElement("div")),a=(jt.exec(i)||["",""])[1].toLowerCase(),s=Rt[a]||Rt._default,o.innerHTML=s[1]+i.replace(Nt,"<$1></$2>")+s[2],c=s[0];c--;)o=o.lastChild;et.merge(f,o.childNodes),o=u.firstChild,o.textContent=""}else f.push(t.createTextNode(i));for(u.textContent="",d=0;i=f[d++];)if((!r||-1===et.inArray(i,r))&&(l=et.contains(i.ownerDocument,i),o=v(u.appendChild(i),"script"),l&&g(o),n))for(c=0;i=o[c++];)Pt.test(i.type||"")&&n.push(i);return u},cleanData:function(e){for(var t,n,r,i,o,a,s=et.event.special,l=0;void 0!==(n=e[l]);l++){if(et.acceptData(n)&&(o=n[vt.expando],o&&(t=vt.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(a=0;void 0!==(i=r[a]);a++)s[i]?et.event.remove(n,i):et.removeEvent(n,i,t.handle);vt.cache[o]&&delete vt.cache[o]}delete yt.cache[n[yt.expando]]}}}),et.fn.extend({text:function(e){return mt(this,function(e){return void 0===e?et.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=d(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=d(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?et.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||et.cleanData(v(n)),n.parentNode&&(t&&et.contains(n.ownerDocument,n)&&g(v(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(et.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return et.clone(this,e,t)})},html:function(e){return mt(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!It.test(e)&&!Rt[(jt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(Nt,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(et.cleanData(v(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,et.cleanData(v(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=B.apply([],e);var n,r,i,o,a,s,l=0,c=this.length,u=this,f=c-1,d=e[0],g=et.isFunction(d);if(g||c>1&&"string"==typeof d&&!J.checkClone&&Dt.test(d))return this.each(function(n){var r=u.eq(n);g&&(e[0]=d.call(this,n,r.html())),r.domManip(e,t)});if(c&&(n=et.buildFragment(e,this[0].ownerDocument,!1,this),r=n.firstChild,1===n.childNodes.length&&(n=r),r)){for(i=et.map(v(n,"script"),p),o=i.length;c>l;l++)a=n,l!==f&&(a=et.clone(a,!0,!0),o&&et.merge(i,v(a,"script"))),t.call(this[l],a,l);if(o)for(s=i[i.length-1].ownerDocument,et.map(i,h),l=0;o>l;l++)a=i[l],Pt.test(a.type||"")&&!vt.access(a,"globalEval")&&et.contains(s,a)&&(a.src?et._evalUrl&&et._evalUrl(a.src):et.globalEval(a.textContent.replace(Ht,"")))}return this}}),et.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){et.fn[e]=function(e){for(var n,r=[],i=et(e),o=i.length-1,a=0;o>=a;a++)n=a===o?this:this.clone(!0),et(i[a])[t](n),V.apply(r,n.get());return this.pushStack(r)}});var _t,Ft={},qt=/^margin/,Ut=new RegExp("^("+$t+")(?!px)[a-z%]+$","i"),Wt=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)};!function(){function t(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",o.appendChild(a);var t=e.getComputedStyle(s,null);n="1%"!==t.top,r="4px"===t.width,o.removeChild(a)}var n,r,i="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",o=Q.documentElement,a=Q.createElement("div"),s=Q.createElement("div");s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",J.clearCloneStyle="content-box"===s.style.backgroundClip,a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(s),e.getComputedStyle&&et.extend(J,{pixelPosition:function(){return t(),n},boxSizingReliable:function(){return null==r&&t(),r},reliableMarginRight:function(){var t,n=s.appendChild(Q.createElement("div"));return n.style.cssText=s.style.cssText=i,n.style.marginRight=n.style.width="0",s.style.width="1px",o.appendChild(a),t=!parseFloat(e.getComputedStyle(n,null).marginRight),o.removeChild(a),s.innerHTML="",t}})}(),et.swap=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};var Bt=/^(none|table(?!-c[ea]).+)/,Vt=new RegExp("^("+$t+")(.*)$","i"),zt=new RegExp("^([+-])=("+$t+")","i"),Kt={position:"absolute",visibility:"hidden",display:"block"},Xt={letterSpacing:0,fontWeight:400},Gt=["Webkit","O","Moz","ms"];et.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=$(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=et.camelCase(t),l=e.style;return t=et.cssProps[s]||(et.cssProps[s]=w(l,s)),a=et.cssHooks[t]||et.cssHooks[s],void 0===n?a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t]:(o=typeof n,"string"===o&&(i=zt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(et.css(e,t)),o="number"),null!=n&&n===n&&("number"!==o||et.cssNumber[s]||(n+="px"),J.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l[t]="",l[t]=n)),void 0)}},css:function(e,t,n,r){var i,o,a,s=et.camelCase(t);return t=et.cssProps[s]||(et.cssProps[s]=w(e.style,s)),a=et.cssHooks[t]||et.cssHooks[s],a&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=$(e,t,r)),"normal"===i&&t in Xt&&(i=Xt[t]),""===n||n?(o=parseFloat(i),n===!0||et.isNumeric(o)?o||0:i):i}}),et.each(["height","width"],function(e,t){et.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&Bt.test(et.css(e,"display"))?et.swap(e,Kt,function(){return E(e,t,r)}):E(e,t,r):void 0},set:function(e,n,r){var i=r&&Wt(e);return C(e,n,r?S(e,t,r,"border-box"===et.css(e,"boxSizing",!1,i),i):0)}}}),et.cssHooks.marginRight=k(J.reliableMarginRight,function(e,t){return t?et.swap(e,{display:"inline-block"},$,[e,"marginRight"]):void 0}),et.each({margin:"",padding:"",border:"Width"},function(e,t){et.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+kt[r]+t]=o[r]||o[r-2]||o[0];return i}},qt.test(e)||(et.cssHooks[e+t].set=C)}),et.fn.extend({css:function(e,t){return mt(this,function(e,t,n){var r,i,o={},a=0;if(et.isArray(t)){for(r=Wt(e),i=t.length;i>a;a++)o[t[a]]=et.css(e,t[a],!1,r);return o}return void 0!==n?et.style(e,t,n):et.css(e,t)},e,t,arguments.length>1)},show:function(){return A(this,!0)},hide:function(){return A(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){wt(this)?et(this).show():et(this).hide()})}}),et.Tween=T,T.prototype={constructor:T,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(et.cssNumber[n]?"":"px")},cur:function(){var e=T.propHooks[this.prop];return e&&e.get?e.get(this):T.propHooks._default.get(this)},run:function(e){var t,n=T.propHooks[this.prop];return this.pos=t=this.options.duration?et.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):T.propHooks._default.set(this),this}},T.prototype.init.prototype=T.prototype,T.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=et.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){et.fx.step[e.prop]?et.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[et.cssProps[e.prop]]||et.cssHooks[e.prop])?et.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},T.propHooks.scrollTop=T.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},et.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},et.fx=T.prototype.init,et.fx.step={};var Yt,Jt,Qt=/^(?:toggle|show|hide)$/,Zt=new RegExp("^(?:([+-])=|)("+$t+")([a-z%]*)$","i"),en=/queueHooks$/,tn=[M],nn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Zt.exec(t),o=i&&i[3]||(et.cssNumber[e]?"":"px"),a=(et.cssNumber[e]||"px"!==o&&+r)&&Zt.exec(et.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,et.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};et.Animation=et.extend(D,{tweener:function(e,t){et.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],nn[n]=nn[n]||[],nn[n].unshift(t)},prefilter:function(e,t){t?tn.unshift(e):tn.push(e)}}),et.speed=function(e,t,n){var r=e&&"object"==typeof e?et.extend({},e):{complete:n||!n&&t||et.isFunction(e)&&e,duration:e,easing:n&&t||t&&!et.isFunction(t)&&t};return r.duration=et.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in et.fx.speeds?et.fx.speeds[r.duration]:et.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){et.isFunction(r.old)&&r.old.call(this),r.queue&&et.dequeue(this,r.queue)},r},et.fn.extend({fadeTo:function(e,t,n,r){return this.filter(wt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=et.isEmptyObject(e),o=et.speed(t,n,r),a=function(){var t=D(this,et.extend({},e),o);(i||vt.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=et.timers,a=vt.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&en.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&et.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=vt.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=et.timers,a=r?r.length:0;for(n.finish=!0,et.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));
for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),et.each(["toggle","show","hide"],function(e,t){var n=et.fn[t];et.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(N(t,!0),e,r,i)}}),et.each({slideDown:N("show"),slideUp:N("hide"),slideToggle:N("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){et.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),et.timers=[],et.fx.tick=function(){var e,t=0,n=et.timers;for(Yt=et.now();t<n.length;t++)e=n[t],e()||n[t]!==e||n.splice(t--,1);n.length||et.fx.stop(),Yt=void 0},et.fx.timer=function(e){et.timers.push(e),e()?et.fx.start():et.timers.pop()},et.fx.interval=13,et.fx.start=function(){Jt||(Jt=setInterval(et.fx.tick,et.fx.interval))},et.fx.stop=function(){clearInterval(Jt),Jt=null},et.fx.speeds={slow:600,fast:200,_default:400},et.fn.delay=function(e,t){return e=et.fx?et.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e=Q.createElement("input"),t=Q.createElement("select"),n=t.appendChild(Q.createElement("option"));e.type="checkbox",J.checkOn=""!==e.value,J.optSelected=n.selected,t.disabled=!0,J.optDisabled=!n.disabled,e=Q.createElement("input"),e.value="t",e.type="radio",J.radioValue="t"===e.value}();var rn,on,an=et.expr.attrHandle;et.fn.extend({attr:function(e,t){return mt(this,et.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){et.removeAttr(this,e)})}}),et.extend({attr:function(e,t,n){var r,i,o=e.nodeType;return e&&3!==o&&8!==o&&2!==o?typeof e.getAttribute===St?et.prop(e,t,n):(1===o&&et.isXMLDoc(e)||(t=t.toLowerCase(),r=et.attrHooks[t]||(et.expr.match.bool.test(t)?on:rn)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=et.find.attr(e,t),null==i?void 0:i):null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void et.removeAttr(e,t)):void 0},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(pt);if(o&&1===e.nodeType)for(;n=o[i++];)r=et.propFix[n]||n,et.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!J.radioValue&&"radio"===t&&et.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),on={set:function(e,t,n){return t===!1?et.removeAttr(e,n):e.setAttribute(n,n),n}},et.each(et.expr.match.bool.source.match(/\w+/g),function(e,t){var n=an[t]||et.find.attr;an[t]=function(e,t,r){var i,o;return r||(o=an[t],an[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,an[t]=o),i}});var sn=/^(?:input|select|textarea|button)$/i;et.fn.extend({prop:function(e,t){return mt(this,et.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[et.propFix[e]||e]})}}),et.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,a=e.nodeType;return e&&3!==a&&8!==a&&2!==a?(o=1!==a||!et.isXMLDoc(e),o&&(t=et.propFix[t]||t,i=et.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]):void 0},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||sn.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),J.optSelected||(et.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),et.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){et.propFix[this.toLowerCase()]=this});var ln=/[\t\r\n\f]/g;et.fn.extend({addClass:function(e){var t,n,r,i,o,a,s="string"==typeof e&&e,l=0,c=this.length;if(et.isFunction(e))return this.each(function(t){et(this).addClass(e.call(this,t,this.className))});if(s)for(t=(e||"").match(pt)||[];c>l;l++)if(n=this[l],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(ln," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=et.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,i,o,a,s=0===arguments.length||"string"==typeof e&&e,l=0,c=this.length;if(et.isFunction(e))return this.each(function(t){et(this).removeClass(e.call(this,t,this.className))});if(s)for(t=(e||"").match(pt)||[];c>l;l++)if(n=this[l],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(ln," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=e?et.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(et.isFunction(e)?function(n){et(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=et(this),o=e.match(pt)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===St||"boolean"===n)&&(this.className&&vt.set(this,"__className__",this.className),this.className=this.className||e===!1?"":vt.get(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(ln," ").indexOf(t)>=0)return!0;return!1}});var cn=/\r/g;et.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=et.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,et(this).val()):e,null==i?i="":"number"==typeof i?i+="":et.isArray(i)&&(i=et.map(i,function(e){return null==e?"":e+""})),t=et.valHooks[this.type]||et.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=et.valHooks[i.type]||et.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(cn,""):null==n?"":n)):void 0}}),et.extend({valHooks:{select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(J.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&et.nodeName(n.parentNode,"optgroup"))){if(t=et(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=et.makeArray(t),a=i.length;a--;)r=i[a],(r.selected=et.inArray(et(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),et.each(["radio","checkbox"],function(){et.valHooks[this]={set:function(e,t){return et.isArray(t)?e.checked=et.inArray(et(e).val(),t)>=0:void 0}},J.checkOn||(et.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),et.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){et.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),et.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var un=et.now(),fn=/\?/;et.parseJSON=function(e){return JSON.parse(e+"")},et.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=void 0}return(!t||t.getElementsByTagName("parsererror").length)&&et.error("Invalid XML: "+e),t};var dn,pn,hn=/#.*$/,gn=/([?&])_=[^&]*/,mn=/^(.*?):[ \t]*([^\r\n]*)$/gm,vn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,yn=/^(?:GET|HEAD)$/,bn=/^\/\//,xn=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,$n={},kn={},wn="*/".concat("*");try{pn=location.href}catch(Cn){pn=Q.createElement("a"),pn.href="",pn=pn.href}dn=xn.exec(pn.toLowerCase())||[],et.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:pn,type:"GET",isLocal:vn.test(dn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":wn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":et.parseJSON,"text xml":et.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,et.ajaxSettings),t):H(et.ajaxSettings,e)},ajaxPrefilter:P($n),ajaxTransport:P(kn),ajax:function(e,t){function n(e,t,n,a){var l,u,v,y,x,k=t;2!==b&&(b=2,s&&clearTimeout(s),r=void 0,o=a||"",$.readyState=e>0?4:0,l=e>=200&&300>e||304===e,n&&(y=R(f,$,n)),y=_(f,y,$,l),l?(f.ifModified&&(x=$.getResponseHeader("Last-Modified"),x&&(et.lastModified[i]=x),x=$.getResponseHeader("etag"),x&&(et.etag[i]=x)),204===e||"HEAD"===f.type?k="nocontent":304===e?k="notmodified":(k=y.state,u=y.data,v=y.error,l=!v)):(v=k,(e||!k)&&(k="error",0>e&&(e=0))),$.status=e,$.statusText=(t||k)+"",l?h.resolveWith(d,[u,k,$]):h.rejectWith(d,[$,k,v]),$.statusCode(m),m=void 0,c&&p.trigger(l?"ajaxSuccess":"ajaxError",[$,f,l?u:v]),g.fireWith(d,[$,k]),c&&(p.trigger("ajaxComplete",[$,f]),--et.active||et.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,a,s,l,c,u,f=et.ajaxSetup({},t),d=f.context||f,p=f.context&&(d.nodeType||d.jquery)?et(d):et.event,h=et.Deferred(),g=et.Callbacks("once memory"),m=f.statusCode||{},v={},y={},b=0,x="canceled",$={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!a)for(a={};t=mn.exec(o);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?o:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else $.always(e[$.status]);return this},abort:function(e){var t=e||x;return r&&r.abort(t),n(0,t),this}};if(h.promise($).complete=g.add,$.success=$.done,$.error=$.fail,f.url=((e||f.url||pn)+"").replace(hn,"").replace(bn,dn[1]+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=et.trim(f.dataType||"*").toLowerCase().match(pt)||[""],null==f.crossDomain&&(l=xn.exec(f.url.toLowerCase()),f.crossDomain=!(!l||l[1]===dn[1]&&l[2]===dn[2]&&(l[3]||("http:"===l[1]?"80":"443"))===(dn[3]||("http:"===dn[1]?"80":"443")))),f.data&&f.processData&&"string"!=typeof f.data&&(f.data=et.param(f.data,f.traditional)),L($n,f,t,$),2===b)return $;c=f.global,c&&0===et.active++&&et.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!yn.test(f.type),i=f.url,f.hasContent||(f.data&&(i=f.url+=(fn.test(i)?"&":"?")+f.data,delete f.data),f.cache===!1&&(f.url=gn.test(i)?i.replace(gn,"$1_="+un++):i+(fn.test(i)?"&":"?")+"_="+un++)),f.ifModified&&(et.lastModified[i]&&$.setRequestHeader("If-Modified-Since",et.lastModified[i]),et.etag[i]&&$.setRequestHeader("If-None-Match",et.etag[i])),(f.data&&f.hasContent&&f.contentType!==!1||t.contentType)&&$.setRequestHeader("Content-Type",f.contentType),$.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+wn+"; q=0.01":""):f.accepts["*"]);for(u in f.headers)$.setRequestHeader(u,f.headers[u]);if(f.beforeSend&&(f.beforeSend.call(d,$,f)===!1||2===b))return $.abort();x="abort";for(u in{success:1,error:1,complete:1})$[u](f[u]);if(r=L(kn,f,t,$)){$.readyState=1,c&&p.trigger("ajaxSend",[$,f]),f.async&&f.timeout>0&&(s=setTimeout(function(){$.abort("timeout")},f.timeout));try{b=1,r.send(v,n)}catch(k){if(!(2>b))throw k;n(-1,k)}}else n(-1,"No Transport");return $},getJSON:function(e,t,n){return et.get(e,t,n,"json")},getScript:function(e,t){return et.get(e,void 0,t,"script")}}),et.each(["get","post"],function(e,t){et[t]=function(e,n,r,i){return et.isFunction(n)&&(i=i||r,r=n,n=void 0),et.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),et.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){et.fn[t]=function(e){return this.on(t,e)}}),et._evalUrl=function(e){return et.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},et.fn.extend({wrapAll:function(e){var t;return et.isFunction(e)?this.each(function(t){et(this).wrapAll(e.call(this,t))}):(this[0]&&(t=et(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return this.each(et.isFunction(e)?function(t){et(this).wrapInner(e.call(this,t))}:function(){var t=et(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=et.isFunction(e);return this.each(function(n){et(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){et.nodeName(this,"body")||et(this).replaceWith(this.childNodes)}).end()}}),et.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0},et.expr.filters.visible=function(e){return!et.expr.filters.hidden(e)};var Sn=/%20/g,En=/\[\]$/,An=/\r?\n/g,Tn=/^(?:submit|button|image|reset|file)$/i,On=/^(?:input|select|textarea|keygen)/i;et.param=function(e,t){var n,r=[],i=function(e,t){t=et.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=et.ajaxSettings&&et.ajaxSettings.traditional),et.isArray(e)||e.jquery&&!et.isPlainObject(e))et.each(e,function(){i(this.name,this.value)});else for(n in e)F(n,e[n],t,i);return r.join("&").replace(Sn,"+")},et.fn.extend({serialize:function(){return et.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=et.prop(this,"elements");return e?et.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!et(this).is(":disabled")&&On.test(this.nodeName)&&!Tn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=et(this).val();return null==n?null:et.isArray(n)?et.map(n,function(e){return{name:t.name,value:e.replace(An,"\r\n")}}):{name:t.name,value:n.replace(An,"\r\n")}}).get()}}),et.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var Nn=0,jn={},Mn={0:200,1223:204},In=et.ajaxSettings.xhr();e.ActiveXObject&&et(e).on("unload",function(){for(var e in jn)jn[e]()}),J.cors=!!In&&"withCredentials"in In,J.ajax=In=!!In,et.ajaxTransport(function(e){var t;return J.cors||In&&!e.crossDomain?{send:function(n,r){var i,o=e.xhr(),a=++Nn;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)o.setRequestHeader(i,n[i]);t=function(e){return function(){t&&(delete jn[a],t=o.onload=o.onerror=null,"abort"===e?o.abort():"error"===e?r(o.status,o.statusText):r(Mn[o.status]||o.status,o.statusText,"string"==typeof o.responseText?{text:o.responseText}:void 0,o.getAllResponseHeaders()))}},o.onload=t(),o.onerror=t("error"),t=jn[a]=t("abort"),o.send(e.hasContent&&e.data||null)},abort:function(){t&&t()}}:void 0}),et.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return et.globalEval(e),e}}}),et.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),et.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=et("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),Q.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Dn=[],Pn=/(=)\?(?=&|$)|\?\?/;et.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Dn.pop()||et.expando+"_"+un++;return this[e]=!0,e}}),et.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(Pn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Pn.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=et.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Pn,"$1"+i):t.jsonp!==!1&&(t.url+=(fn.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||et.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Dn.push(i)),a&&et.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),et.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||Q;var r=at.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=et.buildFragment([e],t,i),i&&i.length&&et(i).remove(),et.merge([],r.childNodes))};var Ln=et.fn.load;et.fn.load=function(e,t,n){if("string"!=typeof e&&Ln)return Ln.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>=0&&(r=e.slice(s),e=e.slice(0,s)),et.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&et.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?et("<div>").append(et.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,o||[e.responseText,t,e])}),this},et.expr.filters.animated=function(e){return et.grep(et.timers,function(t){return e===t.elem}).length};var Hn=e.document.documentElement;et.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,c,u=et.css(e,"position"),f=et(e),d={};"static"===u&&(e.style.position="relative"),s=f.offset(),o=et.css(e,"top"),l=et.css(e,"left"),c=("absolute"===u||"fixed"===u)&&(o+l).indexOf("auto")>-1,c?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),et.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},et.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){et.offset.setOffset(this,e,t)});var t,n,r=this[0],i={top:0,left:0},o=r&&r.ownerDocument;return o?(t=o.documentElement,et.contains(t,r)?(typeof r.getBoundingClientRect!==St&&(i=r.getBoundingClientRect()),n=q(o),{top:i.top+n.pageYOffset-t.clientTop,left:i.left+n.pageXOffset-t.clientLeft}):i):void 0},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===et.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),et.nodeName(e[0],"html")||(r=e.offset()),r.top+=et.css(e[0],"borderTopWidth",!0),r.left+=et.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-et.css(n,"marginTop",!0),left:t.left-r.left-et.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||Hn;e&&!et.nodeName(e,"html")&&"static"===et.css(e,"position");)e=e.offsetParent;return e||Hn})}}),et.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,n){var r="pageYOffset"===n;et.fn[t]=function(i){return mt(this,function(t,i,o){var a=q(t);return void 0===o?a?a[n]:t[i]:void(a?a.scrollTo(r?e.pageXOffset:o,r?o:e.pageYOffset):t[i]=o)},t,i,arguments.length,null)}}),et.each(["top","left"],function(e,t){et.cssHooks[t]=k(J.pixelPosition,function(e,n){return n?(n=$(e,t),Ut.test(n)?et(e).position()[t]+"px":n):void 0})}),et.each({Height:"height",Width:"width"},function(e,t){et.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){et.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return mt(this,function(t,n,r){var i;return et.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?et.css(t,n,a):et.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),et.fn.size=function(){return this.length},et.fn.andSelf=et.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return et});var Rn=e.jQuery,_n=e.$;return et.noConflict=function(t){return e.$===et&&(e.$=_n),t&&e.jQuery===et&&(e.jQuery=Rn),et},typeof t===St&&(e.jQuery=e.$=et),et});{var i=e.$.noConflict();i.noConflict()}i.fn.extend({unwrapInner:function(e){return this.each(function(){var t=this,n=i(t).children(e);1===n.length&&(n.contents().appendTo(t),n.remove())})},textWidth:function(){i(this);i(this).wrapInner('<span id="text-width-calc"></span>');var e=i(this).find("#text-width-calc").width();return i(this).unwrapInner(),e}}),e.analytics=e.analytics||[],e.analytics.methods=["identify","group","track","page","pageview","alias","ready","on","once","off","trackLink","trackForm","trackClick","trackSubmit"],e.analytics.factory=function(t){return function(){var n=Array.prototype.slice.call(arguments);return n.unshift(t),e.analytics.push(n),e.analytics}};for(var o=0;o<e.analytics.methods.length;o++){var a=e.analytics.methods[o];e.analytics[a]=e.analytics.factory(a)}e.analytics.load=function(e){if(!t.getElementById("analytics-js")){var n=t.createElement("script");n.type="text/javascript",n.id="analytics-js",n.async=!0,n.src=("https:"===t.location.protocol?"https://":"http://")+"cdn.segment.io/analytics.js/v1/"+e+"/analytics.min.js",t.getElementsByTagName("head")[0].appendChild(n)}},e.analytics.SNIPPET_VERSION="2.0.9","localhost"===e.location.host||"localhost:4000"===e.location.host||"localhost:3000"===e.location.host?e.analytics.load("tu8x6gusvq"):e.analytics.load("kfah0efv5d"),e.analytics.page();{var s=!1;setTimeout(r,2e3)}e.analytics.ready(function(){olark("api.box.onShow",r)}),function(e){function n(e){return new RegExp("(^|\\s+)"+e+"(\\s+|$)")}function r(e,t){var n=i(e,t)?a:o;n(e,t)}var i,o,a;"classList"in t.documentElement?(i=function(e,t){return e.classList.contains(t)},o=function(e,t){e.classList.add(t)},a=function(e,t){e.classList.remove(t)}):(i=function(e,t){return n(t).test(e.className)},o=function(e,t){i(e,t)||(e.className=e.className+" "+t)},a=function(e,t){e.className=e.className.replace(n(t)," ")});var s={hasClass:i,addClass:o,removeClass:a,toggleClass:r,has:i,add:o,remove:a,toggle:r};e.classie=s}(e),function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var r=e.prototype,i=this,o=i.EventEmitter;r.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},r.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},r.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},r.addListener=function(e,n){var r,i=this.getListenersAsObject(e),o="object"==typeof n;for(r in i)i.hasOwnProperty(r)&&-1===t(i[r],n)&&i[r].push(o?n:{listener:n,once:!1});return this},r.on=n("addListener"),r.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},r.once=n("addOnceListener"),r.defineEvent=function(e){return this.getListeners(e),this},r.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},r.removeListener=function(e,n){var r,i,o=this.getListenersAsObject(e);for(i in o)o.hasOwnProperty(i)&&(r=t(o[i],n),-1!==r&&o[i].splice(r,1));return this},r.off=n("removeListener"),r.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},r.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},r.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},r.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},r.removeAllListeners=n("removeEvent"),r.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e);for(i in a)if(a.hasOwnProperty(i))for(r=a[i].length;r--;)n=a[i][r],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},r.trigger=n("emitEvent"),r.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},r.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},r._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},r._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return i.EventEmitter=o,e},this.EventEmitter=e}(),function(e){function r(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var i=t.documentElement,o=function(){};i.addEventListener?o=function(e,t,n){e.addEventListener(t,n,!1)}:i.attachEvent&&(o=function(e,t,n){e[t+n]=n.handleEvent?function(){var t=r(e);n.handleEvent.call(n,t)}:function(){var t=r(e);n.call(e,t)},e.attachEvent("on"+t,e[t+n])});var a=function(){};i.removeEventListener?a=function(e,t,n){e.removeEventListener(t,n,!1)}:i.detachEvent&&(a=function(e,t,r){e.detachEvent("on"+t,e[t+r]);try{delete e[t+r]}catch(i){e[t+r]=n}});var s={bind:o,unbind:a};e.eventie=s}(this),function(e){function n(e){if(e){if("string"==typeof i[e])return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var t,n=0,o=r.length;o>n;n++)if(t=r[n]+e,"string"==typeof i[t])return t}}var r="Webkit Moz ms Ms O".split(" "),i=t.documentElement.style;e.getStyleProperty=n}(e),function(e){function n(e){var t=parseFloat(e),n=-1===e.indexOf("%")&&!isNaN(t);return n&&t}function r(){for(var e={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},t=0,n=s.length;n>t;t++){var r=s[t];e[r]=0}return e}function i(e){function i(e){if("string"==typeof e&&(e=t.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var i=a(e);if("none"===i.display)return r();var o={};o.width=e.offsetWidth,o.height=e.offsetHeight;for(var f=o.isBorderBox=!(!u||!i[u]||"border-box"!==i[u]),d=0,p=s.length;p>d;d++){var h=s[d],g=i[h];g=l(e,g);var m=parseFloat(g);o[h]=isNaN(m)?0:m}var v=o.paddingLeft+o.paddingRight,y=o.paddingTop+o.paddingBottom,b=o.marginLeft+o.marginRight,x=o.marginTop+o.marginBottom,$=o.borderLeftWidth+o.borderRightWidth,k=o.borderTopWidth+o.borderBottomWidth,w=f&&c,C=n(i.width);C!==!1&&(o.width=C+(w?0:v+$));var S=n(i.height);return S!==!1&&(o.height=S+(w?0:y+k)),o.innerWidth=o.width-(v+$),o.innerHeight=o.height-(y+k),o.outerWidth=o.width+b,o.outerHeight=o.height+x,o}}function l(e,t){if(o||-1===t.indexOf("%"))return t;var n=e.style,r=n.left,i=e.runtimeStyle,a=i&&i.left;return a&&(i.left=e.currentStyle.left),n.left=t,t=n.pixelLeft,n.left=r,a&&(i.left=a),t}var c,u=e("boxSizing");return function(){if(u){var e=t.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style[u]="border-box";var r=t.body||t.documentElement;r.appendChild(e);var i=a(e);c=200===n(i.width),r.removeChild(e)}}(),i}var o=e.getComputedStyle,a=o?function(e){return o(e,null)}:function(e){return e.currentStyle},s=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];e.getSize=i(e.getStyleProperty)}(e),function(e){function t(e,t){for(var n in t)e[n]=t[n];return e}function r(){}function i(i,o,s,u,f){function p(e,n){this.element="string"==typeof e?a.querySelector(e):e,this.options=t({},this.options),t(this.options,n),this._create()}function h(){return!1}function g(e,t){e.x=t.pageX!==n?t.pageX:t.clientX,e.y=t.pageY!==n?t.pageY:t.clientY}function m(e,t,n){return n=n||"round",t?Math[n](e/t)*t:e}var v=u("transform"),y=!!u("perspective");t(p.prototype,o.prototype),p.prototype.options={},p.prototype._create=function(){this.position={},this._getPosition(),this.startPoint={x:0,y:0},this.dragPoint={x:0,y:0},this.startPosition=t({},this.position);var e=l(this.element);"relative"!==e.position&&"absolute"!==e.position&&(this.element.style.position="relative"),this.enable(),this.setHandles()},p.prototype.setHandles=function(){this.handles=this.options.handle?this.element.querySelectorAll(this.options.handle):[this.element];for(var t=0,n=this.handles.length;n>t;t++){var r=this.handles[t];e.navigator.pointerEnabled?(s.bind(r,"pointerdown",this),r.style.touchAction="none"):e.navigator.msPointerEnabled?(s.bind(r,"MSPointerDown",this),r.style.msTouchAction="none"):(s.bind(r,"mousedown",this),s.bind(r,"touchstart",this),x(r))}};var b="attachEvent"in a.documentElement,x=b?function(e){"IMG"===e.nodeName&&(e.ondragstart=h);for(var t=e.querySelectorAll("img"),n=0,r=t.length;r>n;n++){var i=t[n];i.ondragstart=h}}:r;p.prototype._getPosition=function(){var e=l(this.element),t=parseInt(e.left,10),n=parseInt(e.top,10);this.position.x=isNaN(t)?0:t,this.position.y=isNaN(n)?0:n,this._addTransformPosition(e)},p.prototype._addTransformPosition=function(e){if(v){var t=e[v];if(0===t.indexOf("matrix")){var n=t.split(","),r=0===t.indexOf("matrix3d")?12:4,i=parseInt(n[r],10),o=parseInt(n[r+1],10);this.position.x+=i,this.position.y+=o}}},p.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},p.prototype.getTouch=function(e){for(var t=0,n=e.length;n>t;t++){var r=e[t];if(r.identifier===this.pointerIdentifier)return r}},p.prototype.onmousedown=function(e){var t=e.button;t&&0!==t&&1!==t||this.dragStart(e,e)},p.prototype.ontouchstart=function(e){this.isDragging||this.dragStart(e,e.changedTouches[0])},p.prototype.onMSPointerDown=p.prototype.onpointerdown=function(e){this.isDragging||this.dragStart(e,e)};var $={mousedown:["mousemove","mouseup"],touchstart:["touchmove","touchend","touchcancel"],pointerdown:["pointermove","pointerup","pointercancel"],MSPointerDown:["MSPointerMove","MSPointerUp","MSPointerCancel"]};p.prototype.dragStart=function(t,r){this.isEnabled&&(t.preventDefault?t.preventDefault():t.returnValue=!1,this.pointerIdentifier=r.pointerId!==n?r.pointerId:r.identifier,this._getPosition(),this.measureContainment(),g(this.startPoint,r),this.startPosition.x=this.position.x,this.startPosition.y=this.position.y,this.setLeftTop(),this.dragPoint.x=0,this.dragPoint.y=0,this._bindEvents({events:$[t.type],node:t.preventDefault?e:a}),i.add(this.element,"is-dragging"),this.isDragging=!0,this.emitEvent("dragStart",[this,t,r]),this.animate())},p.prototype._bindEvents=function(e){for(var t=0,n=e.events.length;n>t;t++){var r=e.events[t];s.bind(e.node,r,this)}this._boundEvents=e},p.prototype._unbindEvents=function(){var e=this._boundEvents;if(e&&e.events){for(var t=0,n=e.events.length;n>t;t++){var r=e.events[t];s.unbind(e.node,r,this)}delete this._boundEvents}},p.prototype.measureContainment=function(){var e=this.options.containment;if(e){this.size=f(this.element);var t=this.element.getBoundingClientRect(),n=c(e)?e:"string"==typeof e?a.querySelector(e):this.element.parentNode;this.containerSize=f(n);var r=n.getBoundingClientRect();this.relativeStartPosition={x:t.left-r.left,y:t.top-r.top}}},p.prototype.onmousemove=function(e){this.dragMove(e,e)},p.prototype.onMSPointerMove=p.prototype.onpointermove=function(e){e.pointerId===this.pointerIdentifier&&this.dragMove(e,e)},p.prototype.ontouchmove=function(e){var t=this.getTouch(e.changedTouches);t&&this.dragMove(e,t)},p.prototype.dragMove=function(e,t){g(this.dragPoint,t);var n=this.dragPoint.x-this.startPoint.x,r=this.dragPoint.y-this.startPoint.y,i=this.options.grid,o=i&&i[0],a=i&&i[1];n=m(n,o),r=m(r,a),n=this.containDrag("x",n,o),r=this.containDrag("y",r,a),n="y"===this.options.axis?0:n,r="x"===this.options.axis?0:r,this.position.x=this.startPosition.x+n,this.position.y=this.startPosition.y+r,this.dragPoint.x=n,this.dragPoint.y=r,this.emitEvent("dragMove",[this,e,t])
},p.prototype.containDrag=function(e,t,n){if(!this.options.containment)return t;var r="x"===e?"width":"height",i=this.relativeStartPosition[e],o=m(-i,n,"ceil"),a=this.containerSize[r]-i-this.size[r];return a=m(a,n,"floor"),Math.min(a,Math.max(o,t))},p.prototype.onmouseup=function(e){this.dragEnd(e,e)},p.prototype.onMSPointerUp=p.prototype.onpointerup=function(e){e.pointerId===this.pointerIdentifier&&this.dragEnd(e,e)},p.prototype.ontouchend=function(e){var t=this.getTouch(e.changedTouches);t&&this.dragEnd(e,t)},p.prototype.dragEnd=function(e,t){this.isDragging=!1,delete this.pointerIdentifier,v&&(this.element.style[v]="",this.setLeftTop()),this._unbindEvents(),i.remove(this.element,"is-dragging"),this.emitEvent("dragEnd",[this,e,t])},p.prototype.onMSPointerCancel=p.prototype.onpointercancel=function(e){e.pointerId===this.pointerIdentifier&&this.dragEnd(e,e)},p.prototype.ontouchcancel=function(e){var t=this.getTouch(e.changedTouches);this.dragEnd(e,t)},p.prototype.animate=function(){if(this.isDragging){this.positionDrag();var e=this;d(function(){e.animate()})}};var k=y?function(e,t){return"translate3d( "+e+"px, "+t+"px, 0)"}:function(e,t){return"translate( "+e+"px, "+t+"px)"};return p.prototype.setLeftTop=function(){this.element.style.left=this.position.x+"px",this.element.style.top=this.position.y+"px"},p.prototype.positionDrag=v?function(){this.element.style[v]=k(this.dragPoint.x,this.dragPoint.y)}:p.prototype.setLeftTop,p.prototype.enable=function(){this.isEnabled=!0},p.prototype.disable=function(){this.isEnabled=!1,this.isDragging&&this.dragEnd()},p}for(var o,a=e.document,s=a.defaultView,l=s&&s.getComputedStyle?function(e){return s.getComputedStyle(e,null)}:function(e){return e.currentStyle},c="object"==typeof HTMLElement?function(e){return e instanceof HTMLElement}:function(e){return e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.nodeName},u=0,f="webkit moz ms o".split(" "),d=e.requestAnimationFrame,p=e.cancelAnimationFrame,h=0;h<f.length&&(!d||!p);h++)o=f[h],d=d||e[o+"RequestAnimationFrame"],p=p||e[o+"CancelAnimationFrame"]||e[o+"CancelRequestAnimationFrame"];d&&p||(d=function(t){var n=(new Date).getTime(),r=Math.max(0,16-(n-u)),i=e.setTimeout(function(){t(n+r)},r);return u=n+r,i},p=function(t){e.clearTimeout(t)}),e.Draggabilly=i(e.classie,e.EventEmitter,e.eventie,e.getStyleProperty,e.getSize)}(e);{var l=e.Draggabilly,c=e.classie,u=e.EventEmitter,f=e.eventie,d=e.getStyleProperty,p=e.getSize,h=e.Draggabilly;e.classie,e.EventEmitter,e.eventie,e.getStyleProperty,e.getSize}e.Draggabilly=l,e.classie=c,e.EventEmitter=u,e.eventie=f,e.getStyleProperty=d,e.getSize=p,function(){var e=this,t=e._,n={},r=Array.prototype,i=Object.prototype,o=Function.prototype,a=r.push,s=r.slice,l=r.concat,c=i.toString,u=i.hasOwnProperty,f=r.forEach,d=r.map,p=r.reduce,h=r.reduceRight,g=r.filter,m=r.every,v=r.some,y=r.indexOf,b=r.lastIndexOf,x=Array.isArray,$=Object.keys,k=o.bind,w=function(e){return e instanceof w?e:this instanceof w?void(this._wrapped=e):new w(e)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=w),exports._=w):e._=w,w.VERSION="1.6.0";var C=w.each=w.forEach=function(e,t,r){if(null==e)return e;if(f&&e.forEach===f)e.forEach(t,r);else if(e.length===+e.length){for(var i=0,o=e.length;o>i;i++)if(t.call(r,e[i],i,e)===n)return}else for(var a=w.keys(e),i=0,o=a.length;o>i;i++)if(t.call(r,e[a[i]],a[i],e)===n)return;return e};w.map=w.collect=function(e,t,n){var r=[];return null==e?r:d&&e.map===d?e.map(t,n):(C(e,function(e,i,o){r.push(t.call(n,e,i,o))}),r)};var S="Reduce of empty array with no initial value";w.reduce=w.foldl=w.inject=function(e,t,n,r){var i=arguments.length>2;if(null==e&&(e=[]),p&&e.reduce===p)return r&&(t=w.bind(t,r)),i?e.reduce(t,n):e.reduce(t);if(C(e,function(e,o,a){i?n=t.call(r,n,e,o,a):(n=e,i=!0)}),!i)throw new TypeError(S);return n},w.reduceRight=w.foldr=function(e,t,n,r){var i=arguments.length>2;if(null==e&&(e=[]),h&&e.reduceRight===h)return r&&(t=w.bind(t,r)),i?e.reduceRight(t,n):e.reduceRight(t);var o=e.length;if(o!==+o){var a=w.keys(e);o=a.length}if(C(e,function(s,l,c){l=a?a[--o]:--o,i?n=t.call(r,n,e[l],l,c):(n=e[l],i=!0)}),!i)throw new TypeError(S);return n},w.find=w.detect=function(e,t,n){var r;return E(e,function(e,i,o){return t.call(n,e,i,o)?(r=e,!0):void 0}),r},w.filter=w.select=function(e,t,n){var r=[];return null==e?r:g&&e.filter===g?e.filter(t,n):(C(e,function(e,i,o){t.call(n,e,i,o)&&r.push(e)}),r)},w.reject=function(e,t,n){return w.filter(e,function(e,r,i){return!t.call(n,e,r,i)},n)},w.every=w.all=function(e,t,r){t||(t=w.identity);var i=!0;return null==e?i:m&&e.every===m?e.every(t,r):(C(e,function(e,o,a){return(i=i&&t.call(r,e,o,a))?void 0:n}),!!i)};var E=w.some=w.any=function(e,t,r){t||(t=w.identity);var i=!1;return null==e?i:v&&e.some===v?e.some(t,r):(C(e,function(e,o,a){return i||(i=t.call(r,e,o,a))?n:void 0}),!!i)};w.contains=w.include=function(e,t){return null==e?!1:y&&e.indexOf===y?-1!=e.indexOf(t):E(e,function(e){return e===t})},w.invoke=function(e,t){var n=s.call(arguments,2),r=w.isFunction(t);return w.map(e,function(e){return(r?t:e[t]).apply(e,n)})},w.pluck=function(e,t){return w.map(e,w.property(t))},w.where=function(e,t){return w.filter(e,w.matches(t))},w.findWhere=function(e,t){return w.find(e,w.matches(t))},w.max=function(e,t,n){if(!t&&w.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);var r=-1/0,i=-1/0;return C(e,function(e,o,a){var s=t?t.call(n,e,o,a):e;s>i&&(r=e,i=s)}),r},w.min=function(e,t,n){if(!t&&w.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);var r=1/0,i=1/0;return C(e,function(e,o,a){var s=t?t.call(n,e,o,a):e;i>s&&(r=e,i=s)}),r},w.shuffle=function(e){var t,n=0,r=[];return C(e,function(e){t=w.random(n++),r[n-1]=r[t],r[t]=e}),r},w.sample=function(e,t,n){return null==t||n?(e.length!==+e.length&&(e=w.values(e)),e[w.random(e.length-1)]):w.shuffle(e).slice(0,Math.max(0,t))};var A=function(e){return null==e?w.identity:w.isFunction(e)?e:w.property(e)};w.sortBy=function(e,t,n){return t=A(t),w.pluck(w.map(e,function(e,r,i){return{value:e,index:r,criteria:t.call(n,e,r,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return e.index-t.index}),"value")};var T=function(e){return function(t,n,r){var i={};return n=A(n),C(t,function(o,a){var s=n.call(r,o,a,t);e(i,s,o)}),i}};w.groupBy=T(function(e,t,n){w.has(e,t)?e[t].push(n):e[t]=[n]}),w.indexBy=T(function(e,t,n){e[t]=n}),w.countBy=T(function(e,t){w.has(e,t)?e[t]++:e[t]=1}),w.sortedIndex=function(e,t,n,r){n=A(n);for(var i=n.call(r,t),o=0,a=e.length;a>o;){var s=o+a>>>1;n.call(r,e[s])<i?o=s+1:a=s}return o},w.toArray=function(e){return e?w.isArray(e)?s.call(e):e.length===+e.length?w.map(e,w.identity):w.values(e):[]},w.size=function(e){return null==e?0:e.length===+e.length?e.length:w.keys(e).length},w.first=w.head=w.take=function(e,t,n){return null==e?void 0:null==t||n?e[0]:0>t?[]:s.call(e,0,t)},w.initial=function(e,t,n){return s.call(e,0,e.length-(null==t||n?1:t))},w.last=function(e,t,n){return null==e?void 0:null==t||n?e[e.length-1]:s.call(e,Math.max(e.length-t,0))},w.rest=w.tail=w.drop=function(e,t,n){return s.call(e,null==t||n?1:t)},w.compact=function(e){return w.filter(e,w.identity)};var O=function(e,t,n){return t&&w.every(e,w.isArray)?l.apply(n,e):(C(e,function(e){w.isArray(e)||w.isArguments(e)?t?a.apply(n,e):O(e,t,n):n.push(e)}),n)};w.flatten=function(e,t){return O(e,t,[])},w.without=function(e){return w.difference(e,s.call(arguments,1))},w.partition=function(e,t){var n=[],r=[];return C(e,function(e){(t(e)?n:r).push(e)}),[n,r]},w.uniq=w.unique=function(e,t,n,r){w.isFunction(t)&&(r=n,n=t,t=!1);var i=n?w.map(e,n,r):e,o=[],a=[];return C(i,function(n,r){(t?r&&a[a.length-1]===n:w.contains(a,n))||(a.push(n),o.push(e[r]))}),o},w.union=function(){return w.uniq(w.flatten(arguments,!0))},w.intersection=function(e){var t=s.call(arguments,1);return w.filter(w.uniq(e),function(e){return w.every(t,function(t){return w.contains(t,e)})})},w.difference=function(e){var t=l.apply(r,s.call(arguments,1));return w.filter(e,function(e){return!w.contains(t,e)})},w.zip=function(){for(var e=w.max(w.pluck(arguments,"length").concat(0)),t=new Array(e),n=0;e>n;n++)t[n]=w.pluck(arguments,""+n);return t},w.object=function(e,t){if(null==e)return{};for(var n={},r=0,i=e.length;i>r;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},w.indexOf=function(e,t,n){if(null==e)return-1;var r=0,i=e.length;if(n){if("number"!=typeof n)return r=w.sortedIndex(e,t),e[r]===t?r:-1;r=0>n?Math.max(0,i+n):n}if(y&&e.indexOf===y)return e.indexOf(t,n);for(;i>r;r++)if(e[r]===t)return r;return-1},w.lastIndexOf=function(e,t,n){if(null==e)return-1;var r=null!=n;if(b&&e.lastIndexOf===b)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);for(var i=r?n:e.length;i--;)if(e[i]===t)return i;return-1},w.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=arguments[2]||1;for(var r=Math.max(Math.ceil((t-e)/n),0),i=0,o=new Array(r);r>i;)o[i++]=e,e+=n;return o};var N=function(){};w.bind=function(e,t){var n,r;if(k&&e.bind===k)return k.apply(e,s.call(arguments,1));if(!w.isFunction(e))throw new TypeError;return n=s.call(arguments,2),r=function(){if(!(this instanceof r))return e.apply(t,n.concat(s.call(arguments)));N.prototype=e.prototype;var i=new N;N.prototype=null;var o=e.apply(i,n.concat(s.call(arguments)));return Object(o)===o?o:i}},w.partial=function(e){var t=s.call(arguments,1);return function(){for(var n=0,r=t.slice(),i=0,o=r.length;o>i;i++)r[i]===w&&(r[i]=arguments[n++]);for(;n<arguments.length;)r.push(arguments[n++]);return e.apply(this,r)}},w.bindAll=function(e){var t=s.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return C(t,function(t){e[t]=w.bind(e[t],e)}),e},w.memoize=function(e,t){var n={};return t||(t=w.identity),function(){var r=t.apply(this,arguments);return w.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},w.delay=function(e,t){var n=s.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},w.defer=function(e){return w.delay.apply(w,[e,1].concat(s.call(arguments,1)))},w.throttle=function(e,t,n){var r,i,o,a=null,s=0;n||(n={});var l=function(){s=n.leading===!1?0:w.now(),a=null,o=e.apply(r,i),r=i=null};return function(){var c=w.now();s||n.leading!==!1||(s=c);var u=t-(c-s);return r=this,i=arguments,0>=u?(clearTimeout(a),a=null,s=c,o=e.apply(r,i),r=i=null):a||n.trailing===!1||(a=setTimeout(l,u)),o}},w.debounce=function(e,t,n){var r,i,o,a,s,l=function(){var c=w.now()-a;t>c?r=setTimeout(l,t-c):(r=null,n||(s=e.apply(o,i),o=i=null))};return function(){o=this,i=arguments,a=w.now();var c=n&&!r;return r||(r=setTimeout(l,t)),c&&(s=e.apply(o,i),o=i=null),s}},w.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}},w.wrap=function(e,t){return w.partial(t,e)},w.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},w.after=function(e,t){return function(){return--e<1?t.apply(this,arguments):void 0}},w.keys=function(e){if(!w.isObject(e))return[];if($)return $(e);var t=[];for(var n in e)w.has(e,n)&&t.push(n);return t},w.values=function(e){for(var t=w.keys(e),n=t.length,r=new Array(n),i=0;n>i;i++)r[i]=e[t[i]];return r},w.pairs=function(e){for(var t=w.keys(e),n=t.length,r=new Array(n),i=0;n>i;i++)r[i]=[t[i],e[t[i]]];return r},w.invert=function(e){for(var t={},n=w.keys(e),r=0,i=n.length;i>r;r++)t[e[n[r]]]=n[r];return t},w.functions=w.methods=function(e){var t=[];for(var n in e)w.isFunction(e[n])&&t.push(n);return t.sort()},w.extend=function(e){return C(s.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},w.pick=function(e){var t={},n=l.apply(r,s.call(arguments,1));return C(n,function(n){n in e&&(t[n]=e[n])}),t},w.omit=function(e){var t={},n=l.apply(r,s.call(arguments,1));for(var i in e)w.contains(n,i)||(t[i]=e[i]);return t},w.defaults=function(e){return C(s.call(arguments,1),function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])}),e},w.clone=function(e){return w.isObject(e)?w.isArray(e)?e.slice():w.extend({},e):e},w.tap=function(e,t){return t(e),e};var j=function(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof w&&(e=e._wrapped),t instanceof w&&(t=t._wrapped);var i=c.call(e);if(i!=c.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if("object"!=typeof e||"object"!=typeof t)return!1;for(var o=n.length;o--;)if(n[o]==e)return r[o]==t;var a=e.constructor,s=t.constructor;if(a!==s&&!(w.isFunction(a)&&a instanceof a&&w.isFunction(s)&&s instanceof s)&&"constructor"in e&&"constructor"in t)return!1;n.push(e),r.push(t);var l=0,u=!0;if("[object Array]"==i){if(l=e.length,u=l==t.length)for(;l--&&(u=j(e[l],t[l],n,r)););}else{for(var f in e)if(w.has(e,f)&&(l++,!(u=w.has(t,f)&&j(e[f],t[f],n,r))))break;if(u){for(f in t)if(w.has(t,f)&&!l--)break;u=!l}}return n.pop(),r.pop(),u};w.isEqual=function(e,t){return j(e,t,[],[])},w.isEmpty=function(e){if(null==e)return!0;if(w.isArray(e)||w.isString(e))return 0===e.length;for(var t in e)if(w.has(e,t))return!1;return!0},w.isElement=function(e){return!(!e||1!==e.nodeType)},w.isArray=x||function(e){return"[object Array]"==c.call(e)},w.isObject=function(e){return e===Object(e)},C(["Arguments","Function","String","Number","Date","RegExp"],function(e){w["is"+e]=function(t){return c.call(t)=="[object "+e+"]"}}),w.isArguments(arguments)||(w.isArguments=function(e){return!(!e||!w.has(e,"callee"))}),"function"!=typeof/./&&(w.isFunction=function(e){return"function"==typeof e}),w.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},w.isNaN=function(e){return w.isNumber(e)&&e!=+e},w.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"==c.call(e)},w.isNull=function(e){return null===e},w.isUndefined=function(e){return void 0===e},w.has=function(e,t){return u.call(e,t)},w.noConflict=function(){return e._=t,this},w.identity=function(e){return e},w.constant=function(e){return function(){return e}},w.property=function(e){return function(t){return t[e]}},w.matches=function(e){return function(t){if(t===e)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0}},w.times=function(e,t,n){for(var r=Array(Math.max(0,e)),i=0;e>i;i++)r[i]=t.call(n,i);return r},w.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},w.now=Date.now||function(){return(new Date).getTime()};var M={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};M.unescape=w.invert(M.escape);var I={escape:new RegExp("["+w.keys(M.escape).join("")+"]","g"),unescape:new RegExp("("+w.keys(M.unescape).join("|")+")","g")};w.each(["escape","unescape"],function(e){w[e]=function(t){return null==t?"":(""+t).replace(I[e],function(t){return M[e][t]})}}),w.result=function(e,t){if(null==e)return void 0;var n=e[t];return w.isFunction(n)?n.call(e):n},w.mixin=function(e){C(w.functions(e),function(t){var n=w[t]=e[t];w.prototype[t]=function(){var e=[this._wrapped];return a.apply(e,arguments),R.call(this,n.apply(w,e))}})};var D=0;w.uniqueId=function(e){var t=++D+"";return e?e+t:t},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var P=/(.)^/,L={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},H=/\\|'|\r|\n|\t|\u2028|\u2029/g;w.template=function(e,t,n){var r;n=w.defaults({},n,w.templateSettings);var i=new RegExp([(n.escape||P).source,(n.interpolate||P).source,(n.evaluate||P).source].join("|")+"|$","g"),o=0,a="__p+='";e.replace(i,function(t,n,r,i,s){return a+=e.slice(o,s).replace(H,function(e){return"\\"+L[e]}),n&&(a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'"),r&&(a+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),i&&(a+="';\n"+i+"\n__p+='"),o=s+t.length,t}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{r=new Function(n.variable||"obj","_",a)}catch(s){throw s.source=a,s}if(t)return r(t,w);var l=function(e){return r.call(this,e,w)};return l.source="function("+(n.variable||"obj")+"){\n"+a+"}",l},w.chain=function(e){return w(e).chain()};var R=function(e){return this._chain?w(e).chain():e};w.mixin(w),C(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=r[e];w.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!=e&&"splice"!=e||0!==n.length||delete n[0],R.call(this,n)}}),C(["concat","join","slice"],function(e){var t=r[e];w.prototype[e]=function(){return R.call(this,t.apply(this._wrapped,arguments))}}),w.extend(w.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),"function"==typeof define&&define.amd&&define("underscore",[],function(){return w})}.call(this),e.$k=e.$k||{},e.$k.config=e.$k.config||{},e.$k.loaded=!0,e.$k.config.serverEnv="prod",e.$k.config.clientEnv="angular",i(t).ready(function(){var r=i("body")[0],o=i("#Kimonify")[0];if(!(r&&o&&i.contains(r,o))){{e.angular}e.angular={};var s=e.angular;!function(e,t,n){"use strict";function r(e){return function(){var t,n,r=arguments[0],i="["+(e?e+":":"")+r+"] ",o=arguments[1],a=arguments,s=function(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e};for(t=i+o.replace(/\{\d+\}/g,function(e){var t,n=+e.slice(1,-1);return n+2<a.length?(t=a[n+2],"function"==typeof t?t.toString().replace(/ ?\{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?W(t):t):e}),t=t+"\nhttp://errors.angularjs.org/1.2.17/"+(e?e+"/":"")+r,n=2;n<arguments.length;n++)t=t+(2==n?"?":"&")+"p"+(n-2)+"="+encodeURIComponent(s(arguments[n]));return new Error(t)}}function i(e){if(null==e||E(e))return!1;var t=e.length;return 1===e.nodeType&&t?!0:x(e)||w(e)||0===t||"number"==typeof t&&t>0&&t-1 in e}function o(e,t,n){var r;if(e)if(C(e))for(r in e)"prototype"==r||"length"==r||"name"==r||e.hasOwnProperty&&!e.hasOwnProperty(r)||t.call(n,e[r],r);else if(e.forEach&&e.forEach!==o)e.forEach(t,n);else if(i(e))for(r=0;r<e.length;r++)t.call(n,e[r],r);else for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r);return e}function a(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t.sort()}function s(e,t,n){for(var r=a(e),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function l(e){return function(t,n){e(n,t)}}function c(){for(var e,t=Tr.length;t;){if(t--,e=Tr[t].charCodeAt(0),57==e)return Tr[t]="A",Tr.join("");if(90!=e)return Tr[t]=String.fromCharCode(e+1),Tr.join("");Tr[t]="0"}return Tr.unshift("0"),Tr.join("")}function u(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function f(e){var t=e.$$hashKey;return o(arguments,function(t){t!==e&&o(t,function(t,n){e[n]=t})}),u(e,t),e}function d(e){return parseInt(e,10)}function p(e,t){return f(new(f(function(){},{prototype:e})),t)}function h(){}function g(e){return e}function m(e){return function(){return e}}function v(e){return"undefined"==typeof e}function y(e){return"undefined"!=typeof e}function b(e){return null!=e&&"object"==typeof e}function x(e){return"string"==typeof e}function $(e){return"number"==typeof e}function k(e){return"[object Date]"===Sr.call(e)}function w(e){return"[object Array]"===Sr.call(e)}function C(e){return"function"==typeof e}function S(e){return"[object RegExp]"===Sr.call(e)}function E(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function A(e){return e&&e.$evalAsync&&e.$watch}function T(e){return"[object File]"===Sr.call(e)}function O(e){return"[object Blob]"===Sr.call(e)}function N(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function j(e,t,n){var r=[];return o(e,function(e,i,o){r.push(t.call(n,e,i,o))}),r}function M(e,t){return-1!=I(e,t)}function I(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(t===e[n])return n;return-1}function D(e,t){var n=I(e,t);return n>=0&&e.splice(n,1),t}function P(e,t,n,r){if(E(e)||A(e))throw Er("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(t){if(e===t)throw Er("cpi","Can't copy! Source and destination are identical.");if(n=n||[],r=r||[],b(e)){var i=I(n,e);if(-1!==i)return r[i];n.push(e),r.push(t)}var a;if(w(e)){t.length=0;for(var s=0;s<e.length;s++)a=P(e[s],null,n,r),b(e[s])&&(n.push(e[s]),r.push(a)),t.push(a)}else{var l=t.$$hashKey;o(t,function(e,n){delete t[n]});for(var c in e)a=P(e[c],null,n,r),b(e[c])&&(n.push(e[c]),r.push(a)),t[c]=a;u(t,l)}}else t=e,e&&(w(e)?t=P(e,[],n,r):k(e)?t=new Date(e.getTime()):S(e)?t=new RegExp(e.source):b(e)&&(t=P(e,{},n,r)));return t}function L(e,t){if(w(e)){t=t||[];for(var n=0;n<e.length;n++)t[n]=e[n]}else if(b(e)){t=t||{};for(var r in e)!hr.call(e,r)||"$"===r.charAt(0)&&"$"===r.charAt(1)||(t[r]=e[r])}return t||e}function H(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var r,i,o,a=typeof e,s=typeof t;if(a==s&&"object"==a){if(!w(e)){if(k(e))return k(t)&&e.getTime()==t.getTime();if(S(e)&&S(t))return e.toString()==t.toString();if(A(e)||A(t)||E(e)||E(t)||w(t))return!1;o={};for(i in e)if("$"!==i.charAt(0)&&!C(e[i])){if(!H(e[i],t[i]))return!1;o[i]=!0}for(i in t)if(!o.hasOwnProperty(i)&&"$"!==i.charAt(0)&&t[i]!==n&&!C(t[i]))return!1;return!0}if(!w(t))return!1;if((r=e.length)==t.length){for(i=0;r>i;i++)if(!H(e[i],t[i]))return!1;return!0}}return!1}function R(){return t.securityPolicy&&t.securityPolicy.isActive||t.querySelector&&!(!t.querySelector("[ng-csp]")&&!t.querySelector("[data-ng-csp]"))}function _(e,t,n){return e.concat(wr.call(t,n))}function F(e,t){return wr.call(e,t||0)}function q(e,t){var n=arguments.length>2?F(arguments,2):[];return!C(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,n.concat(wr.call(arguments,0))):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function U(e,r){var i=r;return"string"==typeof e&&"$"===e.charAt(0)?i=n:E(r)?i="$WINDOW":r&&t===r?i="$DOCUMENT":A(r)&&(i="$SCOPE"),i}function W(e,t){return"undefined"==typeof e?n:JSON.stringify(e,U,t?" ":null)}function B(e){return x(e)?JSON.parse(e):e}function V(e){if("function"==typeof e)e=!0;else if(e&&0!==e.length){var t=pr(""+e);e=!("f"==t||"0"==t||"false"==t||"no"==t||"n"==t||"[]"==t)}else e=!1;return e}function z(e){e=br(e).clone();try{e.empty()}catch(t){}var n=3,r=br("<div>").append(e).html();try{return e[0].nodeType===n?pr(r):r.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+pr(t)})}catch(t){return pr(r)}}function K(e){try{return decodeURIComponent(e)}catch(t){}}function X(e){var t,n,r={};return o((e||"").split("&"),function(e){if(e&&(t=e.split("="),n=K(t[0]),y(n))){var i=y(t[1])?K(t[1]):!0;r[n]?w(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function G(e){var t=[];return o(e,function(e,n){w(e)?o(e,function(e){t.push(J(n,!0)+(e===!0?"":"="+J(e,!0)))}):t.push(J(n,!0)+(e===!0?"":"="+J(e,!0)))}),t.length?t.join("&"):""}function Y(e){return J(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function J(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function Q(e,n){function r(e){e&&s.push(e)}var i,a,s=[e],l=["ng:app","ng-app","x-ng-app","data-ng-app"],c=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;o(l,function(n){l[n]=!0,r(t.getElementById(n)),n=n.replace(":","\\:"),e.querySelectorAll&&(o(e.querySelectorAll("."+n),r),o(e.querySelectorAll("."+n+"\\:"),r),o(e.querySelectorAll("["+n+"]"),r))}),o(s,function(e){if(!i){var t=" "+e.className+" ",n=c.exec(t);n?(i=e,a=(n[2]||"").replace(/\s+/g,",")):o(e.attributes,function(t){!i&&l[t.name]&&(i=e,a=t.value)})}}),i&&n(i,a?[a]:[])}function Z(n,r){var i=function(){if(n=br(n),n.injector()){var e=n[0]===t?"document":z(n);throw Er("btstrpd","App Already Bootstrapped with this Element '{0}'",e)}r=r||[],r.unshift(["$provide",function(e){e.value("$rootElement",n)}]),r.unshift("ng");var i=Dt(r);return i.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",function(e,t,n,r){e.$apply(function(){t.data("$injector",r),n(t)(e)})}]),i},a=/^NG_DEFER_BOOTSTRAP!/;return e&&!a.test(e.name)?i():(e.name=e.name.replace(a,""),Ar.resumeBootstrap=function(e){o(e,function(e){r.push(e)}),i()},void 0)}function et(e,t){return t=t||"_",e.replace(Nr,function(e,n){return(n?t:"")+e.toLowerCase()})}function tt(){xr=e.jQuery,xr&&xr.fn.on?(br=xr,f(xr.fn,{scope:Vr.scope,isolateScope:Vr.isolateScope,controller:Vr.controller,injector:Vr.injector,inheritedData:Vr.inheritedData}),ft("remove",!0,!0,!1),ft("empty",!1,!1,!1),ft("html",!1,!1,!0)):br=gt,Ar.element=br}function nt(e,t,n){if(!e)throw Er("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function rt(e,t,n){return n&&w(e)&&(e=e[e.length-1]),nt(C(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function it(e,t){if("hasOwnProperty"===e)throw Er("badname","hasOwnProperty is not a valid {0} name",t)}function ot(e,t,n){if(!t)return e;for(var r,i=t.split("."),o=e,a=i.length,s=0;a>s;s++)r=i[s],e&&(e=(o=e)[r]);return!n&&C(e)?q(o,e):e}function at(e){var t=e[0],n=e[e.length-1];if(t===n)return br(t);var r=t,i=[r];do{if(r=r.nextSibling,!r)break;i.push(r)}while(r!==n);return br(i)}function st(e){function t(e,t,n){return e[t]||(e[t]=n())}var n=r("$injector"),i=r("ng"),o=t(e,"angular",Object);return o.$$minErr=o.$$minErr||r,t(o,"module",function(){var e={};return function(r,o,a){var s=function(e,t){if("hasOwnProperty"===e)throw i("badname","hasOwnProperty is not a valid {0} name",t)};return s(r,"module"),o&&e.hasOwnProperty(r)&&(e[r]=null),t(e,r,function(){function e(e,n,r){return function(){return t[r||"push"]([e,n,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 t=[],i=[],s=e("$injector","invoke"),l={_invokeQueue:t,_runBlocks:i,requires:o,name:r,provider:e("$provide","provider"),factory:e("$provide","factory"),service:e("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),animation:e("$animateProvider","register"),filter:e("$filterProvider","register"),controller:e("$controllerProvider","register"),directive:e("$compileProvider","directive"),config:s,run:function(e){return i.push(e),this}};return a&&s(a),l})}})}function lt(t){f(t,{bootstrap:Z,copy:P,extend:f,equals:H,element:br,forEach:o,injector:Dt,noop:h,bind:q,toJson:W,fromJson:B,identity:g,isUndefined:v,isDefined:y,isString:x,isFunction:C,isObject:b,isNumber:$,isElement:N,isArray:w,version:jr,isDate:k,lowercase:pr,uppercase:gr,callbacks:{counter:0},$$minErr:r,$$csp:R}),$r=st(e);try{$r("ngLocale")}catch(n){$r("ngLocale",[]).provider("$locale",rn)}$r("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:jn}),e.provider("$compile",qt).directive({a:Si,input:Pi,textarea:Pi,form:Oi,script:vo,select:xo,style:ko,option:$o,ngBind:Ki,ngBindHtml:Gi,ngBindTemplate:Xi,ngClass:Yi,ngClassEven:Qi,ngClassOdd:Ji,ngCloak:Zi,ngController:eo,ngForm:Ni,ngHide:uo,ngIf:no,ngInclude:ro,ngInit:oo,ngNonBindable:ao,ngPluralize:so,ngRepeat:lo,ngShow:co,ngStyle:fo,ngSwitch:po,ngSwitchWhen:ho,ngSwitchDefault:go,ngOptions:bo,ngTransclude:mo,ngModel:qi,ngList:Bi,ngChange:Ui,required:Wi,ngRequired:Wi,ngValue:zi}).directive({ngInclude:io}).directive(Ei).directive(to),e.provider({$anchorScroll:Pt,$animate:ei,$browser:Rt,$cacheFactory:_t,$controller:Bt,$document:Vt,$exceptionHandler:zt,$filter:Un,$interpolate:tn,$interval:nn,$http:Jt,$httpBackend:Zt,$location:vn,$log:yn,$parse:En,$rootScope:Nn,$q:An,$sce:Ln,$sceDelegate:Pn,$sniffer:Hn,$templateCache:Ft,$timeout:Rn,$window:qn,$$rAF:On,$$asyncCallback:Lt})}])}function ct(){return++Dr}function ut(e){return e.replace(Hr,function(e,t,n,r){return r?n.toUpperCase():n}).replace(Rr,"Moz$1")}function ft(e,t,n,r){function i(e){var i,a,s,l,c,u,f,d=n&&e?[this.filter(e)]:[this],p=t;if(!r||null!=e)for(;d.length;)for(i=d.shift(),a=0,s=i.length;s>a;a++)for(l=br(i[a]),p?l.triggerHandler("$destroy"):p=!p,c=0,u=(f=l.children()).length;u>c;c++)d.push(xr(f[c]));return o.apply(this,arguments)}var o=xr.fn[e];o=o.$original||o,i.$original=o,xr.fn[e]=i}function dt(e){return!qr.test(e)}function pt(e,t){var n,r,i,o,a,s,l=t.createDocumentFragment(),c=[];if(dt(e))c.push(t.createTextNode(e));else{for(n=l.appendChild(t.createElement("div")),r=(Ur.exec(e)||["",""])[1].toLowerCase(),i=Br[r]||Br._default,n.innerHTML="<div>&#160;</div>"+i[1]+e.replace(Wr,"<$1></$2>")+i[2],n.removeChild(n.firstChild),o=i[0];o--;)n=n.lastChild;for(a=0,s=n.childNodes.length;s>a;++a)c.push(n.childNodes[a]);n=l.firstChild,n.textContent=""}return l.textContent="",l.innerHTML="",c}function ht(e,n){n=n||t;var r;return(r=Fr.exec(e))?[n.createElement(r[1])]:pt(e,n)}function gt(e){if(e instanceof gt)return e;if(x(e)&&(e=Or(e)),!(this instanceof gt)){if(x(e)&&"<"!=e.charAt(0))throw _r("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new gt(e)}if(x(e)){St(this,ht(e));var n=br(t.createDocumentFragment());n.append(this)}else St(this,e)}function mt(e){return e.cloneNode(!0)}function vt(e){bt(e);for(var t=0,n=e.childNodes||[];t<n.length;t++)vt(n[t])}function yt(e,t,n,r){if(y(r))throw _r("offargs","jqLite#off() does not support the `selector` argument");var i=xt(e,"events"),a=xt(e,"handle");a&&(v(t)?o(i,function(t,n){Lr(e,n,t),delete i[n]}):o(t.split(" "),function(t){v(n)?(Lr(e,t,i[t]),delete i[t]):D(i[t]||[],n)}))}function bt(e,t){var r=e[Ir],i=Mr[r];if(i){if(t)return delete Mr[r].data[t],void 0;i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),yt(e)),delete Mr[r],e[Ir]=n}}function xt(e,t,n){var r=e[Ir],i=Mr[r||-1];return y(n)?(i||(e[Ir]=r=ct(),i=Mr[r]={}),i[t]=n,void 0):i&&i[t]}function $t(e,t,n){var r=xt(e,"data"),i=y(n),o=!i&&y(t),a=o&&!b(t);if(r||a||xt(e,"data",r={}),i)r[t]=n;else{if(!o)return r;if(a)return r&&r[t];f(r,t)}}function kt(e,t){return e.getAttribute?(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1:!1}function wt(e,t){t&&e.setAttribute&&o(t.split(" "),function(t){e.setAttribute("class",Or((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Or(t)+" "," ")))})}function Ct(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(t.split(" "),function(e){e=Or(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")}),e.setAttribute("class",Or(n))}}function St(e,t){if(t){t=t.nodeName||!y(t.length)||E(t)?[t]:t;for(var n=0;n<t.length;n++)e.push(t[n])}}function Et(e,t){return At(e,"$"+(t||"ngController")+"Controller")}function At(e,t,r){e=br(e),9==e[0].nodeType&&(e=e.find("html"));for(var i=w(t)?t:[t];e.length;){for(var o=e[0],a=0,s=i.length;s>a;a++)if((r=e.data(i[a]))!==n)return r;e=br(o.parentNode||11===o.nodeType&&o.host)}}function Tt(e){for(var t=0,n=e.childNodes;t<n.length;t++)vt(n[t]);for(;e.firstChild;)e.removeChild(e.firstChild)}function Ot(e,t){var n=zr[t.toLowerCase()];return n&&Kr[e.nodeName]&&n}function Nt(e,n){var r=function(r,i){if(r.preventDefault||(r.preventDefault=function(){r.returnValue=!1}),r.stopPropagation||(r.stopPropagation=function(){r.cancelBubble=!0}),r.target||(r.target=r.srcElement||t),v(r.defaultPrevented)){var a=r.preventDefault;r.preventDefault=function(){r.defaultPrevented=!0,a.call(r)},r.defaultPrevented=!1}r.isDefaultPrevented=function(){return r.defaultPrevented||r.returnValue===!1};var s=L(n[i||r.type]||[]);o(s,function(t){t.call(e,r)}),8>=yr?(r.preventDefault=null,r.stopPropagation=null,r.isDefaultPrevented=null):(delete r.preventDefault,delete r.stopPropagation,delete r.isDefaultPrevented)};return r.elem=e,r}function jt(e){var t,r=typeof e;return"object"==r&&null!==e?"function"==typeof(t=e.$$hashKey)?t=e.$$hashKey():t===n&&(t=e.$$hashKey=c()):t=e,r+":"+t
}function Mt(e){o(e,this.put,this)}function It(e){var t,n,r,i;return"function"==typeof e?(t=e.$inject)||(t=[],e.length&&(n=e.toString().replace(Jr,""),r=n.match(Xr),o(r[1].split(Gr),function(e){e.replace(Yr,function(e,n,r){t.push(r)})})),e.$inject=t):w(e)?(i=e.length-1,rt(e[i],"fn"),t=e.slice(0,i)):rt(e,"fn",!0),t}function Dt(e){function t(e){return function(t,n){return b(t)?(o(t,l(e)),void 0):e(t,n)}}function n(e,t){if(it(e,"service"),(C(t)||w(t))&&(t=$.instantiate(t)),!t.$get)throw Qr("pget","Provider '{0}' must define $get factory method.",e);return y[e+p]=t}function r(e,t){return n(e,{$get:t})}function i(e,t){return r(e,["$injector",function(e){return e.instantiate(t)}])}function a(e,t){return r(e,m(t))}function s(e,t){it(e,"constant"),y[e]=t,k[e]=t}function c(e,t){var n=$.get(e+p),r=n.$get;n.$get=function(){var e=S.invoke(r,n);return S.invoke(t,null,{$delegate:e})}}function u(e){var t,n,r,i,a=[];return o(e,function(e){if(!v.get(e)){v.put(e,!0);try{if(x(e))for(t=$r(e),a=a.concat(u(t.requires)).concat(t._runBlocks),n=t._invokeQueue,r=0,i=n.length;i>r;r++){var o=n[r],s=$.get(o[0]);s[o[1]].apply(s,o[2])}else C(e)?a.push($.invoke(e)):w(e)?a.push($.invoke(e)):rt(e,"module")}catch(l){throw w(e)&&(e=e[e.length-1]),l.message&&l.stack&&-1==l.stack.indexOf(l.message)&&(l=l.message+"\n"+l.stack),Qr("modulerr","Failed to instantiate module {0} due to:\n{1}",e,l.stack||l.message||l)}}}),a}function f(e,t){function n(n){if(e.hasOwnProperty(n)){if(e[n]===d)throw Qr("cdep","Circular dependency found: {0}",g.join(" <- "));return e[n]}try{return g.unshift(n),e[n]=d,e[n]=t(n)}catch(r){throw e[n]===d&&delete e[n],r}finally{g.shift()}}function r(e,t,r){var i,o,a,s=[],l=It(e);for(o=0,i=l.length;i>o;o++){if(a=l[o],"string"!=typeof a)throw Qr("itkn","Incorrect injection token! Expected service name as string, got {0}",a);s.push(r&&r.hasOwnProperty(a)?r[a]:n(a))}return e.$inject||(e=e[i]),e.apply(t,s)}function i(e,t){var n,i,o=function(){};return o.prototype=(w(e)?e[e.length-1]:e).prototype,n=new o,i=r(e,n,t),b(i)||C(i)?i:n}return{invoke:r,instantiate:i,get:n,annotate:It,has:function(t){return y.hasOwnProperty(t+p)||e.hasOwnProperty(t)}}}var d={},p="Provider",g=[],v=new Mt,y={$provide:{provider:t(n),factory:t(r),service:t(i),value:t(a),constant:t(s),decorator:c}},$=y.$injector=f(y,function(){throw Qr("unpr","Unknown provider: {0}",g.join(" <- "))}),k={},S=k.$injector=f(k,function(e){var t=$.get(e+p);return S.invoke(t.$get,t)});return o(u(e),function(e){S.invoke(e||h)}),S}function Pt(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,r){function i(e){var t=null;return o(e,function(e){t||"a"!==pr(e.nodeName)||(t=e)}),t}function a(){var e,r=n.hash();r?(e=s.getElementById(r))?e.scrollIntoView():(e=i(s.getElementsByName(r)))?e.scrollIntoView():"top"===r&&t.scrollTo(0,0):t.scrollTo(0,0)}var s=t.document;return e&&r.$watch(function(){return n.hash()},function(){r.$evalAsync(a)}),a}]}function Lt(){this.$get=["$$rAF","$timeout",function(e,t){return e.supported?function(t){return e(t)}:function(e){return t(e,0,!1)}}]}function Ht(e,t,r,i){function a(e){try{e.apply(null,F(arguments,1))}finally{if(y--,0===y)for(;b.length;)try{b.pop()()}catch(t){r.error(t)}}}function s(e,t){!function n(){o(k,function(e){e()}),$=t(n,e)}()}function l(){S=null,w!=c.url()&&(w=c.url(),o(E,function(e){e(c.url())}))}var c=this,u=t[0],f=e.location,d=e.history,p=e.setTimeout,g=e.clearTimeout,m={};c.isMock=!1;var y=0,b=[];c.$$completeOutstandingRequest=a,c.$$incOutstandingRequestCount=function(){y++},c.notifyWhenNoOutstandingRequests=function(e){o(k,function(e){e()}),0===y?e():b.push(e)};var $,k=[];c.addPollFn=function(e){return v($)&&s(100,p),k.push(e),e};var w=f.href,C=t.find("base"),S=null;c.url=function(t,n){if(f!==e.location&&(f=e.location),d!==e.history&&(d=e.history),t){if(w==t)return;return w=t,i.history?n?d.replaceState(null,"",t):(d.pushState(null,"",t),C.attr("href",C.attr("href"))):(S=t,n?f.replace(t):f.href=t),c}return S||f.href.replace(/%27/g,"'")};var E=[],A=!1;c.onUrlChange=function(t){return A||(i.history&&br(e).on("popstate",l),i.hashchange?br(e).on("hashchange",l):c.addPollFn(l),A=!0),E.push(t),t},c.baseHref=function(){var e=C.attr("href");return e?e.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var T={},O="",N=c.baseHref();c.cookies=function(e,t){var i,o,a,s,l;if(!e){if(u.cookie!==O)for(O=u.cookie,o=O.split("; "),T={},s=0;s<o.length;s++)a=o[s],l=a.indexOf("="),l>0&&(e=unescape(a.substring(0,l)),T[e]===n&&(T[e]=unescape(a.substring(l+1))));return T}t===n?u.cookie=escape(e)+"=;path="+N+";expires=Thu, 01 Jan 1970 00:00:00 GMT":x(t)&&(i=(u.cookie=escape(e)+"="+escape(t)+";path="+N).length+1,i>4096&&r.warn("Cookie '"+e+"' possibly not set or overflowed because it was too large ("+i+" > 4096 bytes)!"))},c.defer=function(e,t){var n;return y++,n=p(function(){delete m[n],a(e)},t||0),m[n]=!0,n},c.defer.cancel=function(e){return m[e]?(delete m[e],g(e),a(h),!0):!1}}function Rt(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,r){return new Ht(e,r,t,n)}]}function _t(){this.$get=function(){function e(e,n){function i(e){e!=d&&(p?p==e&&(p=e.n):p=e,o(e.n,e.p),o(e,d),d=e,d.n=null)}function o(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in t)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var a=0,s=f({},n,{id:e}),l={},c=n&&n.capacity||Number.MAX_VALUE,u={},d=null,p=null;return t[e]={put:function(e,t){if(c<Number.MAX_VALUE){var n=u[e]||(u[e]={key:e});i(n)}if(!v(t))return e in l||a++,l[e]=t,a>c&&this.remove(p.key),t},get:function(e){if(c<Number.MAX_VALUE){var t=u[e];if(!t)return;i(t)}return l[e]},remove:function(e){if(c<Number.MAX_VALUE){var t=u[e];if(!t)return;t==d&&(d=t.p),t==p&&(p=t.n),o(t.n,t.p),delete u[e]}delete l[e],a--},removeAll:function(){l={},a=0,u={},d=p=null},destroy:function(){l=null,s=null,u=null,delete t[e]},info:function(){return f({},s,{size:a})}}}var t={};return e.info=function(){var e={};return o(t,function(t,n){e[n]=t.info()}),e},e.get=function(e){return t[e]},e}}function Ft(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function qt(e,r){var i={},a="Directive",s=/^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/,c=/(([\d\w_\-]+)(?:\:([^;]+))?;?)/,u=/^(on[a-z]+|formaction)$/;this.directive=function d(t,n){return it(t,"directive"),x(t)?(nt(n,"directiveFactory"),i.hasOwnProperty(t)||(i[t]=[],e.factory(t+a,["$injector","$exceptionHandler",function(e,n){var r=[];return o(i[t],function(i,o){try{var a=e.invoke(i);C(a)?a={compile:m(a)}:!a.compile&&a.link&&(a.compile=m(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||t,a.require=a.require||a.controller&&a.name,a.restrict=a.restrict||"A",r.push(a)}catch(s){n(s)}}),r}])),i[t].push(n)):o(t,l(d)),this},this.aHrefSanitizationWhitelist=function(e){return y(e)?(r.aHrefSanitizationWhitelist(e),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return y(e)?(r.imgSrcSanitizationWhitelist(e),this):r.imgSrcSanitizationWhitelist()},this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(e,r,l,d,h,v,y,$,k,S,E,A){function T(e,t,n,r,i){e instanceof br||(e=br(e)),o(e,function(t,n){3==t.nodeType&&t.nodeValue.match(/\S+/)&&(e[n]=t=br(t).wrap("<span></span>").parent()[0])});var a=N(e,t,e,n,r,i);return O(e,"ng-scope"),function(t,n,r){nt(t,"scope");var i=n?Vr.clone.call(e):e;o(r,function(e,t){i.data("$"+t+"Controller",e)});for(var s=0,l=i.length;l>s;s++){var c=i[s],u=c.nodeType;(1===u||9===u)&&i.eq(s).data("$scope",t)}return n&&n(i,t),a&&a(t,i,i),i}}function O(e,t){try{e.addClass(t)}catch(n){}}function N(e,t,r,i,o,a){function s(e,r,i,o){var a,s,l,c,u,f,d,p,g,m=r.length,v=new Array(m);for(d=0;m>d;d++)v[d]=r[d];for(d=0,g=0,p=h.length;p>d;g++)l=v[g],a=h[d++],s=h[d++],c=br(l),a?(a.scope?(u=e.$new(),c.data("$scope",u)):u=e,f=a.transclude,f||!o&&t?a(s,u,l,i,j(e,f||t)):a(s,u,l,i,o)):s&&s(e,l.childNodes,n,o)}for(var l,c,u,f,d,p,h=[],g=0;g<e.length;g++)l=new Q,c=M(e[g],[],l,0===g?i:n,o),u=c.length?P(c,e[g],l,t,r,null,[],[],a):null,u&&u.scope&&O(br(e[g]),"ng-scope"),d=u&&u.terminal||!(f=e[g].childNodes)||!f.length?null:N(f,u?u.transclude:t),h.push(u,d),p=p||u||d,a=null;return p?s:null}function j(e,t){return function(n,r,i){var o=!1;n||(n=e.$new(),n.$$transcluded=!0,o=!0);var a=t(n,r,i);return o&&a.on("$destroy",q(n,n.$destroy)),a}}function M(e,t,n,r,i){var o,a,l=e.nodeType,u=n.$attr;switch(l){case 1:_(t,Ut(kr(e).toLowerCase()),"E",r,i);for(var f,d,p,h,g,m=e.attributes,v=0,y=m&&m.length;y>v;v++){var b=!1,$=!1;if(f=m[v],!yr||yr>=8||f.specified){d=f.name,h=Ut(d),it.test(h)&&(d=et(h.substr(6),"-"));var k=h.replace(/(Start|End)$/,"");h===k+"Start"&&(b=d,$=d.substr(0,d.length-5)+"end",d=d.substr(0,d.length-6)),p=Ut(d.toLowerCase()),u[p]=d,n[p]=g=Or(f.value),Ot(e,p)&&(n[p]=!0),G(e,t,g,p),_(t,p,"A",r,i,b,$)}}if(a=e.className,x(a)&&""!==a)for(;o=c.exec(a);)p=Ut(o[2]),_(t,p,"C",r,i)&&(n[p]=Or(o[3])),a=a.substr(o.index+o[0].length);break;case 3:K(t,e.nodeValue);break;case 8:try{o=s.exec(e.nodeValue),o&&(p=Ut(o[1]),_(t,p,"M",r,i)&&(n[p]=Or(o[2])))}catch(w){}}return t.sort(B),t}function I(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t)){do{if(!e)throw ti("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);1==e.nodeType&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0)}else r.push(e);return br(r)}function D(e,t,n){return function(r,i,o,a,s){return i=I(i[0],t,n),e(r,i,o,a,s)}}function P(e,i,a,s,c,u,f,d,p){function h(e,t,n,r){e&&(n&&(e=D(e,n,r)),e.require=k.require,e.directiveName=S,(_===k||k.$$isolateScope)&&(e=J(e,{isolateScope:!0})),f.push(e)),t&&(n&&(t=D(t,n,r)),t.require=k.require,t.directiveName=S,(_===k||k.$$isolateScope)&&(t=J(t,{isolateScope:!0})),d.push(t))}function g(e,t,n,r){var i,a="data",s=!1;if(x(t)){for(;"^"==(i=t.charAt(0))||"?"==i;)t=t.substr(1),"^"==i&&(a="inheritedData"),s=s||"?"==i;if(i=null,r&&"data"===a&&(i=r[t]),i=i||n[a]("$"+t+"Controller"),!i&&!s)throw ti("ctreq","Controller '{0}', required by directive '{1}', can't be found!",t,e);return i}return w(t)&&(i=[],o(t,function(t){i.push(g(e,t,n,r))})),i}function m(e,t,s,c,u){function p(e,t){var r;return arguments.length<2&&(t=e,e=n),X&&(r=S),u(e,t,r)}var h,m,b,x,$,k,w,C,S={};if(h=i===s?a:L(a,new Q(br(s),a.$attr)),m=h.$$element,_){var E=/^\s*([@=&])(\??)\s*(\w*)\s*$/,A=br(s);w=t.$new(!0),!q||q!==_&&q!==_.$$originalDirective?A.data("$isolateScopeNoTemplate",w):A.data("$isolateScope",w),O(A,"ng-isolate-scope"),o(_.scope,function(e,n){var i,o,a,s,l=e.match(E)||[],c=l[3]||n,u="?"==l[2],f=l[1];switch(w.$$isolateBindings[n]=f+c,f){case"@":h.$observe(c,function(e){w[n]=e}),h.$$observers[c].$$scope=t,h[c]&&(w[n]=r(h[c])(t));break;case"=":if(u&&!h[c])return;o=v(h[c]),s=o.literal?H:function(e,t){return e===t},a=o.assign||function(){throw i=w[n]=o(t),ti("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",h[c],_.name)},i=w[n]=o(t),w.$watch(function(){var e=o(t);return s(e,w[n])||(s(e,i)?a(t,e=w[n]):w[n]=e),i=e},null,o.literal);break;case"&":o=v(h[c]),w[n]=function(e){return o(t,e)};break;default:throw ti("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",_.name,n,e)}})}for(C=u&&p,P&&o(P,function(e){var n,r={$scope:e===_||e.$$isolateScope?w:t,$element:m,$attrs:h,$transclude:C};k=e.controller,"@"==k&&(k=h[e.name]),n=y(k,r),S[e.name]=n,X||m.data("$"+e.name+"Controller",n),e.controllerAs&&(r.$scope[e.controllerAs]=n)}),b=0,x=f.length;x>b;b++)try{$=f[b],$($.isolateScope?w:t,m,h,$.require&&g($.directiveName,$.require,m,S),C)}catch(T){l(T,z(m))}var N=t;for(_&&(_.template||null===_.templateUrl)&&(N=w),e&&e(N,s.childNodes,n,u),b=d.length-1;b>=0;b--)try{$=d[b],$($.isolateScope?w:t,m,h,$.require&&g($.directiveName,$.require,m,S),C)}catch(T){l(T,z(m))}}p=p||{};for(var $,k,S,E,A,N,j=-Number.MAX_VALUE,P=p.controllerDirectives,_=p.newIsolateScopeDirective,q=p.templateDirective,B=p.nonTlbTranscludeDirective,K=!1,X=p.hasElementTranscludeDirective,G=a.$$element=br(i),Z=u,et=s,tt=0,nt=e.length;nt>tt;tt++){k=e[tt];var it=k.$$start,ot=k.$$end;if(it&&(G=I(i,it,ot)),E=n,j>k.priority)break;if((N=k.scope)&&($=$||k,k.templateUrl||(V("new/isolated scope",_,k,G),b(N)&&(_=k))),S=k.name,!k.templateUrl&&k.controller&&(N=k.controller,P=P||{},V("'"+S+"' controller",P[S],k,G),P[S]=k),(N=k.transclude)&&(K=!0,k.$$tlb||(V("transclusion",B,k,G),B=k),"element"==N?(X=!0,j=k.priority,E=I(i,it,ot),G=a.$$element=br(t.createComment(" "+S+": "+a[S]+" ")),i=G[0],Y(c,br(F(E)),i),et=T(E,s,j,Z&&Z.name,{nonTlbTranscludeDirective:B})):(E=br(mt(i)).contents(),G.empty(),et=T(E,s))),k.template)if(V("template",q,k,G),q=k,N=C(k.template)?k.template(G,a):k.template,N=rt(N),k.replace){if(Z=k,E=dt(N)?[]:br(Or(N)),i=E[0],1!=E.length||1!==i.nodeType)throw ti("tplrt","Template for directive '{0}' must have exactly one root element. {1}",S,"");Y(c,G,i);var at={$attr:{}},st=M(i,[],at),lt=e.splice(tt+1,e.length-(tt+1));_&&R(st),e=e.concat(st).concat(lt),U(a,at),nt=e.length}else G.html(N);if(k.templateUrl)V("template",q,k,G),q=k,k.replace&&(Z=k),m=W(e.splice(tt,e.length-tt),G,a,c,et,f,d,{controllerDirectives:P,newIsolateScopeDirective:_,templateDirective:q,nonTlbTranscludeDirective:B}),nt=e.length;else if(k.compile)try{A=k.compile(G,a,et),C(A)?h(null,A,it,ot):A&&h(A.pre,A.post,it,ot)}catch(ct){l(ct,z(G))}k.terminal&&(m.terminal=!0,j=Math.max(j,k.priority))}return m.scope=$&&$.scope===!0,m.transclude=K&&et,p.hasElementTranscludeDirective=X,m}function R(e){for(var t=0,n=e.length;n>t;t++)e[t]=p(e[t],{$$isolateScope:!0})}function _(t,r,o,s,c,u,f){if(r===c)return null;var d=null;if(i.hasOwnProperty(r))for(var h,g=e.get(r+a),m=0,v=g.length;v>m;m++)try{h=g[m],(s===n||s>h.priority)&&-1!=h.restrict.indexOf(o)&&(u&&(h=p(h,{$$start:u,$$end:f})),t.push(h),d=h)}catch(y){l(y)}return d}function U(e,t){var n=t.$attr,r=e.$attr,i=e.$$element;o(e,function(r,i){"$"!=i.charAt(0)&&(t[i]&&t[i]!==r&&(r+=("style"===i?";":" ")+t[i]),e.$set(i,r,!0,n[i]))}),o(t,function(t,o){"class"==o?(O(i,t),e["class"]=(e["class"]?e["class"]+" ":"")+t):"style"==o?(i.attr("style",i.attr("style")+";"+t),e.style=(e.style?e.style+";":"")+t):"$"==o.charAt(0)||e.hasOwnProperty(o)||(e[o]=t,r[o]=n[o])})}function W(e,t,n,r,i,a,s,l){var c,u,p=[],g=t[0],m=e.shift(),v=f({},m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),y=C(m.templateUrl)?m.templateUrl(t,n):m.templateUrl;return t.empty(),d.get(S.getTrustedResourceUrl(y),{cache:h}).success(function(f){var d,h,x,$;if(f=rt(f),m.replace){if(x=dt(f)?[]:br(Or(f)),d=x[0],1!=x.length||1!==d.nodeType)throw ti("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,y);h={$attr:{}},Y(r,t,d);var k=M(d,[],h);b(m.scope)&&R(k),e=k.concat(e),U(n,h)}else d=g,t.html(f);for(e.unshift(v),c=P(e,d,n,i,t,m,a,s,l),o(r,function(e,n){e==d&&(r[n]=t[0])}),u=N(t[0].childNodes,i);p.length;){var w=p.shift(),C=p.shift(),S=p.shift(),E=p.shift(),A=t[0];if(C!==g){var T=C.className;l.hasElementTranscludeDirective&&m.replace||(A=mt(d)),Y(S,br(C),A),O(br(A),T)}$=c.transclude?j(w,c.transclude):E,c(u,w,A,r,$)}p=null}).error(function(e,t,n,r){throw ti("tpload","Failed to load template: {0}",r.url)}),function(e,t,n,r,i){p?(p.push(t),p.push(n),p.push(r),p.push(i)):c(u,t,n,r,i)}}function B(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function V(e,t,n,r){if(t)throw ti("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",t.name,n.name,e,z(r))}function K(e,t){var n=r(t,!0);n&&e.push({priority:0,compile:m(function(e,t){var r=t.parent(),i=r.data("$binding")||[];i.push(n),O(r.data("$binding",i),"ng-binding"),e.$watch(n,function(e){t[0].nodeValue=e})})})}function X(e,t){if("srcdoc"==t)return S.HTML;var n=kr(e);return"xlinkHref"==t||"FORM"==n&&"action"==t||"IMG"!=n&&("src"==t||"ngSrc"==t)?S.RESOURCE_URL:void 0}function G(e,t,n,i){var o=r(n,!0);if(o){if("multiple"===i&&"SELECT"===kr(e))throw ti("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",z(e));t.push({priority:100,compile:function(){return{pre:function(t,n,a){var s=a.$$observers||(a.$$observers={});if(u.test(i))throw ti("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");o=r(a[i],!0,X(e,i)),o&&(a[i]=o(t),(s[i]||(s[i]=[])).$$inter=!0,(a.$$observers&&a.$$observers[i].$$scope||t).$watch(o,function(e,t){"class"===i&&e!=t?a.$updateClass(e,t):a.$set(i,e)}))}}}})}}function Y(e,n,r){var i,o,a=n[0],s=n.length,l=a.parentNode;if(e)for(i=0,o=e.length;o>i;i++)if(e[i]==a){e[i++]=r;for(var c=i,u=c+s-1,f=e.length;f>c;c++,u++)f>u?e[c]=e[u]:delete e[c];e.length-=s-1;break}l&&l.replaceChild(r,a);var d=t.createDocumentFragment();d.appendChild(a),r[br.expando]=a[br.expando];for(var p=1,h=n.length;h>p;p++){var g=n[p];br(g).remove(),d.appendChild(g),delete n[p]}n[0]=r,n.length=1}function J(e,t){return f(function(){return e.apply(null,arguments)},e,t)}var Q=function(e,t){this.$$element=e,this.$attr=t||{}};Q.prototype={$normalize:Ut,$addClass:function(e){e&&e.length>0&&E.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&E.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=Wt(e,t),r=Wt(t,e);0===n.length?E.removeClass(this.$$element,r):0===r.length?E.addClass(this.$$element,n):E.setClass(this.$$element,n,r)},$set:function(e,t,r,i){var a,s=Ot(this.$$element[0],e);s&&(this.$$element.prop(e,t),i=s),this[e]=t,i?this.$attr[e]=i:(i=this.$attr[e],i||(this.$attr[e]=i=et(e,"-"))),a=kr(this.$$element),("A"===a&&"href"===e||"IMG"===a&&"src"===e)&&(this[e]=t=A(t,"src"===e)),r!==!1&&(null===t||t===n?this.$$element.removeAttr(i):this.$$element.attr(i,t));var c=this.$$observers;c&&o(c[e],function(e){try{e(t)}catch(n){l(n)}})},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers={}),i=r[e]||(r[e]=[]);return i.push(t),$.$evalAsync(function(){i.$$inter||t(n[e])}),t}};var Z=r.startSymbol(),tt=r.endSymbol(),rt="{{"==Z||"}}"==tt?g:function(e){return e.replace(/\{\{/g,Z).replace(/}}/g,tt)},it=/^ngAttr[A-Z]/;return T}]}function Ut(e){return ut(e.replace(ni,""))}function Wt(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a==i[s])continue e;n+=(n.length>0?" ":"")+a}return n}function Bt(){var e={},t=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(t,n){it(t,"controller"),b(t)?f(e,t):e[t]=n},this.$get=["$injector","$window",function(n,i){return function(o,a){var s,l,c,u;if(x(o)&&(l=o.match(t),c=l[1],u=l[3],o=e.hasOwnProperty(c)?e[c]:ot(a.$scope,c,!0)||ot(i,c,!0),rt(o,c,!0)),s=n.instantiate(o,a),u){if(!a||"object"!=typeof a.$scope)throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",c||o.name,u);a.$scope[u]=s}return s}}]}function Vt(){this.$get=["$window",function(e){return br(e.document)}]}function zt(){this.$get=["$log",function(e){return function(){e.error.apply(e,arguments)}}]}function Kt(e){var t,n,r,i={};return e?(o(e.split("\n"),function(e){r=e.indexOf(":"),t=pr(Or(e.substr(0,r))),n=Or(e.substr(r+1)),t&&(i[t]?i[t]+=", "+n:i[t]=n)}),i):i}function Xt(e){var t=b(e)?e:n;return function(n){return t||(t=Kt(e)),n?t[pr(n)]||null:t}}function Gt(e,t,n){return C(n)?n(e,t):(o(n,function(n){e=n(e,t)}),e)}function Yt(e){return e>=200&&300>e}function Jt(){var e=/^\s*(\[|\{[^\{])/,t=/[\}\]]\s*$/,r=/^\)\]\}',?\n/,i={"Content-Type":"application/json;charset=utf-8"},a=this.defaults={transformResponse:[function(n){return x(n)&&(n=n.replace(r,""),e.test(n)&&t.test(n)&&(n=B(n))),n}],transformRequest:[function(e){return!b(e)||T(e)||O(e)?e:W(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:L(i),put:L(i),patch:L(i)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},l=this.interceptors=[],c=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(e,t,r,i,u,d){function p(e){function r(e){var t=f({},e,{data:Gt(e.data,e.headers,s.transformResponse)});return Yt(e.status)?t:u.reject(t)}function i(e){function t(e){var t;o(e,function(n,r){C(n)&&(t=n(),null!=t?e[r]=t:delete e[r])})}var n,r,i,s=a.headers,l=f({},e.headers);s=f({},s.common,s[pr(e.method)]),t(s),t(l);e:for(n in s){r=pr(n);for(i in l)if(pr(i)===r)continue e;l[n]=s[n]}return l}var s={method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse},l=i(e);f(s,e),s.headers=l,s.method=gr(s.method);var c=Fn(s.url)?t.cookies()[s.xsrfCookieName||a.xsrfCookieName]:n;c&&(l[s.xsrfHeaderName||a.xsrfHeaderName]=c);var d=function(e){l=e.headers;var t=Gt(e.data,Xt(l),e.transformRequest);return v(e.data)&&o(l,function(e,t){"content-type"===pr(t)&&delete l[t]}),v(e.withCredentials)&&!v(a.withCredentials)&&(e.withCredentials=a.withCredentials),m(e,t,l).then(r,r)},p=[d,n],h=u.when(s);for(o(S,function(e){(e.request||e.requestError)&&p.unshift(e.request,e.requestError),(e.response||e.responseError)&&p.push(e.response,e.responseError)});p.length;){var g=p.shift(),y=p.shift();h=h.then(g,y)}return h.success=function(e){return h.then(function(t){e(t.data,t.status,t.headers,s)}),h},h.error=function(e){return h.then(null,function(t){e(t.data,t.status,t.headers,s)}),h},h}function h(){o(arguments,function(e){p[e]=function(t,n){return p(f(n||{},{method:e,url:t}))}})}function g(){o(arguments,function(e){p[e]=function(t,n,r){return p(f(r||{},{method:e,url:t,data:n}))}})}function m(t,n,r){function o(e,t,n,r){c&&(Yt(e)?c.put(g,[e,t,Kt(n),r]):c.remove(g)),s(t,e,n,r),i.$$phase||i.$apply()}function s(e,n,r,i){n=Math.max(n,0),(Yt(n)?d.resolve:d.reject)({data:e,status:n,headers:Xt(r),config:t,statusText:i})}function l(){var e=I(p.pendingRequests,t);-1!==e&&p.pendingRequests.splice(e,1)}var c,f,d=u.defer(),h=d.promise,g=$(t.url,t.params);if(p.pendingRequests.push(t),h.then(l,l),(t.cache||a.cache)&&t.cache!==!1&&"GET"==t.method&&(c=b(t.cache)?t.cache:b(a.cache)?a.cache:k),c)if(f=c.get(g),y(f)){if(f.then)return f.then(l,l),f;w(f)?s(f[1],f[0],L(f[2]),f[3]):s(f,200,{},"OK")}else c.put(g,h);return v(f)&&e(t.method,g,n,o,r,t.timeout,t.withCredentials,t.responseType),h}function $(e,t){if(!t)return e;var n=[];return s(t,function(e,t){null===e||v(e)||(w(e)||(e=[e]),o(e,function(e){b(e)&&(e=W(e)),n.push(J(t)+"="+J(e))}))}),n.length>0&&(e+=(-1==e.indexOf("?")?"?":"&")+n.join("&")),e}var k=r("$http"),S=[];return o(l,function(e){S.unshift(x(e)?d.get(e):d.invoke(e))}),o(c,function(e,t){var n=x(e)?d.get(e):d.invoke(e);S.splice(t,0,{response:function(e){return n(u.when(e))},responseError:function(e){return n(u.reject(e))}})}),p.pendingRequests=[],h("get","delete","head","jsonp"),g("post","put"),p.defaults=a,p}]}function Qt(t){if(8>=yr&&(!t.match(/^(get|post|head|put|delete|options)$/i)||!e.XMLHttpRequest))return new e.ActiveXObject("Microsoft.XMLHTTP");if(e.XMLHttpRequest)return new e.XMLHttpRequest;throw r("$httpBackend")("noxhr","This browser does not support XMLHttpRequest.")}function Zt(){this.$get=["$browser","$window","$document",function(e,t,n){return en(e,Qt,e.defer,t.angular.callbacks,n[0])}]}function en(e,t,n,r,i){function a(e,t,n){var o=i.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){Lr(o,"load",a),Lr(o,"error",a),i.body.removeChild(o),o=null;var s=-1,l="unknown";e&&("load"!==e.type||r[t].called||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},Pr(o,"load",a),Pr(o,"error",a),8>=yr&&(o.onreadystatechange=function(){x(o.readyState)&&/loaded|complete/.test(o.readyState)&&(o.onreadystatechange=null,a({type:"load"}))}),i.body.appendChild(o),a}var s=-1;return function(i,l,c,u,f,d,p,g){function m(){b=s,$&&$(),k&&k.abort()}function v(t,r,i,o,a){C&&n.cancel(C),$=k=null,0===r&&(r=i?200:"file"==_n(l).protocol?404:0),r=1223===r?204:r,a=a||"",t(r,i,o,a),e.$$completeOutstandingRequest(h)}var b;if(e.$$incOutstandingRequestCount(),l=l||e.url(),"jsonp"==pr(i)){var x="_"+(r.counter++).toString(36);r[x]=function(e){r[x].data=e,r[x].called=!0};var $=a(l.replace("JSON_CALLBACK","angular.callbacks."+x),x,function(e,t){v(u,e,r[x].data,"",t),r[x]=h})}else{var k=t(i);if(k.open(i,l,!0),o(f,function(e,t){y(e)&&k.setRequestHeader(t,e)}),k.onreadystatechange=function(){if(k&&4==k.readyState){var e=null,t=null;b!==s&&(e=k.getAllResponseHeaders(),t="response"in k?k.response:k.responseText),v(u,b||k.status,t,e,k.statusText||"")}},p&&(k.withCredentials=!0),g)try{k.responseType=g}catch(w){if("json"!==g)throw w}k.send(c||null)}if(d>0)var C=n(m,d);else d&&d.then&&d.then(m)}}function tn(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(o,l,c){for(var u,f,d,p,h=0,g=[],m=o.length,v=!1,y=[];m>h;)-1!=(u=o.indexOf(e,h))&&-1!=(f=o.indexOf(t,u+a))?(h!=u&&g.push(o.substring(h,u)),g.push(d=n(p=o.substring(u+a,f))),d.exp=p,h=f+s,v=!0):(h!=m&&g.push(o.substring(h)),h=m);if((m=g.length)||(g.push(""),m=1),c&&g.length>1)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",o);return!l||v?(y.length=m,d=function(e){try{for(var t,n=0,a=m;a>n;n++){if("function"==typeof(t=g[n]))if(t=t(e),t=c?i.getTrusted(c,t):i.valueOf(t),null==t)t="";else switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=W(t)}y[n]=t}return y.join("")}catch(s){var l=ri("interr","Can't interpolate: {0}\n{1}",o,s.toString());r(l)}},d.exp=o,d.parts=g,d):void 0}var a=e.length,s=t.length;return o.startSymbol=function(){return e},o.endSymbol=function(){return t},o}]}function nn(){this.$get=["$rootScope","$window","$q",function(e,t,n){function r(r,o,a,s){var l=t.setInterval,c=t.clearInterval,u=n.defer(),f=u.promise,d=0,p=y(s)&&!s;return a=y(a)?a:0,f.then(null,null,r),f.$$intervalId=l(function(){u.notify(d++),a>0&&d>=a&&(u.resolve(d),c(f.$$intervalId),delete i[f.$$intervalId]),p||e.$apply()},o),i[f.$$intervalId]=u,f}var i={};return r.cancel=function(e){return e&&e.$$intervalId in i?(i[e.$$intervalId].reject("canceled"),clearInterval(e.$$intervalId),delete i[e.$$intervalId],!0):!1},r}]}function rn(){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"},pluralCat:function(e){return 1===e?"one":"other"}}}}function on(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=Y(t[n]);return t.join("/")}function an(e,t,n){var r=_n(e,n);t.$$protocol=r.protocol,t.$$host=r.hostname,t.$$port=d(r.port)||oi[r.protocol]||null}function sn(e,t,n){var r="/"!==e.charAt(0);r&&(e="/"+e);var i=_n(e,n);t.$$path=decodeURIComponent(r&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),t.$$search=X(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function ln(e,t){return 0===t.indexOf(e)?t.substr(e.length):void 0}function cn(e){var t=e.indexOf("#");return-1==t?e:e.substr(0,t)}function un(e){return e.substr(0,cn(e).lastIndexOf("/")+1)}function fn(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function dn(e,t){this.$$html5=!0,t=t||"";var r=un(e);an(e,this,e),this.$$parse=function(t){var n=ln(r,t);if(!x(n))throw ai("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,r);sn(n,this,e),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=G(this.$$search),t=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=on(this.$$path)+(e?"?"+e:"")+t,this.$$absUrl=r+this.$$url.substr(1)},this.$$rewrite=function(i){var o,a;return(o=ln(e,i))!==n?(a=o,(o=ln(t,o))!==n?r+(ln("/",o)||o):e+a):(o=ln(r,i))!==n?r+o:r==i+"/"?r:void 0}}function pn(e,t){var n=un(e);an(e,this,e),this.$$parse=function(r){function i(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===t.indexOf(n)&&(t=t.replace(n,"")),i.exec(t)?e:(r=i.exec(e),r?r[1]:e)}var o=ln(e,r)||ln(n,r),a="#"==o.charAt(0)?ln(t,o):this.$$html5?o:"";if(!x(a))throw ai("ihshprfx",'Invalid url "{0}", missing hash prefix "{1}".',r,t);sn(a,this,e),this.$$path=i(this.$$path,a,e),this.$$compose()},this.$$compose=function(){var n=G(this.$$search),r=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=on(this.$$path)+(n?"?"+n:"")+r,this.$$absUrl=e+(this.$$url?t+this.$$url:"")},this.$$rewrite=function(t){return cn(e)==cn(t)?t:void 0}}function hn(e,t){this.$$html5=!0,pn.apply(this,arguments);var n=un(e);this.$$rewrite=function(r){var i;return e==cn(r)?r:(i=ln(n,r))?e+t+i:n===r+"/"?n:void 0},this.$$compose=function(){var n=G(this.$$search),r=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=on(this.$$path)+(n?"?"+n:"")+r,this.$$absUrl=e+t+this.$$url}}function gn(e){return function(){return this[e]}}function mn(e,t){return function(n){return v(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function vn(){var t="",n=!1;this.hashPrefix=function(e){return y(e)?(t=e,this):t},this.html5Mode=function(e){return y(e)?(n=e,this):n},this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(r,i,o,a){function s(e){r.$broadcast("$locationChangeSuccess",l.absUrl(),e)}var l,c,u,f=i.baseHref(),d=i.url();n?(u=fn(d)+(f||"/"),c=o.history?dn:hn):(u=cn(d),c=pn),l=new c(u,"#"+t),l.$$parse(l.$$rewrite(d)),a.on("click",function(n){if(!n.ctrlKey&&!n.metaKey&&2!=n.which){for(var o=br(n.target);"a"!==pr(o[0].nodeName);)if(o[0]===a[0]||!(o=o.parent())[0])return;var s=o.prop("href");if(b(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=_n(s.animVal).href),c===hn){var f=o.attr("href")||o.attr("xlink:href");if(f.indexOf("://")<0){var d="#"+t;if("/"==f[0])s=u+d+f;else if("#"==f[0])s=u+d+(l.path()||"/")+f;else{for(var p=l.path().split("/"),h=f.split("/"),g=0;g<h.length;g++)"."!=h[g]&&(".."==h[g]?p.pop():h[g].length&&p.push(h[g]));s=u+d+p.join("/")}}}var m=l.$$rewrite(s);s&&!o.attr("target")&&m&&!n.isDefaultPrevented()&&(n.preventDefault(),m!=i.url()&&(l.$$parse(m),r.$apply(),e.angular["ff-684208-preventDefault"]=!0))}}),l.absUrl()!=d&&i.url(l.absUrl(),!0),i.onUrlChange(function(e){l.absUrl()!=e&&(r.$evalAsync(function(){var t=l.absUrl();l.$$parse(e),r.$broadcast("$locationChangeStart",e,t).defaultPrevented?(l.$$parse(t),i.url(t)):s(t)}),r.$$phase||r.$digest())});var p=0;return r.$watch(function(){var e=i.url(),t=l.$$replace;return p&&e==l.absUrl()||(p++,r.$evalAsync(function(){r.$broadcast("$locationChangeStart",l.absUrl(),e).defaultPrevented?l.$$parse(e):(i.url(l.absUrl(),t),s(e))})),l.$$replace=!1,p}),l}]}function yn(){var e=!0,t=this;this.debugEnabled=function(t){return y(t)?(e=t,this):e},this.$get=["$window",function(n){function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function i(e){var t=n.console||{},i=t[e]||t.log||h,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var e=[];return o(arguments,function(t){e.push(r(t))}),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function bn(e,t){if("constructor"===e)throw li("isecfld",'Referencing "constructor" field in Angular expressions is disallowed! Expression: {0}',t);
return e}function xn(e,t){if(e){if(e.constructor===e)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.document&&e.location&&e.alert&&e.setInterval)throw li("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw li("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t)}return e}function $n(e,t,r,i,o){o=o||{};for(var a,s=t.split("."),l=0;s.length>1;l++){a=bn(s.shift(),i);var c=e[a];c||(c={},e[a]=c),e=c,e.then&&o.unwrapPromises&&(si(i),"$$v"in e||!function(e){e.then(function(t){e.$$v=t})}(e),e.$$v===n&&(e.$$v={}),e=e.$$v)}return a=bn(s.shift(),i),e[a]=r,r}function kn(e,t,r,i,o,a,s){return bn(e,a),bn(t,a),bn(r,a),bn(i,a),bn(o,a),s.unwrapPromises?function(s,l){var c,u=l&&l.hasOwnProperty(e)?l:s;return null==u?u:(u=u[e],u&&u.then&&(si(a),"$$v"in u||(c=u,c.$$v=n,c.then(function(e){c.$$v=e})),u=u.$$v),t?null==u?n:(u=u[t],u&&u.then&&(si(a),"$$v"in u||(c=u,c.$$v=n,c.then(function(e){c.$$v=e})),u=u.$$v),r?null==u?n:(u=u[r],u&&u.then&&(si(a),"$$v"in u||(c=u,c.$$v=n,c.then(function(e){c.$$v=e})),u=u.$$v),i?null==u?n:(u=u[i],u&&u.then&&(si(a),"$$v"in u||(c=u,c.$$v=n,c.then(function(e){c.$$v=e})),u=u.$$v),o?null==u?n:(u=u[o],u&&u.then&&(si(a),"$$v"in u||(c=u,c.$$v=n,c.then(function(e){c.$$v=e})),u=u.$$v),u):u):u):u):u)}:function(a,s){var l=s&&s.hasOwnProperty(e)?s:a;return null==l?l:(l=l[e],t?null==l?n:(l=l[t],r?null==l?n:(l=l[r],i?null==l?n:(l=l[i],o?null==l?n:l=l[o]:l):l):l):l)}}function wn(e,t){return bn(e,t),function(t,r){return null==t?n:(r&&r.hasOwnProperty(e)?r:t)[e]}}function Cn(e,t,r){return bn(e,r),bn(t,r),function(r,i){return null==r?n:(r=(i&&i.hasOwnProperty(e)?i:r)[e],null==r?n:r[t])}}function Sn(e,t,r){if(hi.hasOwnProperty(e))return hi[e];var i,a=e.split("."),s=a.length;if(t.unwrapPromises||1!==s)if(t.unwrapPromises||2!==s)if(t.csp)i=6>s?kn(a[0],a[1],a[2],a[3],a[4],r,t):function(e,i){var o,l=0;do o=kn(a[l++],a[l++],a[l++],a[l++],a[l++],r,t)(e,i),i=n,e=o;while(s>l);return o};else{var l="var p;\n";o(a,function(e,n){bn(e,r),l+="if(s == null) return undefined;\ns="+(n?"s":'((k&&k.hasOwnProperty("'+e+'"))?k:s)')+'["'+e+'"];\n'+(t.unwrapPromises?'if (s && s.then) {\n pw("'+r.replace(/(["\r\n])/g,"\\$1")+'");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n':"")}),l+="return s;";var c=new Function("s","k","pw",l);c.toString=m(l),i=t.unwrapPromises?function(e,t){return c(e,t,si)}:c}else i=Cn(a[0],a[1],r);else i=wn(a[0],r);return"hasOwnProperty"!==e&&(hi[e]=i),i}function En(){var e={},t={csp:!1,unwrapPromises:!1,logPromiseWarnings:!0};this.unwrapPromises=function(e){return y(e)?(t.unwrapPromises=!!e,this):t.unwrapPromises},this.logPromiseWarnings=function(e){return y(e)?(t.logPromiseWarnings=e,this):t.logPromiseWarnings},this.$get=["$filter","$sniffer","$log",function(n,r,i){return t.csp=r.csp,si=function(e){t.logPromiseWarnings&&!ci.hasOwnProperty(e)&&(ci[e]=!0,i.warn("[$parse] Promise found in the expression `"+e+"`. Automatic unwrapping of promises in Angular expressions is deprecated."))},function(r){var i;switch(typeof r){case"string":if(e.hasOwnProperty(r))return e[r];var o=new di(t),a=new pi(o,n,t);return i=a.parse(r),"hasOwnProperty"!==r&&(e[r]=i),i;case"function":return r;default:return h}}}]}function An(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return Tn(function(t){e.$evalAsync(t)},t)}]}function Tn(e,t){function r(e){return e}function i(e){return c(e)}function a(e){var t=s(),n=0,r=w(e)?[]:{};return o(e,function(e,i){n++,l(e).then(function(e){r.hasOwnProperty(i)||(r[i]=e,--n||t.resolve(r))},function(e){r.hasOwnProperty(i)||t.reject(e)})}),0===n&&t.resolve(r),t.promise}var s=function(){var o,a,c=[];return a={resolve:function(t){if(c){var r=c;c=n,o=l(t),r.length&&e(function(){for(var e,t=0,n=r.length;n>t;t++)e=r[t],o.then(e[0],e[1],e[2])})}},reject:function(e){a.resolve(u(e))},notify:function(t){if(c){var n=c;c.length&&e(function(){for(var e,r=0,i=n.length;i>r;r++)e=n[r],e[2](t)})}},promise:{then:function(e,n,a){var l=s(),u=function(n){try{l.resolve((C(e)?e:r)(n))}catch(i){l.reject(i),t(i)}},f=function(e){try{l.resolve((C(n)?n:i)(e))}catch(r){l.reject(r),t(r)}},d=function(e){try{l.notify((C(a)?a:r)(e))}catch(n){t(n)}};return c?c.push([u,f,d]):o.then(u,f,d),l.promise},"catch":function(e){return this.then(null,e)},"finally":function(e){function t(e,t){var n=s();return t?n.resolve(e):n.reject(e),n.promise}function n(n,i){var o=null;try{o=(e||r)()}catch(a){return t(a,!1)}return o&&C(o.then)?o.then(function(){return t(n,i)},function(e){return t(e,!1)}):t(n,i)}return this.then(function(e){return n(e,!0)},function(e){return n(e,!1)})}}}},l=function(t){return t&&C(t.then)?t:{then:function(n){var r=s();return e(function(){r.resolve(n(t))}),r.promise}}},c=function(e){var t=s();return t.reject(e),t.promise},u=function(n){return{then:function(r,o){var a=s();return e(function(){try{a.resolve((C(o)?o:i)(n))}catch(e){a.reject(e),t(e)}}),a.promise}}},f=function(n,o,a,u){var f,d=s(),p=function(e){try{return(C(o)?o:r)(e)}catch(n){return t(n),c(n)}},h=function(e){try{return(C(a)?a:i)(e)}catch(n){return t(n),c(n)}},g=function(e){try{return(C(u)?u:r)(e)}catch(n){t(n)}};return e(function(){l(n).then(function(e){f||(f=!0,d.resolve(l(e).then(p,h,g)))},function(e){f||(f=!0,d.resolve(h(e)))},function(e){f||d.notify(g(e))})}),d.promise};return{defer:s,reject:c,when:f,all:a}}function On(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function Nn(){var e=10,t=r("$rootScope"),n=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,a,s,l){function u(){this.$id=c(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this["this"]=this.$root=this,this.$$destroyed=!1,this.$$asyncQueue=[],this.$$postDigestQueue=[],this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings={}}function f(e){if(v.$$phase)throw t("inprog","{0} already in progress",v.$$phase);v.$$phase=e}function d(){v.$$phase=null}function p(e,t){var n=s(e);return rt(n,t),n}function g(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function m(){}u.prototype={constructor:u,$new:function(e){var t;return e?(t=new u,t.$root=this.$root,t.$$asyncQueue=this.$$asyncQueue,t.$$postDigestQueue=this.$$postDigestQueue):(this.$$childScopeClass||(this.$$childScopeClass=function(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=c(),this.$$childScopeClass=null},this.$$childScopeClass.prototype=this),t=new this.$$childScopeClass),t["this"]=t,t.$parent=this,t.$$prevSibling=this.$$childTail,this.$$childHead?(this.$$childTail.$$nextSibling=t,this.$$childTail=t):this.$$childHead=this.$$childTail=t,t},$watch:function(e,t,r){var i=this,o=p(e,"watch"),a=i.$$watchers,s={fn:t,last:m,get:o,exp:e,eq:!!r};if(n=null,!C(t)){var l=p(t||h,"listener");s.fn=function(e,t,n){l(n)}}if("string"==typeof e&&o.constant){var c=s.fn;s.fn=function(e,t,n){c.call(this,e,t,n),D(a,s)}}return a||(a=i.$$watchers=[]),a.unshift(s),function(){D(a,s),n=null}},$watchCollection:function(e,t){function n(){o=d(c);var e,t;if(b(o))if(i(o)){a!==p&&(a=p,m=a.length=0,f++),e=o.length,m!==e&&(f++,a.length=m=e);for(var n=0;e>n;n++){var r=a[n]!==a[n]&&o[n]!==o[n];r||a[n]===o[n]||(f++,a[n]=o[n])}}else{a!==h&&(a=h={},m=0,f++),e=0;for(t in o)o.hasOwnProperty(t)&&(e++,a.hasOwnProperty(t)?a[t]!==o[t]&&(f++,a[t]=o[t]):(m++,a[t]=o[t],f++));if(m>e){f++;for(t in a)a.hasOwnProperty(t)&&!o.hasOwnProperty(t)&&(m--,delete a[t])}}else a!==o&&(a=o,f++);return f}function r(){if(g?(g=!1,t(o,o,c)):t(o,l,c),u)if(b(o))if(i(o)){l=new Array(o.length);for(var e=0;e<o.length;e++)l[e]=o[e]}else{l={};for(var n in o)hr.call(o,n)&&(l[n]=o[n])}else l=o}var o,a,l,c=this,u=t.length>1,f=0,d=s(e),p=[],h={},g=!0,m=0;return this.$watch(n,r)},$digest:function(){var r,i,o,s,l,c,u,p,h,g,v,y=this.$$asyncQueue,b=this.$$postDigestQueue,x=e,$=this,k=[];f("$digest"),n=null;do{for(c=!1,p=$;y.length;){try{v=y.shift(),v.scope.$eval(v.expression)}catch(w){d(),a(w)}n=null}e:do{if(s=p.$$watchers)for(l=s.length;l--;)try{if(r=s[l])if((i=r.get(p))===(o=r.last)||(r.eq?H(i,o):"number"==typeof i&&"number"==typeof o&&isNaN(i)&&isNaN(o))){if(r===n){c=!1;break e}}else c=!0,n=r,r.last=r.eq?P(i,null):i,r.fn(i,o===m?i:o,p),5>x&&(h=4-x,k[h]||(k[h]=[]),g=C(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,g+="; newVal: "+W(i)+"; oldVal: "+W(o),k[h].push(g))}catch(w){d(),a(w)}if(!(u=p.$$childHead||p!==$&&p.$$nextSibling))for(;p!==$&&!(u=p.$$nextSibling);)p=p.$parent}while(p=u);if((c||y.length)&&!x--)throw d(),t("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,W(k))}while(c||y.length);for(d();b.length;)try{b.shift()()}catch(w){a(w)}},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this!==v&&(o(this.$$listenerCount,q(null,g,this)),e.$$childHead==this&&(e.$$childHead=this.$$nextSibling),e.$$childTail==this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=h,this.$on=this.$watch=function(){return h})}},$eval:function(e,t){return s(e)(this,t)},$evalAsync:function(e){v.$$phase||v.$$asyncQueue.length||l.defer(function(){v.$$asyncQueue.length&&v.$digest()}),this.$$asyncQueue.push({scope:this,expression:e})},$$postDigest:function(e){this.$$postDigestQueue.push(e)},$apply:function(e){try{return f("$apply"),this.$eval(e)}catch(t){a(t)}finally{d();try{v.$digest()}catch(t){throw a(t),t}}},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++;while(r=r.$parent);var i=this;return function(){n[I(n,t)]=null,g(i,1,e)}},$emit:function(e){var t,n,r,i=[],o=this,s=!1,l={name:e,targetScope:o,stopPropagation:function(){s=!0},preventDefault:function(){l.defaultPrevented=!0},defaultPrevented:!1},c=_([l],arguments,1);do{for(t=o.$$listeners[e]||i,l.currentScope=o,n=0,r=t.length;r>n;n++)if(t[n])try{t[n].apply(null,c)}catch(u){a(u)}else t.splice(n,1),n--,r--;if(s)return l;o=o.$parent}while(o);return l},$broadcast:function(e){for(var t,n,r,i=this,o=i,s=i,l={name:e,targetScope:i,preventDefault:function(){l.defaultPrevented=!0},defaultPrevented:!1},c=_([l],arguments,1);o=s;){for(l.currentScope=o,t=o.$$listeners[e]||[],n=0,r=t.length;r>n;n++)if(t[n])try{t[n].apply(null,c)}catch(u){a(u)}else t.splice(n,1),n--,r--;if(!(s=o.$$listenerCount[e]&&o.$$childHead||o!==i&&o.$$nextSibling))for(;o!==i&&!(s=o.$$nextSibling);)o=o.$parent}return l}};var v=new u;return v}]}function jn(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*(https?|ftp|file):|data:image\//;this.aHrefSanitizationWhitelist=function(t){return y(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return y(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i,o=r?t:e;return yr&&!(yr>=8)||(i=_n(n).href,""===i||i.match(o))?n:"unsafe:"+i}}}function Mn(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")}function In(e){if("self"===e)return e;if(x(e)){if(e.indexOf("***")>-1)throw gi("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Mn(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(S(e))return new RegExp("^"+e.source+"$");throw gi("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Dn(e){var t=[];return y(e)&&o(e,function(e){t.push(In(e))}),t}function Pn(){this.SCE_CONTEXTS=mi;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=Dn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=Dn(e)),t},this.$get=["$injector",function(r){function i(e,t){return"self"===e?Fn(t):!!e.exec(t.href)}function o(n){var r,o,a=_n(n.toString()),s=!1;for(r=0,o=e.length;o>r;r++)if(i(e[r],a)){s=!0;break}if(s)for(r=0,o=t.length;o>r;r++)if(i(t[r],a)){s=!1;break}return s}function a(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function s(e,t){var r=d.hasOwnProperty(e)?d[e]:null;if(!r)throw gi("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||t===n||""===t)return t;if("string"!=typeof t)throw gi("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new r(t)}function l(e){return e instanceof f?e.$$unwrapTrustedValue():e}function c(e,t){if(null===t||t===n||""===t)return t;var r=d.hasOwnProperty(e)?d[e]:null;if(r&&t instanceof r)return t.$$unwrapTrustedValue();if(e===mi.RESOURCE_URL){if(o(t))return t;throw gi("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===mi.HTML)return u(t);throw gi("unsafe","Attempting to use an unsafe value in a safe context.")}var u=function(){throw gi("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(u=r.get("$sanitize"));var f=a(),d={};return d[mi.HTML]=a(f),d[mi.CSS]=a(f),d[mi.URL]=a(f),d[mi.JS]=a(f),d[mi.RESOURCE_URL]=a(d[mi.URL]),{trustAs:s,getTrusted:c,valueOf:l}}]}function Ln(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sniffer","$sceDelegate",function(t,n,r){if(e&&n.msie&&n.msieDocumentMode<8)throw gi("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var i=L(mi);i.isEnabled=function(){return e},i.trustAs=r.trustAs,i.getTrusted=r.getTrusted,i.valueOf=r.valueOf,e||(i.trustAs=i.getTrusted=function(e,t){return t},i.valueOf=g),i.parseAs=function(e,n){var r=t(n);return r.literal&&r.constant?r:function(t,n){return i.getTrusted(e,r(t,n))}};var a=i.parseAs,s=i.getTrusted,l=i.trustAs;return o(mi,function(e,t){var n=pr(t);i[ut("parse_as_"+n)]=function(t){return a(e,t)},i[ut("get_trusted_"+n)]=function(t){return s(e,t)},i[ut("trust_as_"+n)]=function(t){return l(e,t)}}),i}]}function Hn(){this.$get=["$window","$document",function(e,t){var n,r,i={},o=d((/android (\d+)/.exec(pr((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},l=s.documentMode,c=/^(Moz|webkit|O|ms)(?=[A-Z])/,u=s.body&&s.body.style,f=!1,p=!1;if(u){for(var h in u)if(r=c.exec(h)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in u&&"webkit"),f=!!("transition"in u||n+"Transition"in u),p=!!("animation"in u||n+"Animation"in u),!o||f&&p||(f=x(s.body.style.webkitTransition),p=x(s.body.style.webkitAnimation))}return{history:!(!e.history||!e.history.pushState||4>o||a),hashchange:"onhashchange"in e&&(!l||l>7),hasEvent:function(e){if("input"==e&&9==yr)return!1;if(v(i[e])){var t=s.createElement("div");i[e]="on"+e in t}return i[e]},csp:R(),vendorPrefix:n,transitions:f,animations:p,android:o,msie:yr,msieDocumentMode:l}}]}function Rn(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(e,t,n,r){function i(i,a,s){var l,c=n.defer(),u=c.promise,f=y(s)&&!s;return l=t.defer(function(){try{c.resolve(i())}catch(t){c.reject(t),r(t)}finally{delete o[u.$$timeoutId]}f||e.$apply()},a),u.$$timeoutId=l,o[l]=c,u}var o={};return i.cancel=function(e){return e&&e.$$timeoutId in o?(o[e.$$timeoutId].reject("canceled"),delete o[e.$$timeoutId],t.defer.cancel(e.$$timeoutId)):!1},i}]}function _n(e){var t=e;return yr&&(vi.setAttribute("href",t),t=vi.href),vi.setAttribute("href",t),{href:vi.href,protocol:vi.protocol?vi.protocol.replace(/:$/,""):"",host:vi.host,search:vi.search?vi.search.replace(/^\?/,""):"",hash:vi.hash?vi.hash.replace(/^#/,""):"",hostname:vi.hostname,port:vi.port,pathname:"/"===vi.pathname.charAt(0)?vi.pathname:"/"+vi.pathname}}function Fn(e){var t=x(e)?_n(e):e;return t.protocol===yi.protocol&&t.host===yi.host}function qn(){this.$get=m(e)}function Un(e){function t(r,i){if(b(r)){var a={};return o(r,function(e,n){a[n]=t(n,e)}),a}return e.factory(r+n,i)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Bn),t("date",Qn),t("filter",Wn),t("json",Zn),t("limitTo",er),t("lowercase",wi),t("number",Vn),t("orderBy",tr),t("uppercase",Ci)}function Wn(){return function(e,t,n){if(!w(e))return e;var r=typeof n,i=[];i.check=function(e){for(var t=0;t<i.length;t++)if(!i[t](e))return!1;return!0},"function"!==r&&(n="boolean"===r&&n?function(e,t){return Ar.equals(e,t)}:function(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){for(var r in e)if("$"!==r.charAt(0)&&hr.call(e,r)&&n(e[r],t[r]))return!0;return!1}return t=(""+t).toLowerCase(),(""+e).toLowerCase().indexOf(t)>-1});var o=function(e,t){if("string"==typeof t&&"!"===t.charAt(0))return!o(e,t.substr(1));switch(typeof e){case"boolean":case"number":case"string":return n(e,t);case"object":switch(typeof t){case"object":return n(e,t);default:for(var r in e)if("$"!==r.charAt(0)&&o(e[r],t))return!0}return!1;case"array":for(var i=0;i<e.length;i++)if(o(e[i],t))return!0;return!1;default:return!1}};switch(typeof t){case"boolean":case"number":case"string":t={$:t};case"object":for(var a in t)!function(e){"undefined"!=typeof t[e]&&i.push(function(n){return o("$"==e?n:n&&n[e],t[e])})}(a);break;case"function":i.push(t);break;default:return e}for(var s=[],l=0;l<e.length;l++){var c=e[l];i.check(c)&&s.push(c)}return s}}function Bn(e){var t=e.NUMBER_FORMATS;return function(e,n){return v(n)&&(n=t.CURRENCY_SYM),zn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,2).replace(/\u00A4/g,n)}}function Vn(e){var t=e.NUMBER_FORMATS;return function(e,n){return zn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function zn(e,t,n,r,i){if(null==e||!isFinite(e)||b(e))return"";var o=0>e;e=Math.abs(e);var a=e+"",s="",l=[],c=!1;if(-1!==a.indexOf("e")){var u=a.match(/([\d\.]+)e(-?)(\d+)/);u&&"-"==u[2]&&u[3]>i+1?a="0":(s=a,c=!0)}if(c)i>0&&e>-1&&1>e&&(s=e.toFixed(i));else{var f=(a.split(bi)[1]||"").length;v(i)&&(i=Math.min(Math.max(t.minFrac,f),t.maxFrac));var d=Math.pow(10,i+1);e=Math.floor(e*d+5)/d;var p=(""+e).split(bi),h=p[0];p=p[1]||"";var g,m=0,y=t.lgSize,x=t.gSize;if(h.length>=y+x)for(m=h.length-y,g=0;m>g;g++)(m-g)%x===0&&0!==g&&(s+=n),s+=h.charAt(g);for(g=m;g<h.length;g++)(h.length-g)%y===0&&0!==g&&(s+=n),s+=h.charAt(g);for(;p.length<i;)p+="0";i&&"0"!==i&&(s+=r+p.substr(0,i))}return l.push(o?t.negPre:t.posPre),l.push(s),l.push(o?t.negSuf:t.posSuf),l.join("")}function Kn(e,t,n){var r="";for(0>e&&(r="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),r+e}function Xn(e,t,n,r){return n=n||0,function(i){var o=i["get"+e]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),Kn(o,t,r)}}function Gn(e,t){return function(n,r){var i=n["get"+e](),o=gr(t?"SHORT"+e:e);return r[o][i]}}function Yn(e){var t=-1*e.getTimezoneOffset(),n=t>=0?"+":"";return n+=Kn(Math[t>0?"floor":"ceil"](t/60),2)+Kn(Math.abs(t%60),2)}function Jn(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function Qn(e){function t(e){var t;if(t=e.match(n)){var r=new Date(0),i=0,o=0,a=t[8]?r.setUTCFullYear:r.setFullYear,s=t[8]?r.setUTCHours:r.setHours;t[9]&&(i=d(t[9]+t[10]),o=d(t[9]+t[11])),a.call(r,d(t[1]),d(t[2])-1,d(t[3]));var l=d(t[4]||0)-i,c=d(t[5]||0)-o,u=d(t[6]||0),f=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(r,l,c,u,f),r}return e}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){var i,a,s="",l=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,x(n)&&(n=ki.test(n)?d(n):t(n)),$(n)&&(n=new Date(n)),!k(n))return n;for(;r;)a=$i.exec(r),a?(l=_(l,a,1),r=l.pop()):(l.push(r),r=null);return o(l,function(t){i=xi[t],s+=i?i(n,e.DATETIME_FORMATS):t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),s}}function Zn(){return function(e){return W(e,!0)}}function er(){return function(e,t){if(!w(e)&&!x(e))return e;if(t=1/0===Math.abs(Number(t))?Number(t):d(t),x(e))return t?t>=0?e.slice(0,t):e.slice(t,e.length):"";var n,r,i=[];for(t>e.length?t=e.length:t<-e.length&&(t=-e.length),t>0?(n=0,r=t):(n=e.length+t,r=e.length);r>n;n++)i.push(e[n]);return i}}function tr(e){return function(t,n,r){function i(e,t){for(var r=0;r<n.length;r++){var i=n[r](e,t);if(0!==i)return i}return 0}function o(e,t){return V(t)?function(t,n){return e(n,t)}:e}function a(e,t){var n=typeof e,r=typeof t;return n==r?("string"==n&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t?0:t>e?-1:1):r>n?-1:1}if(!w(t))return t;if(!n)return t;n=w(n)?n:[n],n=j(n,function(t){var n=!1,r=t||g;if(x(t)&&(("+"==t.charAt(0)||"-"==t.charAt(0))&&(n="-"==t.charAt(0),t=t.substring(1)),r=e(t),r.constant)){var i=r();return o(function(e,t){return a(e[i],t[i])},n)}return o(function(e,t){return a(r(e),r(t))},n)});for(var s=[],l=0;l<t.length;l++)s.push(t[l]);return s.sort(o(i,r))}}function nr(e){return C(e)&&(e={link:e}),e.restrict=e.restrict||"AC",m(e)}function rr(e,t,n,r){function i(t,n){n=n?"-"+et(n,"-"):"",r.removeClass(e,(t?Hi:Li)+n),r.addClass(e,(t?Li:Hi)+n)}var a=this,s=e.parent().controller("form")||Ai,l=0,c=a.$error={},u=[];a.$name=t.name||t.ngForm,a.$dirty=!1,a.$pristine=!0,a.$valid=!0,a.$invalid=!1,s.$addControl(a),e.addClass(Ri),i(!0),a.$addControl=function(e){it(e.$name,"input"),u.push(e),e.$name&&(a[e.$name]=e)},a.$removeControl=function(e){e.$name&&a[e.$name]===e&&delete a[e.$name],o(c,function(t,n){a.$setValidity(n,!0,e)}),D(u,e)},a.$setValidity=function(e,t,n){var r=c[e];if(t)r&&(D(r,n),r.length||(l--,l||(i(t),a.$valid=!0,a.$invalid=!1),c[e]=!1,i(!0,e),s.$setValidity(e,!0,a)));else{if(l||i(t),r){if(M(r,n))return}else c[e]=r=[],l++,i(!1,e),s.$setValidity(e,!1,a);r.push(n),a.$valid=!1,a.$invalid=!0}},a.$setDirty=function(){r.removeClass(e,Ri),r.addClass(e,_i),a.$dirty=!0,a.$pristine=!1,s.$setDirty()},a.$setPristine=function(){r.removeClass(e,_i),r.addClass(e,Ri),a.$dirty=!1,a.$pristine=!0,o(u,function(e){e.$setPristine()})}}function ir(e,t,r,i){return e.$setValidity(t,r),r?i:n}function or(e,t,n){var r=n.prop("validity");if(b(r)){var i=function(n){return e.$error[t]||!(r.badInput||r.customError||r.typeMismatch)||r.valueMissing?n:(e.$setValidity(t,!1),void 0)};e.$parsers.push(i)}}function ar(e,t,n,i,o,a){var s=t.prop("validity"),l=t[0].placeholder,c={};if(!o.android){var u=!1;t.on("compositionstart",function(){u=!0}),t.on("compositionend",function(){u=!1,f()})}var f=function(r){if(!u){var o=t.val();if(yr&&"input"===(r||c).type&&t[0].placeholder!==l)return l=t[0].placeholder,void 0;V(n.ngTrim||"T")&&(o=Or(o)),(i.$viewValue!==o||s&&""===o&&!s.valueMissing)&&(e.$$phase?i.$setViewValue(o):e.$apply(function(){i.$setViewValue(o)}))}};if(o.hasEvent("input"))t.on("input",f);else{var p,h=function(){p||(p=a.defer(function(){f(),p=null}))};t.on("keydown",function(e){var t=e.keyCode;91===t||t>15&&19>t||t>=37&&40>=t||h()}),o.hasEvent("paste")&&t.on("paste cut",h)}t.on("change",f),i.$render=function(){t.val(i.$isEmpty(i.$viewValue)?"":i.$viewValue)};var g,m,v=n.ngPattern;if(v){var y=function(e,t){return ir(i,"pattern",i.$isEmpty(t)||e.test(t),t)};m=v.match(/^\/(.*)\/([gim]*)$/),m?(v=new RegExp(m[1],m[2]),g=function(e){return y(v,e)}):g=function(n){var i=e.$eval(v);if(!i||!i.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",v,i,z(t));return y(i,n)},i.$formatters.push(g),i.$parsers.push(g)}if(n.ngMinlength){var b=d(n.ngMinlength),x=function(e){return ir(i,"minlength",i.$isEmpty(e)||e.length>=b,e)};i.$parsers.push(x),i.$formatters.push(x)}if(n.ngMaxlength){var $=d(n.ngMaxlength),k=function(e){return ir(i,"maxlength",i.$isEmpty(e)||e.length<=$,e)};i.$parsers.push(k),i.$formatters.push(k)}}function sr(e,t,r,i,o,a){if(ar(e,t,r,i,o,a),i.$parsers.push(function(e){var t=i.$isEmpty(e);return t||Ii.test(e)?(i.$setValidity("number",!0),""===e?null:t?e:parseFloat(e)):(i.$setValidity("number",!1),n)}),or(i,"number",t),i.$formatters.push(function(e){return i.$isEmpty(e)?"":""+e}),r.min){var s=function(e){var t=parseFloat(r.min);return ir(i,"min",i.$isEmpty(e)||e>=t,e)};i.$parsers.push(s),i.$formatters.push(s)}if(r.max){var l=function(e){var t=parseFloat(r.max);return ir(i,"max",i.$isEmpty(e)||t>=e,e)};i.$parsers.push(l),i.$formatters.push(l)}i.$formatters.push(function(e){return ir(i,"number",i.$isEmpty(e)||$(e),e)})}function lr(e,t,n,r,i,o){ar(e,t,n,r,i,o);var a=function(e){return ir(r,"url",r.$isEmpty(e)||ji.test(e),e)};r.$formatters.push(a),r.$parsers.push(a)}function cr(e,t,n,r,i,o){ar(e,t,n,r,i,o);var a=function(e){return ir(r,"email",r.$isEmpty(e)||Mi.test(e),e)};r.$formatters.push(a),r.$parsers.push(a)}function ur(e,t,n,r){v(n.name)&&t.attr("name",c()),t.on("click",function(){t[0].checked&&e.$apply(function(){r.$setViewValue(n.value)})}),r.$render=function(){var e=n.value;t[0].checked=e==r.$viewValue},n.$observe("value",r.$render)}function fr(e,t,n,r){var i=n.ngTrueValue,o=n.ngFalseValue;x(i)||(i=!0),x(o)||(o=!1),t.on("click",function(){e.$apply(function(){r.$setViewValue(t[0].checked)})}),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return e!==i},r.$formatters.push(function(e){return e===i}),r.$parsers.push(function(e){return e?i:o})}function dr(e,t){return e="ngClass"+e,["$animate",function(n){function r(e,t){var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],o=0;o<t.length;o++)if(i==t[o])continue e;n.push(i)}return n}function i(e){if(w(e))return e;if(x(e))return e.split(" ");if(b(e)){var t=[];return o(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t}return e}return{restrict:"AC",link:function(a,s,l){function c(e){var t=f(e,1);l.$addClass(t)}function u(e){var t=f(e,-1);l.$removeClass(t)}function f(e,t){var n=s.data("$classCounts")||{},r=[];return o(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&r.push(e))}),s.data("$classCounts",n),r.join(" ")}function d(e,t){var i=r(t,e),o=r(e,t);o=f(o,-1),i=f(i,1),0===i.length?n.removeClass(s,o):0===o.length?n.addClass(s,i):n.setClass(s,i,o)}function p(e){if(t===!0||a.$index%2===t){var n=i(e||[]);if(h){if(!H(e,h)){var r=i(h);d(r,n)}}else c(n)}h=L(e)}var h;a.$watch(l[e],p,!0),l.$observe("class",function(){p(a.$eval(l[e]))}),"ngClass"!==e&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(l[e]));o===t?c(s):u(s)}})}}}]}var pr=function(e){return x(e)?e.toLowerCase():e},hr=Object.prototype.hasOwnProperty,gr=function(e){return x(e)?e.toUpperCase():e},mr=function(e){return x(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},vr=function(e){return x(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(-33&e.charCodeAt(0))}):e};"i"!=="I".toLowerCase()&&(pr=mr,gr=vr);var yr,br,xr,$r,kr,wr=[].slice,Cr=[].push,Sr=Object.prototype.toString,Er=r("ng"),Ar=e.angular||(e.angular={}),Tr=["0","0","0"];yr=d((/msie (\d+)/.exec(pr(navigator.userAgent))||[])[1]),isNaN(yr)&&(yr=d((/trident\/.*; rv:(\d+)/.exec(pr(navigator.userAgent))||[])[1])),h.$inject=[],g.$inject=[];var Or=function(){return String.prototype.trim?function(e){return x(e)?e.trim():e}:function(e){return x(e)?e.replace(/^\s\s*/,"").replace(/\s\s*$/,""):e}}();kr=9>yr?function(e){return e=e.nodeName?e:e[0],e.scopeName&&"HTML"!=e.scopeName?gr(e.scopeName+":"+e.nodeName):e.nodeName}:function(e){return e.nodeName?e.nodeName:e[0].nodeName};var Nr=/[A-Z]/g,jr={full:"1.2.17",major:1,minor:2,dot:17,codeName:"quantum-disentanglement"},Mr=gt.cache={},Ir=gt.expando="ng"+(new Date).getTime(),Dr=1,Pr=e.document.addEventListener?function(e,t,n){e.addEventListener(t,n,!1)}:function(e,t,n){e.attachEvent("on"+t,n)},Lr=e.document.removeEventListener?function(e,t,n){e.removeEventListener(t,n,!1)}:function(e,t,n){e.detachEvent("on"+t,n)},Hr=(gt._data=function(e){return this.cache[e[this.expando]]||{}},/([\:\-\_]+(.))/g),Rr=/^moz([A-Z])/,_r=r("jqLite"),Fr=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,qr=/<|&#?\w+;/,Ur=/<([\w:]+)/,Wr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Br={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Br.optgroup=Br.option,Br.tbody=Br.tfoot=Br.colgroup=Br.caption=Br.thead,Br.th=Br.td;var Vr=gt.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===t.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),gt(e).on("load",r))},toString:function(){var e=[];return o(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return e>=0?br(this[e]):br(this[this.length+e])},length:0,push:Cr,sort:[].sort,splice:[].splice},zr={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){zr[pr(e)]=e});var Kr={};o("input,select,option,textarea,button,form,details".split(","),function(e){Kr[gr(e)]=!0}),o({data:$t,inheritedData:At,scope:function(e){return br(e).data("$scope")||At(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return br(e).data("$isolateScope")||br(e).data("$isolateScopeNoTemplate")},controller:Et,injector:function(e){return At(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:kt,css:function(e,t,r){if(t=ut(t),!y(r)){var i;return 8>=yr&&(i=e.currentStyle&&e.currentStyle[t],""===i&&(i="auto")),i=i||e.style[t],8>=yr&&(i=""===i?n:i),i}e.style[t]=r},attr:function(e,t,r){var i=pr(t);if(zr[i]){if(!y(r))return e[t]||(e.attributes.getNamedItem(t)||h).specified?i:n;r?(e[t]=!0,e.setAttribute(t,i)):(e[t]=!1,e.removeAttribute(i))}else if(y(r))e.setAttribute(t,r);else if(e.getAttribute){var o=e.getAttribute(t,2);return null===o?n:o}},prop:function(e,t,n){return y(n)?(e[t]=n,void 0):e[t]},text:function(){function e(e,n){var r=t[e.nodeType];return v(n)?r?e[r]:"":(e[r]=n,void 0)}var t=[];return 9>yr?(t[1]="innerText",t[3]="nodeValue"):t[1]=t[3]="textContent",e.$dv="",e}(),val:function(e,t){if(v(t)){if("SELECT"===kr(e)&&e.multiple){var n=[];return o(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){if(v(t))return e.innerHTML;for(var n=0,r=e.childNodes;n<r.length;n++)vt(r[n]);e.innerHTML=t},empty:Tt},function(e,t){gt.prototype[t]=function(t,r){var i,o;if(e!==Tt&&(2==e.length&&e!==kt&&e!==Et?t:r)===n){if(b(t)){for(i=0;i<this.length;i++)if(e===$t)e(this[i],t);else for(o in t)e(this[i],o,t[o]);return this}for(var a=e.$dv,s=a===n?Math.min(this.length,1):this.length,l=0;s>l;l++){var c=e(this[l],t,r);a=a?a+c:c}return a}for(i=0;i<this.length;i++)e(this[i],t,r);return this}}),o({removeData:bt,dealoc:vt,on:function wo(e,n,r,i){if(y(i))throw _r("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");var a=xt(e,"events"),s=xt(e,"handle");a||xt(e,"events",a={}),s||xt(e,"handle",s=Nt(e,a)),o(n.split(" "),function(n){var i=a[n];if(!i){if("mouseenter"==n||"mouseleave"==n){var o=t.body.contains||t.body.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))
}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1};a[n]=[];var l={mouseleave:"mouseout",mouseenter:"mouseover"};wo(e,l[n],function(e){var t=this,r=e.relatedTarget;(!r||r!==t&&!o(t,r))&&s(e,n)})}else Pr(e,n,s),a[n]=[];i=a[n]}i.push(r)})},off:yt,one:function(e,t,n){e=br(e),e.on(t,function r(){e.off(t,n),e.off(t,r)}),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;vt(e),o(new gt(t),function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t})},children:function(e){var t=[];return o(e.childNodes,function(e){1===e.nodeType&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){o(new gt(t),function(t){(1===e.nodeType||11===e.nodeType)&&e.appendChild(t)})},prepend:function(e,t){if(1===e.nodeType){var n=e.firstChild;o(new gt(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){t=br(t)[0];var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)},remove:function(e){vt(e);var t=e.parentNode;t&&t.removeChild(e)},after:function(e,t){var n=e,r=e.parentNode;o(new gt(t),function(e){r.insertBefore(e,n.nextSibling),n=e})},addClass:Ct,removeClass:wt,toggleClass:function(e,t,n){t&&o(t.split(" "),function(t){var r=n;v(r)&&(r=!kt(e,t)),(r?Ct:wt)(e,t)})},parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},next:function(e){if(e.nextElementSibling)return e.nextElementSibling;for(var t=e.nextSibling;null!=t&&1!==t.nodeType;)t=t.nextSibling;return t},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:mt,triggerHandler:function(e,t,n){var r=(xt(e,"events")||{})[t];n=n||[];var i=[{preventDefault:h,stopPropagation:h}];o(r,function(t){t.apply(e,i.concat(n))})}},function(e,t){gt.prototype[t]=function(t,n,r){for(var i,o=0;o<this.length;o++)v(i)?(i=e(this[o],t,n,r),y(i)&&(i=br(i))):St(i,e(this[o],t,n,r));return y(i)?i:this},gt.prototype.bind=gt.prototype.on,gt.prototype.unbind=gt.prototype.off}),Mt.prototype={put:function(e,t){this[jt(e)]=t},get:function(e){return this[jt(e)]},remove:function(e){var t=this[e=jt(e)];return delete this[e],t}};var Xr=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Gr=/,/,Yr=/^\s*(_?)(\S+?)\1\s*$/,Jr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Qr=r("$injector"),Zr=r("$animate"),ei=["$provide",function(e){this.$$selectors={},this.register=function(t,n){var r=t+"-animation";if(t&&"."!=t.charAt(0))throw Zr("notcsel","Expecting class selector starting with '.' got '{0}'.",t);this.$$selectors[t.substr(1)]=r,e.factory(r,n)},this.classNameFilter=function(e){return 1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null),this.$$classNameFilter},this.$get=["$timeout","$$asyncCallback",function(e,t){function n(e){e&&t(e)}return{enter:function(e,t,r,i){r?r.after(e):(t&&t[0]||(t=r.parent()),t.append(e)),n(i)},leave:function(e,t){e.remove(),n(t)},move:function(e,t,n,r){this.enter(e,t,n,r)},addClass:function(e,t,r){t=x(t)?t:w(t)?t.join(" "):"",o(e,function(e){Ct(e,t)}),n(r)},removeClass:function(e,t,r){t=x(t)?t:w(t)?t.join(" "):"",o(e,function(e){wt(e,t)}),n(r)},setClass:function(e,t,r,i){o(e,function(e){Ct(e,t),wt(e,r)}),n(i)},enabled:h}}]}],ti=r("$compile");qt.$inject=["$provide","$$sanitizeUriProvider"];var ni=/^(x[\:\-_]|data[\:\-_])/i,ri=r("$interpolate"),ii=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,oi={http:80,https:443,ftp:21},ai=r("$location");hn.prototype=pn.prototype=dn.prototype={$$html5:!1,$$replace:!1,absUrl:gn("$$absUrl"),url:function(e,t){if(v(e))return this.$$url;var n=ii.exec(e);return n[1]&&this.path(decodeURIComponent(n[1])),(n[2]||n[1])&&this.search(n[3]||""),this.hash(n[5]||"",t),this},protocol:gn("$$protocol"),host:gn("$$host"),port:gn("$$port"),path:mn("$$path",function(e){return"/"==e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(x(e))this.$$search=X(e);else{if(!b(e))throw ai("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");this.$$search=e}break;default:v(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:mn("$$hash",g),replace:function(){return this.$$replace=!0,this}};var si,li=r("$parse"),ci={},ui={"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:h,"+":function(e,t,r,i){return r=r(e,t),i=i(e,t),y(r)?y(i)?r+i:r:y(i)?i:n},"-":function(e,t,n,r){return n=n(e,t),r=r(e,t),(y(n)?n:0)-(y(r)?r:0)},"*":function(e,t,n,r){return n(e,t)*r(e,t)},"/":function(e,t,n,r){return n(e,t)/r(e,t)},"%":function(e,t,n,r){return n(e,t)%r(e,t)},"^":function(e,t,n,r){return n(e,t)^r(e,t)},"=":h,"===":function(e,t,n,r){return n(e,t)===r(e,t)},"!==":function(e,t,n,r){return n(e,t)!==r(e,t)},"==":function(e,t,n,r){return n(e,t)==r(e,t)},"!=":function(e,t,n,r){return n(e,t)!=r(e,t)},"<":function(e,t,n,r){return n(e,t)<r(e,t)},">":function(e,t,n,r){return n(e,t)>r(e,t)},"<=":function(e,t,n,r){return n(e,t)<=r(e,t)},">=":function(e,t,n,r){return n(e,t)>=r(e,t)},"&&":function(e,t,n,r){return n(e,t)&&r(e,t)},"||":function(e,t,n,r){return n(e,t)||r(e,t)},"&":function(e,t,n,r){return n(e,t)&r(e,t)},"|":function(e,t,n,r){return r(e,t)(e,t,n(e,t))},"!":function(e,t,n){return!n(e,t)}},fi={n:"\n",f:"\f",r:"\r",t:" ",v:" ","'":"'",'"':'"'},di=function(e){this.options=e};di.prototype={constructor:di,lex:function(e){for(this.text=e,this.index=0,this.ch=n,this.lastCh=":",this.tokens=[];this.index<this.text.length;){if(this.ch=this.text.charAt(this.index),this.is("\"'"))this.readString(this.ch);else if(this.isNumber(this.ch)||this.is(".")&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(this.ch))this.readIdent();else if(this.is("(){}[].,;:?"))this.tokens.push({index:this.index,text:this.ch}),this.index++;else{if(this.isWhitespace(this.ch)){this.index++;continue}var t=this.ch+this.peek(),r=t+this.peek(2),i=ui[this.ch],o=ui[t],a=ui[r];a?(this.tokens.push({index:this.index,text:r,fn:a}),this.index+=3):o?(this.tokens.push({index:this.index,text:t,fn:o}),this.index+=2):i?(this.tokens.push({index:this.index,text:this.ch,fn:i}),this.index+=1):this.throwError("Unexpected next character ",this.index,this.index+1)}this.lastCh=this.ch}return this.tokens},is:function(e){return-1!==e.indexOf(this.ch)},was:function(e){return-1!==e.indexOf(this.lastCh)},peek:function(e){var t=e||1;return this.index+t<this.text.length?this.text.charAt(this.index+t):!1},isNumber:function(e){return e>="0"&&"9">=e},isWhitespace:function(e){return" "===e||"\r"===e||" "===e||"\n"===e||" "===e||"Â "===e},isIdent:function(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e||"$"===e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=y(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw li("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=pr(this.text.charAt(this.index));if("."==n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}e=1*e,this.tokens.push({index:t,text:e,literal:!0,constant:!0,fn:function(){return e}})},readIdent:function(){for(var e,t,n,r,i=this,o="",a=this.index;this.index<this.text.length&&(r=this.text.charAt(this.index),"."===r||this.isIdent(r)||this.isNumber(r));)"."===r&&(e=this.index),o+=r,this.index++;if(e)for(t=this.index;t<this.text.length;){if(r=this.text.charAt(t),"("===r){n=o.substr(e-a+1),o=o.substr(0,e-a),this.index=t;break}if(!this.isWhitespace(r))break;t++}var s={index:a,text:o};if(ui.hasOwnProperty(o))s.fn=ui[o],s.literal=!0,s.constant=!0;else{var l=Sn(o,this.options,this.text);s.fn=f(function(e,t){return l(e,t)},{assign:function(e,t){return $n(e,o,t,i.text,i.options)}})}this.tokens.push(s),n&&(this.tokens.push({index:e,text:"."}),this.tokens.push({index:e+1,text:n}))},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{var s=fi[o];n+=s?s:o}i=!1}else if("\\"===o)i=!0;else{if(o===e)return this.index++,this.tokens.push({index:t,text:r,string:n,literal:!0,constant:!0,fn:function(){return n}}),void 0;n+=o}this.index++}this.throwError("Unterminated quote",t)}};var pi=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n};pi.ZERO=f(function(){return 0},{constant:!0}),pi.prototype={constructor:pi,parse:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t.literal=!!t.literal,t.constant=!!t.constant,t},primary:function(){var e;if(this.expect("("))e=this.filterChain(),this.consume(")");else if(this.expect("["))e=this.arrayDeclaration();else if(this.expect("{"))e=this.object();else{var t=this.expect();e=t.fn,e||this.throwError("not a primary expression",t),e.literal=!!t.literal,e.constant=!!t.constant}for(var n,r;n=this.expect("(","[",".");)"("===n.text?(e=this.functionCall(e,r),r=null):"["===n.text?(r=e,e=this.objectIndex(e)):"."===n.text?(r=e,e=this.fieldAccess(e)):this.throwError("IMPOSSIBLE");return e},throwError:function(e,t){throw li("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},peekToken:function(){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){if(this.tokens.length>0){var i=this.tokens[0],o=i.text;if(o===e||o===t||o===n||o===r||!e&&!t&&!n&&!r)return i}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return i?(this.tokens.shift(),i):!1},consume:function(e){this.expect(e)||this.throwError("is unexpected, expecting ["+e+"]",this.peek())},unaryFn:function(e,t){return f(function(n,r){return e(n,r,t)},{constant:t.constant})},ternaryFn:function(e,t,n){return f(function(r,i){return e(r,i)?t(r,i):n(r,i)},{constant:e.constant&&t.constant&&n.constant})},binaryFn:function(e,t,n){return f(function(r,i){return t(r,i,e,n)},{constant:e.constant&&n.constant})},statements:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.filterChain()),!this.expect(";"))return 1===e.length?e[0]:function(t,n){for(var r,i=0;i<e.length;i++){var o=e[i];o&&(r=o(t,n))}return r}},filterChain:function(){for(var e,t=this.expression();;){if(!(e=this.expect("|")))return t;t=this.binaryFn(t,e.fn,this.filter())}},filter:function(){for(var e=this.expect(),t=this.$filter(e.text),n=[];;){if(!(e=this.expect(":"))){var r=function(e,r,i){for(var o=[i],a=0;a<n.length;a++)o.push(n[a](e,r));return t.apply(e,o)};return function(){return r}}n.push(this.expression())}},expression:function(){return this.assignment()},assignment:function(){var e,t,n=this.ternary();return(t=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,t.index)+"] can not be assigned to",t),e=this.ternary(),function(t,r){return n.assign(t,e(t,r),r)}):n},ternary:function(){var e,t,n=this.logicalOR();return(t=this.expect("?"))?(e=this.ternary(),(t=this.expect(":"))?this.ternaryFn(n,e,this.ternary()):(this.throwError("expected :",t),void 0)):n},logicalOR:function(){for(var e,t=this.logicalAND();;){if(!(e=this.expect("||")))return t;t=this.binaryFn(t,e.fn,this.logicalAND())}},logicalAND:function(){var e,t=this.equality();return(e=this.expect("&&"))&&(t=this.binaryFn(t,e.fn,this.logicalAND())),t},equality:function(){var e,t=this.relational();return(e=this.expect("==","!=","===","!=="))&&(t=this.binaryFn(t,e.fn,this.equality())),t},relational:function(){var e,t=this.additive();return(e=this.expect("<",">","<=",">="))&&(t=this.binaryFn(t,e.fn,this.relational())),t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t=this.binaryFn(t,e.fn,this.multiplicative());return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t=this.binaryFn(t,e.fn,this.unary());return t},unary:function(){var e;return this.expect("+")?this.primary():(e=this.expect("-"))?this.binaryFn(pi.ZERO,e.fn,this.unary()):(e=this.expect("!"))?this.unaryFn(e.fn,this.unary()):this.primary()},fieldAccess:function(e){var t=this,n=this.expect().text,r=Sn(n,this.options,this.text);return f(function(t,n,i){return r(i||e(t,n))},{assign:function(r,i,o){return $n(e(r,o),n,i,t.text,t.options)}})},objectIndex:function(e){var t=this,r=this.expression();return this.consume("]"),f(function(i,o){var a,s,l=e(i,o),c=r(i,o);return l?(a=xn(l[c],t.text),a&&a.then&&t.options.unwrapPromises&&(s=a,"$$v"in a||(s.$$v=n,s.then(function(e){s.$$v=e})),a=a.$$v),a):n},{assign:function(n,i,o){var a=r(n,o),s=xn(e(n,o),t.text);return s[a]=i}})},functionCall:function(e,t){var n=[];if(")"!==this.peekToken().text)do n.push(this.expression());while(this.expect(","));this.consume(")");var r=this;return function(i,o){for(var a=[],s=t?t(i,o):i,l=0;l<n.length;l++)a.push(n[l](i,o));var c=e(i,o,s)||h;xn(s,r.text),xn(c,r.text);var u=c.apply?c.apply(s,a):c(a[0],a[1],a[2],a[3],a[4]);return xn(u,r.text)}},arrayDeclaration:function(){var e=[],t=!0;if("]"!==this.peekToken().text)do{if(this.peek("]"))break;var n=this.expression();e.push(n),n.constant||(t=!1)}while(this.expect(","));return this.consume("]"),f(function(t,n){for(var r=[],i=0;i<e.length;i++)r.push(e[i](t,n));return r},{literal:!0,constant:t})},object:function(){var e=[],t=!0;if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.expect(),r=n.string||n.text;this.consume(":");var i=this.expression();e.push({key:r,value:i}),i.constant||(t=!1)}while(this.expect(","));return this.consume("}"),f(function(t,n){for(var r={},i=0;i<e.length;i++){var o=e[i];r[o.key]=o.value(t,n)}return r},{literal:!0,constant:t})}};var hi={},gi=r("$sce"),mi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},vi=t.createElement("a"),yi=_n(e.location.href,!0);Un.$inject=["$provide"],Bn.$inject=["$locale"],Vn.$inject=["$locale"];var bi=".",xi={yyyy:Xn("FullYear",4),yy:Xn("FullYear",2,0,!0),y:Xn("FullYear",1),MMMM:Gn("Month"),MMM:Gn("Month",!0),MM:Xn("Month",2,1),M:Xn("Month",1,1),dd:Xn("Date",2),d:Xn("Date",1),HH:Xn("Hours",2),H:Xn("Hours",1),hh:Xn("Hours",2,-12),h:Xn("Hours",1,-12),mm:Xn("Minutes",2),m:Xn("Minutes",1),ss:Xn("Seconds",2),s:Xn("Seconds",1),sss:Xn("Milliseconds",3),EEEE:Gn("Day"),EEE:Gn("Day",!0),a:Jn,Z:Yn},$i=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,ki=/^\-?\d+$/;Qn.$inject=["$locale"];var wi=m(pr),Ci=m(gr);tr.$inject=["$parse"];var Si=m({restrict:"E",compile:function(e,n){return 8>=yr&&(n.href||n.name||n.$set("href",""),e.append(t.createComment("IE fix"))),n.href||n.xlinkHref||n.name?void 0:function(e,t){var n="[object SVGAnimatedString]"===Sr.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}),Ei={};o(zr,function(e,t){if("multiple"!=e){var n=Ut("ng-"+t);Ei[n]=function(){return{priority:100,link:function(e,r,i){e.$watch(i[n],function(e){i.$set(t,!!e)})}}}}}),o(["src","srcset","href"],function(e){var t=Ut("ng-"+e);Ei[t]=function(){return{priority:99,link:function(n,r,i){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===Sr.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(t,function(e){e&&(i.$set(a,e),yr&&o&&r.prop(o,i[a]))})}}}});var Ai={$addControl:h,$removeControl:h,$setValidity:h,$setDirty:h,$setPristine:h};rr.$inject=["$element","$attrs","$scope","$animate"];var Ti=function(e){return["$timeout",function(t){var r={name:"form",restrict:e?"EAC":"E",controller:rr,compile:function(){return{pre:function(e,r,i,o){if(!i.action){var a=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1};Pr(r[0],"submit",a),r.on("$destroy",function(){t(function(){Lr(r[0],"submit",a)},0,!1)})}var s=r.parent().controller("form"),l=i.name||i.ngForm;l&&$n(e,l,o,l),s&&r.on("$destroy",function(){s.$removeControl(o),l&&$n(e,l,n,l),f(o,Ai)})}}}};return r}]},Oi=Ti(),Ni=Ti(!0),ji=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Mi=/^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i,Ii=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Di={text:ar,number:sr,url:lr,email:cr,radio:ur,checkbox:fr,hidden:h,button:h,submit:h,reset:h,file:h},Pi=["$browser","$sniffer",function(e,t){return{restrict:"E",require:"?ngModel",link:function(n,r,i,o){o&&(Di[pr(i.type)]||Di.text)(n,r,i,o,t,e)}}}],Li="ng-valid",Hi="ng-invalid",Ri="ng-pristine",_i="ng-dirty",Fi=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate",function(e,t,n,i,a,s){function l(e,t){t=t?"-"+et(t,"-"):"",s.removeClass(i,(e?Hi:Li)+t),s.addClass(i,(e?Li:Hi)+t)}this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$name=n.name;var c=a(n.ngModel),u=c.assign;if(!u)throw r("ngModel")("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,z(i));this.$render=h,this.$isEmpty=function(e){return v(e)||""===e||null===e||e!==e};var f=i.inheritedData("$formController")||Ai,d=0,p=this.$error={};i.addClass(Ri),l(!0),this.$setValidity=function(e,t){p[e]!==!t&&(t?(p[e]&&d--,d||(l(!0),this.$valid=!0,this.$invalid=!1)):(l(!1),this.$invalid=!0,this.$valid=!1,d++),p[e]=!t,l(t,e),f.$setValidity(e,t,this))},this.$setPristine=function(){this.$dirty=!1,this.$pristine=!0,s.removeClass(i,_i),s.addClass(i,Ri)},this.$setViewValue=function(n){this.$viewValue=n,this.$pristine&&(this.$dirty=!0,this.$pristine=!1,s.removeClass(i,Ri),s.addClass(i,_i),f.$setDirty()),o(this.$parsers,function(e){n=e(n)}),this.$modelValue!==n&&(this.$modelValue=n,u(e,n),o(this.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}}))};var g=this;e.$watch(function(){var t=c(e);if(g.$modelValue!==t){var n=g.$formatters,r=n.length;for(g.$modelValue=t;r--;)t=n[r](t);g.$viewValue!==t&&(g.$viewValue=t,g.$render())}return t})}],qi=function(){return{require:["ngModel","^?form"],controller:Fi,link:function(e,t,n,r){var i=r[0],o=r[1]||Ai;o.$addControl(i),e.$on("$destroy",function(){o.$removeControl(i)})}}},Ui=m({require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),Wi=function(){return{require:"?ngModel",link:function(e,t,n,r){if(r){n.required=!0;var i=function(e){return n.required&&r.$isEmpty(e)?(r.$setValidity("required",!1),void 0):(r.$setValidity("required",!0),e)};r.$formatters.push(i),r.$parsers.unshift(i),n.$observe("required",function(){i(r.$viewValue)})}}}},Bi=function(){return{require:"ngModel",link:function(e,t,r,i){var a=/\/(.*)\//.exec(r.ngList),s=a&&new RegExp(a[1])||r.ngList||",",l=function(e){if(!v(e)){var t=[];return e&&o(e.split(s),function(e){e&&t.push(Or(e))}),t}};i.$parsers.push(l),i.$formatters.push(function(e){return w(e)?e.join(", "):n}),i.$isEmpty=function(e){return!e||!e.length}}}},Vi=/^(true|false|\d+)$/,zi=function(){return{priority:100,compile:function(e,t){return Vi.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},Ki=nr(function(e,t,r){t.addClass("ng-binding").data("$binding",r.ngBind),e.$watch(r.ngBind,function(e){t.text(e==n?"":e)})}),Xi=["$interpolate",function(e){return function(t,n,r){var i=e(n.attr(r.$attr.ngBindTemplate));n.addClass("ng-binding").data("$binding",i),r.$observe("ngBindTemplate",function(e){n.text(e)})}}],Gi=["$sce","$parse",function(e,t){return function(n,r,i){function o(){return(a(n)||"").toString()}r.addClass("ng-binding").data("$binding",i.ngBindHtml);var a=t(i.ngBindHtml);n.$watch(o,function(){r.html(e.getTrustedHtml(a(n))||"")})}}],Yi=dr("",!0),Ji=dr("Odd",0),Qi=dr("Even",1),Zi=nr({compile:function(e,t){t.$set("ngCloak",n),e.removeClass("ng-cloak")}}),eo=[function(){return{scope:!0,controller:"@",priority:500}}],to={};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=Ut("ng-"+e);to[t]=["$parse",function(n){return{compile:function(r,i){var o=n(i[t]);return function(t,n){n.on(pr(e),function(e){t.$apply(function(){o(t,{$event:e})})})}}}}]});var no=["$animate",function(e){return{transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,l,c;n.$watch(i.ngIf,function(o){V(o)?l||(l=n.$new(),a(l,function(n){n[n.length++]=t.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},e.enter(n,r.parent(),r)})):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),s&&(c=at(s.clone),e.leave(c,function(){c=null}),s=null))})}}}],ro=["$http","$templateCache","$anchorScroll","$animate","$sce",function(e,t,n,r,i){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ar.noop,compile:function(o,a){var s=a.ngInclude||a.src,l=a.onload||"",c=a.autoscroll;return function(o,a,u,f,d){var p,h,g,m=0,v=function(){h&&(h.remove(),h=null),p&&(p.$destroy(),p=null),g&&(r.leave(g,function(){h=null}),h=g,g=null)};o.$watch(i.parseAsResourceUrl(s),function(i){var s=function(){!y(c)||c&&!o.$eval(c)||n()},u=++m;i?(e.get(i,{cache:t}).success(function(e){if(u===m){var t=o.$new();f.template=e;var n=d(t,function(e){v(),r.enter(e,null,a,s)});p=t,g=n,p.$emit("$includeContentLoaded"),o.$eval(l)}}).error(function(){u===m&&v()}),o.$emit("$includeContentRequested")):(v(),f.template=null)})}}}}],io=["$compile",function(e){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(t,n,r,i){n.html(i.template),e(n.contents())(t)}}}],oo=nr({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),ao=nr({terminal:!0,priority:1e3}),so=["$locale","$interpolate",function(e,t){var n=/{}/g;return{restrict:"EA",link:function(r,i,a){var s=a.count,l=a.$attr.when&&i.attr(a.$attr.when),c=a.offset||0,u=r.$eval(l)||{},f={},d=t.startSymbol(),p=t.endSymbol(),h=/^when(Minus)?(.+)$/;o(a,function(e,t){h.test(t)&&(u[pr(t.replace("when","").replace("Minus","-"))]=i.attr(a.$attr[t]))}),o(u,function(e,r){f[r]=t(e.replace(n,d+s+"-"+c+p))}),r.$watch(function(){var t=parseFloat(r.$eval(s));return isNaN(t)?"":(t in u||(t=e.pluralCat(t-c)),f[t](r,i,!0))},function(e){i.text(e)})}}}],lo=["$parse","$animate",function(e,n){function a(e){return e.clone[0]}function s(e){return e.clone[e.clone.length-1]}var l="$$NG_REMOVED",c=r("ngRepeat");return{transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,link:function(r,u,f,d,p){var h,g,m,v,y,b,x,$,k,w=f.ngRepeat,C=w.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),S={$id:jt};if(!C)throw c("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",w);if(b=C[1],x=C[2],h=C[3],h?(g=e(h),m=function(e,t,n){return k&&(S[k]=e),S[$]=t,S.$index=n,g(r,S)}):(v=function(e,t){return jt(t)},y=function(e){return e}),C=b.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!C)throw c("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",b);$=C[3]||C[1],k=C[2];var E={};r.$watchCollection(x,function(e){var f,d,h,g,b,x,C,S,A,T,O,N,j=u[0],M={},I=[];if(i(e))T=e,A=m||v;else{A=m||y,T=[];for(x in e)e.hasOwnProperty(x)&&"$"!=x.charAt(0)&&T.push(x);T.sort()}for(g=T.length,d=I.length=T.length,f=0;d>f;f++)if(x=e===T?f:T[f],C=e[x],S=A(x,C,f),it(S,"`track by` id"),E.hasOwnProperty(S))O=E[S],delete E[S],M[S]=O,I[f]=O;else{if(M.hasOwnProperty(S))throw o(I,function(e){e&&e.scope&&(E[e.id]=e)}),c("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}",w,S);I[f]={id:S},M[S]=!1}for(x in E)E.hasOwnProperty(x)&&(O=E[x],N=at(O.clone),n.leave(N),o(N,function(e){e[l]=!0}),O.scope.$destroy());for(f=0,d=T.length;d>f;f++){if(x=e===T?f:T[f],C=e[x],O=I[f],I[f-1]&&(j=s(I[f-1])),O.scope){b=O.scope,h=j;do h=h.nextSibling;while(h&&h[l]);a(O)!=h&&n.move(at(O.clone),null,br(j)),j=s(O)}else b=r.$new();b[$]=C,k&&(b[k]=x),b.$index=f,b.$first=0===f,b.$last=f===g-1,b.$middle=!(b.$first||b.$last),b.$odd=!(b.$even=0===(1&f)),O.scope||p(b,function(e){e[e.length++]=t.createComment(" end ngRepeat: "+w+" "),n.enter(e,null,br(j)),j=e,O.scope=b,O.clone=e,M[O.id]=O})}E=M})}}}],co=["$animate",function(e){return function(t,n,r){t.$watch(r.ngShow,function(t){e[V(t)?"removeClass":"addClass"](n,"ng-hide")})}}],uo=["$animate",function(e){return function(t,n,r){t.$watch(r.ngHide,function(t){e[V(t)?"addClass":"removeClass"](n,"ng-hide")})}}],fo=nr(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&o(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),po=["$animate",function(e){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(t,n,r,i){var a=r.ngSwitch||r.on,s=[],l=[],c=[],u=[];t.$watch(a,function(n){var a,f;for(a=0,f=c.length;f>a;++a)c[a].remove();for(c.length=0,a=0,f=u.length;f>a;++a){var d=l[a];u[a].$destroy(),c[a]=d,e.leave(d,function(){c.splice(a,1)})}l.length=0,u.length=0,(s=i.cases["!"+n]||i.cases["?"])&&(t.$eval(r.change),o(s,function(n){var r=t.$new();u.push(r),n.transclude(r,function(t){var r=n.element;l.push(t),e.enter(t,r.parent(),r)})}))})}}}],ho=nr({transclude:"element",priority:800,require:"^ngSwitch",link:function(e,t,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:t})}}),go=nr({transclude:"element",priority:800,require:"^ngSwitch",link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),mo=nr({link:function(e,t,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(t));o(function(e){t.empty(),t.append(e)})}}),vo=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"==n.type){var r=n.id,i=t[0].text;e.put(r,i)}}}}],yo=r("ngOptions"),bo=m({terminal:!0}),xo=["$compile","$parse",function(e,r){var i=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,s={$setViewValue:h};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(e,t,n){var r,i,o=this,a={},l=s;o.databound=n.ngModel,o.init=function(e,t,n){l=e,r=t,i=n},o.addOption=function(t){it(t,'"option value"'),a[t]=!0,l.$viewValue==t&&(e.val(t),i.parent()&&i.remove())},o.removeOption=function(e){this.hasOption(e)&&(delete a[e],l.$viewValue==e&&this.renderUnknownOption(e))},o.renderUnknownOption=function(t){var n="? "+jt(t)+" ?";i.val(n),e.prepend(i),e.val(n),i.prop("selected",!0)},o.hasOption=function(e){return a.hasOwnProperty(e)},t.$on("$destroy",function(){o.renderUnknownOption=h})}],link:function(s,l,c,u){function f(e,t,n,r){n.$render=function(){var e=n.$viewValue;r.hasOption(e)?(S.parent()&&S.remove(),t.val(e),""===e&&h.prop("selected",!0)):v(e)&&h?t.val(""):r.renderUnknownOption(e)},t.on("change",function(){e.$apply(function(){S.parent()&&S.remove(),n.$setViewValue(t.val())})})}function d(e,t,n){var r;n.$render=function(){var e=new Mt(n.$viewValue);o(t.find("option"),function(t){t.selected=y(e.get(t.value))})},e.$watch(function(){H(r,n.$viewValue)||(r=L(n.$viewValue),n.$render())}),t.on("change",function(){e.$apply(function(){var e=[];o(t.find("option"),function(t){t.selected&&e.push(t.value)}),n.$setViewValue(e)})})}function p(t,o,s){function l(){var e,n,r,i,l,c,m,x,E,A,T,O,N,j,M,I={"":[]},D=[""],P=s.$modelValue,L=g(t)||[],H=d?a(L):L,R={},_=!1;if(b)if(v&&w(P)){_=new Mt([]);for(var F=0;F<P.length;F++)R[f]=P[F],_.put(v(t,R),P[F])}else _=new Mt(P);for(T=0;E=H.length,E>T;T++){if(m=T,d){if(m=H[T],"$"===m.charAt(0))continue;R[d]=m}if(R[f]=L[m],e=p(t,R)||"",(n=I[e])||(n=I[e]=[],D.push(e)),b)O=y(_.remove(v?v(t,R):h(t,R)));else{if(v){var q={};q[f]=P,O=v(t,q)===v(t,R)}else O=P===h(t,R);_=_||O}M=u(t,R),M=y(M)?M:"",n.push({id:v?v(t,R):d?H[T]:T,label:M,selected:O})}for(b||($||null===P?I[""].unshift({id:"",label:"",selected:!_}):_||I[""].unshift({id:"?",label:"",selected:!0})),A=0,x=D.length;x>A;A++){for(e=D[A],n=I[e],S.length<=A?(i={element:C.clone().attr("label",e),label:n.label},l=[i],S.push(l),o.append(i.element)):(l=S[A],i=l[0],i.label!=e&&i.element.attr("label",i.label=e)),N=null,T=0,E=n.length;E>T;T++)r=n[T],(c=l[T+1])?(N=c.element,c.label!==r.label&&N.text(c.label=r.label),c.id!==r.id&&N.val(c.id=r.id),c.selected!==r.selected&&N.prop("selected",c.selected=r.selected)):(""===r.id&&$?j=$:(j=k.clone()).val(r.id).attr("selected",r.selected).text(r.label),l.push(c={element:j,label:r.label,id:r.id,selected:r.selected}),N?N.after(j):i.element.append(j),N=j);for(T++;l.length>T;)l.pop().element.remove()}for(;S.length>A;)S.pop()[0].element.remove()}var c;if(!(c=x.match(i)))throw yo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",x,z(o));var u=r(c[2]||c[1]),f=c[4]||c[6],d=c[5],p=r(c[3]||""),h=r(c[2]?c[1]:f),g=r(c[7]),m=c[8],v=m?r(c[8]):null,S=[[{element:o,label:""}]];$&&(e($)(t),$.removeClass("ng-scope"),$.remove()),o.empty(),o.on("change",function(){t.$apply(function(){var e,r,i,a,l,c,u,p,m,y=g(t)||[],x={};if(b){for(i=[],c=0,p=S.length;p>c;c++)for(e=S[c],l=1,u=e.length;u>l;l++)if((a=e[l].element)[0].selected){if(r=a.val(),d&&(x[d]=r),v)for(m=0;m<y.length&&(x[f]=y[m],v(t,x)!=r);m++);else x[f]=y[r];i.push(h(t,x))}}else{if(r=o.val(),"?"==r)i=n;else if(""===r)i=null;else if(v){for(m=0;m<y.length;m++)if(x[f]=y[m],v(t,x)==r){i=h(t,x);break}}else x[f]=y[r],d&&(x[d]=r),i=h(t,x);S[0].length>1&&S[0][1].id!==r&&(S[0][1].selected=!1)}s.$setViewValue(i)})}),s.$render=l,t.$watch(l)}if(u[1]){for(var h,g=u[0],m=u[1],b=c.multiple,x=c.ngOptions,$=!1,k=br(t.createElement("option")),C=br(t.createElement("optgroup")),S=k.clone(),E=0,A=l.children(),T=A.length;T>E;E++)if(""===A[E].value){h=$=A.eq(E);break}g.init(m,$,S),b&&(m.$isEmpty=function(e){return!e||0===e.length}),x?p(s,l,m):b?d(s,l,m):f(s,l,m,g)}}}}],$o=["$interpolate",function(e){var t={addOption:h,removeOption:h};return{restrict:"E",priority:100,compile:function(n,r){if(v(r.value)){var i=e(n.text(),!0);i||r.$set("value",n.text())}return function(e,n,r){var o="$selectController",a=n.parent(),s=a.data(o)||a.parent().data(o);s&&s.databound?n.prop("selected",!1):s=t,i?e.$watch(i,function(e,t){r.$set("value",e),e!==t&&s.removeOption(t),s.addOption(e)}):s.addOption(r.value),n.on("$destroy",function(){s.removeOption(r.value)})}}}}],ko=m({restrict:"E",terminal:!0});e.angular.bootstrap&&console.log("WARNING: Tried to load angular more than once."),tt(),lt(Ar),br(t).ready(function(){Q(t,Z)})}(e,t),!s.$$csp()&&s.element(t).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}</style>'),function(e,t,n){"use strict";t.module("ngAnimate",["ng"]).factory("$$animateReflow",["$$rAF","$document",function(e){return function(t){return e(function(){t()})}}]).config(["$provide","$animateProvider",function(r,i){function o(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType==u)return n}}function a(e){return t.element(o(e))}var s=t.noop,l=t.forEach,c=i.$$selectors,u=1,f="$$ngAnimateState",d="ng-animate",p={running:!0};r.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document",function(e,n,r,u,h,g){function m(e){if(e){var t=[],i={};
e=e.substr(1).split("."),(r.transitions||r.animations)&&t.push(n.get(c[""]));for(var o=0;o<e.length;o++){var a=e[o],s=c[a];s&&!i[a]&&(t.push(n.get(s)),i[a]=!0)}return t}}function v(e,n,r){function i(e,t){var n=e[t],r=e["before"+t.charAt(0).toUpperCase()+t.substr(1)];return n||r?("leave"==t&&(r=n,n=null),x.push({event:t,fn:n}),v.push({event:t,fn:r}),!0):void 0}function o(t,n,i){var o=[];l(t,function(e){e.fn&&o.push(e)});var a=0;l(o,function(t,l){var f=function(){e:{if(n){if((n[l]||s)(),++a<o.length)break e;n=null}i()}};switch(t.event){case"setClass":n.push(t.fn(e,c,u,f));break;case"addClass":n.push(t.fn(e,c||r,f));break;case"removeClass":n.push(t.fn(e,u||r,f));break;default:n.push(t.fn(e,f))}}),n&&0===n.length&&i()}var a=e[0];if(a){var c,u,f="setClass"==n,d=f||"addClass"==n||"removeClass"==n;t.isArray(r)&&(c=r[0],u=r[1],r=c+" "+u);var p=e.attr("class")+" "+r;if(C(p)){var h=s,g=[],v=[],y=s,b=[],x=[],p=(" "+p).replace(/\s+/g,".");return l(m(p),function(e){!i(e,n)&&f&&(i(e,"addClass"),i(e,"removeClass"))}),{node:a,event:n,className:r,isClassBased:d,isSetClassOperation:f,before:function(e){h=e,o(v,g,function(){h=s,e()})},after:function(e){y=e,o(x,b,function(){y=s,e()})},cancel:function(){g&&(l(g,function(e){(e||s)(!0)}),h(!0)),b&&(l(b,function(e){(e||s)(!0)}),y(!0))}}}}}function y(e,n,r,i,o,a,s){function c(t){var i="$animate:"+t;w&&w[i]&&0<w[i].length&&h(function(){r.triggerHandler(i,{event:e,className:n})})}function u(){c("before")}function p(){c("after")}function g(){c("close"),s&&h(function(){s()})}function m(){m.hasBeenRun||(m.hasBeenRun=!0,a())}function y(){if(!y.hasBeenRun){y.hasBeenRun=!0;var t=r.data(f);t&&(b&&b.isClassBased?x(r,n):(h(function(){var t=r.data(f)||{};T==t.index&&x(r,n,e)}),r.data(f,t))),g()}}var b=v(r,e,n);if(b){n=b.className;var w=t.element._data(b.node),w=w&&w.events;i||(i=o?o.parent():r.parent());var C=r.data(f)||{};o=C.active||{};var S=C.totalActive||0,E=C.last;if(b.isClassBased&&(C.disabled||E&&!E.isClassBased)||$(r,i))m(),u(),p(),y();else{if(i=!1,S>0){if(C=[],b.isClassBased)"setClass"==E.event?(C.push(E),x(r,n)):o[n]&&(A=o[n],A.event==e?i=!0:(C.push(A),x(r,n)));else if("leave"==e&&o["ng-leave"])i=!0;else{for(var A in o)C.push(o[A]),x(r,A);o={},S=0}0<C.length&&l(C,function(e){e.cancel()})}if(!b.isClassBased||b.isSetClassOperation||i||(i="addClass"==e==r.hasClass(n)),i)u(),p(),g();else{"leave"==e&&r.one("$destroy",function(e){e=t.element(this);var n=e.data(f);n&&(n=n.active["ng-leave"])&&(n.cancel(),x(e,"ng-leave"))}),r.addClass(d);var T=k++;S++,o[n]=b,r.data(f,{last:b,active:o,index:T,totalActive:S}),u(),b.before(function(t){var i=r.data(f);t=t||!i||!i.active[n]||b.isClassBased&&i.active[n].event!=e,m(),!0===t?y():(p(),b.after(y))})}}}else m(),u(),p(),y()}function b(e){(e=o(e))&&(e=t.isFunction(e.getElementsByClassName)?e.getElementsByClassName(d):e.querySelectorAll("."+d),l(e,function(e){e=t.element(e),(e=e.data(f))&&e.active&&l(e.active,function(e){e.cancel()})}))}function x(e,t){if(o(e)==o(u))p.disabled||(p.running=!1,p.structural=!1);else if(t){var n=e.data(f)||{},r=!0===t;!r&&n.active&&n.active[t]&&(n.totalActive--,delete n.active[t]),(r||!n.totalActive)&&(e.removeClass(d),e.removeData(f))}}function $(e,t){if(p.disabled)return!0;if(o(e)==o(u))return p.disabled||p.running;do{if(0===t.length)break;var n=o(t)==o(u),r=n?p:t.data(f),r=r&&(!!r.disabled||r.running||0<r.totalActive);if(n||r)return r;if(n)break}while(t=t.parent());return!0}var k=0;u.data(f,p),g.$$postDigest(function(){g.$$postDigest(function(){p.running=!1})});var w=i.classNameFilter(),C=w?function(e){return w.test(e)}:function(){return!0};return{enter:function(t,n,r,i){this.enabled(!1,t),e.enter(t,n,r),g.$$postDigest(function(){t=a(t),y("enter","ng-enter",t,n,r,s,i)})},leave:function(t,n){b(t),this.enabled(!1,t),g.$$postDigest(function(){y("leave","ng-leave",a(t),null,null,function(){e.leave(t)},n)})},move:function(t,n,r,i){b(t),this.enabled(!1,t),e.move(t,n,r),g.$$postDigest(function(){t=a(t),y("move","ng-move",t,n,r,s,i)})},addClass:function(t,n,r){t=a(t),y("addClass",n,t,null,null,function(){e.addClass(t,n)},r)},removeClass:function(t,n,r){t=a(t),y("removeClass",n,t,null,null,function(){e.removeClass(t,n)},r)},setClass:function(t,n,r,i){t=a(t),y("setClass",[n,r],t,null,null,function(){e.setClass(t,n,r)},i)},enabled:function(e,t){switch(arguments.length){case 2:if(e)x(t);else{var n=t.data(f)||{};n.disabled=!0,t.data(f,n)}break;case 1:p.disabled=!e;break;default:e=!p.disabled}return!!e}}}]),i.register("",["$window","$sniffer","$timeout","$$animateReflow",function(r,i,a,c){function f(e,t){I&&I(),z.push(t),I=c(function(){l(z,function(e){e()}),z=[],I=null,B={}})}function d(e,n){var r=o(e);e=t.element(r),G.push(e),r=Date.now()+n,X>=r||(a.cancel(K),X=r,K=a(function(){p(G),G=[]},n,!1))}function p(e){l(e,function(e){(e=e.data(_))&&(e.closeAnimationFn||s)()})}function h(e,t){var n=t?B[t]:null;if(!n){var i,o,a,s,c=0,f=0,d=0,p=0;l(e,function(e){if(e.nodeType==u){e=r.getComputedStyle(e)||{},a=e[T+D],c=Math.max(g(a),c),s=e[T+P],i=e[T+L],f=Math.max(g(i),f),o=e[N+L],p=Math.max(g(o),p);var t=g(e[N+D]);t>0&&(t*=parseInt(e[N+H],10)||1),d=Math.max(t,d)}}),n={total:0,transitionPropertyStyle:s,transitionDurationStyle:a,transitionDelayStyle:i,transitionDelay:f,transitionDuration:c,animationDelayStyle:o,animationDelay:p,animationDuration:d},t&&(B[t]=n)}return n}function g(e){var n=0;return e=t.isString(e)?e.split(/\s*,\s*/):[],l(e,function(e){n=Math.max(parseFloat(e)||0,n)}),n}function m(e){var t=e.parent(),n=t.data(R);return n||(t.data(R,++V),n=V),n+"-"+o(e).getAttribute("class")}function v(e,t,n,r){var i=m(t),a=i+" "+n,l=B[a]?++B[a].total:0,c={};if(l>0){var u=n+"-stagger",c=i+" "+u;(i=!B[c])&&t.addClass(u),c=h(t,c),i&&t.removeClass(u)}r=r||function(e){return e()},t.addClass(n);var u=t.data(_)||{},f=r(function(){return h(t,a)});return r=f.transitionDuration,i=f.animationDuration,0===r&&0===i?(t.removeClass(n),!1):(t.data(_,{running:u.running||0,itemIndex:l,stagger:c,timings:f,closeAnimationFn:s}),e=0<u.running||"setClass"==e,r>0&&y(t,n,e),i>0&&0<c.animationDelay&&0===c.animationDuration&&(o(t).style[N]="none 0s"),!0)}function y(e,t,n){"ng-enter"!=t&&"ng-move"!=t&&"ng-leave"!=t&&n?e.addClass(F):o(e).style[T+P]="none"}function b(e){var t=T+P,n=o(e);n.style[t]&&0<n.style[t].length&&(n.style[t]=""),e.removeClass(F)}function x(e){var t=N;e=o(e),e.style[t]&&0<e.style[t].length&&(e.style[t]="")}function $(e,t,n,r){function i(e){t.off(y,a),t.removeClass(c),E(t,n),e=o(t);for(var r in x)e.style.removeProperty(x[r])}function a(e){e.stopPropagation();var t=e.originalEvent||e;e=t.$manualTimeStamp||t.timeStamp||Date.now(),t=parseFloat(t.elapsedTime.toFixed(q)),Math.max(e-v,0)>=m&&t>=h&&r()}var s=o(t);if(e=t.data(_),-1!=s.getAttribute("class").indexOf(n)&&e){var c="";l(n.split(" "),function(e,t){c+=(t>0?" ":"")+e+"-active"});var u=e.stagger,f=e.timings,p=e.itemIndex,h=Math.max(f.transitionDuration,f.animationDuration),g=Math.max(f.transitionDelay,f.animationDelay),m=g*W,v=Date.now(),y=j+" "+O,b="",x=[];if(0<f.transitionDuration){var $=f.transitionPropertyStyle;-1==$.indexOf("all")&&(b+=M+"transition-property: "+$+";",b+=M+"transition-duration: "+f.transitionDurationStyle+";",x.push(M+"transition-property"),x.push(M+"transition-duration"))}return p>0&&(0<u.transitionDelay&&0===u.transitionDuration&&(b+=M+"transition-delay: "+k(f.transitionDelayStyle,u.transitionDelay,p)+"; ",x.push(M+"transition-delay")),0<u.animationDelay&&0===u.animationDuration&&(b+=M+"animation-delay: "+k(f.animationDelayStyle,u.animationDelay,p)+"; ",x.push(M+"animation-delay"))),0<x.length&&(f=s.getAttribute("style")||"",s.setAttribute("style",f+" "+b)),t.on(y,a),t.addClass(c),e.closeAnimationFn=function(){i(),r()},s=(p*(Math.max(u.animationDelay,u.transitionDelay)||0)+(g+h)*U)*W,e.running++,d(t,s),i}r()}function k(e,t,n){var r="";return l(e.split(","),function(e,i){r+=(i>0?",":"")+(n*t+parseInt(e,10))+"s"}),r}function w(e,t,n,r){return v(e,t,n,r)?function(e){e&&E(t,n)}:void 0}function C(e,t,n,r){return t.data(_)?$(e,t,n,r):(E(t,n),r(),void 0)}function S(e,t,n,r){var i=w(e,t,n);if(i){var o=i;return f(t,function(){b(t,n),x(t),o=C(e,t,n,r)}),function(e){(o||s)(e)}}r()}function E(e,t){e.removeClass(t);var n=e.data(_);n&&(n.running&&n.running--,n.running&&0!==n.running||e.removeData(_))}function A(e,n){var r="";return e=t.isArray(e)?e:e.split(/\s+/),l(e,function(e,t){e&&0<e.length&&(r+=(t>0?" ":"")+e+n)}),r}var T,O,N,j,M="";e.ontransitionend===n&&e.onwebkittransitionend!==n?(M="-webkit-",T="WebkitTransition",O="webkitTransitionEnd transitionend"):(T="transition",O="transitionend"),e.onanimationend===n&&e.onwebkitanimationend!==n?(M="-webkit-",N="WebkitAnimation",j="webkitAnimationEnd animationend"):(N="animation",j="animationend");var I,D="Duration",P="Property",L="Delay",H="IterationCount",R="$$ngAnimateKey",_="$$ngAnimateCSS3Data",F="ng-animate-block-transitions",q=3,U=1.5,W=1e3,B={},V=0,z=[],K=null,X=0,G=[];return{enter:function(e,t){return S("enter",e,"ng-enter",t)},leave:function(e,t){return S("leave",e,"ng-leave",t)},move:function(e,t){return S("move",e,"ng-move",t)},beforeSetClass:function(e,t,n,r){var i=A(n,"-remove")+" "+A(t,"-add"),o=w("setClass",e,i,function(r){var i=e.attr("class");return e.removeClass(n),e.addClass(t),r=r(),e.attr("class",i),r});return o?(f(e,function(){b(e,i),x(e),r()}),o):(r(),void 0)},beforeAddClass:function(e,t,n){var r=w("addClass",e,A(t,"-add"),function(n){return e.addClass(t),n=n(),e.removeClass(t),n});return r?(f(e,function(){b(e,t),x(e),n()}),r):(n(),void 0)},setClass:function(e,t,n,r){return n=A(n,"-remove"),t=A(t,"-add"),C("setClass",e,n+" "+t,r)},addClass:function(e,t,n){return C("addClass",e,A(t,"-add"),n)},beforeRemoveClass:function(e,t,n){var r=w("removeClass",e,A(t,"-remove"),function(n){var r=e.attr("class");return e.removeClass(t),n=n(),e.attr("class",r),n});return r?(f(e,function(){b(e,t),x(e),n()}),r):(n(),void 0)},removeClass:function(e,t,n){return C("removeClass",e,A(t,"-remove"),n)}}}])}])}(e,e.angular),s.module("Kimono",["ngAnimate"]),s.module("Kimono").factory("Collections",["Regex","Utils","Datatypes","Common",function(t,r,o,a){var s=new function(){this.getEpSelectorComponent=function(e){var t=e.selectorObjects[0].selector.split(" > ");return e.context.ancestorCounter>t.length-1?"":t[t.length-1-e.context.ancestorCounter]};var o=function(e){var t={text:""};for(attribute in e.context.attributes)if(e.context.attributes.hasOwnProperty(attribute)){var n=e.context.attributes[attribute];("true"==n.value||n.value===!0)&&(t[attribute]="")}return console.log(t),Object.keys(t).length>1?t:""};this.updateDatalists=function(e){for(var a=0;a<e.length;a++){var l=e[a];if(1==l.length){var c=l[0];if(c.datalist=[],c.context.delta=0,c.context.numberOfTableNormalizers=0,c.selectorObjects[0]&&c.selectorObjects[0].selector)for(var u=r.querySelectorAll(c.getCombinedSelector()),f=0;f<u.length;f++){var d=u[f];t.testElForRegex(d,c)&&(c.datalist.push(s(d,c)),"kim-table-normalizer"==d.className&&c.context.numberOfTableNormalizers++)}}else{for(var p="association",h=0;h<l.length;h++){if("pattern"==l[h].context.associationType){p="pattern";break}if("forced"==l[h].context.associationType){p="forced";break}if("single"==l[h].context.associationType){p="single";break}}if("association"==p){for(var g=[],m=0,v=99999,h=0;h<l.length;h++){var c=l[h];c.datalist=[],c.context.delta=0,c.context.numberOfTableNormalizers=0;var u=r.querySelectorAll(c.getCombinedSelector());if(g[h]=[],c.context.forceAssociation){for(var f=0;f<u.length;f++){var d=u[f];t.testElForRegex(d,c)&&(c.datalist.push(s(d,c)),"kim-table-normalizer"==d.className&&c.context.numberOfTableNormalizers++)}c.datalist.length>m&&(m=c.datalist.length),c.datalist.length<v&&(v=c.datalist.length)}else{for(var f=0;f<u.length;f++)t.testElForRegex(u[f],c)&&g[h].push({el:u[f],pairedOff:!1,index:g[h].length});g[h].length>m&&(m=g[h].length),g[h].length<v&&(v=g[h].length)}}for(var y=[],h=0;h<l.length;h++)if(!l[h].context.forceAssociation)for(var f=0;f<g[h].length;f++)if(!g[h][f].pairedOff){y.push({els:[],data:[],sum:0}),y[y.length-1].els[h]=g[h][f],y[y.length-1].data[h]=s(g[h][f].el,l[h]),y[y.length-1].sum+=f+1,g[h][f].pairedOff=!0;for(var b=g[h][f].el,x=l[h].context.ancestorCounters?l[h].context.ancestorCounters[l[h].getSelectorObjectIndexForEl(b)]:l[h].context.ancestorCounter,$=0;x>$;$++)b=b.parentNode;for(var k=h+1;k<l.length;k++)if(!l[k].context.forceAssociation){y[y.length-1].data[k]=[];for(var w=0;w<g[k].length;w++)if(!g[k][w].pairedOff){for(var C=g[k][w].el,x=l[k].context.ancestorCounters?l[k].context.ancestorCounters[l[k].getSelectorObjectIndexForEl(C)]:l[k].context.ancestorCounter,$=0;x>$;$++)C=C.parentNode;b===C&&(y[y.length-1].els[k]=g[k][w],y[y.length-1].data[k].push(s(g[k][w].el,l[k])),y[y.length-1].sum+=w+1,g[k][w].pairedOff=!0)}}}for(var f=0;f<y.length;f++){for(var S=0,h=0;h<l.length;h++)y[f].data[h]&&0!=y[f].data[h].length||(y[f].data[h]=o(l[h]),S++);y[f].avg=y[f].sum/l.length}y.sort(function(e,t){return e.avg<t.avg?-1:e.avg>t.avg?1:0});for(var f=0;f<y.length;f++)for(var h=0;h<l.length;h++){var c=l[h];1==y[f].data[h].length?y[f].data[h]=y[f].data[h][0]:y[f].data[h].length>1&&(c.context.delta-=y[f].data[h].length-1),c.datalist.push(y[f].data[h]),y[f].data[h]==o(l[h])&&c.context.delta++,y[f].els[h]&&"kim-table-normalizer"==y[f].els[h].el.className&&c.context.numberOfTableNormalizers++}for(var h=0;h<l.length;h++)for(var c=l[h],f=v;m>f;f++)c.datalist[f]==n&&(c.datalist[f]=o(c),c.context.delta++)}else if("pattern"==p){l.lowestStart=999999,l.highestEnd=0;for(var m=0,v=99999,h=0;h<l.length;h++){var c=l[h];c.datalist=[],c.context.delta=0,c.context.numberOfTableNormalizers=0;var u=r.querySelectorAll(c.selectorObjects[0].selector);if(c.context.forceAssociation){for(var f=0;f<u.length;f++){var d=u[f];t.testElForRegex(d,c)&&(c.datalist.push(s(d,c)),"kim-table-normalizer"==d.className&&c.context.numberOfTableNormalizers++)}c.datalist.length>m&&(m=c.datalist.length),c.datalist.length<v&&(v=c.datalist.length)}else for(var f=0;f<u.length;f++)if(t.testElForRegex(u[f],c)){for(var E=u[f],$=0;$<c.context.ancestorCounter;$++)E=E.parentNode;var A=i(E).index();c.context.startIndex||(c.context.startIndex=A),c.startIndex<l.lowestStart&&(l.lowestStart=c.startIndex),A>l.highestEnd&&(l.highestEnd=A)}}for(var h=0;h<l.length;h++){var c=l[h];if(!c.context.forceAssociation){for(var T,u=r.querySelectorAll(c.selectorObjects[0].selector),O=0,N=0,j=!0,f=0;f<u.length;f++)if(t.testElForRegex(u[f],c)){for(var E=u[f],k=0;k<c.context.ancestorCounter;k++)E=E.parentNode;var A=i(E).index()+O;if(j){var M=0;j=!1}else{if(T>=A){var I=T-N+1;O+=I,A+=I,N=T+1}var M=A-T-c.context.patternSteps}c.context.patternSteps>0&&(M/=c.context.patternSteps);for(var w=0;M>w;w++)c.datalist.push(o(c)),c.context.delta++;T=A,"kim-table-normalizer"==u[f].className&&c.context.numberOfTableNormalizers++,c.datalist.push(s(u[f],c))}c.context.endIndex=A-O}}for(var h=0;h<l.length;h++){var c=l[h];if(!c.context.forceAssociation){if(c.context.startIndex-l.lowestStart>c.context.patternSteps)var D=parseInt((c.context.startIndex-l.lowestStart)/c.context.patternSteps);else if(l.highestEnd-c.context.endIndex>c.context.patternSteps)var P=parseInt((l.highestEnd-c.context.endIndex)/c.context.patternSteps);for(var $=0;D>$;$++)c.datalist.unshift(o(c)),c.context.delta++;for(var $=0;P>$;$++)c.datalist.push(o(c)),c.context.delta++;c.datalist.length>m&&(m=c.datalist.length),c.datalist.length<v&&(v=c.datalist.length)}}for(var h=0;h<l.length;h++){var c=l[h],L=c.getCombinedSelector(1);if(""!=L){for(var u=r.querySelectorAll(L),f=0;f<u.length;f++){var d=u[f];t.testElForRegex(d,c)&&(c.datalist.push(s(d,c)),"kim-table-normalizer"==d.className&&c.context.numberOfTableNormalizers++)}c.datalist.length>m&&(m=c.datalist.length),c.datalist.length<v&&(v=c.datalist.length)}}for(var h=0;h<l.length;h++)for(var c=l[h],f=v;m>f;f++)c.datalist[f]==n&&(c.datalist[f]=o(c),c.context.delta++)}else if("forced"==p){for(var m=0,v=99999,h=0;h<l.length;h++){var c=l[h];c.datalist=[],c.context.delta=0,c.context.numberOfTableNormalizers=0;for(var u=r.querySelectorAll(c.getCombinedSelector()),f=0;f<u.length;f++){var d=u[f];t.testElForRegex(d,c)&&(c.datalist.push(s(d,c)),"kim-table-normalizer"==d.className&&c.context.numberOfTableNormalizers++)}c.datalist.length>m&&(m=c.datalist.length),c.datalist.length<v&&(v=c.datalist.length)}for(var h=0;h<l.length;h++)for(var c=l[h],f=v;m>f;f++)c.datalist[f]||(c.datalist[f]=o(c),c.context.delta++)}else for(var h=0;h<l.length;h++){var c=l[h];c.datalist=[],c.context.delta=0,c.context.numberOfTableNormalizers=0;var u=r.querySelectorAll(c.getCombinedSelector());u.length>0&&(c.datalist[0]=s(u[0],c))}}}},this.checkAssociation=function(e,n,o){if(""==e.selectorObjects[0].selector||""==n.selectorObjects[0].selector)return!1;if(n.context.forceAssociation&&o==n.context.collection)return{type:e.context.associationType||"forced",ancestorCounter1:e.context.ancestorCounter||0,ancestorCounter2:e.context.ancestorCounter||0,pattern:e.context.patternSteps||1};if(e.context.forceAssociation&&o==e.context.collection)return{type:n.context.associationType||"forced",ancestorCounter1:n.context.ancestorCounter||0,ancestorCounter2:n.context.ancestorCounter||0,pattern:n.context.patternSteps||1};var a=r.querySelectorAll(e.getCombinedSelector()),s=r.querySelectorAll(n.getCombinedSelector());if(a.length<=1&&s.length<=1)return{type:"single",ancestorCounter1:0,ancestorCounter2:0,pattern:1};for(var l=a.length,c=s.length,u=[],f=0;l>f;f++)t.testElForRegex(a[f],e)&&u.push(a[f]);a=u;for(var d=[],f=0;c>f;f++)t.testElForRegex(s[f],n)&&d.push(s[f]);s=d,l=a.length,c=s.length;for(var p=0;6>p;p++)for(var h=0;6>h;h++)for(var g=0;l>g;g++)for(var m=0;c>m;m++){for(var v=a[g],y=s[m],b=0;p>b;b++)var v=v.parentNode;for(var x=0;h>x;x++)var y=y.parentNode;if(v===y){for(var $=!1,f=0;f<a.length;f++)if(f!=g){for(var k=0;k<s.length;k++)if(k!=m){for(var w=a[f],C=s[k],b=0;p>b;b++)w=w.parentNode;for(var x=0;h>x;x++)C=C.parentNode;if(!(l>1&&v===w||c>1&&y===C)){$=!0;break}}if($)break}if($||(f=g>0?g-1:l>1?g+1:g,k=m>0?m-1:c>1?m+1:m),$){for(var S=a[g],E=s[m],A=a[f],T=s[k],b=0;p>b;b++)S=S.parentNode,A=A.parentNode;for(var x=0;h>x;x++)E=E.parentNode,T=T.parentNode;for(var O=0;10>O&&S&&A&&E&&T;){var N=S.parentNode,j=A.parentNode,M=E.parentNode,I=T.parentNode;if(N===j&&M===I)break;S=N,A=j,E=M,T=I,O++}var D=Math.abs(i(S).index()-i(A).index()),P=Math.abs(i(E).index()-i(T).index());if(0==D)var b=P;else if(0==P)var b=D;else var b=Math.min(D,P);return 0==b&&(b=1),{type:"association",ancestorCounter1:p+O,ancestorCounter2:h+O,pattern:b}}for(var S=a[g],E=s[m],A=a[f],T=s[k],b=0;p-1>b;b++)S=S.parentNode,A=A.parentNode;for(var x=0;h-1>x;x++)E=E.parentNode,T=T.parentNode;var D=Math.abs(i(S).index()-i(A).index()),P=Math.abs(i(E).index()-i(T).index()),L=D==P&&D>1?!0:!1;return 0==p&&0==h?(D=0==D?P:D,{type:"self",ancestorCounter1:p,ancestorCounter2:h,pattern:D}):L?{type:"pattern",ancestorCounter1:p-1,ancestorCounter2:h-1,pattern:D}:!1}}return!1};var s=function(n,o){var s="kimonohref";"undefined"!=typeof e.$k&&(s="href");var l=o.selectorObjects[0].regex,c={},u=0;if("IMG"!=n.nodeName&&n.textContent.trim().length>0&&0!=o.context.textContent&&"false"!=o.context.textContent?c.text=t.getMatchedText(n,l)||"":("true"==o.context.textContent||o.context.textContent===!0)&&(c.text=""),i.each(o.context.attributes,function(e,t){if("false"!=t&&0!=t&&t.value&&"false"!=t.value){if("kimonohref"==e||"href"==e){if(n.hasAttribute("href")?c.href=a.relToAbs(n.getAttribute("href"),r.getBaseUrl()):n.hasAttribute("kimonohref")&&(c.href=a.relToAbs(n.getAttribute("kimonohref"),r.getBaseUrl())),"undefined"==typeof c.href){var i=r.nearbyLink(n,s);c.href=i||""}}else"src"==e?c.src=n.hasAttribute(e)?a.relToAbs(n.getAttribute("src"),r.getBaseUrl()):"":c[e]=n.hasAttribute(e)?n.getAttribute(e):"";u++}}),"undefined"==typeof o.context.attributes.href||"false"!=o.context.attributes.href.value&&0!=o.context.attributes.href.value&&0!=o.context.attributes.href&&"false"!=o.context.attributes.href&&"undefined"==typeof c.href){var f=r.nearbyLink(n,s);n.hasAttribute(s)?c.href=a.relToAbs(n.getAttribute(s),r.getBaseUrl()):"undefined"!=typeof f&&(c.href=f)}return i.each(c,function(e,t){"undefined"==typeof t&&(c[e]="")}),Object.keys(c).length>1?c:c[Object.keys(c)[0]]};this.update=function(e,t,n){var r=[],i=[],o=!1;if(t){for(var a=[],s=0;s<e.length;s++){var l=e[s].context.collection;e[s].updateAttributes(),a[l]||(a[l]=[]),a[l].push(e[s])}for(var s=0;s<a.length;s++)if(a[s]){r.push(a[s]);for(var c=0;c<a[s].length;c++)a[s][c].context.collection=r.length-1}}else for(var s=0;s<e.length;s++){for(var u=!1,c=0;c<r.length;c++){for(var f=0;f<r[c].length;f++){var d=this.checkAssociation(e[s],r[c][f],c);if(d){e[s].context.ancestorCounter=d.ancestorCounter1,r[c][f].context.ancestorCounter=d.ancestorCounter2,e[s].context.patternSteps=e[s].context.forceAssociation?1:d.pattern,r[c][f].context.patternSteps=r[c][f].context.forceAssociation?1:d.pattern,e[s].context.associationType=d.type,r[c][f].context.associationType=d.type,r[c].push(e[s]),e[s].context.collection=r.length-1,u=!0;break}}if(u)break}u||(r.push([e[s]]),e[s].context.collection=r.length-1)}r.forEach(function(e,t){i[t]=n[t]||"Pagination"==n[t]?n[t]:"collection"+parseInt(t+1)});for(var s=r.length;s<i.length;s++)i.pop();return e.pagination&&e.pagination.selectorObjects[0]&&e.pagination.selectorObjects[0].selections.length>0&&(o=!0,r.push([e.pagination]),i[r.length-1]="Pagination"),[r,i,o]},this.getCollectionsForExport=function(e){var t=[];return e.forEach(function(e,n){t[n]=[],e.forEach(function(e,r){t[n][r]=e.objectForExport()})}),t},this.hasData=function(e){var t=!1;return e.forEach(function(e){t||e.forEach(function(e){t||e.datalist.length>0&&(t=!0)})}),t},this.getRowDataFromProcessedCollections=function(e){var t=[];return e.forEach(function(e,n){if(0!=e.length)for(var r=0;r<e[0].datalist.length;r++){var i=[];e.forEach(function(e){"Pagination Link"!=e.name&&i.push({k:e.name,v:e.datalist[r]})}),t.push({c:n,i:r,d:i})}}),t},"undefined"!=typeof e&&(e.$k||(e.$k={}),e.$k.collections=this)};return s}]),s.module("Kimono").factory("Common",[function(){var t=new function(){function t(e){return e=e.replace(/[-\/^$*+?.()|[\]{}]/g,"\\$&"),e=e.replace("\n","\\n").replace(/Â /g," ")}var r=this;this.aggregateSelectors=function(e,t){var n=[],r=t||{};return e.forEach(function(e){e.forEach(function(e){if(e.selectorObjects&&e.selectorObjects[0]){var t=e.selectorObjects[0].selector;t&&(r.quotesWrap&&(t='"'+t+'"'),n.push(t))}})}),n},this.relToAbs=function(e,t){var e=e+"";if(/^(https?|file|ftps?|mailto|javascript|data:image\/[^;]{2,9};):/i.test(e))return e;var n=t.match(/[^?]*\//)[0],r=n.match(/^(.*?):/)?n.match(/^(.*?):/)[0]:"",i=n.replace(r+"//","").replace(/\/.*$/,"");if("?"==e.substring(0,1)){var o=t.split("?")[0];return o+e}if("//"==e.substring(0,2))return r+e;if("/"==e.charAt(0))return r+"//"+i+e;if("./"==e.substring(0,2))console.log("found ./",e);else if(/^\s*$/.test(e))return"";var a=n.replace(r+"//"+i+"/",""),s=a.substr(0,a.length-1).split("/"),l=e.match(/\.\.\//g);e=e.replace(/\.\.\//g,"");for(var c=0;l&&c<l.length;c++)s.pop();var u="/"==i[i.length-1]?"":"/";return n=r+"//"+i+u+s.join("/"),s=s.filter(function(e){return""==e?!1:!0}),s.length>0&&(n+="/"),e=n+e,e=e.replace(/\.$/,"").replace(/\/\./g,"").replace(/"/g,"%22").replace(/'/g,"%27").replace(/</g,"%3C").replace(/>/g,"%3E")},this.reassembleRegex=function(e){var n={identicalText:"true"===e.identicalText,suffix:e.suffix,prefix:e.prefix,middlePattern:e.middlePattern,rightPattern:e.rightPattern,rightHasEnd:"true"===e.rightHasEnd,rightCharClass:e.rightCharClass.replace(/[ Â ]/," Â "),leftPattern:e.leftPattern,leftHasBeginning:"true"===e.leftHasBeginning,leftCharClass:e.leftCharClass.replace(/[ Â ]/," Â ")};""!=n.leftCharClass?(n.leftPattern="["+t(n.leftCharClass)+"]",n.leftPattern=n.leftHasBeginning?"(^|"+n.leftPattern+")":"("+n.leftPattern+")"):n.leftPattern="("+n.leftPattern.replace(/[ Â ]/,"[ Â ]")+")",""!=n.rightCharClass?(n.rightPattern="["+t(n.rightCharClass)+"]",n.rightPattern=n.rightHasEnd?"("+n.rightPattern+"|$)":"("+n.rightPattern+")"):n.rightPattern="("+n.rightPattern.replace(/[ Â ]/,"[ Â ]")+")";var r=[n.prefix,n.leftPattern,n.middlePattern,n.rightPattern,n.suffix].join("");try{var i=new RegExp(r);return i}catch(i){return/^()(.*?)()$/}},this.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},this.proccessedRowToRssObject=function(e){var t={};return e.title&&e.title.text?(t.title=e.title.text,t.link=e.title.href):e.title?t.title=e.title:e.property1&&e.property1.text?(t.title=e.property1.text,t.link=e.property1.href):e.property1&&(t.title=e.property1),e.description&&e.description.text?t.description=e.description.text:e.description&&(t.description=e.description),e.author&&e.author.text?t.author=e.author.text:e.author&&(t.author=e.author),e.pubDate&&e.pubDate.text?t.pubDate=e.pubDate.text:e.pubDate&&(t.pubDate=e.pubDate),e.category&&e.category.text?t.category=e.category.text:e.category&&(t.category=e.category),e.comments&&e.comments.href?t.comments=e.comments.href:e.comments&&(t.comments=e.comments),t};var i=function(e){return e=e.replace(/\r\n/g,"\n")},o=function(e){return e=e.replace(/</g,"&lt;").replace(/&/g,"&amp;"),i(e)};this.toXml=function(e,t,n){var r="";if(e instanceof Array)for(var a=0,s=e.length;s>a;a++)r+=this.toXml(e[a],t,n+"");else if("object"==typeof e){var l=!1;r+=n+"<"+t;for(var c in e)"@"==c.charAt(0)?r+=" "+c.substr(1)+'="'+e[c].toString()+'"':l=!0;if(r+=l?">\n":"/>",l){for(var c in e)"#text"==c?r+=o(e[c]):"#cdata"==c?r+="<![CDATA["+i(e[c])+"]]>":"@"!=c.charAt(0)&&(r+=this.toXml(e[c],c,n+" "));r+=("\n"==r.charAt(r.length-1)?n:"")+"</"+t+">\n"}}else e&&(r+=n+"<"+t+">"+o(e.toString())+"</"+t+">\n");return r},this.getRSS=function(e,t,n,i){if(e[i]){var o=[];e[i].forEach(function(e){o.push(r.proccessedRowToRssObject(e))});var a={rss:{channel:{title:t,description:"kimono RSS feed",link:n,item:o}}},s="";for(var l in a)s+=r.toXml(a[l],l,"");return s=s.replace("<rss>",'<rss version="2.0">')}},this.flatten=function(e){var t={};for(var n in e)if(e.hasOwnProperty(n))if("object"==typeof e[n]){var i=r.flatten(e[n]);for(var o in i)i.hasOwnProperty(o)&&(t[n+"."+o]=i[o])}else t[n]=e[n];return t},this.convertToCSV=function(e,t,n){var i="object"!=typeof e?JSON.parse(e):e,o="",a="";if(!t||2!=parseInt(t)){var s;s=n?{timestamp:0,value:0}:r.flatten(i[0]);for(var l in s){var c=l+"";a+='"'+c.replace(/"/g,"'")+'",'}a=a.slice(0,-1),o+=a+"\r\n"}if(n)for(var u=0;u<i.length;u++){var a="",f=i[u];for(var l in f)if(f[l]){if(f[l]instanceof Date)var d=f[l],c=r.formatDateForCSV(d);else var c=f[l]+"";a+='"'+c.replace(/"/g,"'")+'",'}else a+='"",';a=a.slice(0,-1),o+=a+"\r\n"}else for(var u=0;u<i.length;u++){var a="",p=r.flatten(i[u]);for(var l in p)if(p[l]){var c=p[l]+"";a+='"'+c.replace(/"/g,"'")+'",'}else a+='"",';a=a.slice(0,-1),o+=a+"\r\n"}return o},this.convertToCSV2=function(e){var t="object"!=typeof e?JSON.parse(e):e,n="",i="",o=r.flatten(t[0]);for(var a in o){var s=a+"";i+='"'+s.replace(/"/g,"'")+'",'}i=i.slice(0,-1),n+=i+"\r\n";for(var l=0;l<t.length;l++){var i="",c=r.flatten(t[l]);for(var a in c)if(c[a]){var s=c[a]+"";i+='"'+s.replace(/"/g,"'")+'",'}else i+='"",';i=i.slice(0,-1),n+=i+"\r\n"}return n},this.getCSV=function(e,t,n,r){var i=this;r=r||{},n&&t.forEach(function(e,t){e.name=n[t]});var o="";return r.series?t.forEach(function(t,n){if(0!=t.length){var a=t.name||"collection"+parseInt(n+1);r.noheaders||(o+='"'+a+'"\r\n'),e[a]&&e[a].forEach(function(t,n){for(prop in t)t.hasOwnProperty(prop)&&(r.noheaders||r.series||(o+='"'+prop+"."+n+'"\r\n'),e[a]&&(o+=i.convertToCSV(e[a][n][prop],r.noheaders,r.series)+"\r\n"),o+="\r\n")})}}):t.forEach(function(t,n){if(0!=t.length){var a=t.name||"collection"+parseInt(n+1);r.noheaders||(o+='"'+a+'"\r\n'),e[a]&&(o+=i.convertToCSV(e[a],r.noheaders,r.series)+"\r\n")}}),o},this.getTable=function(e){var t=this;if("object"!=typeof e||!e)return null;var n={},r=0;return Object.keys(e).forEach(function(i){n[i]={colnames:[],datatypeindices:[],rows:[]};var o=e[i];if("object"!=typeof o[0]||!o[0])return null;var a={};if(Object.keys(o[0]).forEach(function(e){a[e]=r++}),o.length>0){var s=Object.keys(t.flatten(o[0]));n[i].colnames=s,s.forEach(function(e){var t=e.split(".")[0];n[i].datatypeindices.push(a[t])}),o.forEach(function(e){var r=[],e=t.flatten(e);s.forEach(function(t){r.push(e[t])}),n[i].rows.push(r)})}}),n},this.mongoCallback=function(e,t){return function(n,r){n?(e.json(500,{status:"500",error:"Server Error",message:"Something went wrong on our servers"}),console.log("MongoDB Error"+n)):t(r)}},this.getJSON=function(e,t){var n={};return e.forEach(function(e,r){if(!(0==e.length||"Pagination"==t[r]&&e[0]&&"Pagination Link"==e[0].name)){var i=t[r]||"collection"+(r+1);n[i]=[];for(var o=0;o<e[0].datalist.length;o++){n[i][o]={};for(var a=0;a<e.length;a++)n[i][o][e[a].name]=e[a].datalist[o]}}}),n},this.formatDateForCSV=function(e){return[e.getMonth()+1,"/",e.getDate(),"/",e.getFullYear()," ",e.toTimeString().split(" ")[0]].join("")},this.shortenString=function(e,t){return e==n?"":e.length<=t?e:e.substr(0,t)+"..."},this.blacklist=[/couponcabin\.com/,/greymatter\.com/],this.nosupportlist=[/facebook\.com/],this.problemUrls=[/mercadopago\.com/,/digikey\.nl/,/soundcloud\.com/,/facebook\.com/,/fifa\.com/,/latimes\.com/,/unsplash\.com/,/sks-keyservers\.net/,/arcadebrew\.com/,/abgent\.com/,/char5\.com/,/wykop\.pl/,/community-music\.info/,/mx\.finanzas\.yahoo\.com/,/yelp\.com/,/amazon\.com/,/fitbit\.com/,/myfitnesspal\.com/,/uniqlo\.com/,/brand\.tmall\.com/],"undefined"!=typeof e&&(e.$k||(e.$k={}),e.$k.common=this)};return t}]),s.module("Kimono").factory("Config",[function(){var t=new function(){if(this.RED="red",this.YELLOW="yellow",this.BLUE="blue",this.ORANGE="orange",this.GREEN="green",this.PURPLE="purple",this.FUCHSIA="fuchsia",this.AQUA="aqua",this.SUNSET="sunset",this.LIME="lime",this.INDIGO="indigo",this.AMBER="amber",this.TAN="tan",this.COFFEE="coffee",this.GREY="grey",this.SMOKE="smoke",this.PAGINATION="bluegrey",this.colors=[this.YELLOW,this.AMBER,this.ORANGE,this.SUNSET,this.RED,this.FUCHSIA,this.PURPLE,this.INDIGO,this.BLUE,this.AQUA,this.GREEN,this.LIME,this.TAN,this.COFFEE,this.GREY,this.SMOKE],this.MAX_TIER_ANCESTRY=4,this.MAX_TIERS=3,this.REGEX_CLIP=3,this.normalizeWhitelist=["news.ycombinator.com"],this.tags=["food","crowdfunding","cryptocurrency","hockey","news","reference","search","community","business","banking","shopping","entertainment","media","sports","blogs","social networking","culture","technology","aggregator","software","science","movies","politics","money","finance","design","social","art","music","football","soccer","web design","jobs","baseball","games","basketball","computers","real estate","travel","maps","entrepreneurship","code","shoes","holidays","startups","books","fashion","investing","salaries","analytics","venture capital","rugby","economics","programming","auctions","weather","hotels","rentals","government","mobile","international","olympics","ecommerce"],this.getColor=function(e){return"pagination"==e?this.PAGINATION:this.colors[e%16]},"undefined"!=typeof e&&(this.clientEnv=e.$k.config.clientEnv,this.serverEnv=e.$k.config.serverEnv,"phantom"==this.clientEnv?(this.KM_HOST="https://localhost:4000",this.KM_HOST_WWW="https://localhost:4000"):"dev"==this.serverEnv?"chrome"==this.clientEnv?(this.KM_HOST="https://localhost:4000",this.KM_HOST_WWW="https://localhost:4000"):(this.KM_HOST="http://localhost:3000",this.KM_HOST_WWW="http://localhost:3000"):"stage"==this.serverEnv?"chrome"==this.clientEnv?(this.KM_HOST="https://kimstage.com",this.KM_HOST_WWW="https://www.kimstage.com"):(this.KM_HOST="http://www.kimstage.com",this.KM_HOST_WWW="http://www.kimstage.com"):"prod"==this.serverEnv&&("chrome"==this.clientEnv?(this.KM_HOST="https://kimonolabs.com",this.KM_HOST_WWW="https://www.kimonolabs.com"):(this.KM_HOST="http://kimonolabs.com",this.KM_HOST_WWW="http://www.kimonolabs.com"))),this.whitelist=[this.KM_HOST+"/sandbox.html",this.KM_HOST+"/welcome.html",this.KM_HOST+"/crawlblog",this.KM_HOST_WWW+"/crawlblog",this.KM_HOST_WWW+"/sandbox.html",this.KM_HOST_WWW+"/welcome.html"],this.formAction=this.KM_HOST+"/load",this.data={},"undefined"!=typeof e){e.$k||(e.$k={});
for(a in e.$k.config)this[a]=e.$k.config[a];e.$k.config=this,this.data=e.$k.data||{}}};return t}]),s.module("Kimono").factory("Datatypes",["Regex","Utils","Config","Selections",function(t,n,r,o){var s=new function(){var s=0;this.resetPropertyCounter=function(e){s=e||0},Datatype=function(e,n,r){this.name=e,this.selectorObjects=[{selector:"",tiers:[],rejectedTiers:[],regex:t.parse(t.getGenericRegexString()),selections:[]}],this.highlightMap={},this.datalist=[],this.numElements=0,this.context={collection:n,index:r,attributes:{},textContent:!0,hiddenElements:!1,numberOfTableNormalizers:0},this.hide=!1},Datatype.prototype.getNumberOfElements=function(e){if(e)return this.numElements=e,e;this.numElements=0;for(var r=n.querySelectorAll(this.getCombinedSelector()),i=0;i<r.length;i++){var o=r[i];t.testElForRegex(o,this)&&"kim-table-normalizer"!=o.className&&this.numElements++}return this.numElements},Datatype.prototype.mergeDatatype=function(e,t){this.selectorObjects=this.selectorObjects.concat(e.selectorObjects),i.extend(this.highlightMap,e.highlightMap),this.context.ancestorCounters||(this.context.ancestorCounters=[this.context.ancestorCounter]),this.context.ancestorCounters.push(e.context.ancestorCounter||1),t.splice(e.context.index,1);for(var n=e.context.index;n<t.length;n++)t[n].context.index--;return this.updateAttributes(),this.getNumberOfElements(),this.context.index},Datatype.prototype.numElements=function(){for(var e=0,t=0;t<this.datalist.length;t++)""!=this.datalist[t]&&e++;return e},Datatype.prototype.acceptTier=function(e,n,r,i){this.selectorObjects[0].selections.push(e),this.selectorObjects[0].selector=o.buildSelectorForN(this.selectorObjects[0].selections,r,i);for(var a=[this.selectorObjects[0].selector],s=0;s<this.selectorObjects[0].tiers.length;s++)t.isSuperset(this.selectorObjects[0].tiers[s],this.selectorObjects[0].selector)||a.push(this.selectorObjects[0].tiers[s]);this.selectorObjects[0].tiers=a,this.updateAttributes()},Datatype.prototype.getCombinedSelector=function(e){var t;if(1!=this.selectorObjects.length||e){for(var n=[],r=e||0;r<this.selectorObjects.length;r++)""!=this.selectorObjects[r].selector&&n.push(this.selectorObjects[r].selector);t=n.join(",")}else t=this.selectorObjects[0].selector;return t=""==t?".kimonothisisnotaclassandwonteverbe":t},Datatype.prototype.getRegexForEl=function(e){if(1==this.selectorObjects.length)return this.selectorObjects[0].regex;for(var t=0;t<this.selectorObjects.length;t++)for(var r=n.querySelectorAll(this.selectorObjects[t].selector),i=0;i<r.length;i++)if(r[i]===e)return this.selectorObjects[t].regex},Datatype.prototype.getSelectorObjectIndexForEl=function(e){if(1==this.selectorObjects.length)return 0;for(var t=0;t<this.selectorObjects.length;t++)for(var r=n.querySelectorAll(this.selectorObjects[t].selector),i=0;i<r.length;i++)if(r[i]===e)return t},Datatype.prototype.removeTierForIndex=function(e,n){var r=this.selectorObjects[n].tiers.indexOf(e);this.selectorObjects[n].tiers.splice(r,1),this.selectorObjects[n].rejectedTiers.push(e);for(var i=0;i<this.selectorObjects[n].tiers.length;i++)t.isSuperset(e,this.selectorObjects[n].tiers[i])&&(this.selectorObjects[n].tiers[i]=this.selectorObjects[n].tiers.slice(0,r));this.updateAttributes()},Datatype.prototype.initiateWithSelectorForSingleElement=function(e,n){var r=t.buildGenericRegex(),i={selector:n,tiers:[],rejectedTiers:[],regex:t.reassembleRegex(r),selections:[e],regexObj:r};this.selectorObjects[0]=i,this.selectorObjects[0].tiers=[n],this.updateAttributes()},Datatype.prototype.initiateWithSelectionObj=function(e,n,i,a,s,l){var c=o.buildSelectorForN([e],s,l);if(!c)return"Error";var u="dragged"==n?t.buildRegexForN([e],r.REGEX_CLIP):"pagination"!=l?t.buildGenericRegex():t.buildPaginationRegex(e.selectedText),f={selector:c,tiers:[],rejectedTiers:[],regex:t.reassembleRegex(u),selections:[e]};this.selectorObjects[0]=f,this.selectorObjects[0].tiers="pagination"!=l?o.getTierSelectors(c,i,a):[c],this.updateAttributes()},Datatype.prototype.initiateWithSelectorForSingleElement=function(e,n){var r=t.buildGenericRegex(),i={selector:n,tiers:[],rejectedTiers:[],regex:t.reassembleRegex(r),selections:[e],regexObj:r};this.selectorObjects[0]=i,this.selectorObjects[0].tiers=[n],this.updateAttributes()},Datatype.prototype.clone=function(){var e=new Datatype(datatype.name,datatype.context.collection,datatype.context.index);return e.selectorObjects=i.extend(!0,[],datatype.selectorObjects),e.highlightMap=i.extend(!0,{},datatype.highlightMap),e.context=i.extend(!0,{},datatype.context),e},Datatype.prototype.updateAttributes=function(){var e={};if(this.selectorObjects&&this.selectorObjects.length>0)for(var r=n.querySelectorAll(this.getCombinedSelector()),i=0;i<r.length;i++)if(t.testElForRegex(r[i],this,"getattributes")){var o=n.nearbyLink(r[i]);if(o&&"undefined"==typeof e.href){var a=this.context.attributes.href;a="undefined"!=typeof a?a.value:!0,e.href={attribute:"href",regex:t.getGenericRegexString(),value:a}}for(var s=r[i].attributes,l=0;l<s.length;l++)if(!s[l].name.match(/^kimono[^h]/)){var c=s[l].name.replace("kimono","");if("undefined"==typeof e[c]){var a=this.context.attributes[c],u=!1;a?u=this.context.attributes[c].value:"href"==c&&"A"==r[i].nodeName?u=!0:"src"!=c&&"alt"!=c||"IMG"!=r[i].nodeName||(u=!0),e[c]={attribute:c,regex:t.getGenericRegexString(),value:u}}}}this.context.attributes=e},Datatype.prototype.objectForExport=function(){var e={};e.name=this.name,e.context=i.extend(!0,{},this.context);var n={};for(attribute in e.context.attributes)n[attribute]={attribute:attribute,value:e.context.attributes[attribute].value,regex:t.getGenericRegexString()};e.context.attributes=n;var r=[];return this.selectorObjects.forEach(function(e){var t={};t.selector=e.selector,t.regex=e.regex.toString(),r.push(t)}),e.selectorObjects=r,e},this.new=function(e,t,n){return e?new Datatype(e,t,n):new Datatype("property"+ ++s,t,n)},this.getObjectForImport=function(n){var r=Object.create(Datatype.prototype);for(a in n)r[a]=n[a];for(selectorObjectIndex in r.selectorObjects){var o=r.selectorObjects[selectorObjectIndex];if(o){o.tiers=[o.selector];var s=i(o.selector).first();o.selections=[{element:s,selectedText:s.text(),startIndex:0,type:"tier",img:"IMG"==s.prop("tagName")?!0:!1}],o.rejectedTiers=[],o.regex=o.regex?t.parse(o.regex):t.reassembleRegex(o.regexObj)}}var l={};for(index in r.context.attributes)attributeObject=r.context.attributes[index],l[index]="true"==attributeObject||"false"==attributeObject?{attribute:index,value:"true"==attributeObject,regex:t.getGenericRegexString()}:{attribute:index,value:"true"==attributeObject.value,regex:t.getGenericRegexString()};return r.context.attributes=l,r.context.textContent=r.context.textContent?"true"==r.context.textContent:!0,r.context.hiddenElements=r.context.hiddenElements?"true"==r.context.hiddenElements:!1,"pagination"!=r.context.index&&(r.context.index="undefined"!=typeof r.context.index?parseInt(r.context.index):0,r.context.collection="undefined"!=typeof r.context.collection?parseInt(r.context.collection):0),e.$k&&"phantom"!=e.$k.config.clientEnv&&r.updateAttributes(),r},this.cloneDatatypes=function(e){var t=[];if(e.forEach(function(e){var n=new Datatype(e.name,e.context.collection,e.context.index);n.selectorObjects=i.extend(!0,[],e.selectorObjects),n.highlightMap=i.extend(!0,{},e.highlightMap),n.context=i.extend(!0,{},e.context),n.numElements=e.numElements,n.datalist=i.extend(!0,{},e.datalist),n.hide=e.hide,t.push(n)}),e.pagination){var n=e.pagination,r=new Datatype(n.name,"pagination","pagination");r.selectorObjects=i.extend(!0,[],n.selectorObjects),r.highlightMap=i.extend(!0,{},n.highlightMap),r.context=i.extend(!0,{},n.context),t.pagination=r}return t},this.Datatype=Datatype,"undefined"!=typeof e&&(e.$k||(e.$k={}),e.$k.datatypes=this)};return s}]),s.module("Kimono").factory("Kimono_async",[function(){var e=new function(){this.seriesFlow=function(e,t){var n=function(r,i){return 0==e.length||r?(t&&t(r,i),void 0):(e.shift()(n,i),void 0)};n()},this.parralelFlow=function(e,t){for(var n=0,r=function(){return n++,n==e.length?(t&&t(),void 0):void 0},i=0;i<e.length;i++)e[i](r)}};return e}]),s.module("Kimono").factory("Manipulation",["Kimono_async","Utils",function(e){var n=new function(){this.simulateClick=function(e){return e.each(function(){if("createEvent"in t){var e=this.ownerDocument,n=e.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,e.defaultView,1,0,0,0,0,!1,!1,!1,!1,0,null),this.dispatchEvent(n)}else this.click()})},this.animateTextInput=function(){var e,t=Array.prototype.slice.call(arguments),n=t.shift(),r=t.shift(),o=t.pop(),a=t.pop()||{},s=a.duration||1e3;e=s/r.length;var l=0;if(n){this.simulateClick(i(n)),i(n).focus(),n.value="";var c=setInterval(function(){n.value=n.value+r.charAt(l),l++,l==r.length&&(clearInterval(c),o&&o())},e)}},this.fillLoginForm=function(t,n,r){var i=this;e.seriesFlow([function(e){i.animateTextInput(t.usernameInput,n.username,e)},function(e){i.animateTextInput(t.passwordInput,n.password,e)}],r)}};return n}]),s.module("Kimono").factory("Regex",["Utils",function(t){var r=new function(){this.escapeEscapeSequences=function(e){return e.replace(/\b/g,"").replace(/\f/g,"").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")},this.parse=function(e){var t=e.match(/(?:^\/)(.+)((?:\/)(?:[a-z])*$)/),e=new RegExp(t[1],t[2].substr(1));return e},this.buildRegexForN=function(e,t){for(var n=[],r=0;r<e.length;r++)"actual"==e[r].type&&n.push(e[r]);var i=[],o=[],a=[],s=[],l=[],c=n.length,u=[],f=!1,d=function(e){for(var t=!1,n=0;n<e.length-1;){if(e[n].selectedText.toLowerCase()!=e[n+1].selectedText.toLowerCase()){t=!1;break}t=!0,n++}return t},p=function(e){for(var t=!0,n=0;n<e.length;)0!=e[n]&&(t=!1),n++;return t},h=function(e){for(var t=!1,n=0;n<e.length;)0==e[n]&&(t=!0),n++;return t},g=function(e,t){for(var n=0;n<t.length;n++)t[n]=e(t[n]);return t},m=function(e,t){for(var n=!0,r=0;r<e.length;){if(e[r]!=t[r].length-1)return n=!1;r++}return n},v=function(e,t){for(var n=!1,r=0;r<e.length;){if(e[r]==t[r].length-1)return n=!0;r++}return n},y=function(e){return e--,e},b=function(e){return e++,e},x=function(e,t){for(var n=!0,r=0;r<t.length-1;){if(t[r][e[r]]!=t[r+1][e[r+1]])return n=!1;r++}return n};if(1==n.length)u=[n[0],n[0]];else for(var r=0;c>r;r++)u[r]=n[r];for(var r=0;c>r;r++)i[r]=u[r].startIndex,o[r]=i[r]+u[r].selectedText.length-1,a[r]=u[r].element.text(),s[r]=i[r],l[r]=o[r];var $="",k="",w="",C="",S="",E="([^]*?)",A="",T=!1,O=!1;c>1&&d(n)&&(E="("+n[0].selectedText+")",f=!0);for(var N=!0,j=0;N&&t>j;){if(p(s))$="^",N=!1;else if(h(s)){if(0==j){T=!0;for(var r=0;c>r;r++)0!=s[r]&&(S+=a[r][s[r]-1])}N=!1}else if(s=g(y,s),x(s,a))w=a[0][s[0]]+w;else if(0==j){for(var r=0;c>r;r++)S+=a[r][s[r]];N=!1}else N=!1;j++}var M=!0;for(j=0;M&&t>j;){if(m(l,a))k="$",M=!1;else if(v(l,a)){if(0==j){O=!0;for(var r=0;c>r;r++)l[r]!=a[r].length-1&&(A+=a[r][l[r]+1])}M=!1}else if(l=g(b,l),x(l,a))C+=a[0][l[0]];else if(0==j){for(var r=0;c>r;r++)A+=a[r][l[r]];M=!1}else M=!1;j++}var I={leftCharClass:S.replace(/\\/g,"\\\\"),leftHasBeginning:T,leftPattern:w.replace(/\\/g,"\\\\"),rightCharClass:A.replace(/\\/g,"\\\\"),rightHasEnd:O,rightPattern:C.replace(/\\/g,"\\\\"),middlePattern:E.replace(/\\/g,"\\\\"),prefix:$,suffix:k,identicalText:f};return I},this.buildGenericRegex=function(){return{identicalText:!1,leftCharClass:"",leftHasBeginning:!1,leftPattern:"",middlePattern:"(.*?)",prefix:"^",rightCharClass:"",rightHasEnd:!1,rightPattern:"",suffix:"$"}},this.buildPaginationRegex=function(e){var t=e&&""!=e.trim()?this.escape(e):".*?";return{identicalText:!1,leftCharClass:"",leftHasBeginning:!1,leftPattern:"",middlePattern:"("+t+")",prefix:"^",rightCharClass:"",rightHasEnd:!1,rightPattern:"",suffix:"$"}},this.buildRegexObjectFromRegex=function(e){var t=e.toString(),n=t.match(/\/(\^?)\((.*?)\)\((.*?)\)\((.*?)\)(\$?)\//);return{identicalText:!1,leftCharClass:"",leftHasBeginning:!1,leftPattern:n[2]||"",middlePattern:"("+n[3]+")",prefix:n[1]||"",rightCharClass:"",rightHasEnd:!1,rightPattern:n[4]||"",suffix:n[5]||""}},this.reassembleRegex=function(e){if(!e)return null;var t=i.extend({},e);""!=t.leftCharClass?(t.leftPattern="["+this.escape(t.leftCharClass)+"]",t.leftPattern=t.leftHasBeginning?"(^|"+t.leftPattern+")":"("+t.leftPattern+")"):t.leftPattern="("+this.escape(t.leftPattern)+")",""!=t.rightCharClass?(t.rightPattern="["+this.escape(t.rightCharClass)+"]",t.rightPattern=t.rightHasEnd?"("+t.rightPattern+"|$)":"("+t.rightPattern+")"):t.rightPattern="("+this.escape(t.rightPattern)+")";var n=t.prefix+t.leftPattern+t.middlePattern+t.rightPattern+t.suffix;return new RegExp(this.escapeEscapeSequences(n))},this.getGenericRegexString=function(){return"/^()(.*?)()$/"},this.testElForRegex=function(e,n,r){var i=n.getRegexForEl(e);if(0==e.offsetWidth&&0==e.offsetHeight&&"kim-table-normalizer"!=e.className&&"pagination"!=r&&1!=n.context.hiddenElements&&"true"!=n.context.hiddenElements)return!1;if("IMG"==e.tagName)return!0;if(t.querySelectorAll("img",e).length>0)return!0;if(e.textContent.match(/^\s*$/)&&"pagination"!=r&&"getattributes"!=r&&(0==t.size(n.context.attributes)||"hldraw"==r))return!1;if(String(i)===String(/^()(.*?)()$/))return!0;var o=t.tightMatch(i,e.textContent);return o&&o[2]?o[2].length>0:!1},this.getMatchedText=function(e,n,r,i){if(i=!1,n&&String(n)!==String(/^()(.*?)()$/)&&"pagination"!=r){var o=t.tightMatch(n,e.textContent);return o?i?o[2]:t.cleanTrim(o[2]):""}return i?e.textContent:t.cleanTrim(e.textContent)},this.getStartOffset=function(e,n,r){if(n&&String(n)!==String(/^()(.*?)()$/)&&"pagination"!=r){var i=e.textContent,o=t.tightMatch(n,i);return o?i.search(n)+o[1].length:0}return 0},this.getStartNode=function(e,t,r,i){for(var o=e.childNodes,a=t;a<o.length;){var s=o[a],l=0;if(3==s.nodeType)for(;l<s.nodeValue.length;){if(i==r)return{startNode:s,startOffset:l,startNodeIndex:a,globalCount:i};l++,i++}else if(1==s.nodeType){var c=this.getStartNode(s,0,r,i);if(c.startNode)return c;i=c.globalCount}a++}return{startNode:n,startOffset:n,startNodeIndex:null,globalCount:i}},this.isSameTier=function(e,n){var r=Array.prototype.slice.call(t.querySelectorAll(e)),i=Array.prototype.slice.call(t.querySelectorAll(n));return r.every(function(e){return i.indexOf(e)>=0})&&i.length==r.length?!0:!1},this.isSuperTier=function(e,n,r){var i=Array.prototype.slice.call(t.querySelectorAll(e)),o=Array.prototype.slice.call(t.querySelectorAll(n)),a=Array.prototype.slice.call(t.querySelectorAll(r));return i.every(function(e){return a.indexOf(e)>=0})&&a.length>o.length?!0:!1},this.isSuperset=function(e,n){var r=Array.prototype.slice.call(t.querySelectorAll(e)),i=Array.prototype.slice.call(t.querySelectorAll(n));return r.every(function(e){return i.indexOf(e)>=0})&&i.length>r.length?!0:!1},this.getStartOffset=function(e,n,r){if(n&&String(n)!==String(/^()(.*?)()$/)&&"pagination"!=r){var i=e.textContent,o=t.tightMatch(n,i);return o?i.search(n)+o[1].length:0}return 0},this.allMatchRegex=function(e,t){for(var n=0;n<e.length;n++)if(!e[n].match(t))return!1;return!0};this.escape=function(e){return e.replace(/[-\/^$*+?.()|[\]{}]/g,"\\$&")},this.unescape=function(e){return e.replace(/\\([-\/\\^$*+?.()|[\]{}])/g,"$1")},"undefined"!=typeof e&&(e.$k||(e.$k={}),e.$k.regex=this)};return r}]),s.module("Kimono").factory("Selections",["Regex","Utils",function(r,o){var a=new function(){var a=function(e){for(var t=o.querySelectorAll(e),n=0;n<t.length;n++){if(o.querySelectorAll("li",t[n]).length>1)return!1;if(o.querySelectorAll("td",t[n]).length>1)return!1;if(o.querySelectorAll("th",t[n]).length>1)return!1;if(o.querySelectorAll("tr",t[n]).length>1)return!1;if(o.querySelectorAll("p",t[n]).length>1)return!1;if(o.querySelectorAll("div",t[n]).length>1)return!1;if(o.querySelectorAll("option",t[n]).length>1)return!1}return!0},s=function(e,t){t[t.length-1]="";for(var n=[],r=0;r<e.length;r++)n.push(e[r].str),n.push(t[r]);return n.join("")},l=function(e,t,n){t[t.length-1]="";for(var r=[],i=0;i<e.length;i++)r.push(e[i].tagName),n.nthChild[i]&&r.push(e[i].nthChild),n.id&&r.push(e[i].id),n.classList[i]&&r.push(e[i].classList),r.push(t[i]);return r.join("")},c=function(e){var t=e.shift();if(0==e.length)return t;for(var n=[],r=0;r<t.length;r++){for(var i=!1,o=0;o<e.length;o++)if(-1==e[o].indexOf(t[r])){var i=!0;break}i||n.push(t[r])}return n},u=function(e){for(var t,n=0,r=1;r<e.length;r++){var i=parseInt(e[r-1].replace(/:.*?\((\d+)\)/,"$1")),o=parseInt(e[r].replace(/:.*?\((\d+)\)/,"$1"));if(t=o-i>0?o-i:t,t!=n&&r>1&&o-i>0){t=null;break}}return t},f=function(e){for(var t=!0,n=1;n<e.length;n++)if(e[0]!=e[n]){t=!1;break}return t},d=0,p=function(e,n){if(1e5==d++)return!1;for(var r=[],i=n.length,o=0;o<n.length;o++)r[o]=e[o];for(var o=0;i>o;o++)for(var a=0;a<n[o];a++)r[o]=r[o].parentNode;for(var s=!0,o=1;i>o;o++)if(r[0]!==r[o]){s=!1;break}if(s)return n;for(var l=!0,o=i-1;o>=0&&l;o--){if(r[o]!==t.body&&6!=n[o]){n[o]++,l=!1;break}if(0==o)return!1;n[o]=0,l=!0}return p(e,n,t)},h=function(e){if(e.hasChildNodes())return e.firstChild;for(;e&&!e.nextSibling;)e=e.parentNode;return e?e.nextSibling:null};this.getTierSelectors=function(e,t,n){var i,o=e.split(" > "),s=[];i=o.length>t?o.length-t:0;for(var l="",c=0;i>c;c++)l+=o[c],l+=" > ";for(var c=i;c<o.length;c++){var u=o[c].match(/(.*?)(:nth.*?)?(\..*?)?(#.*)?$/);u&&s.push({tagname:u[1],nthchild:u[2]?u[2]:"",classname:u[3]?u[3]:"",idvalue:u[4]?u[4]:""})}var f=[];f.push(e);var d=0,p=0,h=function(e,t,i,o){p++,d!=n&&(e>0&&(t+=" > "),t+=s[e].tagname,i&&o?t+=s[e].nthchild+s[e].classname+s[e].idvalue:i&&!o?t+=s[e].classname+s[e].idvalue:!i&&o&&(t+=s[e].nthchild),e<s.length-1?(h(e+1,t,!0,!0),h(e+1,t,!1,!0),s[e+1].tagname.match(/(td|th)/)||(h(e+1,t,!0,!1),h(e+1,t,!1,!1))):(t=l+t,r.isSuperTier(f[0],f[f.length-1],t)&&a(t)&&(f.push(t),d++)))};return h(0,"",!0,!0),h(0,"",!1,!0),s[0].tagname.match(/(td|th)/)||(h(0,"",!1,!1),h(0,"",!0,!1)),f},this.getRangeSelectedNodes=function(e){var t=e.startContainer,n=e.endContainer;if(t==n)return[t];for(var r=[];t&&t!=n;)r.push(t=h(t));for(t=e.startContainer;t&&t!=e.commonAncestorContainer;)r.unshift(t),t=t.parentNode;return r},this.pruneSelections=function(e,t){var n=[],r=t.split(" > ");r.forEach(function(e){var t=e.split(" ");n=n.concat(t)});for(var i=n[n.length-1],o=i.substring(0,i.search(/[:\.#]/)),a=[],s=0;s<e.length;s++)("*"==o||o==e[s].element.get(0).tagName.toLowerCase())&&a.push(e[s]);return a},this.getSuperSpecificSelector=function(e){for(var u,d,h=[],g=[],m=[],v=[];0==h.length||"body"!=h[0].tagName;){for(var y=[],b=[],x=[],$=[],k={},w=!1,C=!1,S=0;S<e.length;S++){y[S]=e[S].tagName.toLowerCase(),b[S]=":nth-child("+parseInt(i(e[S]).index()+1)+")";var E=[""];if(e[S].getAttribute("class")!=n)for(var A=e[S].className.split(/\s+/),T=0;T<A.length;T++)!A[T].match(/^\s*$/)&&A[T].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)&&E.push(A[T]);x[S]=E;var O=e[S].id;$[S]=O?"#"+O:"",$[S].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)||($[S]="")}if(f(y))k={tagName:y[0],nthChild:"",classList:"",id:"",str:""};else{if(h.length>0){C=!0;break}if(r.allMatchRegex(y,/^(td|th)$/)&&(u=[]),!u){m=[];for(var N=0;N<e.length;N++)m.push(0);if(u=p(e,m,t),!u)return null;for(var j=Math.min.apply(null,u),S=0;S<e.length;S++){var M=u[S]-j;if(M>0&&3>=M)for(var T=0;M>T;T++)e[S]=e[S].parentNode,w=!0;else if(M>3)return null}}w||(k={tagName:"*",nthChild:"",classList:"",id:"",str:"*"})}if(!w){f(b)&&(k.nthChild=b[0]);var I=c(x);I.length>1&&(k.classList=I.join(".")),f($)&&(k.id=$[0]),k.str=[k.tagName,k.nthChild,k.classList,k.id].join(""),h.unshift(k),g.unshift(d);var D=s(h,g);if(v.push({selector:D,selectorComponents:h.slice(0),separators:g.slice(0),numResults:o.querySelectorAll(D).length}),"body"!=y[0])for(var S=0;S<e.length;S++)e[S]=e[S].parentNode;d=" > "}if(C)break}for(var j=v[0].numResults,S=1;S<v.length&&(v[S].numResults<j&&(j=v[S].numResults),1!=j);S++);for(var P=Math.min(v.length-1,4),S=P;S<v.length;S++)if(v[S].numResults==j){var L=v[S].selector;break}for(var h=v[S].selectorComponents,g=v[S].separators,H=[],S=0;S<h.length+1;S++){H[S]=[];for(var T=0;T<h.length;T++)H[S][h.length-1-T]=S>T}var R,_=l(h,g,{id:!1,classList:H[0],nthChild:H[0]});if(r.isSuperset(L,_)||(R=_),!R){var _=l(h,g,{id:!0,classList:H[0],nthChild:H[0]});r.isSuperset(L,_)||(R=_)}if(!R)for(var S=1;S<H.length;S++){var _=l(h,g,{id:!0,classList:H[S],nthChild:H[0]});if(!r.isSuperset(L,_)){R=_;break}}if(!R)for(var S=1;S<H.length;S++){var _=l(h,g,{id:!0,classList:H[H.length-1],nthChild:H[S]});if(!r.isSuperset(L,_)){R=_;break}}return R||(R=L),a(R,t)?R:null},this.buildSelectorForN=function(e,d,h){for(var g,m,v=[],y=[],b=[],x=[],$=[],k=0;k<e.length;k++){var w=e[k].element.get(0);"undefined"!=typeof w&&w&&(b.push(w),x.push(0))}var C=!1,S=d[h].selectorObjects[0]?d[h].selectorObjects[0].rejectedTiers.join(","):"";if(""!=S)for(var E=o.querySelectorAll(S),k=0;k<E.length;k++)if(E[k]===b[b.length-1]){C=!0;break}for(;0==v.length||"body"!=v[0].tagName;){for(var A=[],T=[],O=[],N=[],j={},M=!1,I=!1,k=0;k<b.length;k++){A[k]=b[k].tagName.toLowerCase(),T[k]=":nth-child("+parseInt(i(b[k]).index()+1)+")";var D=[""];if(b[k].getAttribute("class")!=n)for(var P=b[k].className.split(/\s+/),L=0;L<P.length;L++)!P[L].match(/^\s*$/)&&P[L].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)&&D.push(P[L]);O[k]=D;var H=b[k].id;N[k]=H?"#"+H:"",N[k].match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)||(N[k]="")}if(f(A))j={tagName:A[0],nthChild:"",classList:"",id:"",str:""};else{if(v.length>0){I=!0;break}if(r.allMatchRegex(A,/^(td|th)$/)&&(g=[]),!g){x=[];for(var R=0;R<b.length;R++)x.push(0);if(g=p(b,x,t),!g)return null;for(var _=Math.min.apply(null,g),k=0;k<b.length;k++){var F=g[k]-_;if(F>0&&3>=F)for(var L=0;F>L;L++)b[k]=b[k].parentNode,M=!0;else if(F>3)return null}}M||(j={tagName:"*",nthChild:"",classList:"",id:"",str:"*"})}if(!M){if(f(T))j.nthChild=T[0];else if(C){var q=u(T);if(q){for(var U=parseInt(T[0].replace(/:.*?\((\d+)\)/,"$1")),R=0;R<T.length;R++){var W=parseInt(T[R].replace(/:.*?\((\d+)\)/,"$1"));U>W&&(U=W)}j.nthChild=[":nth-child(",q,"n + ",U,")"].join("")}}var B=c(O);B.length>1&&(j.classList=B.join(".")),f(N)&&(j.id=N[0]),"pagination"==h&&(j.nthChild=""),j.str=[j.tagName,j.nthChild,j.classList,j.id].join(""),v.unshift(j),y.unshift(m);var V=s(v,y);if($.push({selector:V,selectorComponents:v.slice(0),separators:y.slice(0),numResults:o.querySelectorAll(V).length}),"body"!=A[0])for(var k=0;k<b.length;k++)b[k]=b[k].parentNode;m=" > "}if(I)break}for(var _=$[0].numResults,k=1;k<$.length&&($[k].numResults<_&&(_=$[k].numResults),1!=_);k++);for(var U="pagination"==h?0:Math.min($.length-1,4),k=U;k<$.length;k++)if($[k].numResults==_){var z=$[k].selector;break}for(var v=$[k].selectorComponents,y=$[k].separators,K=[],k=0;k<v.length+1;k++){K[k]=[];for(var L=0;L<v.length;L++)K[k][v.length-1-L]=k>L}var X,G=l(v,y,{id:!1,classList:K[0],nthChild:K[0]});if(r.isSuperset(z,G)||(X=G),!X){var G=l(v,y,{id:!0,classList:K[0],nthChild:K[0]});r.isSuperset(z,G)||(X=G)}if(!X)for(var k=1;k<K.length;k++){var G=l(v,y,{id:!0,classList:K[k],nthChild:K[0]});if(!r.isSuperset(z,G)){X=G;break}}if(!X)for(var k=1;k<K.length;k++){var G=l(v,y,{id:!0,classList:K[K.length-1],nthChild:K[k]});if(!r.isSuperset(z,G)){X=G;break}}return X||(X=z),a(X,t)?X:null},this.removedNthChildForTableElements=function(e,t){if("td"==e.substr(e.lastIndexOf(":")-2,2)){var n=t.lastIndexOf("> ")+2;if("td"==t.substr(n,2)&&":"!=t[n+2])return!0}else if("th"==e.substr(e.lastIndexOf(":")-2,2)){var n=t.lastIndexOf("> ")+2;if("th"==t.substr(n,2)&&":"!=t[n+2])return!0}else{if("*"!=e.substr(e.lastIndexOf(":")-2,1))return!1;var n=t.lastIndexOf("> ")+2;if("*"==t.substr(n,2)&&":"!=t[n+1])return!0}},this.normalizeAllTables=function(){var e=Array.prototype.slice.call(t.getElementsByTagName("table"));e.forEach(function(e,n){var r=e.id||"kim-normalized-table-"+n;r.match(":")&&(r="kim-normalized-table-"+n),e.id=r;var i=o.querySelectorAll("tr",e);if(i.length>0){for(var a=i[0].children.length,s=0;s<i[0].children.length;s++){var l=i[0].children[s],c=parseInt(l.getAttribute("colspan"));c&&(a+=c-1)}for(var u=i[0].children.length,f=[],d=[],s=0;a>s;s++)f[s]=0,d[s]="";for(var s=0;s<i.length;s++){for(var p=i[s],h=0;h<p.children.length;h++){var l=p.children[h],c=parseInt(l.getAttribute("colspan")),g=l.tagName.toLowerCase();if(c)for(var m=0;c-1>m;m++){var v=t.createElement(g);v.style.display="none",v.className="kim-table-normalizer",v.innerHTML=l.textContent,h+1>=p.children.length?p.appendChild(v):p.insertBefore(v,p.children[h+1])}}for(var u=p.children.length,h=0;u>h;h++)if(f[h]>0){if(p.children.length>0)var g=p.children[0].tagName.toLowerCase();else var g="td";var y=t.createElement(g);y.style.display="none",y.className="kim-table-normalizer",y.innerHTML=d[h];var b=p.children.length;b>h?p.insertBefore(y,p.children[h]):p.appendChild(y),f[h]--}for(var x=p.children,m=0;m<x.length;m++){var $=x[m].getAttribute("rowspan");$&&(f[m]+=$-1,d[m]=x[m].textContent)}}}})},"undefined"!=typeof e&&(e.$k||(e.$k={}),e.$k.selections=this)};return a}]),s.module("Kimono").factory("Utils",["Config","Common",function(r,o){var a=new function(){this.startsWith=function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())},this.isKimonoChild=function(e,t){if(!e[0])return!1;if(i.contains(i("#Kimonify")[0],e[0]))return!0;for(var n=i(".kim-highlight-wrapper"),r=0;r<n.length;r++)if(n[r]&&i.contains(n[r],e[0]))return!0;for(var o=i(".kim-hint"),r=0;r<o.length;r++)if(o[r]&&i.contains(o[r],e[0]))return!0;if(t)return e[0].className.match(/kim-highlight-wrapper|kim-hint/);var a=i(".kim-TempSpecial")[0];return a&&i.contains(a,e[0])?!0:e[0].className.match(/kim|kim-TempSpecial|kim-highlight-wrapper|kim-hint/)},this.linkEnable=function(){i("a:not(.kim a, #Kimonify a) ").each(function(){var e=i(this);e.attr("href",e.attr("kimonohref")),e.attr("target","_self"),e.attr("onmousedown",e.attr(" kimonomousedown")),e.attr("onclick",e.attr(" kimonoclick")),e.attr("onmouseup",e.attr(" kimonomouseup")),e.removeAttr("kimonohref"),e.removeAttr("kimonomousedown"),e.removeAttr("kimonoclick"),e.removeAttr("kimonomouseup")})},this.linkDisable=function(){i("a:not(.kim a, #Kimonify a)").each(function(){var e=i(this);e.attr("kimonohref",e.attr("href")),e.attr("kimonomousedown",e.attr("onmousedown")),e.attr("kimonoclick",e.attr("onclick")),e.attr("kimonomouseup",e.attr("onmouseup")),e.attr("target","_self"),e.removeAttr("href"),e.removeAttr("target"),e.removeAttr("onmousedown"),e.removeAttr("onclick"),e.removeAttr("onmouseup")})},this.getElementPos=function(e,n,r){var o=t.createRange();o.selectNodeContents(e);var a=o.getBoundingClientRect(),s=a.left-6,l=a.top+i(t).scrollTop()-t.body.clientTop-2;return{x:s-n,y:l-r}},this.isIntersecting=function(e,t){$this=i(e);var n=$this.offset(),r=[n.left,n.left+$this.outerWidth()],o=[n.top,n.top+$this.outerHeight()];$that=i(t);var a=$that.offset(),s=[a.left,a.left+$that.outerWidth()],l=[a.top,a.top+$that.outerHeight()];return s[0]<r[1]&&s[1]>r[0]&&l[0]<o[1]&&l[1]>o[0]},this.animate=function(e,t,n,r){e.addClass("km-animated "+t),setTimeout(function(){e.removeClass("km-animated "+t),r&&r()},parseInt(n))},this.getUrlParam=function(e){return decodeURIComponent((RegExp(e+"=(.+?)(&|$)").exec(location.search)||[,null])[1])};var a=function(e,t,n){var t=encodeURIComponent(t);if(n.match(/\?/)){var r=new RegExp("(?!\\?|&)"+e+"=.*?(?=&|$)","g");return n.match(r)?n.replace(r,e+"="+t):n+"&"+e+"="+t}return n+"?"+e+"="+t};this.addUrlParameters=function(t){var n=e.location.search;_.each(t,function(e,t){n=a(t,e,n)}),e.location.search=n},this.getTargetUrl=function(){return"phantom"==r.clientEnv?e&&e.location?e.location.href:"null":"angular"==r.clientEnv?decodeURIComponent((RegExp("url=(.+?)(&|$)").exec(location.search)||[,null])[1])||"null":"chrome"==r.clientEnv?e.location.href||"null":"null"},this.getBaseUrl=function(){var e=i("base"),t=i(e[e.length-1]).attr("href");return t||this.getTargetUrl()},this.decodeHtml=function(e){var n=t.createElement("textarea");return n.innerHTML=e,n.value},this.drawHint=function(e,t,n,r,o,a,s,l,c,u){var a=a||"fixed",s=s||"down",l=l||"left",f=c?"":"attention",d=i('<div class="kim-hint '+f+'" style="width:'+o.width+"px;min-height:"+o.height+";position:"+a+"; top:"+r.y+"px; left:"+r.x+'px;"><div class="kim-wrapper"><h3>'+t+"</h3><p>"+n+'</p><a class="kim-dismiss-button"></a></div></div>');"down"==s?d.find(".kim-wrapper").append('<div class="kim-arrow-down"></div>'):"up"==s&&d.find(".kim-wrapper").prepend('<div class="kim-arrow-up"></div>'),"right"==l?d.find(".kim-arrow-up, .kim-arrow-down").css("right","5px"):"left"==l&&d.find(".kim-arrow-up, .kim-arrow-down").css("left","5px"),r.right&&(d.css("left","auto"),d.css("right",r.right+"px")),r.bottom&&(d.css("top","auto"),d.css("bottom",r.bottom+"px"));var p=function(){u&&u();i(this);d.css("opacity",0),setTimeout(function(){d.remove()},200)};return d.find(".kim-dismiss-button").bind("click",function(){p()}),i(e).append(d),setTimeout(function(){d.css("opacity",.95)},10),p},this.drawTooltip=function(e,t,n,r){var n=n||"down",r=r||"left",o=!1,a=i('<div class="kim-hint kim-tooltip" style="position:absolute; top:'+t.y+"px; left:"+t.x+'px;"><div class="kim-wrapper"><p>'+e+"</p></div></div>");"down"==n?a.find(".kim-wrapper").append('<div class="kim-arrow-down"></div>'):"up"==n&&a.find(".kim-wrapper").prepend('<div class="kim-arrow-up"></div>'),"right"==r?a.find(".kim-arrow-up, .kim-arrow-down").css("margin-left","191px"):"center"==r&&(a.find(".kim-arrow-up, .kim-arrow-down").css("margin","0 23px"),a.css("text-align","center")),t.right&&(a.css("left","auto"),a.css("right",t.right+"px"));var s=function(){o||l()},l=function(){};return a.bind("mouseenter",function(){o=!0}),a.bind("mouseleave",function(){l()}),i("body").append(a),setTimeout(function(){a.css("opacity",.95)},10),s},this.querySelectorAll=function(e,t){if(!e||".kimonothisisnotaclassandwonteverbe"==e)return[];"string"!=typeof e&&e.length&&(e=e.join(", "));var n=i||$k.$;if(t){var r=n(t).find(e);return r}var o=n(e),a=i("#Kimonify")[0];if(a){for(var s=[],l=0;l<o.length;l++)a.contains(o[l])||s.push(o[l]);return s}return o},this.queryDebug=function(e,t){if(!e||".kimonothisisnotaclassandwonteverbe"==e)return[];"string"!=typeof e&&e.length&&(e=e.join(", "));var n=i||$k.$;if(t){var r=n(t).find(e);return r}var r=n(e);return r},this.looseStringContains=function(e,t){var n=!1;return t.forEach(function(t){t.match(e)&&(n=!0)}),n},this.clean=function(e){return e.replace(/[\t\r ]+/g," ").replace(/[\n\r]+/g,"\n").replace(/\n\s+/g,"\n")},this.cleanTrim=function(e){return this.clean(e).trim()},this.tightMatch=function(e,t){var n=t.match(e);if(0==t.search(e))return n;var r,i=t.match(e),o=t.length;if(n){r=t.match(e)[2],o=Math.min(t.search(e)+t.match(e)[0].length,o);for(var a=0;a<t.length-1;a++)t=t.slice(1,o-a),t.match(e)&&t.match(e)[2].length<r.length&&(r=t.match(e)[2],n=t.match(e));for(var s=0;s<i[2].length-n[2].length;s++)n[1]=" "+n[1],n[0]=" "+n[0]}return n},this.nearbyLink=function(t){var r="kimonohref";if("phantom"==e.$k.config.clientEnv&&(r="href"),this.querySelectorAll("a["+r+"]",t).length>0)return o.relToAbs(t.querySelector("a["+r+"]").getAttribute(r),this.getBaseUrl());for(var i=t.parentNode,a=!1,s=0;i.parentNode&&s++<5;){if(i.getAttribute(r)){a=!0;break}i=i.parentNode}return a?o.relToAbs(i.getAttribute(r),this.getBaseUrl()):n},Array.prototype.forEach||(Array.prototype.forEach=function(e,t){"use strict";var n,r;for(n=0,r=this.length;r>n;++n)n in this&&e.call(t,this[n],n,this)}),this.displayFrequency=function(e,t,n){return"realtime"==e&&t?"On demand":"realtime"==e&&n?"No schedule":"realtime"==e?"On demand":"minutely"==e?"Every minute":"fiveminutely"==e?"Every 5 minutes":"quarterhourly"==e?"Every 15 mins":"halfhourly"==e?"Every 30 mins":"hourly"==e?"Every hour":"daily"==e?"Daily":"weekly"==e?"Weekly":"monthly"==e?"Monthly":"Every hour"},this.displayCrawlLimit=function(e){return e+" pages max"},this.size=function(e){var t,n=0;for(t in e)e.hasOwnProperty(t)&&n++;return n},"undefined"!=typeof e&&(e.$k||(e.$k={}),e.$k.utils=this)};return a}]),s.module("Kimono").animation(".kim-data-dot",["Utils",function(e){return{enter:function(t,n){e.animate(t,"pulse2",300,function(){n()
})},leave:function(e,t){e.remove(),t()}}}]),s.module("Kimono").factory("HighlightManager",["Config","Collections","Selections","Regex","Datatypes","Utils",function(r,o,a,s,l,c){var u=0,f={},d=n,p=function(e,n,r){if(String(n)===String(/^()(.*?)()$/)||"pagination"==r){var i=t.createRange();return i.selectNodeContents(e),i}var o=e.childNodes,a=(o.length,s.getMatchedText(e,n),s.getStartOffset(e,n)),l=s.getStartNode(e,0,a,0),i=t.createRange();return i.setStart(l.startNode,l.startOffset),i.setEnd(l.startNode,l.startOffset+1),i};f.init=function(e){d=e},f.refresh=function(e,t,n){f.removeHighlightsForDatatypeIndex(n,t),f.updateHighlights(n,e)},f.updateHighlightsForAllDatatypes=function(e,t,n){i.each(e,function(r,i){f.updateHighlights(e,r,t,n),i.hide||f.hideHighlights(e,r)}),e.pagination&&(f.updateHighlights(e,"pagination",t,n),f.hideHighlights(e,"pagination"))},f.removeAllHighlights=function(e){i.each(e,function(t){f.removeHighlightsForDatatypeIndex(e,t)}),e.pagination&&f.removeHighlightsForDatatypeIndex(e,"pagination")},f.processSelection=function(e,t,n,i,o){var c=n[i].selectorObjects;if(c[0]&&c[0].selector&&""!=c[0].selector&&"pagination"!=i){var u=a.buildSelectorForN(c[0].selections.concat([e]),n,i);if(u&&a.removedNthChildForTableElements(c[0].selector,u)&&(u=null),u)c[0].selections.push(e),c[0].selector=u,c[0].tiers=a.getTierSelectors(u,r.MAX_TIER_ANCESTRY,r.MAX_TIERS),c[0].rejectedTiers=[],"dragged"==t&&(c[0].regex=s.reassembleRegex(s.buildRegexForN(c[0].selections,r.REGEX_CLIP)));else{if(16==n.length)return d.toast("warning","Please delete a datatype.",3e3),void 0;i++,d.datatypeIndex++,n.push(l.new(null,o,i));var f=n[i].initiateWithSelectionObj(e,t,r.MAX_TIER_ANCESTRY,r.MAX_TIERS,n,i);if("Error"==f)return}}else{var f=n[i].initiateWithSelectionObj(e,t,r.MAX_TIER_ANCESTRY,r.MAX_TIERS,n,i);if("Error"==f)return}},f.hideHighlights=function(e,t){i.each(e[t].highlightMap,function(n,r){r.dontEdit||e[t].hide||(r.highlight.style.display="none")})},f.showHighlights=function(e,t){e[t]&&i.each(e[t].highlightMap,function(e,t){t.dontEdit||(t.highlight.style.display="block")})},f.updateHighlights=function(e,n,r,o){if(e[n]&&e[n].selectorObjects){f.removeHighlightsForDatatypeIndex(e,n),e[n].highlightMap={};for(var a=e[n].selectorObjects,l=a.length,u=t.createDocumentFragment(),d=0;l>d;d++)for(var p=a[d].tiers.length,g=0;p>g;g++)for(var m=c.querySelectorAll(a[d].tiers[g]),v=m.length,y=0;v>y;y++){var b=m[y].tagName.match(/IMG/i)?!0:!1,x=s.testElForRegex(m[y],e[n],"hldraw"),$=m[y].getAttribute("kimonodatatype"),k=$?$.split("-"):[],w=k.indexOf(String(n));!x&&"loginMode"!=o||-1!=w||"kim-table-normalizer"!=m[y].className&&u.appendChild(h(m[y],d,g,e,n,b,o))}t.body.appendChild(u),r||i(".kim-highlight").each(function(){this.querySelector("img")?c.animate(i(this),"pulse-img",200):c.animate(i(this),"kimpulse",200)})}};var h=function(o,a,l,c,h,m,v){function y(e){return z[e]||e}function b(e){return e?e.replace(/[&<>]/g,y):e}id=u++;for(var m=o.tagName.match(/IMG/i)?!0:!1,x=o,$=0;x.children.length&&$++<100;)for(var k=x.children,w=0;w<k.length&&$++<100;w++)if(1==x.children[w].nodeType&&x.children[w].textContent.trim()==x.textContent.trim()){x=k[w];break}var C=e.getComputedStyle(x),S=C.font,E=C.fontStyle,A=C.fontVariant,T=C.fontWeight,O=C.fontFamily,N=C.fontSize,j=C.lineHeight,M=C.textTransform,I=C.textAlign;if(m)var D=6,P=6;else{var D=2,P=2;if("normal"!=j){var L=parseInt(j)-parseInt(N);if(L/2>2)var D=0,P=Math.floor(L/2)}}var H=c[h].selectorObjects,R=H[a].tiers[l],_=H[a].regex,F=s.getMatchedText(o,_),q=p(o,_,h),U=q.getBoundingClientRect(),W=U.left-6,B=U.top+i(t).scrollTop()-t.body.clientTop-P,V=t.createElement("div");V.setAttribute("kimonodatatype",h),V.setAttribute("kimonoid",id),V.setAttribute("kimonotier",l),V.className=["kim","kim-highlight","kim-"+r.getColor(h),"kim-tier-"+l].join(" "),V.style.left=[W,"px"].join(""),V.style.top=[B,"px"].join(""),V.style.font=S,V.style.fontStyle=E,V.style.fontVariant=A,V.style.fontWeight=T,V.style.fontFamily=O,V.style.fontSize=N,V.style.lineHeight=j,V.style.lineHeight=j,V.style.textTransform=M,V.style.textAlign=I,V.style.zIndex=21474899,V.style.paddingTop=[D,"px"].join(""),V.style.paddingBottom=[D,"px"].join("");var z={"&":"&amp;","<":"&lt;",">":"&gt;"},K=t.createElement("div");if(K.className="kim-highlight-wrapper",m){var X=t.createElement("img");V.style.lineHeight="0px",X.setAttribute("src",o.getAttribute("src")),X.style.width=[U.width,"px"].join(""),X.style.height=[U.height,"px"].join(""),K.style.height=[U.height,"px"].join(""),X.style.borderRadius=C["border-radius"],1==l?X.style.opacity="0.9":2==l?X.style.opacity="0.8":3==l&&(X.style.opacity="0.7"),K.appendChild(X)}else K.innerHTML=b(F);if(V.appendChild(K),o.getAttribute("kimonoid")){var G=o.getAttribute("kimonoid").split("-"),Y=o.getAttribute("kimonodatatype").split("-"),J=Y.indexOf(String(h));0>J?(G.push(id),Y.push(h)):G[J]=id,o.setAttribute("kimonoid",G.join("-")),o.setAttribute("kimonodatatype",Y.join("-"))}else o.setAttribute("kimonoid",id),o.setAttribute("kimonodatatype",h);if(c[h].highlightMap[id]={element:o,highlight:V,text:F,tier:l,top:B,left:W,dontEdit:!1,action:n,alwaysShow:"loginMode"==v},l>0){var Q=t.createElement("a");Q.className="kim-highlight-button kim-accept-highlight",K.appendChild(Q),Q.addEventListener("click",function(){d.save(),c[h].acceptTier({element:i(o),selectedText:F,startIndex:0,type:"tier",img:m},l,c,h),d.updateModel(!0),f.updateHighlights(c,h)});var Z=t.createElement("a");Z.className="kim-highlight-button kim-reject-highlight",K.appendChild(Z),Z.addEventListener("click",function(){d.save(),c[h].removeTierForIndex(R,a),f.updateHighlights(c,h)}),K.style.paddingRight="35px",K.style.maxWidth=[o.offsetWidth+35,"px"].join("")}else if("loginMode"==v){var et=o.clientHeight-4;V.style.textAlign="left",V.style.minHeight=et+"px",V.style.minWidth=o.clientWidth+2+"px",V.style.top=i(o).offset().top+"px",V.style.left=i(o).offset().left+"px",V.style.fontFamily="sans-serif",V.style.fontWeight=20>et?400:400,V.style.fontSize=12>.55*et?12:.55*et+"px",console.log("heights",V.style.minHeight,V.style.fontSize);var tt=t.createElement("span");tt.className="kim kim-highlight-text",tt.style.lineHeight=1*et+"px",tt.style.marginRight=(5>.25*et?5:.25*et)+"px",K.innerHTML="",0==h?(g("kim-user-highlight",K,et),tt.innerHTML="Username",K.appendChild(tt)):1==h?(g("kim-password-highlight",K,et),tt.innerHTML="Password",K.appendChild(tt)):2==h&&(g("kim-target-highlight",K,et),tt.innerHTML="Submit",K.appendChild(tt))}else V.className=[V.className,"kim-accepted"].join(" "),K.style.maxWidth=[o.offsetWidth,"px"].join("");return V.addEventListener("mouseenter",function(){this.style.zIndex++}),V.addEventListener("mouseleave",function(){this.style.zIndex--}),V},g=function(e,n,r,i){var o=t.createElement("span");o.className="kim-highlight-icon "+e,o.style.lineHeight=1.05*r+"px";var i=.7*r;13>i&&(i=13),o.style.width=i+"px",o.style.height=i+"px",o.style.marginLeft=(1>.15*r?1:.15*r)+"px",o.style.marginRight=(3>.25*r?3:.25*r)+"px",o.style.marginTop=-(.075*r>4?4:1>.075*r?1:.075*r)+"px",n.appendChild(o)};return f.removeHighlightsForDatatypeIndex=function(e,t){if(e[t]&&e[t].selectorObjects){e[t].highlightMap||(e[t].highlightMap={});for(var n=e[t]?e[t].highlightMap:{},i=(new Date,c.querySelectorAll(".kim-highlight.kim-"+r.getColor(t))),o=0;o<i.length;o++){i[o].style.display="none",i[o].style.left="-9999px",i[o].parentNode.removeChild(i[o]);var a=i[o].getAttribute("kimonoid");if(n[a]&&n[a].element){var s=n[a].element,l=s.getAttribute("kimonoid").split("-"),u=l.indexOf(String(a));if(l.splice(u,1),0==l.length)s.removeAttribute("kimonoid"),s.removeAttribute("kimonodatatype");else{var f=s.getAttribute("kimonodatatype").split("-");f.splice(u,1),s.setAttribute("kimonoid",l.join("-")),s.setAttribute("kimonodatatype",f.join("-"))}}delete n[a]}}},f}]),s.module("Kimono").factory("Validation",["Utils",function(e){var t={};return t.selector=function(t){try{if(""==t)return!1;{e.querySelectorAll(t)}return!1}catch(n){return!0}},t.regex=function(e){try{{new RegExp(e)}return!1}catch(t){return!0}},t}]),s.module("Kimono").factory("WebServices",["Config","$q","Utils","$location",function(e,t){var n={},r={};return n.getCurrentUser=function(){var n=t.defer();return i.getJSON(e.KM_HOST_WWW+"/ws/users/me",function(e){e?n.resolve(e):n.reject({msg:"No Current User",data:e})}),n.promise},r.getCurrentUser=function(){var e=t.defer();return chrome.runtime.onMessage.addListener(function(t){"id"==t.type&&(t.data?e.resolve(t.data):e.reject({msg:"No Current User",data:t.data}))}),chrome.runtime.sendMessage({type:"currentUser"}),e.promise},n.login=function(n,r){var o=t.defer();return i.ajax({type:"POST",url:e.KM_HOST_WWW+"/users/session",data:{email:n,password:r},success:function(e){o.resolve(e.user)},error:function(e,t,n){o.reject({msg:"Error Logging In",code:n})},dataType:"json"}),o.promise},r.login=function(e,n){var i=t.defer();return chrome.runtime.onMessage.addListener(function(e){"userSessionSuccess"==e.type?r.getCurrentUser().then(function(e){i.resolve(e)},function(){i.reject({msg:"Incorrect Login Info",code:response})}):"userSessionFail"==e.type&&i.reject({msg:"Error Logging In",code:e.data})}),chrome.runtime.sendMessage({type:"userSession",data:{email:e,password:n}}),i.promise},n.signup=function(n,r,o){var a=t.defer();return i.ajax({type:"POST",url:e.KM_HOST_WWW+"/processsignup",data:{name:n,email:r,password:o},success:function(e){a.resolve(e.user)},error:function(e,t,n){a.reject({msg:"Error Logging In",code:n})},dataType:"json"}),a.promise},r.signup=function(e,n,r){var i=t.defer();return chrome.runtime.onMessage.addListener(function(e){"signupSuccess"==e.type?i.resolve(e.data):"signupFailed"==e.type&&i.reject(e.data)}),chrome.runtime.sendMessage({type:"signup",data:{name:e,username:n,password:r}}),i.promise},n.createApi=function(n){var r=t.defer(),o=n.id?"/ws/editapi":"/ws/create";return i.ajax({type:"POST",url:e.KM_HOST_WWW+o,data:n,success:function(e){e.error?r.reject(e.error):r.resolve(e)},error:function(e,t,n){r.reject(n)},dataType:"json"}),r.promise},r.createApi=function(e){var n=t.defer();return chrome.runtime.onMessage.addListener(function(e){"createApiSuccess"==e.type?n.resolve(e.data):"createApiError"==e.type?n.reject(e.data):"createApiFail"==e.type&&n.reject(e.data)}),chrome.runtime.sendMessage({type:"createApi",data:e}),n.promise},n.apiForEditing=function(n){var r=t.defer();return setTimeout(function(){r.notify(1)},300),i.ajax({type:"GET",url:e.KM_HOST_WWW+"/ws/api/"+n,success:function(e){r.resolve(e)},error:function(e,t,n){r.reject(n)},dataType:"json"}),r.promise},r.apiForEditing=function(e){var n=t.defer();return chrome.runtime.onMessage.addListener(function(e){"editApiSuccess"==e.type?n.resolve(e.data):"editApiFail"==e.type&&n.reject(e.data)}),chrome.runtime.sendMessage({type:"editApi",data:e}),n.promise},n.getSiteApis=function(n){var r=t.defer();return i.ajax({type:"GET",url:e.KM_HOST_WWW+"/ws/siteapis?url="+encodeURIComponent(n),success:function(e){r.resolve(e)},error:function(e,t,n){r.reject(n)},dataType:"json"}),r.promise},r.getSiteApis=function(e){var n=t.defer();return chrome.runtime.onMessage.addListener(function(e){"theSiteApis"==e.type&&n.resolve(e.data)}),chrome.runtime.sendMessage({type:"getSiteApis",data:e}),n.promise},n.getDownloadFile=function(n,r){var o=t.defer(),a={type:n,content:r};return i.ajax({type:"POST",url:e.KM_HOST_WWW+"/ws/preparedownload",data:a,success:function(t){o.resolve(e.KM_HOST_WWW+t.url)},error:function(e,t,n){o.reject(n)},dataType:"json"}),o.promise},r.getDownloadFile=function(e,n){var r=t.defer();return chrome.runtime.onMessage.addListener(function(e){"download"==e.type?r.resolve(e.data):"downloadFailed"==e.type&&r.reject(e.data)}),chrome.runtime.sendMessage({type:"prepareDownload",data:{type:e,content:n}}),r.promise},n.updateUser=function(t,n,r){var o=r||"alerts",a={type:o,userid:n};a[o]=t,i.post(e.KM_HOST_WWW+"/ws/updateuser",a)},r.updateUser=function(e,t,n){var r=n||"alerts",i={dataType:r,userid:t};i[r]=e,chrome.runtime.sendMessage(i)},n.getNotifications=function(){var n=t.defer();return i.get(e.KM_HOST_WWW+"/ws/getnotifications",function(e){e?n.resolve(e):n.reject()}),n.promise},r.getNotifications=function(){var e=t.defer();return chrome.runtime.onMessage.addListener(function(t){"notifications"==t.type?e.resolve(t.data):"notificationsFailed"==t.type&&e.reject(t.data)}),chrome.runtime.sendMessage("getNotifications"),e.promise},r.listenForLoad=function(e,t,n,r,i){var o={username:e,password:t,usernameSelector:n,passwordSelector:r,submitSelector:i};chrome.runtime.sendMessage({type:"initiateListening",data:o})},r.followLink=function(e){chrome.runtime.sendMessage({type:"followLink",data:e})},r.enableAuth=function(){chrome.runtime.sendMessage("authMode")},r.getState=function(){var e=t.defer();return chrome.runtime.onMessage.addListener(function(t){"theState"==t.type&&e.resolve(t.data)}),chrome.runtime.sendMessage("currentState"),e.promise},r.changeState=function(e){var n=t.defer();return chrome.runtime.onMessage.addListener(function(e){"doneChangingState"==e&&n.resolve()}),chrome.runtime.sendMessage({type:"changeState",data:e}),n.promise},r.getLoginCredentials=function(){var e=t.defer();return chrome.runtime.onMessage.addListener(function(t){"theCredentials"==t.type&&e.resolve(t.data)}),chrome.runtime.sendMessage("getLoginCredentials"),e.promise},r.getProperty=function(){var e=t.defer();return chrome.runtime.onMessage.addListener(function(t){"property"==t.type&&e.resolve(t.data)}),chrome.runtime.sendMessage({type:"getProperty",data:apiObj}),e.promise},r.addProperty=function(e,t){chrome.runtime.sendMessage({type:"addProperty",data:{key:e,value:t}})},r.getEditingApi=function(){var e=t.defer();return chrome.runtime.onMessage.addListener(function(t){"editingApi"==t.type&&e.resolve(t.data)}),chrome.runtime.sendMessage("isEditingApi"),e.promise},"chrome"==e.clientEnv?r:n}]),s.module("Kimono").controller("apiPanelController",["$scope","$timeout","Datatypes","Utils","HighlightManager","WebServices",function(e,t,r,o,a,s){e.siteApis=[],e.otherSites={},e.rootDomain="",e.showHelp=!1,e.open=!1,e.loading=!1,e.urlRegex="\\?.*|https?://.*?(?=/|$)",e.selectedApi={};var l={},c=function(){var t=r.cloneDatatypes(e.datatypes);l={collections:i.extend(!0,[],e.collections),collectionNames:i.extend(!0,[],e.collectionNames),datatypes:t,datatypeIndex:e.$parent.datatypeIndex,pagination:e.$parent.flags.hasPagination,override:e.$parent.userOverrideCollections,actionHistory:e.$parent.actionHistory}},u=function(){a.removeAllHighlights(e.datatypes);var t=l;e.$parent.collections=t.collections,e.$parent.collectionNames=t.collectionNames,e.$parent.datatypes=t.datatypes,e.$parent.datatypeIndex=t.datatypeIndex,e.$parent.actionHistory=t.actionHistory,e.flags.actionHistoryLength=t.actionHistory.length,e.$parent.flags.hasPagination=t.pagination,e.$parent.userOverrideCollections=t.override,e.$parent.updateModel(),a.updateHighlightsForAllDatatypes(e.datatypes,!1,e.flags.mode),a.showHighlights(e.datatypes,e.datatypeIndex),t={}};e.match=function(t,n){return t.replace(e.urlRegex,"")==n},e.shortenString=function(e,t,r){return e==n?"":e.length<=t?e:r?e.substr(0,parseInt(t/2))+"..."+e.substr(e.length-parseInt(t/2)):e.substr(0,t)+"..."},e.cancel=function(){u(),e.flags.currentApi=!1,e.selectedApi={},e.showLargeOverlay(""),e.changeView("extractor")},e.getApi=function(n){{var r=(n.targeturl.replace(new RegExp(e.urlRegex,"g"),""),n.id);o.getTargetUrl().replace(new RegExp(e.urlRegex,"g"),"")}if(e.showLargeOverlay(""),e.changeView("extractor"),r!=e.flags.currentApi.id){e.flags.currentApi||c();var i=!1,a=!1;e.loading=!0,t(function(){a=!0,i&&(e.loading=!1)},1e3),e.loadApi(r,function(){i=!0,a&&(e.loading=!1),e.$parent.actionHistory=[],e.flags.actionHistoryLength=0})}},e.toggle=function(){e.open=!e.open,e.clearHint("new_auth")},e.done=function(){e.open=!1,e.clearHint("new_auth")},e.goToApi=function(t){e.selectedApi=t,e.currentPage=".api-view"},e.back=function(){e.currentPage=".panel-list"},e.$on("api_panel_launch",function(n,r){var a=_.groupBy(r,function(t){var n=t.targeturl.replace(new RegExp(e.urlRegex,"g"),"");return n&&n.length>0?n:"/"}),l=o.getTargetUrl().replace(new RegExp(e.urlRegex,"g"),"");e.siteApis=a[l],e.otherSites=_.omit(a,l);var c=o.getTargetUrl().match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);e.rootDomain=c&&c[1],("undefined"==typeof e.flags.currentUser||"undefined"==typeof e.flags.currentUser.alerts||"true"!=e.flags.currentUser.alerts.new_api_panel)&&t(function(){e.open=!0;var t='<p class="auth-hint-message">Find existing APIs that other users have created for this website. Click one to load it, modify it and and save your own version.</p>';e.flags.currentUser&&(t+='<div class="kim-hint-checkbox"> <input type="checkbox" value="1" id="ApiPanelDontShowCheckbox"> <label for="ApiPanelDontShowCheckbox"></label> </div> <span class="dont-show-label">Don\'t show me this again</span>'),e.flags.currentHints.new_auth=o.drawHint(i("body"),"Kimono API Panel",t,{x:0,y:45,right:20,bottom:320},{width:300,height:""},null,"down","right",!1,function(){if(e.flags.currentUser){var t=i(".kim-hint #ApiPanelDontShowCheckbox")[0],n=t&&t.checked;n&&e.flags.currentUser&&s.updateUser({new_api_panel:!0},e.flags.currentUser._id,"alerts")}})},500)})}]),s.module("Kimono").controller("attributesOverlayController",["$scope","Validation","Regex",function(e,t){e.error=!1,e.attributes={},e.errors=[],e.hiddenElements=e.datatypes[e.datatypeIndex].context.hiddenElements,e.textContent=e.datatypes[e.datatypeIndex].context.textContent,e.enter=function(){e.datatypes[e.datatypeIndex].updateAttributes(),e.attributes=r(e.datatypes[e.datatypeIndex].context.attributes),e.hiddenElements=e.datatypes[e.datatypeIndex].context.hiddenElements,e.textContent=e.datatypes[e.datatypeIndex].context.textContent},e.remove=function(t){e.customAttributes.splice(t,1),e.errors.splice(t,0)},e.add=function(){e.customAttributes.push({regex:"/^()(.*?)()$/",attribute:""}),e.errors.push({regex:!1,attribute:!1})},e.apply=function(){i.each(e.attributes,function(e,t){n(e,t)}),e.error||(e.save(),e.$parent.datatypes[e.datatypeIndex].context.attributes=e.attributes,e.$parent.datatypes[e.datatypeIndex].context.hiddenElements=e.hiddenElements,e.$parent.datatypes[e.datatypeIndex].context.textContent=e.textContent,e.showPopup(""),e.toast("success","Attribute changes applied successfully.",2e3))};var n=function(n,r){return e.errors[n]={regex:t.regex(r.regex),attribute:!1},e.error=e.errors[n].regex||e.errors[n].attribute},r=function(e){var t={};return i.each(e,function(e,n){"length"!=e&&(t[n.attribute]={attribute:n.attribute,regex:n.regex,value:n.value})}),t}}]),s.module("Kimono").controller("authOverlayController",["$scope","Validation","Regex","WebServices","$timeout","$location","Manipulation","HighlightManager","Utils",function(e,t,n,r,o,a,s,l,c){e.form={username:"",password:""},e.host=a.host(),e.agreeError,e.agree=function(){e.agreeError=""},e.authLogin=function(){if(!e.authAgree)return e.agreeError="agree-error",void 0;var t=e.datatypes[0].selectorObjects[0].selector,n=e.datatypes[1].selectorObjects[0].selector,o=e.datatypes[2].selectorObjects[0].selector;l.removeAllHighlights(e.datatypes),r.listenForLoad(e.form.username,e.form.password,t,n,o),s.fillLoginForm({usernameInput:c.querySelectorAll(t)[0],passwordInput:c.querySelectorAll(n)[0]},{username:e.form.username,password:e.form.password},function(){setTimeout(function(){c.linkEnable(),e.flags.navigate=!0,s.simulateClick(i(c.querySelectorAll(o)[0])),c.linkDisable(),e.flags.navigate=!1},500)}),e.showLargeOverlay(""),e.changeView("extractor")}}]);var l=s.module("Kimono");l.directive("selector",["Utils",function(e){return{require:"ngModel",link:function(t,n,r,i){i.$parsers.unshift(function(t){try{return e.querySelectorAll(t),i.$setValidity("selector",!0),t}catch(n){return i.$setValidity("selector",!1),t}})}}}]),l.directive("regex",["Utils",function(){return{require:"ngModel",link:function(e,t,r,i){i.$parsers.unshift(function(e){try{return new RegExp(e),e.match(/\/\^?\(.*?\)\(.*?\)\(.*?\)\$?\//)?(i.$setValidity("regex",!0),e):(i.$setValidity("regex",!1),n)}catch(t){return i.$setValidity("regex",!1),n}})}}}]),l.controller("dataOverlayController",["$scope","Collections","Regex","Utils","Validation","HighlightManager","Datatypes","$timeout",function(e,t,n,r,o,a){function s(e){return"string"!=typeof e?e:new RegExp(e.substr(1,e.length-2))}e.mode="simple",e.errorMessage="Invalid CSS selector and/or Regular Expression",e.tmpCollections={},e.$watch("collections",function(){e.resetAdvancedModeForm()}),e.resetAdvancedModeForm=function(){e.tmpCollections=c(e.collections)},e.update=function(t){e.advancedModeForm.$invalid||(e.save(),u(),l(t,e.collections),e.updateModel(),a.removeAllHighlights(e.datatypes),a.updateHighlightsForAllDatatypes(e.datatypes,!0,e.flags.mode),a.showHighlights(e.datatypes,e.datatypeIndex),e.toast("success","Advanced changes applied successfully.",2e3))};var l=function(e,t){e.forEach(function(e,n){e.forEach(function(e,r){e.selectorObjects.forEach(function(e,i){console.log("regexcompare",t[n][r].selectorObjects[i].regex,s(e.regex)),t[n][r].selectorObjects[i].selector=e.selector,t[n][r].selectorObjects[i].regex=s(e.regex)})})})},c=function(e){var t=[];return e.forEach(function(e,n){t[n]=[],e.forEach(function(e,r){t[n][r]={selectorObjects:[]},e.selectorObjects.forEach(function(e){var i={selector:e.selector,regex:e.regex};t[n][r].selectorObjects.push(i)})})}),t};e.isUnchanged=function(t){for(var n=0,r=t.length;r>n;n++)for(var i=0,o=t[n],a=o.length;a>i;i++)for(var s=0,l=o[i].selectorObjects,c=l.length;c>s;s++){var u=l[s],f=e.tmpCollections[n][i].selectorObjects[s];if(u.selector!=f.selector||u.regex!=f.regex)return!1}return!0};var u=function(){for(var t=0,n=e.collections.length;n>t;t++)for(var r=0,i=e.collections[t],o=i.length;o>r;r++)for(var a=0,s=i[r].selectorObjects,l=s.length;l>a;a++){var c=s[a],u=e.tmpCollections[t][r].selectorObjects[a];c.selector!=u.selector&&(c.tiers=[u.selector])}};e.showAttributes=function(t){e.$parent.datatypeIndex=t,e.showPopup("attributes")},e.editor={};var f={x:0,y:0};e.editor.dragStart=function(e){f.x=e.position.x,f.y=e.position.y,e.element.style.zIndex=2147483647},e.editor.dragEnd=function(t){var n=!1;t.element.style.zIndex="auto";var o=t.element.getAttribute("collectionIndex"),s=t.element.getAttribute("datatypeIndex");i(".kim-collection-dropzone").each(function(i,a){var l=a.getAttribute("collectionIndex");if(r.isIntersecting(a,t.element)&&o!=l){if("new"==l&&1==e.collections[o].length)return;return n=!0,e.save(),e.$parent.flags.userOverrideCollections=!0,"new"==l?(e.datatypes[s].context.collection=e.collections.length,e.flags.hasPagination?e.collectionNames[e.collectionNames.length-1]="collection"+e.collections.length:e.collectionNames.push("collection"+(e.collections.length+1))):e.datatypes[s].context.collection=l,e.datatypes[s].context.forceAssociation=!0,e.updateModel(!0),void 0}}),n||(i(".kim-datatype-dropzone").each(function(i,o){var l=o.getAttribute("datatypeIndex");return l!=s&&r.isIntersecting(o,t.element)?(a.removeAllHighlights(e.datatypes),n=!0,e.save(),e.$parent.datatypeIndex=e.datatypes[l].mergeDatatype(e.datatypes[s],e.datatypes),e.updateModel(!0),a.updateHighlightsForAllDatatypes(e.datatypes,!1,e.flags.mode),a.showHighlights(e.datatypes,e.$parent.datatypeIndex),void 0):void 0}),n||(t.element.style.top=f.y,t.element.style.left=f.x))}}]),s.module("Kimono").controller("doneOverlayController",["$scope","Collections","WebServices","Utils","Regex",function(e,t,n,r,o){e.doneStep=1,e.error=!1,e.errorMessage="Enter an API name.",e.loading=!1,e.utils=r,e.crawlLimits=[{id:5},{id:10},{id:25},{id:50},{id:100},{id:500},{id:1e3}],e.frequencies=[{id:"realtime"},{id:"quarterhourly"},{id:"halfhourly"},{id:"hourly"},{id:"daily"},{id:"weekly"},{id:"monthly"}],e.filterFrequencies=function(t){return e.flags.currentUser&&e.flags.currentUser.superuser?!0:!e.flags.crawlingEnabled&&!e.flags.hasPagination||"quarterhourly"!=t.id&&"halfhourly"!=t.id?!0:!1},e.selectedCrawlLimit=e.crawlLimits[0].id,e.apiName="",e.apiID="",e.getTagsPlaceholder=function(){return console.log(e.apiTags),e.apiTags.length?"":"add a tag"},e.enter=function(){e.doneStep=1,e.error=!1,e.apiName=e.flags.currentApi.name||"",e.selectedFrequency="realtime",e.selectedFrequency=e.flags.currentApi.frequency||e.selectedFrequency,e.selectedCrawlLimit=e.flags.currentApi.instructions&&e.flags.currentApi.instructions.limit?parseInt(e.flags.currentApi.instructions.limit):e.selectedCrawlLimit,e.flags.currentUser&&e.flags.currentUser.superuser&&7==e.frequencies.length&&e.frequencies.splice(1,0,{id:"minutely"},{id:"fiveminutely"})},e.createApiButtonLabel=function(){return e.flags.editing?"Save API":e.flags.currentApi?"Clone API":"Create API"},e.createdOrUpdated=function(){return e.flags.editing?"updated":"created"},e.keyUpInApiNameField=function(t){13==t.keyCode&&e.createApi()},e.createApi=function(){if(e.error=!1,0==e.apiName.length)return e.error=!0,e.errorMessage="Enter an API name.",void 0;if(!e.apiName.match(/^[0-9a-zA-Z _-]+$/))return e.error=!0,e.errorMessage="Your API name can only contains letters, numbers, spaces, - and _",void 0;var a=0;if(i.each(e.collections,function(e,t){i.each(t,function(e,t){0!=t.getNumberOfElements()&&a++})}),0==a)return e.error=!0,e.errorMessage="You must have made at least one selection before you can create an API",void 0;e.loading=!0;var s=r.getTargetUrl().match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i),l=s&&s[1];l&&(l=l.replace(/www\./,""));var c={apiname:e.apiName,targeturl:e.targetUrl,frequency:e.selectedFrequency,collections:t.getCollectionsForExport(e.collections),collectionNames:e.collectionNames,userid:e.flags.currentUser._id,tags:e.apiTags,userOverrideCollections:e.flags.userOverrideCollections,crawlingenabled:e.flags.crawlingEnabled||e.flags.hasPagination,rootDomain:l};e.flags.editing?(c.id=e.flags.currentApi.id,c.access=e.flags.currentApi.access):c.access=e.flags.currentUser.superuser?"private":"public",e.flags.hasPagination?(c.instructions=e.flags.currentApi&&e.flags.currentApi.instructions||{},c.instructions.type="paginate",c.instructions.nextPageSelector=e.datatypes.pagination.selectorObjects[0].selector,c.instructions.nextPageRegexObj=o.buildRegexObjectFromRegex(e.datatypes.pagination.selectorObjects[0].regex),c.instructions.limit=e.selectedCrawlLimit):c.instructions=e.flags.currentApi&&e.flags.currentApi.instructions&&"paginate"==e.flags.currentApi.instructions.type?{}:e.flags.currentApi?e.flags.currentApi.instructions:{},n.createApi(c).then(function(t){e.doneStep=2,e.loading=!1,e.flags.hideBackButton=!0,e.apiID=t.id},function(){e.loading=!1,e.doneStep=-1})}}]),s.module("Kimono").controller("extractorController",["Config","$scope","Datatypes","HighlightManager","Collections","Utils","Selections","$timeout",function(t,n,r,o,a,s,l,c){var u=["Username Field","Password Field","Submit Button"];i("body")[0].addEventListener("click",function(e){var t=e.target;if(s.isKimonoChild(i(t)))return e;if(n.preventAction(e),"A"==t.tagName&&!n.flags.navigate){var r=i(t);r.attr("target","_self"),r.attr("kimonohref",r.attr("href")),r.removeAttr("href"),r.removeAttr("target")}},!0);var f=i("body").css("background-position-y");("0px"==f||"0%"==f||"0"==f)&&i("body").css("background-position-y","44px");var d=!1,p=function(e){for(var t=i(e).contents(),n=!1,r=0;r<t.length;r++)3==t[r].nodeType&&t[r].nodeValue.trim().length>0&&(n=!0);return n},h=function(e){return n.datatypes&&n.datatypes[n.datatypeIndex]&&n.datatypes[n.datatypeIndex].highlightMap&&n.datatypes[n.datatypeIndex].highlightMap[e.attr("kimonoid")]&&n.datatypes[n.datatypeIndex].highlightMap[e.attr("kimonoid")].highlight.getAttribute("kimonodatatype")==n.datatypeIndex},g=function(e){var t=i(e).attr("type");t&&(t=t.toLowerCase());var n=e.tagName;return n&&(n=n.toLowerCase()),"input"==n&&"submit"==t||"a"==n||"button"==n},m=function(e){var t=i(e).attr("type");t&&(t=t.toLowerCase());var n=e.tagName;return n&&(n=n.toLowerCase()),"input"==n&&("text"==t||"email"==t||"password"==t||"search"==t)||"textarea"==n},v=function(e){for(var t=e,r=e.textContent,i=0;i++<20;){var o=t.parentNode;if(o.textContent.trim()!=r.trim())break;if("pagination"==n.datatypeIndex&&"A"==t.nodeName)break;t=t.parentNode}return t.nodeName.match(/^(TD|TH|A)$/i)?t:e},y=function(e,t){var r=e;i(".kim-temp-selectable").each(function(){b(i(this))}),r.addClass(t+" on kim-TempSpecial"),r.attr("kimono-prev-id",r.attr("id")),d=!0,r.addClass("kim-"+n.getColor(n.datatypeIndex)),r[0].addEventListener("click",function(e){return n.preventAction(e),d&&$(i(e.target)),!1},!0),r.on("mousedown",function(){i(this).removeClass("on kim-yellow kim-amber kim-orange kim-sunset kim-red kim-fuchsia kim-purple kim-indigo kim-blue kim-aqua kim-green kim-lime kim-tan kim-coffee kim-grey kim-smoke kim-bluegrey")}),r.on("mouseleave",function(){b(i(this))})},b=function(e){d=!1,e.removeClass("kim kim-TempSpecial kim-temp-selectable on kim-yellow kim-amber kim-orange kim-sunset kim-red kim-fuchsia kim-purple kim-indigo kim-blue kim-aqua kim-green kim-lime kim-tan kim-coffee kim-grey kim-smoke kim-bluegrey"),e.attr("class")&&""!=e.attr("class")||e.removeAttr("class"),e.off("mouseleave"),e.off("click"),e.off("mouseup")},x=function(e){d=!1,e.removeClass("kim-TempSpecial kim-img-temp-selectable on kim-yellow kim-amber kim-orange kim-sunset kim-red kim-fuchsia kim-purple kim-indigo kim-blue kim-aqua kim-green kim-lime kim-tan kim-coffee kim-grey kim-smoke kim-bluegrey"),e.attr("class")&&""!=e.attr("class")||e.removeAttr("class"),e.off("mouseleave"),e.off("click"),e.off("mouseup")};i("body").on("mouseenter","img:not(#Kimonify, #Kimonify *, .kim, .kim *, .kim-dont-touch, .kim-container *)",function(e){n.flags.navigate||h(i(this))||i(e.target).attr("kimonoid")||i(e.target).attr("kimonodatatype")||s.isKimonoChild(e.target)||y(i(this),"kim-img-temp-selectable",e)}),i("body").on("mouseenter","*:not(#Kimonify, #Kimonify *, .kim, .kim *, .kim-hint *, .kim-dont-touch, .kim-dont-touch *)",function(e){if(!n.flags.navigate&&!h(i(this))&&!(i(e.target).attr("kimonodatatype")&&i(e.target).attr("kimonodatatype").match(n.datatypeIndex)||s.isKimonoChild(e.target))){if("loginMode"==n.flags.mode)return(m(e.target)&&n.datatypeIndex<2||g(e.target)&&2==n.datatypeIndex)&&y(i(e.target),"kim-temp-selectable",e),void 0;var t=(e.target.textContent,e.target),r=p(t);if(r){t.nodeName.match(/A/i)&&i(t).not("#kim-Toolbar a, .kim-container *, #kim-DoneOverlay a, #kim-LoginOverlay a, .kim-dont-touch")&&(ln=i(t),ln.attr("href")&&(ln.attr("kimonohref",ln.attr("href")),ln.removeAttr("href")),ln.attr("target","_self"),ln.removeAttr("target"));var o=v(t);y(i(o),"kim-temp-selectable",e)}}});var $=function(e){if(d=!1,"loginMode"==n.flags.mode)return b(e),k(e),void 0;var t="img"==e.prop("tagName").toLowerCase();if(t?x(e):b(e),e.is("#kim-Toolbar *, .kim-Overlay *, .kim-container *, #kim-RSSInfo *, #kim-DoneOverlay *, #kim-LoginOverlay *, .kim-highlight"))return console.log("You clicked a Kimono element, not gonna do anything!"),void 0;var r={element:e,selectedText:e.text(),startIndex:0,type:"actual",img:t};n.save(),o.processSelection(r,"clicked",n.datatypes,n.datatypeIndex,n.collections.length),s.animate(i('.kim-data-dot[kimonodatatype="'+n.datatypeIndex+'"]'),"pulse2",300),n.updateModel(!1),o.updateHighlights(n.datatypes,n.datatypeIndex,!1,n.flags.mode),n.$parent.$digest()};i("body")[0].addEventListener("mouseup",function(t){if("loginMode"!=n.flags.mode&&!n.flags.navigate){if(s.isKimonoChild(i(t.target),!0))return t;n.preventAction(t);var r=e.getSelection();if(""!=r){var a=(r.toString(),r.getRangeAt(0)),c=s.querySelectorAll(".kim, .kim-hint",a.cloneContents());if(!(c.length>0)){var u=a.commonAncestorContainer;if(1==u.nodeType)var f=a.commonAncestorContainer;else var f=a.commonAncestorContainer.parentElement;for(var d=l.getRangeSelectedNodes(a),p=0;p<d.length;p++)for(var h=0,g=d[p].textContent;d[p]!=f;)if(d[p]=d[p].parentNode,g!=d[p].textContent&&(g=d[p].textContent,h++),2==h)return;
if(f=i(f),!f.is(".kim")){i(".kim-temp-selectable").each(function(){b(i(this))});for(var m=a.startOffset,d=f.contents(),v=d.length,p=0;v>p;p++){var y=d[p];if(3==y.nodeType){if(a.startContainer.nodeValue==y.nodeValue)break;m+=y.nodeValue.length}else{if(i(a.startContainer).text()==i(y).text())break;m+=i(y).text().length}}n.save(),o.processSelection({element:f,selectedText:a.toString(),startIndex:m,type:"actual",img:!1},"dragged",n.datatypes,n.datatypeIndex,n.collections.length),s.animate(i('.kim-data-dot[kimonodatatype="'+n.datatypeIndex+'"]'),"pulse2",300),n.updateModel(!1),o.updateHighlights(n.datatypes,n.datatypeIndex,n.flags.loginMode),n.$parent.$digest()}}}}},!0);var k=function(e){n.save();var t=l.getSuperSpecificSelector([e[0]]),r={element:e,selectedText:e.text(),startIndex:0,type:"actual",img:!1};n.datatypes[n.datatypeIndex].initiateWithSelectorForSingleElement(r,t),o.updateHighlights(n.datatypes,n.datatypeIndex,!1,n.flags.mode),n.updateModel(!0),s.animate(i('.kim-data-dot[kimonodatatype="'+n.datatypeIndex+'"]'),"pulse2",300),n.toast("success",u[n.$parent.datatypeIndex]+" Selected.",1e3),c(function(){n.showHelp("auth",n.datatypeIndex+1)},1e3),n.$apply(),n.clearHint("all")}}]),s.module("Kimono").controller("illegalOverlayController",["$scope",function(e){e.enter=function(){e.flags.showBackButton=!1}}]),s.module("Kimono").controller("largeOverlayController",["$scope",function(e){e.show=!1,e.currentOverlay="",e.backButton=!0,e.close=function(){e.show=!1,e.currentOverlay="",e.backButton=!0},e.$on("show_large_overlay",function(t,n,r){n.length?(e.show=!0,e.currentOverlay=n,e.backButton=!r):e.close()})}]),s.module("Kimono").controller("loginOverlayController",["$scope","Validation","Regex","WebServices","$timeout",function(e,t,n,r,i){e.loginStep=1,e.form={username:"",password:""},e.loginError=!1,e.loading=!1,e.enter=function(){e.loginStep=1,e.loginError=!1},e.login=function(){e.loading=!0,r.login(e.form.username,e.form.password).then(function(t){e.loading=!1,e.loginStep=2,e.flags.currentUser=t,i(function(){e.showLargeOverlay("loginMode"==e.flags.mode?"auth":"done")},2e3)},function(){e.loading=!1,e.loginError=!0},function(t){1==t&&(e.loading=!0)})}}]),s.module("Kimono").controller("mainController",["Config","$scope","Collections","Datatypes","HighlightManager","WebServices","Utils","$timeout","$interval","Selections","Kimono_async","Common",function(t,r,o,s,l,c,u,f,d,p,h,g){r.actionHistory=[],r.collections=[],r.collectionNames=[],r.datatypes=[],r.config=t,r.datatypeIndex=0,r.targetUrl=u.getTargetUrl(),r.collectionTitle="Collection",r.flags={loading:!1,actionHistoryLength:0,hasPagination:!1,currentView:"extractor",moveBack:{},mode:"normal",userOverrideCollections:!1,currentUser:n,currentApi:!1,editing:!1,toasting:!1,toastMessage:"",toastType:"warning",navigate:!1,currentStep:"-1",currentHints:{},showApiPanel:!1,showNotificationPanel:!1},e.$k.showModel=function(){console.log("Collections",r.collections),console.log("Datatypes",r.datatypes),console.log("Collection Names",r.collectionNames),console.log("Flags",r.flags)},r.tags=t.tags,r.tagWords={essay:"books",shop:"shopping","social science":"economics",office:"jobs",show:"movies","sell-off":"auctions",text:"books",global:"international",communities:"community",foodstuff:"food",radio:"media",shoe:"shoes",lend:"investing",announcement:"news",snack:"food",layout:"design",dining:"food",tv:"entertainment",graph:"maps",pump:"shoes",writing:"books",blog:"blogs",resort:"hotels","working capital":"venture capital",civilization:"culture",rumor:"news",holiday:"holidays",earnings:"salaries",designs:"design",publication:"books",paperback:"books",coding:"code",nation:"politics","cowboy boot":"shoes",game:"games",quest:"search",facebook:"social networking",outlet:"shopping",report:"news",rental:"rentals",bank:"banking",bread:"food",bar:"food",meat:"food",opera:"music",hunt:"search",feast:"food",teams:"sports",architecture:"design",rock:"music",businesses:"business",athletics:"sports",technologie:"technology",meal:"food",flick:"movies",sneaker:"shoes",bill:"money",neighborhood:"community",people:"community",trend:"fashion",fad:"fashion",idea:"design",society:"community","dining room":"food",traveling:"travel",magazine:"books",programmer:"programming",sport:"sports",employment:"jobs",investment:"investing",hostel:"hotels",album:"music",videotape:"movies",pattern:"design",motel:"hotels",cooking:"food",anniversary:"holidays",research:"reference",state:"community",capital:"money",melody:"music","public":"community",sciences:"science",wage:"salaries",tour:"travel",team:"sports",payroll:"salaries",arts:"art",stipend:"salaries",loafer:"shoes",job:"jobs",apartment:"rentals",musical:"music","motion picture":"movies",wealth:"money",booklet:"books",bloggin:"blogs",climate:"weather",diner:"food",ventures:"venture capital",economic:"economics",study:"design",experience:"culture",foreign:"international",saloon:"food",dogecoin:"cryptocurrency",gamer:"games",browsing:"ecommerce",navigation:"maps",tome:"books",disclosure:"news",governments:"government",civil:"social",transit:"travel",profession:"jobs",sketch:"design","tennis shoe":"shoes",slipper:"shoes",pamphlet:"books",bitcoin:"cryptocurrency",layoff:"jobs",twitte:"social networking",learning:"science",lodging:"hotels",athlete:"sports",message:"news",cafeteria:"food",singing:"music",sightseeing:"travel",story:"news",fee:"salaries",publishing:"books",district:"community",spending:"ecommerce",flying:"travel",political:"politics",system:"science",celebration:"holidays",fiction:"books",program:"software",statement:"news",house:"real estate",scheme:"design",universal:"international","running shoe":"shoes",lease:"rentals",festivity:"holidays",form:"fashion",startup:"startups",company:"jobs",hotel:"hotels",broadcast:"news",fund:"investing",trek:"travel",construction:"design",restauraunt:"food",brochure:"books",gaming:"games",copy:"books",quotation:"reference",commerce:"finance",television:"entertainment",novel:"books","operating system":"software",look:"fashion",sailing:"travel","coffee shop":"food",tavern:"hotels",ride:"travel",cash:"money",finances:"finance",career:"jobs",entrepreneurial:"entrepreneurship",computer:"computers",exploration:"travel",venture:"venture captial",land:"real estate",property:"real estate",excursion:"travel",feature:"movies",nonfiction:"books",cinema:"movies",textbook:"books",festival:"holidays",inn:"hotels",pastime:"sports",gala:"holidays",rap:"music",campaigning:"politics",education:"science",check:"money",film:"movies",cuisine:"food","online journal":"blogs",trip:"travel",pay:"salaries",boot:"shoes",spreadsheet:"software",arrangement:"design",note:"reference",field:"business",book:"books",inquiry:"search",vacation:"holidays",income:"salaries",composition:"design",crowdfund:"crowdfunding",map:"maps",information:"science",advice:"news",drink:"food",communal:"community",automation:"technology",invested:"investing",coder:"code",payment:"money",tune:"music",salary:"salaries",edition:"books",os:"software",cleat:"shoes",spend:"investing","e-commerce":"ecommerce",machinery:"technology",movie:"movies",model:"fashion",drawing:"design"},r.apiTags=[],r.new_features=[],r.allFeatures=[],r.getColor=function(e){return t.getColor(e)},r.clearHint=function(e){if("all"==e){for(var t in r.flags.currentHints)if(r.flags.currentHints[t]){var n=r.flags.currentHints[t];delete r.flags.currentHints[t],n()}}else r.flags.currentHints[e]&&r.flags.currentHints[e](),delete r.flags.currentHints[e]},r.$watch("datatypeIndex",function(){"loginMode"==r.flags.mode&&r.clearHint("auth")}),r.$watch("flags.mode",function(e){r.clearHint("auth"),"navigation"==e&&r.clearHint("new_navigation"),"loginMode"==e&&r.clearHint("new_auth")}),r.showHelp=function(n,o){if("chrome"!=t.clientEnv||"loginMode"!=r.flags.mode||"auth"!=n||"undefined"!=typeof r.flags.currentUser&&"undefined"!=typeof r.flags.currentUser.alerts&&"true"==r.flags.currentUser.alerts.auth||(r.clearHint("auth"),0==o&&f(function(){var e=i('.kim-data-dot[kimonodatatype="0"]').position();e.left-=17,e.top+=35,r.flags.currentHints.auth=u.drawHint(i("body"),"Username","First, locate the <strong>username/email</strong> field of the login form and click it.",{x:e.left,y:e.top},{width:300,height:""},null,"up","left",!1)},20),1==o&&f(function(){var e=i('.kim-data-dot[kimonodatatype="1"]').position();e.left-=17,e.top+=35,r.flags.currentHints.auth=u.drawHint(i("body"),"Password","Next, switch to the <strong>password</strong> field selector and then click the password field.",{x:e.left,y:e.top},{width:300,height:""},null,"up","left",!1)},20),2==o&&f(function(){var e=i('.kim-data-dot[kimonodatatype="2"]').position();e.left-=17,e.top+=35,r.flags.currentHints.auth=u.drawHint(i("body"),"Submit Button","Finally, click the <strong>login button</strong> selector and then click the login button.",{x:e.left,y:e.top},{width:300,height:""},null,"up","left",!1)},20),3==o&&f(function(){r.flags.currentHints.auth=u.drawHint(i("body"),"Almost finished","Now click <strong>done</strong> to enter your login information for this site.",{x:0,y:45,right:13},{width:300,height:""},null,"up","right",!1)},20),r.flags.currentUser&&"dev"!=e.$k.config.serverEnv&&c.updateUser({auth:!0},r.flags.currentUser._id,"alerts")),"chrome"==t.clientEnv&&"https:"==e.location.protocol&&"on"!=r.flags.currentStep&&"done"!=r.flags.currentStep&&"new_auth"==n&&("undefined"==typeof r.flags.currentUser||"undefined"==typeof r.flags.currentUser.alerts||"true"!=r.flags.currentUser.alerts.new_auth)){var a='<p class="auth-hint-message">When you kimonify a page that looks like it might require you to login to see it\'s data, the lock icon will pulsate. Click it to enter <strong>Auth mode</strong>.</p>';r.flags.currentUser&&(a+='<div class="kim-hint-checkbox"> <input type="checkbox" value="1" id="AuthDontShowCheckbox"> <label for="AuthDontShowCheckbox"></label> </div> <span class="dont-show-label">Don\'t show me this again</span>'),r.flags.currentHints.new_auth=u.drawHint(i("body"),"Login Mode",a,{x:0,y:45,right:215},{width:300,height:""},null,"up","right",!1,function(){if(r.flags.currentUser){var t=i(".kim-hint #AuthDontShowCheckbox")[0],n=t&&t.checked;n&&r.flags.currentUser&&"dev"!=e.$k.config.serverEnv&&c.updateUser({new_auth:!0},r.flags.currentUser._id,"alerts")}})}if(!("chrome"!=t.clientEnv||"on"!=r.flags.currentStep&&"done"!=r.flags.currentStep||"new_navigation"!=n||"undefined"!=typeof r.flags.currentUser&&"undefined"!=typeof r.flags.currentUser.alerts&&"true"==r.flags.currentUser.alerts.new_navigation)){var a="<span>If you aren't already on the login page, click here to enable <strong>navigation mode</strong> and navigate there.</span>";r.flags.currentHints.new_navigation=u.drawHint(i("body"),"Navigation Mode",a,{x:0,y:45,right:186},{width:300,height:""},null,"up","right",!1),"dev"!=e.$k.config.serverEnv&&r.flags.currentUser&&c.updateUser({new_navigation:!0},r.flags.currentUser._id,"alerts")}};var m=["Username Field","Password Field","Submit"];r.preventAction=function(e){r.flags.navigate||(e.stopPropagation(),e.preventDefault())},r.reset=function(){l.removeAllHighlights(r.datatypes),r.datatypes=[],s.resetPropertyCounter(),r.collections=[],r.collectionNames=[],r.datatypeIndex=0,r.flags.actionHistoryLength=0,r.flags.hasPagination=!1,r.flags.moveBack={},r.updateModel(!1)},i("body").on("keyup",function(e){9==e.keyCode}),r.link=function(n){"chrome"!=t.clientEnv?e.location.href=n:c.followLink(n)},r.kimonify=function(n){"chrome"==r.config.clientEnv?c.changeState("kimonifying").then(function(){e.location.href=n.match(/http:\/\//,"")?n:"http://"+n}):e.location.href=t.KM_HOST+"/load?url="+encodeURIComponent(n)},r.save=function(){var e=s.cloneDatatypes(r.datatypes);r.actionHistory.push({collections:i.extend(!0,[],r.collections),collectionNames:i.extend(!0,[],r.collectionNames),datatypes:e,datatypeIndex:r.datatypeIndex,pagination:r.flags.hasPagination,override:r.userOverrideCollections}),r.flags.actionHistoryLength++,r.actionHistory.length>20&&(r.actionHistory.splice(0,1),r.flags.actionHistoryLength--)},r.keyup=function(e,t,n){13==e.keyCode&&n&&t()},r.isHttps=function(){return"https:"==e.location.protocol},r.undo=function(e){if(0==r.actionHistory.length)return r.toast("error","No undo steps in memory!",2e3),void 0;u.animate(i(".kim-toolbar-button.kim-undo"),"pulse2",300),r.flags.actionHistoryLength--,l.removeAllHighlights(r.datatypes);var t=r.actionHistory.pop();r.collections=t.collections,r.collectionNames=t.collectionNames,r.datatypes=t.datatypes,r.datatypeIndex=t.datatypeIndex,r.flags.hasPagination=t.pagination,r.userOverrideCollections=t.override,r.updateModel(),l.updateHighlightsForAllDatatypes(r.datatypes,!1,r.flags.mode),l.showHighlights(r.datatypes,r.datatypeIndex),e||r.toast("success","Undo Successful",2e3)},r.updateModel=function(e){var t=o.update(r.datatypes,r.flags.userOverrideCollections,r.collectionNames);r.collections=t[0],r.collectionNames=t[1],r.flags.hasPagination=t[2],i.each(r.datatypes,function(e,t){t.getNumberOfElements()}),r.collectionTitle=r.collections.length>1?"Collections":"Collection",e&&r.$digest()},r.showLargeOverlay=function(e,t){r.$broadcast("show_large_overlay",e,t)},r.showPopup=function(e){r.$broadcast("show_popup",e)},r.changeView=function(e){r.flags.currentView=e,"extractor"!=e?setTimeout(function(){i("html, body").css({overflow:"hidden",height:"100%"})},500):i("html, body").css({overflow:"",height:""})};var v;r.toast=function(e,t,n){f.cancel(v),r.flags.toasting=!0,r.flags.toastMessage=t,r.flags.toastType=e,n&&(v=f(function(){r.unToast()},n))},r.unToast=function(){r.flags.toasting=!1},r.loadApi=function(e,t){var n=f(function(){r.toast("warning","Loading API for editing....")},500);c.apiForEditing(e).then(function(e){return r.reset(),r.flags.editing&&e.authEnabled&&"on"==r.flags.currentStep?(f.cancel(n),r.toast("warning","Login again.",3e3),t()):(r.flags.currentApi=e,r.flags.userOverrideCollections="true"==e.userOverrideCollections||e.userOverrideCollections===!0,r.flags.crawlingEnabled=e.crawlingenabled,r.flags.hasPagination=e.crawlingenabled&&e.instructions&&"paginate"==e.instructions.type,r.collectionNames=e.collectionNames,r.apiTags=e.tags,i.each(e.collections,function(e,t){i.each(t,function(e,t){var n=s.getObjectForImport(t);n.getNumberOfElements(),"pagination"==n.context.index?r.datatypes.pagination=n:r.datatypes.push(n)})}),s.resetPropertyCounter(r.datatypes.length),r.updateModel(!1),l.updateHighlightsForAllDatatypes(r.datatypes,!0,r.flags.mode),l.showHighlights(r.datatypes,r.datatypeIndex),f.cancel(n),r.unToast(),d(function(){r.updateModel(!1),l.updateHighlightsForAllDatatypes(r.datatypes,!0,r.flags.mode),l.showHighlights(r.datatypes,r.datatypeIndex)},500,6),t(),void 0)},function(){t(!0,{err:"Unable to load api."})})};var y=!1;r.openNotifications=function(){r.flags.showNotificationPanel=!r.flags.showNotificationPanel,r.flags.showNotificationPanel&&!y&&(y=!0,c.updateUser(r.new_features,r.flags.currentUser._id,"new_features"),r.new_features={})},r.setTags=function(){var e={},t=i("body").clone();t.find("form, script, #Kimonify, .kim-hint, .kim-datatypes").remove(),t=t.text().toLowerCase().replace(/\W\s/g,""),t.split(" ").forEach(function(t){var n=0,i="";t=t.replace(/[ \t\r]+/g,"").trim(),t&&(r.tagWords[t]?(n=1,i=r.tagWords[t]):r.tags.indexOf(t)>-1&&(n=5,i=t),n&&(e[i]=e[i]?e[i]+n:n))});var n=Object.keys(e).sort(function(t,n){return e[n]-e[t]});r.apiTags=n.filter(function(t){return e[t]>5}).slice(0,3)};var b=f(function(){r.flags.loading=!0},1e3);h.seriesFlow([function(e){u.looseStringContains(u.getTargetUrl(),t.normalizeWhitelist)||setTimeout(function(){p.normalizeAllTables()},700),u.linkDisable(),r.datatypes.push(s.new(null,0,0)),l.init(r),r.datatypeIndex=0,r.updateModel(!1),i("div").each(function(e,t){var n=i(t).css("position");if("fixed"==n){var r=parseInt(i(t).css("top"));i(t).css("top",r+45)}}),e()},function(e){"chrome"==t.clientEnv?c.getState().then(function(t){r.flags.currentStep=t,e()},function(){e(!0,{err:"Unable to connect with chrome extension"})}):e()},function(e){c.getCurrentUser().then(function(t){r.flags.currentUser=t,e()},function(){e()})},function(e){if("chrome"==t.clientEnv)c.getEditingApi().then(function(t){e(!1,{activeApi:t})},function(){e(!0,{err:"Unable to connect with chrome extension"})});else{var n=u.getUrlParam("editapi"),r=u.getUrlParam("selectedapi");e(!1,{activeApi:n,selectedApi:r})}},function(e,t){var n=t.activeApi,i=t.selectedApi;n&&"null"!=n?(r.flags.editing=!0,r.loadApi(n,e)):i&&"null"!=i?r.loadApi(i,e):e()},function(e){"on"==r.flags.currentStep&&(r.reset(),r.flags.mode="loginMode",r.flags.userOverrideCollections=!0,r.datatypes.push(s.new(m[0],0,0)),r.datatypes.push(s.new(m[1],0,1)),r.datatypes.push(s.new(m[2],0,2)),r.datatypes[0].hide=!0,r.datatypes[1].hide=!0,r.datatypes[2].hide=!0,r.collectionNames[0]="Login Info",r.updateModel(!1)),r.showHelp("new_auth"),r.showHelp("auth",0),r.showHelp("new_navigation"),e()},function(e){_.each(g.blacklist,function(e){u.getTargetUrl().match(e)&&scope.showLargeOverlay("illegal",!0)}),e()},function(e){r.flags.editing||r.setTags(),e()},function(e){r.new_features={},r.allFeatures=[],c.getNotifications().then(function(t){if(r.allFeatures=t,r.flags.currentUser&&r.flags.currentUser.new_features)for(a in r.allFeatures){var n=r.allFeatures[a]._id;"true"!=r.flags.currentUser.new_features[n]&&r.flags.currentUser.new_features[n]!==!0&&(r.new_features[n]=!0)}else if(r.flags.currentUser)for(a in r.allFeatures)r.new_features[r.allFeatures[a]._id]=!0;e()},function(){e()})}],function(e,n){e&&console.log("error",n),f.cancel(b),r.flags.loading=!1,r.flags.editing||u.getTargetUrl().match(t.KM_HOST)||u.getTargetUrl().match(t.KM_HOST_WWW)||c.getSiteApis(r.targetUrl).then(function(e){e&&e.length&&"-1"==r.flags.currentStep&&(r.$broadcast("api_panel_launch",e),r.flags.showApiPanel=!0)},function(){console.log("Could not load existing APIs")})})}]),s.module("Kimono").controller("popupController",["$scope",function(e){e.show=!1,e.currentPopup="",e.close=function(){e.show=!1,e.currentPopup=""},e.$on("show_popup",function(t,n){n.length?(e.show=!0,e.currentPopup=n):e.close()})}]),s.module("Kimono").controller("rawOverlayController",["$scope","Collections","Utils","WebServices","Common",function(n,r,i,o,a){n.mode="json",n.enter=function(){n.selectedCollection=n.collectionNames[0],r.updateDatalists(n.collections),n.updateData()},n.updateData=function(){var e=a.getJSON(n.collections,n.collectionNames);n.json=e,n.rss=a.getRSS(e,"API Name",i.getTargetUrl(),n.collectionNames[0]),n.csv=a.getCSV(e,n.collections),n.table=a.getTable(e,n.collections)},n.clickTableCollection=function(e){n.selectedCollection=e},n.selectText=function(){var r=e.getSelection(),i=t.createRange();i.selectNodeContents(t.getElementsByClassName("kim-code "+n.mode)[0]),r.removeAllRanges(),r.addRange(i)},n.selectCurrentTable=function(){var n=e.getSelection(),r=t.createRange();r.selectNodeContents(t.querySelectorAll(".kim-container .kim-spreadsheet table")[0]),n.removeAllRanges(),n.addRange(r)},n.download=function(){var t;t="json"==n.mode?JSON.stringify(n[n.mode],null,2):n[n.mode],o.getDownloadFile("rss"==n.mode?"xml":n.mode,t).then(function(t){e.location.href=t})},n.openRssInfo=function(){n.flags.currentPopup="rssInfo"},n.updateData()}]),s.module("Kimono").controller("signupOverlayController",["$scope","Validation","Regex","WebServices","$timeout",function(e,t,n,r,i){e.signupStep=1,e.form={name:"",username:"",password:""},e.signupError=!1,e.loading=!1,e.errors={name:!1,username:!1,password:!1},e.enter=function(){e.signupStep=1,e.signupError=!1,e.errors={name:!1,username:!1,password:!1}},e.resetErrors=function(){e.signupError=!1,i(function(){e.errors={name:!1,username:!1,password:!1}},300)},e.signup=function(){e.loading=!0;var t=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/gim;return""==e.form.name.trim()&&(e.errors.name="Name is required",e.signupError=!0),""==e.form.username.trim()?(e.errors.email="Email is required",e.signupError=!0):e.form.username.match(t)||(e.errors.email="Please enter a valid email",e.signupError=!0),""==e.form.password.trim()?(e.errors.password="A password is required",e.signupError=!0):e.form.password.match(/......+/)||(e.errors.password="Password must be at least 6 characters",e.signupError=!0),e.signupError?(e.loading=!1,void 0):(r.signup(e.form.name,e.form.username,e.form.password).then(function(t){e.loading=!1,e.signupStep=2,e.flags.currentUser=t,i(function(){e.showLargeOverlay("loginMode"==e.flags.mode?"auth":"done")},2e3)},function(){e.loading=!1,e.signupError=!0},function(t){1==t&&(e.loading=!0)}),void 0)}}]),s.module("Kimono").controller("toolbarController",["Config","$scope","Datatypes","HighlightManager","Utils","WebServices","$timeout","Common",function(t,r,o,a,s,l,c,u){var f=["Username Field","Password Field","Submit"];r.$watch(function(){return r.datatypeIndex},function(e,t){s.animate(i('.kim-data-dot[kimonodatatype="'+e+'"]'),"pulse2",300),r.datatypes[t]&&r.datatypes[e]&&"loginMode"!=r.flags.mode&&(a.hideHighlights(r.datatypes,t),a.showHighlights(r.datatypes,e))}),r.enableLoginMode=function(){"chrome"==t.clientEnv&&(_.each(u.nosupportlist,function(e){s.getTargetUrl().match(e)&&r.showLargeOverlay("nosupport",!0)}),l.enableAuth())},r.loginMode=function(){"loginMode"!=r.flags.mode?(r.reset(),r.flags.navigate=!1,s.linkDisable(),l.changeState("loggingIn"),r.flags.currentStep="loggingIn",r.flags.mode="loginMode",r.flags.userOverrideCollections=!0,r.datatypes.push(o.new(f[0],0,0)),r.datatypes.push(o.new(f[1],0,1)),r.datatypes.push(o.new(f[2],0,2)),r.collectionNames[0]="Login Info",r.changeView("extractor"),r.updateModel(!1)):r.extractMode()},r.navigateMode=function(){r.flags.navigate?e.location.reload():(r.flags.mode="navigation",s.linkEnable(),r.flags.navigate=!0,a.removeAllHighlights(r.datatypes))},r.extractMode=function(){"normal"!=r.flags.mode&&(r.reset(),r.collectionNames[0]="collection1",r.datatypes.push(o.new("property1",0,0)),r.flags.userOverrideCollections=!1,r.flags.mode="normal",l.changeState("-1"),r.flags.currentStep="-1",r.changeView("extractor"),r.updateModel(!1),s.linkEnable(),r.flags.navigate=!1)},r.config=t,r.addDatatype=function(){a.hideHighlights(r.datatypes,r.datatypeIndex),s.animate(i(".kim-new-datatype"),"rotateAndMove",300,function(){r.save(),r.datatypes.push(o.new(null,r.collections.length,r.$parent.datatypes.length)),r.changeDatatype(r.datatypes.length-1),r.updateModel(!0)})},r.keydown=function(e){9==e.keyCode&&(r.changeDatatype((r.datatypeIndex+1)%r.datatypes.length),i(e.target).focus(),e.preventDefault(),e.stopPropagation())},r.doneButtonMessage=function(){return r.flags.editing&&"loginMode"!=r.flags.mode?"Save":"Done"},r.doneButtonTitle=function(){return r.flags.editing&&"loginMode"!=!r.flags.mode?"Save":"Create"},r.changeDatatype=function(e){r.$parent.datatypeIndex=e},r.pagination=function(){r.datatypes.pagination||(r.datatypes.pagination=o.new("Pagination Link","pagination","pagination")),r.$parent.datatypeIndex="pagination"},r.delete=function(e){r.dataDotUnhover(e),r.save(),a.removeAllHighlights(r.datatypes,r.datatypeIndex),r.$parent.datatypes.splice(e,1);for(var t=e;t<r.datatypes.length;t++)r.$parent.datatypes[t].context.index--;r.$parent.datatypeIndex=r.datatypes.length-1,a.updateHighlightsForAllDatatypes(r.datatypes,!0,r.flags.mode),a.showHighlights(r.datatypes,r.datatypeIndex),r.updateModel(!1)},r.deletePagination=function(){r.flags.hasPagination&&(r.save(),a.removeHighlightsForDatatypeIndex(r.datatypes,"pagination"),r.$parent.collections.splice(r.$parent.collections.length-1,1),r.$parent.collectionNames.splice(r.$parent.collectionNames.length-1,1),r.$parent.datatypes.pagination=n,r.flags.hasPagination=!1,r.flags.crawlingEnabled=!1,r.updateModel(),r.dataDotUnhover("pagination"),s.animate(i(".kim-pagination"),"pulse2",300))},r.done=function(){var e="";e="loginMode"==r.flags.mode?"auth":"done",r.currentUser?r.showLargeOverlay(e):l.getCurrentUser().then(function(t){r.currentUser=t,r.showLargeOverlay(e)},function(){r.showLargeOverlay("login")})};var d;r.dataDotHover=function(e){var t=i('.kim-data-dot[kimonodatatype="'+e+'"]').find(".kim-delete-datatype");clearTimeout(d),r.datatypes.length>1&&(d=setTimeout(function(){t.css("display","block"),setTimeout(function(){t.addClass("visible")},10)},400))},r.paginationHover=function(e){var t=i('.kim-data-dot[kimonodatatype="'+e+'"]').find(".kim-delete-datatype");clearTimeout(d),r.flags.hasPagination&&(d=setTimeout(function(){t.css("display","block"),setTimeout(function(){t.addClass("visible")},10)},400))},r.dataDotUnhover=function(e){clearTimeout(d);var t=i('.kim-data-dot[kimonodatatype="'+e+'"]').find(".kim-delete-datatype");t.css("display","none"),t.removeClass("visible")}}]),s.module("Kimono").controller("userCredentialsOverlayController",["$scope","Validation","WebServices","HighlightManager","Manipulation",function(e,t,n,r,i){e.loginStep=1,e.form={username:"",password:""},e.loginError=!1,e.loading=!1,e.enter=function(){e.loginStep=1,e.loginError=!1},e.login=function(){var t,o;3==e.datatypes.length&&(n.listenForLoad(e.form.username,e.form.password,e.datatypes[0].selectorObjects[0].selector,e.datatypes[1].selectorObjects[0].selector,e.datatypes[2].selectorObjects[0].selector),e.showLargeOverlay(""),r.removeAllHighlights(e.datatypes),e.flags.clickThroughOverride=!0,t={usernameInput:e.datatypes[0].selectorObjects[0].selections[0].element[0],passwordInput:e.datatypes[1].selectorObjects[0].selections[0].element[0],submitButton:e.datatypes[2].selectorObjects[0].selections[0].element[0]},o={username:e.form.username,password:e.form.password},callback=function(){e.flags.clickThroughOverride=!1},i.fillLoginForm(t,o,callback))}}]),s.module("Kimono").directive("animatedHighlight",["Utils",function(){return{restrict:"EA",scope:!0,link:function(e,t,n){var r=function(e){var n=e.clone();return t.html(""),n.attr("kimonodatatype",""),n.attr("kimonotier",""),n[0].style.opacity=1,n[0].style.display="inline-block",n[0].style.top="auto",n[0].style.left="auto",n[0].style.position="inherit",n[0].style.paddingLeft="6px",n[0].style.paddingRight="6px",n.css("transform",""),n.css("transition-duration",""),t.append(n),n},o=function(e,t,n){t[0].style.opacity=0,e[0].style.display="block",e[0].style.zIndex=2147483400,setTimeout(function(){var r=t.offset(),i=r.top-n.top,o=r.left-n.left;return 0==o&&0==i?(e.css("opacity",1),callback(),void 0):(setTimeout(function(){e.css("transition-duration","0.4s"),e.css("transform","translate3d("+o+"px,"+i+"px, 0px)"),e[0].style.opacity=1,n.action=setTimeout(function(){e.css("transition-duration",""),t[0].style.opacity=1,e[0].style.display="none",e[0].style.zIndex=21474899},400)},0),void 0)},0)},a=function(e,t,n){setTimeout(function(){var r=t.offset(),i=r.top-n.top,o=r.left-n.left;e.css("transform","translate3d("+o+"px,"+i+"px, 0px)")},0)},s=function(t,r,i){var o=0;(e.datatypeIndex==n.datatypeIndex||e.datatypes[n.datatypeIndex].hide)&&(o=1),r[0].style.opacity=0,t[0].style.display="block",t[0].style.zIndex=21474899,setTimeout(function(){t.css("transition-duration","0.4s"),t.css("transform","translate3d(0px,0px, 0px)"),t[0].style.opacity=o,i.action=setTimeout(function(){t.css("transition-duration",""),t[0].style.opacity=1,o||(t[0].style.display="none"),t[0].style.zIndex=21474899},400)},0)};e.$watch(function(){return e.flags.currentView},function(t,l){if((t!=l||"data"==t)&&"raw"!=t){var c=i('.kim-highlight[kimonodatatype="'+n.datatypeIndex+'"][kimonotier="0"]').first();if(c&&0!==c.length&&c.offset()){var u=e.datatypes[n.datatypeIndex].highlightMap[c.attr("kimonoid")];u.action&&clearTimeout(u.action);var f=r(c);e.flags.moveBack[n.datatypeIndex]&&!u.dontEdit&&"extractor"!=t&&"simple"==e.mode?(a(c,f,u),u.dontEdit=!0):u.dontEdit||"data"!=t||"simple"!=e.mode?"extractor"==t&&u.dontEdit&&(s(c,f,u),u.dontEdit=!1,e.flags.moveBack[n.datatypeIndex]=!1):(e.flags.moveBack[n.datatypeIndex]=!0,o(c,f,u),u.dontEdit=!0)}}}),e.$watch(function(){return e.mode},function(t,a){if(t!=a&&"data"==e.flags.currentView&&"simple"==t){var s=i('.kim-highlight[kimonodatatype="'+n.datatypeIndex+'"][kimonotier="0"]').first();if(s&&0!==s.length&&s.offset()){var l=e.datatypes[n.datatypeIndex].highlightMap[s.attr("kimonoid")];l.action&&clearTimeout(l.action);var c=r(s);e.flags.moveBack[n.datatypeIndex]=!0,o(s,c,l),l.dontEdit||(l.dontEdit=!0)}}})}}}]),s.module("Kimono").directive("kmDraggable",["Collections","Utils",function(){return{scope:{axis:"=",start:"=",end:"=",drag:"="},restrict:"EA",link:function(e,t){var n=new h(t[0],{axis:e.axis});n.on("dragStart",e.start||function(){}),n.on("dragEnd",e.end||function(){}),n.on("dragMove",e.drag||function(){})}}}]),s.module("Kimono").directive("kmClickOutside",["Utils",function(){return{restrict:"A",link:function(e,n,r){n.bind("click",function(e){e.stopPropagation(),e.preventDefault()}),i(t).on("click",function(){e.$apply(r.kmClickOutside)})}}}]),s.module("Kimono").directive("kmFade",["Utils",function(){return{replace:!0,restrict:"A",link:function(e,t,n){t.css("display","none");var r=parseFloat(n.opacity)||1,i=n.delay||"0",o=n.duration||n.enterDuration||"100",a=n.duration||n.leaveDuration||"100",s=n.translateVector||"(0, 0, 0)",l=(t.width(),s||n.transition?"all":"opacity");e.$watch(n.kmFade,function(c){return c&&n.kmEnter&&e[n.kmEnter](),!c&&n.kmLeave&&e[n.kmLeave](),c&&n.kmIn?(setTimeout(function(){t.css("opacity","0"),t.css("display",n.display||"block"),setTimeout(function(){t.css("transition-duration",o+"ms"),t.css("transition-property",l),t.css("opacity",r),s&&(t.css("transition-timing-function","ease-out"),t.css("-webkit-transform","translate3d"+s),t.css("transform","translate3d"+s)),"slide-left"==n.transition&&t.css("margin-left","0"),setTimeout(function(){t.css("opacity",""),t.css("margin",""),t.css("transition-duration",""),t.css("transition-timing-function",""),t.css("transition-property","")},parseInt(o))},25)},parseInt(i)),void 0):!c&&n.kmOut?(t.css("transition-duration",a+"ms"),t.css("transition-property",l),t.css("opacity","0"),s&&(t.css("-webkit-transform","translate3d(0,0,0)"),t.css("transform","translate3d(0,0,0)")),"slide-left"==n.transition&&t.css("margin-left","-30px"),setTimeout(function(){t.css("display","none"),t.css("opacity",""),t.css("transition-duration",""),s&&(t.css("-webkit-transform",""),t.css("transform","")),t.css("transition-property","")},parseInt(a)),void 0):(t.css("display",c?"":"none"),void 0)})}}}]),s.module("Kimono").directive("kmPages",[function(){return{compile:function(e,t){var n=t.duration||"300ms",r=t.width||0,i=function(e){e.css({"-webkit-transform":"translate3d(-"+r+"px, 0, 0)",transform:"translate3d(0, 0, 0)",transition:"all "+n,"-webkit-transition":"all "+n}),setTimeout(function(){e.css({"-webkit-transform":"",transform:"",transition:"","-webkit-transition":""})},parseInt(n))},o=function(e,t){e.css({"-webkit-transform":"translate3d(-"+r+"px, 0, 0)",transform:"translate3d(-"+r+"px, 0, 0)"}),t&&(e.css({transition:"all "+n,"-webkit-transition":"all "+n}),setTimeout(function(){e.css({transition:""})},parseInt(n)))},a={};return _.each(t.pages.split(/\s*,\s*/),function(t,n){a[t]={element:e.find(t),index:n},a[t].element.css({position:"absolute",left:r,"-webkit-transform":"translate3d("+(n>0?0:-1*r)+"px, 0, 0)",transform:"translate3d("+(n>0?0:-1*r)+"px, 0, 0)"})}),function(e){e[t.currentPage]=_.keys(a)[0],e.$watch(t.currentPage,function(e,t){e!=t&&"undefined"!=typeof a[e]&&(a[e].index>a[t].index?(o(a[e].element,!0),setTimeout(function(){i(a[t].element)},parseInt(n))):(o(a[e].element),i(a[t].element)))})}}}}]),s.module("Kimono").directive("kmPanel",["Utils",function(){return{compile:function(e,t){var n=t.width||300,r=t.height||500,i=t.offset||0,o=t.duration||"0.3s",a=t.translate||"(0, "+(-1*r+parseInt(i))+"px, 0)",s=t.showToggle,l={};t.pages&&_.each(t.pages.split(/\s*,\s*/),function(r,i){l[r]={elem:e.find(r),index:i};
var o=t.intialPageCss||{};o.width=n,o.position="absolute",l[r].elem.css(o)});var c=function(e){return e?e+"px":void 0};return e.css({transition:"all "+o,"-webkit-transition":"all "+o,width:n||"300",height:r||"500",position:t.position||"fixed",left:c(t.left)||"",right:c(t.right)||"20px",top:c(t.top)||"",bottom:c(t.bottom)||c(-1*r+parseInt(i)),transform:"translate3d(0, 0, 0)","-webkit-transform":"translate3d(0, 0, 0)"}),{post:function(e,t){e.$watch(s,function(e){e?t.css({transform:"translate3d"+a,"-webkit-transform":"translate3d"+a}):t.css({transform:"translate3d(0, 0, 0)","-webkit-transform":"translate3d(0, 0, 0)"})})}}}}}]),s.module("Kimono").directive("kmSelector",["Collections","Utils","$compile","$timeout",function(e,t,n,r){return{restrict:"A",replace:!0,link:function(e,o,a){var s="filter:kmCurrentInput:startsWith | filter:notSelectedTag | orderBy:'toString()'",l=o.find("input").clone(),c=i("<div></div>");e.currentInput="",e.kmSelectedItems=[],e.itemIdx=0,e.isVisible=!1,e.startsWith=t.startsWith,a.kmModel&&(e.$watch(a.kmModel,function(){e.kmSelectedItems=e[a.kmModel]}),e.$watch(e.kmSelectedItems,function(){e.kmSelectedItems.length&&(e[a.kmModel]=e.kmSelectedItems)})),e.notSelectedTag=function(t){return-1==e.kmSelectedItems.indexOf(t)},e.toggleVisible=function(t){t?(o.find("input").addClass("open"),r(function(){e.isVisible=t},300)):(r(function(){o.find("input").removeClass("open")},300),e.isVisible=t)},e.getStyles=function(t){var n=["#f2ea00","#ebce13","#f0aa14","#f08630","#f07a60","#ee78f0","#bd90f0","#9092f0","#7fbadc","#90f0e3","#91d271","#c5f060","#ccaa73","#a28057","#c0c1c7","#939499"];return t==e.itemIdx?{color:"black",background:n[e.kmSelectedItems.length%n.length]}:{}},e.getListLength=function(){return i(".km-selector-scroller").find("li").length-1},e.getItemContent=function(e){return e.find("span").html()},e.handleMouseOver=function(t){e.itemIdx=t},e.handleKeyDown=function(t){var n=[9,13,38,40];n.indexOf(t.keyCode)>=0?13==t.keyCode||9==t.keyCode?(selected=o.find(".selectedItem"),selected.length&&(e.addItem(selected),e.itemIdx=0,e.kmCurrentInput="")):38==t.keyCode&&e.itemIdx>0?(e.itemIdx-=1,e.adjustScrollPos()):40==t.keyCode&&e.itemIdx<e.getListLength()&&(e.itemIdx+=1,e.adjustScrollPos()):e.itemIdx=0},e.adjustScrollPos=function(){var t=o.find(".km-selector-scroller"),n=t.scrollTop(),r=t.outerHeight(),i=t.find("li").first(),a=i.outerHeight(),s=parseInt(i.parent().css("marginTop")),l=e.itemIdx*a+s;l>=r+n?t[0].scrollTop+=a:n>=l&&(t[0].scrollTop-=a);var c=o[0].style.display;o[0].style.display="none";o[0].offsetHeight;o[0].style.display=c},e.handleItemClick=function(t){e.addItem(i(t.currentTarget))},e.focusInput=function(){o.find("input").first().focus()},e.blurInput=function(){o.find("input").first().blur()},e.addItem=function(t){-1==e.kmSelectedItems.indexOf(e.getItemContent(t))&&e.kmSelectedItems.push(e.getItemContent(t)),e.blurInput(),e.toggleVisible(!1)},e.removeItem=function(t){var n=e.kmSelectedItems.indexOf(t);n>-1&&e.kmSelectedItems.splice(n,1)},o.find("input").remove();var c=i("<div></div>");c.css({position:"relative",outline:"none",clear:"both"});var u=i('<ul class="km-selector-scrollitems" style="display: block; overflow:hidden"></ul>'),f=i('<div class="km-selector-scroller" ng-class="{ open:isVisible }"></div>');f.css({position:"absolute",left:0,top:"22px",width:"100%","overflow-y":"scroll",margin:0,outline:"none"});var d=i('<li><span style="padding: 8px 10px;">{{ item }}</span></li>');d.attr({"ng-repeat":"item in "+a.kmItems+" | "+s,"ng-style":"getStyles($index)","ng-class":"{ selectedItem:$index == itemIdx }","ng-click":"handleItemClick($event)","ng-mouseover":"handleMouseOver($index)"}),u.append(d),f.append(u);var p=i("<div></div>");p.css({display:"inline-block",position:"absolute",margin:0,width:"150px"}),p.attr({"km-click-outside":"toggleVisible(false)","ng-hide":a.kmHide});var h=i('<div class="km-selector-selected-container"></div>'),g=i('<div><a href="" ng-click="removeItem(item)" class="km-selector-remove-item" ></a>{{ item }}</div>');g.attr({"class":"km-selector-selected kim-{{ getColor($index) }}","ng-repeat":"item in kmSelectedItems"}),h.append(g),l.attr({"ng-model":"kmCurrentInput","ng-class":"{ 'no-items':kmSelectedItems.length == 0}","ng-click":"toggleVisible(true)","ng-keydown":"handleKeyDown($event)"}),l.css({display:"inline-block","min-width":0}),p.append(l),p.append(f),h.append(p),c.append(h),n(c)(e),c.appendTo(o)}}}]),s.module("Kimono").directive("kmShow",[function(){return{replace:!0,restrict:"A",link:function(e,t,n){e.$watch(n.kmShow,function(r){r&&n.kmBeforeEnter&&e[n.kmBeforeEnter](t),!r&&n.kmBeforeLeave&&e[n.kmBeforeLeave](t),t.css("display",r?"":"none"),r&&n.kmAfterEnter&&e[n.kmAfterEnter](t),!r&&n.kmAfterLeave&&e[n.kmAfterLeave](t)})}}}]),s.module("Kimono").directive("kmLoading",["$compile",function(){return{compile:function(e,t){var n=Math.min(t.width,500)/20,r=2*n/3,i=n/3,o=t.top||"30%",a=t.fontSize||"18",s=t.message||"Loading Awesomeness",l='<div km-fade="'+t.model+'" km-in="true" km-out="true" enter-duration="0" leave-duration="300" class="kim-loading"> <div style="top:'+o+';" class="dot-container"> <div style="font-size:'+a+'px;" class="kim-message">'+s+'</div> <div class="dot dot1 kim-yellow"></div> <div class="dot dot2 kim-amber"></div> <div class="dot dot3 kim-orange"></div> <div class="dot dot4 kim-sunset"></div> <div class="dot dot5 kim-red"></div> <div class="dot dot6 kim-fuchsia"></div> <div class="dot dot7 kim-purple"></div> <div class="dot dot8 kim-indigo"></div> <div class="dot dot9 kim-blue"></div> <div class="dot dot10 kim-green"></div> </div> </div>';return e.append(l),e.find(".dot").css({width:r+"px",height:r+"px",margin:"0 "+i+"px 0 0"}),function(){}}}}]),s.module("Kimono").value("kimonoList",{}),s.module("Kimono").directive("kmRepeat",["$parse","$animate","$rootScope","kimonoList",function(t,r,i,o){function a(e){var t,r=typeof e;return"object"==r&&null!==e?"function"==typeof(t=e.$$hashKey)?t=e.$$hashKey():t===n&&(t=e.$$hashKey=c()):t=e,r+":"+t}function l(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function c(){for(var e,t=p.length;t;){if(t--,e=p[t].charCodeAt(0),57==e)return p[t]="A",p.join("");if(90!=e)return p[t]=String.fromCharCode(e+1),p.join("");p[t]="0"}return p.unshift("0"),p.join("")}function u(e){if(null==e||l(e))return!1;var t=e.length;return 1===e.nodeType&&t?!0:s.isArray(e)||!s.isFunction(e)&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}var f="$$NG_REMOVED",d="err",p=["0","0","0"],h=e.list_id=function(){var e=0;return function(){return"list_"+ ++e}}();return{transclude:"element",priority:1e3,terminal:!0,compile:function(e,n,l){return function(e,c,p){var g,m,v,y,b,x,$,k,w,C=p.kmRepeat,S=C.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/),E={$id:a};if(!S)throw d("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",C);if(x=S[1],$=S[2],g=S[4],g?(m=t(g),v=function(t,n,r){return w&&(E[w]=t),E[k]=n,E.$index=r,m(e,E)}):(y=function(e,t){return a(t)},b=function(e){return e}),S=x.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!S)throw d("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",x);k=S[3]||S[1],w=S[2];var A={},T=p.kmList||h(),O=function(t){var o,a,p,h,g,m,x,$,S,E,T=c[0],O={},N=[];if(u(t))S=t,v=v||y;else{v=v||b,S=[];for(m in t)t.hasOwnProperty(m)&&"$"!=m.charAt(0)&&S.push(m);S.sort()}for(h=S.length,a=N.length=S.length,o=0;a>o;o++)if(m=t===S?o:S[o],x=t[m],$=v(m,x,o),A.hasOwnProperty($))E=A[$],delete A[$],O[$]=E,N[o]=E;else{if(O.hasOwnProperty($))throw s.forEach(N,function(e){e&&e.startNode&&(A[e.id]=e)}),d("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}",C,$);N[o]={id:$},O[$]=!1}for(m in A)A.hasOwnProperty(m)&&(E=A[m],r.leave(E.elements),e[n.kmLeave]&&e[n.kmLeave](E.elements),s.forEach(E.elements,function(e){e[f]=!0}),E.scope.$destroy());for(o=0,a=S.length;a>o;o++){if(m=t===S?o:S[o],x=t[m],E=N[o],E.startNode){g=E.scope,p=T;do p=p.nextSibling;while(p&&p[f]);E.startNode==p||(r.move(E.elements,null,s.element(T)),e[n.kmMove]&&e[n.kmMove](E.elements,null,s.element(T))),T=E.endNode}else g=e.$new();g[k]=x,w&&(g[w]=m),g.$index=o,g.$first=0===o,g.$last=o===h-1,g.$middle=!(g.$first||g.$last),g.$odd=!(g.$even=o%2==0),E.startNode||(l(g,function(t){r.enter(t,null,s.element(T)),e[n.kmEnter]&&e[n.kmEnter](t),T=t,E.scope=g,E.startNode=t[0],E.elements=t,E.endNode=t[t.length-1],O[E.id]=E}),"$digest"!==i.$$phase&&"$digest"!==g.$$phase&&g.$digest())}A=O};o[T]=O,"medium"==n.type&&e.$watchCollection($,O),e.$watch($,O)}}}}]),s.module("Kimono").directive("kmSticky",["$timeout",function(e){return{link:function(t,n,r){e(function(){var e=r.scrollableArea||"#Kimonify",t=i(e),o=n.parent(),a=parseInt(r.offset)||0;n.css({position:"absolute",top:"0px",width:"100%"}),o.css({position:"relative",paddingTop:n.height()+4+"px"}),t.on("scroll",function(){var e={top:o.position().top-a};e.bottom=e.top+o.height(),n.css("-webkit-transform","translate3d(0, "+Math.min(Math.max(-1*e.top,0),o.height())+"px, 0)"),n.css("transform","translate3d(0, "+Math.min(Math.max(-1*e.top,0),o.height())+"px, 0)")})},0)}}}]),s.module("Kimono").filter("groupby",["$filter",function(e){return function(){var t=Array.prototype.slice.call(arguments,0),n=t.shift(),r=t.shift();return _.keys(_.groupBy(n,function(n){return _.reduce(t,function(t,n){var r=n.slice(1);return r.unshift(t),e(n[0]).apply(this,r)},n[r])}))}}]),s.module("Kimono").filter("keys",function(){return function(e){return _.keys(e)}}),s.module("Kimono").filter("limit",function(){return function(e,t){return"undefined"==typeof e?"":e.length>t?e.substring(0,t)+"...":e}}),s.module("Kimono").filter("plural",["$filter",function(){return function(e,t){return t>1&&"s"==_.last(e)?e+"'":t>1?e+"s":e}}]),s.module("Kimono").filter("replace",function(){return function(e,t,n){if("string"==typeof regexString)var r=new RegExp(regexString,"g");else var r=t;return e.replace(r,n)}}),s.module("Kimono").filter("reverse",function(){return function(e){return e.slice().reverse()}}),s.module("Kimono").filter("size",function(){return function(e){return _.size(e)}}),i(".kim-script, .kim-link").appendTo("head");var c=i('<div id="Kimonify" dir="ltr" class="xs-hidden" ng-controller="mainController" km-loading font-size="28" model="flags.loading"></div>');c.append('<div ng-controller="largeOverlayController" id="kim-Large-Overlay" class="kim" km-fade="show" km-in="true" km-out="true" opacity="0.95"> <h1><a href="" ng-click="link(\'http://kimonolabs.com/\')">kimono<span>labs</span></a></h1> <button ng-if="backButton" ng-click="close()" class="kim-close-button kim kim-button" style="display: inline-block;" ng-hide="flags.hideBackButton">Back</button> <!-- Done Overlay --> <div ng-controller="doneOverlayController" id="kim-DoneOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == \'done\'" class="kim-button-container" opacity="0.95"> <div km-fade="doneStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> <p class="kim-done-form-title" style="display: block;">Enter your API details</p> <div id="kim-DoneForm" name="createApiForm" novalidate style="display: block; top: 153px;"> <input type="text" ng-model="apiName" id="kim-APIName" name="apiName" ng-keyup="keyUpInApiNameField($event)" placeholder="API name" ng-keydown="error = false;"> <div class="kim-TagsSelector" km-selector km-items="tags" km-model="apiTags" km-hide="apiTags.length >= 5" > <span ng-hide="apiTags.length || isVisible" class="kim-tags-reminder">Add tags</span> <input type="text" id="kim-APITags" name="apiTag"></input> </div> <div class="kim-api-config"> <select id="kim-Frequency" name="crawlFrequency" ng-model="selectedFrequency" ng-options="i.id as utils.displayFrequency(i.id, flags.hasPagination) for i in frequencies | filter:filterFrequencies"></select> <select ng-show="flags.hasPagination" ng-model="selectedCrawlLimit" ng-options="i.id as utils.displayCrawlLimit(i.id) for i in crawlLimits" id="kim-CrawlLimit" name="limit"></select> </div> <div> <input type="submit" ng-click="createApi()" ng-disabled="loading" class="kim-create-api-button kim kim-button" value="{{createApiButtonLabel()}}"> <span class="kim-spinner" ng-show="loading"></span> </div> <div class="kim-error-container" km-fade="error" km-in="true" km-out="true"> <p class="kim-api-form-error">{{errorMessage}}</p> </div> </div> </div> <div km-fade="doneStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">API <span class="kim-created-updated">{{createdOrUpdated()}}</span>, Bam! Check it out at <a class="kim-api-link" href="" ng-click="link(config.KM_HOST_WWW + \'/apis/\' + apiID)">/apis/{{apiID}}</a>.</p> </div> <div km-fade="doneStep == -1" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">Sorry. Something went wrong and we couldn\'t create an API from this page. A bug report has been created.</p> </div> </div> <!-- Illegal Overlay --> <div ng-controller="illegalOverlayController" id="kim-IllegalOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == \'illegal\'" class="kim-button-container" opacity="0.95"> <div class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">Sorry. Due to the policy of this target domain we cannot extract data from this site.</p> </div> </div> <!-- No Support Overlay --> <div id="kim-NoSupportOverlay" km-in="true" km-out="true" km-fade="currentOverlay == \'nosupport\'" class="kim-button-container" opacity="0.95"> <div class="kim-step-2"> <p class="kim" id="kim-APIResponseMessage">Sorry. Our auth feature is incompatible with this site, check back often on our <a href="" ng-click="followLink(\'http://blog.kimonolabs.com/\')" >blog</a> for updates.</p> </div> </div> <!-- Login Overlay Overlay --> <div ng-controller="loginOverlayController" id="kim-LoginOverlay" km-enter="enter" leave-duration="500" km-in="true" km-out="true" km-fade="currentOverlay == \'login\'" class="kim-button-container" opacity="0.95"> <div km-fade="loginStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> <form id="kim-LoginForm" name="kmLoginForm" novalidate> <p>You must log in first:</p> <input ng-model="form.username" ng-keydown="loginError = false;" type="text" name="email" id="kim-LoginEmail" placeholder="email"> <input ng-model="form.password" ng-keydown="loginError = false;" type="password" name="password" id="kim-LoginPassword" placeholder="password"> <button ng-click="login()" class="kim-login-button kim kim-button">Login</button> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> <span class="kim kim-login-trouble">Having trouble? <a href="" ng-click="link(config.KM_HOST_WWW + \'/forgotpassword\')">Forgot password</a></span> <div km-fade="loginError" km-in="true" km-out="true" class="kim-error-container"> <p class="kim-login-error">Incorrect email/password combination. Try again.</p> </div> </form> <div><p>Or you can <span class="kim kim-signup"><a href="" ng-click="showLargeOverlay(\'signup\')">signup here</a></span></p></div> </div> <div km-fade="loginStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p style="text-align:center">Login successful</p> </div> </div> <!-- Signup Overlay --> <div ng-controller="signupOverlayController" id="kim-LoginOverlay" km-enter="enter" km-in="true" delay="500" duration="500" km-fade="currentOverlay == \'signup\'" class="kim-button-container" opacity="0.95"> <div km-fade="signupStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> <form id="kim-LoginForm" class="kim-signup" name="kmSignupForm" novalidate> <p>Signup for Kimono<span style="vertical-align:super; font-size:10px;">BETA</span></p> <input ng-model="form.name" ng-keydown="resetErrors()" type="text" name="name" id="kim-SignupName" placeholder="name"> <input ng-model="form.username" ng-keydown="resetErrors()" type="text" name="email" id="kim-SignupEmail" placeholder="email"> <input ng-model="form.password" ng-keydown="resetErrors()" type="password" name="password" id="kim-SignupPassword" placeholder="password"> <button ng-click="signup()" class="kim-signup-button kim kim-button">Signup</button> <p class="kim-helper-text">By signing up, you are agreeing to our <br/><a href="" ng-click="link(config.KM_HOST_WWW + \'/terms\')" target="_self">Terms of service</a> and <a href="" ng-click="link(config.KM_HOST_WWW + \'/terms\')" target="_self">Privacy policy</a></p> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> <div km-fade="signupError " km-in="true" duration="300" km-out="true" class="kim-error-container"> <p ng-show="errors.name" class="kim-login-error">Name is required.</p> <p ng-show="errors.email" class="kim-login-error">{{errors.email}}</p> <p ng-show="errors.password" class="kim-login-error">Password must contain 6 characters</p> </div> </form> </div> <div km-fade="signupStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> <p style="text-align:center">Signup successful</p> </div> </div> <!-- Auth Overlay --> <div ng-controller="authOverlayController" id="kim-LoginOverlay" km-in="true" km-fade="currentOverlay == \'auth\'" class="kim kim-button-container" opacity="0.95"> <div class="kim-step-1"> <form id="kim-LoginForm" name="kmAuthForm" novalidate style="height:290px;"> <p>Please enter your login information:</p> <p class="host-indicator">{{host}}</p> <input ng-model="form.username" type="text" name="email" id="kim-LoginEmail" placeholder="email"> <input ng-model="form.password" type="password" name="password" id="kim-LoginPassword" placeholder="password"> <div class="kim-hint-checkbox"> <input type="checkbox" value="1" ng-model="authAgree" ng-change="agree()" id="AgreeCheckbox" name="" /> <label for="AgreeCheckbox"></label> </div> <p class="auth-agreement" ng-class="agreeError">I agree to store my login information for {{host}} on kimonolabs.com so that this API can automatially login and retrieve data specific to my account.</p> <div> <button ng-click="authLogin()" class="kim-login-button kim kim-button kim-auth-login-button">Login</button> </div> <p class="auth-fineprint">We use the latest secure encryption technologies to ensure safe transport and storage of your credentials. You will have the ability to update or remove your stored credentials at any time. APIs created from sites requiring authentication are automatically set to private and the data can only be accessed by your kimono account through secure authentication.</p> </form> </div> </div></div><div class="kim-Overlay kim" km-fade="flags.currentView != \'extractor\'" km-in="true" km-out="true" opacity="0.95"> <div class="kim kim-container" ng-controller="dataOverlayController" ng-show="flags.currentView == \'data\'"> <div class="col-md-2 collectionsInfo"> <h1>{{collections.length}} {{collectionTitle}}</h1> <div id="kim-ModeSwitch"> <div> <div> <a ng-click="mode = \'simple\'" ng-class="{active : mode == \'simple\'}" class="kim-type-button kim-button-simple">Simple</a> <a ng-click="mode = \'advanced\'" ng-class="{active : mode == \'advanced\'}" class="kim-type-button kim-button-advanced">Advanced</a> <a ng-click="mode = \'editor\'" ng-class="{active : mode == \'editor\', disabled: flags.mode == \'loginMode\'}" class="kim-type-button kim-button-edit">Editor</a> </div> <div> <a ng-click="showPopup(\'rssInfo\')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div> </div> </div> </div> <div class="scroll"> <form name="advancedModeForm" ng-submit="update(tmpCollections)"> <div ng-hide="collectionNames[$index] == \'Pagination\' && mode == \'editor\'" class="collection kim-clearfix" km-repeat="collection in tmpCollections"> <input class="kim kim-data-field kim-collection-name" ng-disabled="collectionNames[$index] == \'Pagination\' || flags.mode == \'loginMode\'" kimonocollection="$index" ng-model="collectionNames[$index]"> <div class="kim-clearfix datatype" km-repeat="datatype in collection" ng-init="realDatatype = collections[$parent.$index][$index]"> <div km-draggable start="editor.dragStart" end="editor.dragEnd" drag="editor.drag" axis="\'y\'" datatypeIndex="{{realDatatype.context.index}}" collectionIndex="{{$parent.$index}}" km-fade="mode == \'editor\'" display="inline-block" class="kim kim-datatype-avatar kim-datatype-dropzone kim-{{config.colors[realDatatype.context.index]}}">{{realDatatype.name}}</div> <input ng-disabled="realDatatype.context.index == \'pagination\' || flags.mode == \'loginMode\'" ng-show="mode != \'editor\'" class="kim kim-data-field kim-datatype-name kim-{{getColor(realDatatype.context.index)}}" ng-model="realDatatype.name"> <div style="float:left;"> <div ng-show="mode == \'advanced\'" class="advancedAttributes" km-repeat="selectorObject in datatype.selectorObjects"> <ng-form name="datatypeForm"> <input name="selectorField" class="kim kim-data-field kim-code-field kim-datatype-selector animate-me-up" ng-model="selectorObject.selector" selector> <input name="regexField" style="display:inline-block;" class="kim kim-data-field kim-code-field kim-datatype-regex animate-me-up" ng-model="selectorObject.regex" regex> </ng-form> <a ng-show="flags.mode != \'loginMode\'" ng-click="showAttributes(realDatatype.context.index)" class="kim kim-data-link">Attributes</a> </div> <div ng-show="mode == \'simple\'" animated-highlight datatype-index="{{realDatatype.context.index}}" class="animated-highlight"></div> </div> </div> <div ng-show="mode == \'editor\'" collectionIndex="{{$index}}" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div> </div> <input ng-show="mode == \'editor\'" disabled class="kim kim-data-field kim-collection-name" value="New Collection"> <div ng-show="mode == \'editor\'" collectionIndex="new" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div> <div ng-show="mode == \'advanced\'" id="kim-AdvancedButtons"> <input ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" type="submit" class="kim-advanced-button kim-button-apply kim kim-button"> <button ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" ng-click="resetAdvancedModeForm()" class="kim-advanced-button kim-button-reset kim kim-button">Reset</button> <span km-fade="advancedModeForm.$invalid" km-in="true" km-out="true" display="inline-block" class="kim-selector-error">{{errorMessage}}</span> </div> </div> </form> </div> <div class="kim kim-container" ng-controller="rawOverlayController" km-fade="flags.currentView == \'raw\'" km-enter="enter"> <div class="col-md-2 collectionsInfo"> <h1>{{collections.length}} {{collectionTitle}}</h1> <div id="kim-ModeSwitch"> <div> <div> <a ng-click="mode = \'json\'" ng-class="{active : mode == \'json\'}" class="kim-type-button kim-button-simple">JSON</a> <a ng-click="mode = \'csv\'" ng-class="{active : mode == \'csv\'}" class="kim-type-button kim-button-advanced">CSV</a> <a ng-click="mode = \'rss\'" ng-class="{active : mode == \'rss\'}" class="kim-type-button kim-button-edit">RSS</a> </div> <div> <a ng-click="download()" class="kim-action-button kim-button-download">Download {{mode | uppercase}}</a> <a ng-click="selectText()" ng-hide="mode == \'csv\'" class="kim-action-button kim-button-select">Select All Text</a> <a ng-click="selectCurrentTable()" ng-show="mode == \'csv\'" class="kim-action-button kim-button-select">Select {{selectedCollection}}</a> <a ng-show="mode == \'rss\'" ng-click="showPopup(\'rssInfo\')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div> </div> </div> </div> <div class="scroll"> <pre ng-show="mode == \'json\'" class="kim-code json">{{json | json}}</pre> <div ng-show="mode == \'csv\'" class="kim-spreadsheet"> <div id="kim-SheetSwitch"> <a ng-repeat="(collection, data) in table" ng-click="clickTableCollection(collection)" ng-class="{active : selectedCollection == collection}">{{collection}}</a> </div> <div> <table> <tr> <th ng-class="\'kim-\' + config.colors[ table[selectedCollection].datatypeindices[$index] ] + \'-color\'" ng-repeat="name in table[selectedCollection].colnames">{{name}}</th> </tr> <tr ng-repeat="row in table[selectedCollection].rows"> <td ng-repeat="value in row track by $index">{{value}}</td> </tr> </table> </div> </div> <pre ng-show="mode == \'rss\'" class="kim-code rss">{{rss}}</pre> </div> </div></div><div ng-controller="popupController" class="kim-Overlay kim" km-fade="show" km-in="true" km-out="true" opacity="0.95"> <div class="kim kim-container" ng-controller="attributesOverlayController" km-fade="currentPopup == \'attributes\'" km-in="true" km-out="true" km-enter="enter"> <div class="kim" id="kim-AttributeExtractor" style="opacity: 1;"> <div> <a ng-click="close()" class="kim kim-close-ae"></a> <p>Select the specific attributes you want to extract for the elements matched by this selector.</p> <ul id="kim-AttrList"> <li><label><input ng-model="textContent" type="checkbox" id="kim-TextContent"> Text Content</label></li> <li class="kim-attribute" km-repeat="attribute in attributes"> <label><input class="kim-regex-check" ng-model="attribute.value" type="checkbox"> {{attribute.attribute}}</label> </li> </ul> <ul class="kim-last"> <li><label><input type="checkbox" ng-model="hiddenElements" id="kim-HiddenElements"> Include Hidden Elements</label></li> </ul> <div class="kim-apply-button-container"><button class="kim kim-apply-ae kim-button" ng-click="apply()">Apply</button></div> </div> </div> </div> <div class="kim kim-container" ng-click="close()" km-fade="currentPopup == \'rssInfo\'" km-in="true" km-out="true"> <div class="kim" id="kim-RSSInfo" style="opacity: 1;"> <div> <a class="kim kim-close-ae"></a> <p>To build an RSS feed with kimono, you must make sure your API has only one collection, and that the collection contains at least a one property. If you want to populate your RSS feed with description, author, pubDate or comments, you must create properties on your API with the appropriate property names.</p> <table> <tbody> <tr> <td>title <span>LINK</span></td> <td>The title of the item (must also be a link to the content)</td> </tr> <tr><td>description</td><td>The item synopsis</td></tr> <tr><td>author</td><td>Author of the item</td></tr> <tr><td>category</td><td>Category for the item</td></tr> <tr><td>pubDate</td><td>When the item was published</td></tr> <tr><td>comments <span>LINK</span></td><td>Comments URL (must be a link to a comments page)</td></tr> </tbody> </table> </div> </div> </div> <div class="kim kim-container" ng-click="close()" km-fade="currentPopup == \'incorrectLogin\'" km-in="true" km-out="true"> <div class="kim" id="kim-AttributeExtractor" style="opacity: 1;"> <div> <a class="kim kim-close-ae"></a> <p>Can\'t activate login credential mode.</p> </div> </div> </div></div><!--- Toast Message --><div class="kim kim-toast-wrapper" km-fade="flags.toasting" km-in="true" km-out="true" translate-vector="(0, 20px, 0)" duration="250"> <p class="kim kim-toast kim-{{flags.toastType}}"> {{flags.toastMessage}} </p></div><!-- extractor --><div ng-controller="extractorController" ></div><!--<div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> <div class="kim-notification-wrapper"> <div class="kim-header"> <div class="kim-title">What\'s New</div> <div class="kim-links"><div class="reject" ng-click="flags.showNotificationPanel = false"></div></div> </div> <div class="kim-notifications"> <div class="kim-notification" ng-class="{\'new\': new_features[key]}" ng-repeat="(key, notification) in config.data.features | reverse" ng-click="link(notification.link)"> <div class="kim-notification-title"> {{notification.title}} </div> <div class="kim-thumb" ng-class="{\'kim-green\': notification.type == \'New Feature\', \'kim-purple\': notification.type == \'News\', \'kim-red\': notification.type == \'Bug Fix\'}"> {{notification.type}} </div> <div class="kim-text">{{notification.message | limit: 30}}</div> <div class="arrow"></div> </div> </div> <a href="" class="kim-more" ng-click="link(config.KM_HOST_WWW+\'/blog\')">More News</a> </div></div>--><div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> <div class="kim-notification-wrapper"> <div class="kim-notifications"> <div class="kim-notification" ng-class="{\'new\': new_features[key]}" ng-repeat="(key, notification) in allFeatures | reverse" ng-click="link(notification.link)"> <div class="kim-thumb" ng-class="{\'kim-green\': notification.type == \'New Feature\', \'kim-purple\': notification.type == \'News\', \'kim-red\': notification.type == \'Bug Fix\'}"> {{notification.type}} </div> <p class="kim-body">{{notification.message}}</p> <div class="arrow"></div> </div> </div> </div></div><!-- Api Popup --><div id="kim-ApiPanel" km-loading message="Loading API data" font-size="18" model="loading" ng-show="flags.showApiPanel" ng-controller="apiPanelController" km-panel show-toggle="open" width="300" height="300" offset="44"> <div ng-click="toggle()" class="panel-header">{{(siteApis.length + \' Existing Kimono APIs\') | limit: 40}}</span> <!-- <div ng-click="showHelp = !showHelp" class="question"></div> --> <div ng-class="{open: open}" class="arrow"></div> </div> <div class="panel-list"> <div style="position:relative; z-index:10;" km-repeat="api in siteApis"> <div class="kim-api-item" ng-click="getApi(api)" ng-class="{selected: flags.currentApi.id == api.id}"> <span>{{api.name | limit: 14}}</span> <div class="kim-collection-indicator"> <div class="single_collection" ng-repeat="collection in api.collections"> <div ng-repeat="datatype in collection" class="datatype kim-{{getColor(datatype.context.index)}}"></div> </div> </div> </div> <div class="kim-action-buttons"> <div ng-if="false" ng-click="link(config.KM_HOST + \'/apis/\' + api.id)" class="accept">Use</div> <div ng-if="false" ng-click="done()" class="clone">Clone</div> <div ng-click="cancel()" class="reject">Unload</div> </div> </div> <div class="kim-othersite-item" ng-click="kimonify(rootDomain + site)" ng-repeat="(site, apis) in otherSites"> {{(apis.length + \' more \' + (\'api\' | plural: apis.length)) | limit: 40}} <span>{{(rootDomain + site) | limit: 40}}</span> <div class="arrow"></div> </div> </div> <!-- <div class="api-view"> <div class="navbar title"> <div ng-click="back()" class="nav-button left"><div class="arrow left"></div></div> <div class="nav-button right" ng-click="getApi(selectedApi.id)"><div class="download"></div></div> <div class="nav-title center">{{selectedApi.name | limit: 18}}</div> </div> <div style="height:260px; overflow:scroll;"> <div class="collection" ng-repeat="collection in selectedApi.collectionNames"> <div class="collection-title">{{collection | limit: 11}}</div> <div class="datatypes"> <div ng-repeat="datatype in selectedApi.collections[$index]" class="datatype-title"> <div class="border kim-{{getColor(datatype.context.index)}}"></div> {{datatype.name | limit:13}} </div> </div> </div> </div> </div> --></div><div ng-controller="toolbarController" id="kim-Toolbar" class="kim"> <div class="kim-toolbar-section active"> <h1 style="vertical-align: middle;"><a href="" ng-click="link(\'http://kimonolabs.com/\')">kimono<span>labs</span></a></h1> <a class="kim-new" title="New Features" ng-show="allFeatures.length > 0" ng-class="{\'active\':flags.showNotificationPanel, \'highlighted\': (new_features | size) > 0}" ng-click="openNotifications()"></a> <!-- <span ng-show="(new_features | size) > 0" ng-class="{\'kim-dot-sm\': new_features.length > 99, \'kim-dot-md\': new_features.length > 9, \'kim-dot-xs\': new_features.length > 999 }" class="kim-notification-badge">{{new_features | size}}</span> --> <p ng-show="(new_features | size) > 0" class="beta-tag kim-feature-count">{{new_features | size}}</p><!-- <form role="form" id="kim-UrlForm" action="http://kimonolabs.com/load" method="get"> <input class="kim" type="text" id="kim-ToolbarUrl" name="url" placeholder="any url" value="{{ targetUrl }}"> <a class="kim-toolbar-button kim-urlgo"></a> </form> --> </div> <div class="kim-toolbar-section first" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block;"> <input class="kim" type="text" id="kim-ToolbarDataName" name="ToolbarDataName" placeholder="property1" ng-disabled="datatypeIndex == \'pagination\' || flags.mode == \'loginMode\'" ng-model="datatypes[datatypeIndex].name" ng-keydown="keydown($event)"> </div> <div class="kim-toolbar-section kim-datatypes" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block"> <a ng-mouseenter="dataDotHover($index)" ng-mouseleave="dataDotUnhover($index)" km-repeat="datatype in datatypes" km-list="toolbarDatatypes" km-enter="datatypeEnter" type="medium" kimonodatatype="{{$index}}" ng-click="changeDatatype($index)" ng-class="{active : (datatypeIndex == $index)}" class="kim-data-dot kim-{{getColor($index)}}"> <span ng-show="flags.mode != \'loginMode\'" ng-class="{\'kim-dot-sm\': datatype.numElements > 99, \'kim-dot-md\': datatype.numElements > 9, \'kim-dot-xs\': datatype.numElements > 999}">{{datatype.numElements}}</span> <span ng-show="flags.mode == \'loginMode\'" class="kim kim-icon" ng-class="{\'kim-user-highlight\': $index == 0, \'kim-password-highlight\': $index == 1, \'kim-target-highlight\': $index == 2}"></span> <span ng-show="flags.mode != \'loginMode\'" class="kim-delete-datatype" ng-click="delete($index)"></span> </a> <a class="kim-new-datatype" ng-click="addDatatype()" ng-show="datatypes.length < 50 && flags.mode != \'loginMode\'" title="New Datatype"></a> </div> <div class="kim-right"> <div class="kim-toolbar-section" id="kim-PaginationContainer"> <a km-fade="flags.mode != \'loginMode\' && flags.mode != \'navigation\'" km-in="true" km-out="true" display="inline-block" opacity="0.4" ng-mouseenter="paginationHover(\'pagination\')" ng-mouseleave="dataDotUnhover(\'pagination\')" class="kim kim-toolbar-button kim-pagination kim-data-dot" kimonodatatype="pagination" title="Pagination" ng-click="pagination()" ng-class="{active : (datatypeIndex == \'pagination\'), disabled: flags.mode == \'loginMode\' || flags.navigate}"> <span ng-show="flags.hasPagination" class="pagination-check"></span> <span class="kim-delete-datatype" ng-click="deletePagination($index)"></span> </a> <a km-fade="flags.mode != \'navigation\'" km-in="true" km-out="true" display="inline-block" opacity="0.4" class="kim-toolbar-button kim-undo" ng-class="{disabled: flags.actionHistoryLength == 0}" ng-click="undo()" title="Undo"></a> </div> <div class="kim-toolbar-section" ng-if="config.clientEnv == \'chrome\'" id="kim-PaginationContainer"> <a ng-show="flags.currentStep == \'on\' || flags.currentStep == \'done\'" class="kim-toolbar-button kim-normal" ng-class="{active: flags.mode == \'navigation\'}" ng-click="navigateMode()" title="Navigate"></a> <a ng-show="flags.currentStep != \'on\' && flags.currentStep != \'done\'" class="kim-toolbar-button kim-login" ng-class="{active: flags.mode == \'loginMode\', attention: isHttps()}" ng-click="enableLoginMode()" title="Auth mode"></a> </div> <div class="kim-toolbar-section"> <a class="kim-toolbar-button kim-view-button extractor-view" title="Extractor View" ng-click="changeView(\'extractor\')" ng-class="{active : (flags.currentView == \'extractor\')}"></a> <a class="kim-toolbar-button kim-view-button data-model-view" title="Data Model View" ng-click="changeView(\'data\')" ng-class="{active : (flags.currentView == \'data\'), disabled: flags.navigate}"></a> <a class="kim kim-toolbar-button kim-view-button json-view" title="Raw Data View" ng-click="changeView(\'raw\')" ng-class="{active : (flags.currentView == \'raw\'), disabled: flags.mode == \'loginMode\' || flags.navigate}"></a> </div> <div class="kim-toolbar-section"> <button ng-class="{disabled: flags.navigate}" class="kim-toolbar-button-primary kim kim-button" id="kim-DoneButton" ng-click="done()" title="{{doneButtonTitle()}} API">{{doneButtonMessage()}}</button> </div> </div></div>'),s.bootstrap(c,["Kimono"]),c.appendTo("body")
}})}(window,document);
This file has been truncated, but you can view the full file.
!function(window, document, undefined) {
function okeboup() {
quobovu || (jQuery('#habla_beta_container_do_not_rely_on_div_classes_or_names').appendTo('#Kimonify').css({
'z-index': 2147483900,
position: 'fixed'
}), quobovu = !0);
}
'undefined' == typeof window.$k ? window.$k = {
data: {}
} : 'undefined' == typeof window.$k.data && (window.$k.data = {});
window.$ || window.jQuery || undefined;
!function(luloso, eloyhad) {
'object' == typeof module && 'object' == typeof module.exports ? module.exports = luloso.document ? eloyhad(luloso, !0) : function(soonietbot) {
if (!soonietbot.document) {
throw new Error('jQuery requires a window with a document');
}
return eloyhad(soonietbot);
} : eloyhad(luloso);
}('undefined' != typeof window ? window : this, function(gosura, perefop) {
function yeladi(quecadi) {
var kilikan = quecadi.length;
var yeladi = jQuery.type(quecadi);
return 'function' === yeladi || jQuery.isWindow(quecadi) ? !1 : 1 === quecadi.nodeType && kilikan ? !0 : 'array' === yeladi || 0 === kilikan || 'number' == typeof kilikan && kilikan > 0 && kilikan - 1 in quecadi;
}
function cropuba(pimeydrank, soquega, munitoth) {
if (jQuery.isFunction(soquega)) {
return jQuery.grep(pimeydrank, function(strilanu, moderub) {
return !!soquega.call(strilanu, moderub, strilanu) !== munitoth;
});
}
if (soquega.nodeType) {
return jQuery.grep(pimeydrank, function(nestifet) {
return nestifet === soquega !== munitoth;
});
}
if ('string' == typeof soquega) {
if (kubuley.test(soquega)) {
return jQuery.filter(soquega, pimeydrank, munitoth);
}
soquega = jQuery.filter(soquega, pimeydrank);
}
return jQuery.grep(pimeydrank, function(nesayey) {
return kekegaf.call(soquega, nesayey) >= 0 !== munitoth;
});
}
function gedisip(tobebfam, saqualo) {
for (;
(tobebfam = tobebfam[saqualo]) && 1 !== tobebfam.nodeType;
) {
}
return tobebfam;
}
function scinedloup(muroruch) {
var toroupek = mafinize[muroruch] = {};
return jQuery.each(muroruch.match(nikisi) || [], function(saferi, chajuhog) {
toroupek[chajuhog] = !0;
}), toroupek;
}
function gupopey() {
soyengack.removeEventListener('DOMContentLoaded', gupopey, !1), gosura.removeEventListener('load', gupopey, !1), jQuery.ready();
}
function hahatool() {
Object.defineProperty(this.cache = {}, 0, {
get: function() {
return {};
}
}), this.expando = jQuery.expando + Math.random();
}
function framogi(chomeelas, mofoje, nisuban) {
var clomefi;
if (void 0 === nisuban && 1 === chomeelas.nodeType) {
if (clomefi = 'data-' + mofoje.replace(heenefi, '-$1').toLowerCase(), nisuban = chomeelas.getAttribute(clomefi), 'string' == typeof nisuban) {
try {
nisuban = 'true' === nisuban ? !0 : 'false' === nisuban ? !1 : 'null' === nisuban ? null : +nisuban + '' === nisuban ? +nisuban : lirequa.test(nisuban) ? jQuery.parseJSON(nisuban) : nisuban;
} catch (fruhese) {} vupequa.set(chomeelas, mofoje, nisuban);
} else {
nisuban = void 0;
}
}
return nisuban;
}
function basefe() {
return !0;
}
function hedungal() {
return !1;
}
function neyidet() {
try {
return soyengack.activeElement;
} catch (festruetes) {}
}
function dobakath(olopif, sruecates) {
return jQuery.nodeName(olopif, 'table') && jQuery.nodeName(11 !== sruecates.nodeType ? sruecates : sruecates.firstChild, 'tr') ? olopif.getElementsByTagName('tbody')[0] || olopif.appendChild(olopif.ownerDocument.createElement('tbody')) : olopif;
}
function deegastub(shicupiel) {
return shicupiel.type = (null !== shicupiel.getAttribute('type')) + '/' + shicupiel.type, shicupiel;
}
function depepag(ufhiled) {
var yubooji = wukomi.exec(ufhiled.type);
return yubooji ? ufhiled.type = yubooji[1] : ufhiled.removeAttribute('type'), ufhiled;
}
function cagogtek(grequepooch, kakarom) {
for (var estackup = 0, ropeji = grequepooch.length;
ropeji > estackup;
estackup++) {
diskayos.set(grequepooch[estackup], 'globalEval', !kakarom || diskayos.get(kakarom[estackup], 'globalEval'))
}
}
function henuqui(loujobap, byelay) {
var majelay;
var slakubu;
var nujobo;
var joquapur;
var gorebrach;
var quohufi;
var hedrefef;
var buenaldrit;
if (1 === byelay.nodeType) {
if (diskayos.hasData(loujobap) && (joquapur = diskayos.access(loujobap), gorebrach = diskayos.set(byelay, joquapur), buenaldrit = joquapur.events)) {
delete gorebrach.handle
, gorebrach.events = {};
for (nujobo in buenaldrit) {
for (majelay = 0, slakubu = buenaldrit[nujobo].length;
slakubu > majelay;
majelay++) {
jQuery.event.add(byelay, nujobo, buenaldrit[nujobo][majelay])
}
}
}
vupequa.hasData(loujobap) && (quohufi = vupequa.access(loujobap), hedrefef = jQuery.extend({}, quohufi), vupequa.set(byelay, hedrefef));
}
}
function radobu(setareg, tuepubek) {
var lesemi = setareg.getElementsByTagName ? setareg.getElementsByTagName(tuepubek || '*') : setareg.querySelectorAll ? setareg.querySelectorAll(tuepubek || '*') : [];
return void 0 === tuepubek || tuepubek && jQuery.nodeName(setareg, tuepubek) ? jQuery.merge([setareg], lesemi) : lesemi;
}
function gojooje(poreswi, rutipi) {
var tobujee = rutipi.nodeName.toLowerCase();
'input' === tobujee && butiquab.test(poreswi.type) ? rutipi.checked = poreswi.checked : ('input' === tobujee || 'textarea' === tobujee) && (rutipi.defaultValue = poreswi.defaultValue);
}
function wacosa(ketefo, tudtobtem) {
var klexosid = jQuery(tudtobtem.createElement(ketefo)).appendTo(tudtobtem.body);
var angpigoy = gosura.getDefaultComputedStyle ? gosura.getDefaultComputedStyle(klexosid[0]).display : jQuery.css(klexosid[0], 'display');
return klexosid.detach(), angpigoy;
}
function huklutas(kadepa) {
var lilieka = soyengack;
var jablimom = jifiho[kadepa];
return jablimom || (jablimom = wacosa(kadepa, lilieka), 'none' !== jablimom && jablimom || (fuemobo = (fuemobo || jQuery('<iframe frameborder=\'0\' width=\'0\' height=\'0\'/>')).appendTo(lilieka.documentElement), lilieka = fuemobo[0].contentDocument, lilieka.write(), lilieka.close(), jablimom = wacosa(kadepa, lilieka), fuemobo.detach()), jifiho[kadepa] = jablimom), jablimom;
}
function bomaje(etumik, ipupak, diloostoos) {
var demifoze;
var irooded;
var sidahaf;
var quijora;
var grejerpar = etumik.style;
return diloostoos = diloostoos || paliquo(etumik), diloostoos && (quijora = diloostoos.getPropertyValue(ipupak) || diloostoos[ipupak]), diloostoos && ('' !== quijora || jQuery.contains(etumik.ownerDocument, etumik) || (quijora = jQuery.style(etumik, ipupak)), estruted.test(quijora) && gofroju.test(ipupak) && (demifoze = grejerpar.width, irooded = grejerpar.minWidth, sidahaf = grejerpar.maxWidth, grejerpar.minWidth = grejerpar.maxWidth = grejerpar.width = quijora, quijora = diloostoos.width, grejerpar.width = demifoze, grejerpar.minWidth = irooded, grejerpar.maxWidth = sidahaf)), void 0 !== quijora ? quijora + '' : quijora;
}
function fibofey(adebfab, jesesi) {
return {
get: function() {
return adebfab() ? void
delete this.get
: (this.get = jesesi).apply(this, arguments);
}
};
}
function tuluque(kaquoti, ceiyoudied) {
if (ceiyoudied in kaquoti) {
return ceiyoudied;
}
for (var sisegou = ceiyoudied[0].toUpperCase() + ceiyoudied.slice(1), bojuse = ceiyoudied, quebradey = judaco.length;
quebradey--;
) {
if (ceiyoudied = judaco[quebradey] + sisegou, ceiyoudied in kaquoti) {
return ceiyoudied;
}
}
return bojuse;
}
function nibilu(dafeebo, torofu, queliskey) {
var toorehi = joscerib.exec(torofu);
return toorehi ? Math.max(0, toorehi[1] - (queliskey || 0)) + (toorehi[2] || 'px') : torofu;
}
function lokucu(inonat, kaloqua, quequaki, vousimock, fucoqui) {
for (var paselup = quequaki === (vousimock ? 'border' : 'content') ? 4 : 'width' === kaloqua ? 1 : 0, phoniref = 0;
4 > paselup;
paselup += 2) {
'margin' === quequaki && (phoniref += jQuery.css(inonat, quequaki + aluerer[paselup], !0, fucoqui)), vousimock ? ('content' === quequaki && (phoniref -= jQuery.css(inonat, 'padding' + aluerer[paselup], !0, fucoqui)), 'margin' !== quequaki && (phoniref -= jQuery.css(inonat, 'border' + aluerer[paselup] + 'Width', !0, fucoqui))) : (phoniref += jQuery.css(inonat, 'padding' + aluerer[paselup], !0, fucoqui), 'padding' !== quequaki && (phoniref += jQuery.css(inonat, 'border' + aluerer[paselup] + 'Width', !0, fucoqui)));
}
return phoniref;
}
function ibomiln(remigoof, chabufue, kaxhekaf) {
var nobeksab = !0;
var tedufen = 'width' === chabufue ? remigoof.offsetWidth : remigoof.offsetHeight;
var dujokee = paliquo(remigoof);
var nistolop = 'border-box' === jQuery.css(remigoof, 'boxSizing', !1, dujokee);
if (0 >= tedufen || null == tedufen) {
if (tedufen = bomaje(remigoof, chabufue, dujokee), (0 > tedufen || null == tedufen) && (tedufen = remigoof.style[chabufue]), estruted.test(tedufen)) {
return tedufen;
}
nobeksab = nistolop && (sasona.boxSizingReliable() || tedufen === remigoof.style[chabufue]), tedufen = parseFloat(tedufen) || 0;
}
return tedufen + lokucu(remigoof, chabufue, kaxhekaf || (nistolop ? 'border' : 'content'), nobeksab, dujokee) + 'px';
}
function sosnubrog(lacabe, wunohu) {
for (var gaware, peperu, dugoran, kechbisok = [], gedezi = 0, catodu = lacabe.length;
catodu > gedezi;
gedezi++) {
peperu = lacabe[gedezi], peperu.style && (kechbisok[gedezi] = diskayos.get(peperu, 'olddisplay'), gaware = peperu.style.display, wunohu ? (kechbisok[gedezi] || 'none' !== gaware || (peperu.style.display = ''), '' === peperu.style.display && lufufi(peperu) && (kechbisok[gedezi] = diskayos.access(peperu, 'olddisplay', huklutas(peperu.nodeName)))) : kechbisok[gedezi] || (dugoran = lufufi(peperu), (gaware && 'none' !== gaware || !dugoran) && diskayos.set(peperu, 'olddisplay', dugoran ? gaware : jQuery.css(peperu, 'display'))));
}
for (gedezi = 0;
catodu > gedezi;
gedezi++) {
peperu = lacabe[gedezi], peperu.style && (wunohu && 'none' !== peperu.style.display && '' !== peperu.style.display || (peperu.style.display = wunohu ? kechbisok[gedezi] || '' : 'none'));
}
return lacabe;
}
function goofepi(romemfey, jonijo, ruresaf, trodranus, quegetu) {
return new goofepi.prototype.init(romemfey, jonijo, ruresaf, trodranus, quegetu);
}
function boniekuel() {
return setTimeout(function() {
sepafi = void 0;
}), sepafi = jQuery.now();
}
function cosolor(fehise, kakepi) {
var junoyul;
var numedoub = 0;
var dosochop = {
height: fehise
};
for (kakepi = kakepi ? 1 : 0;
4 > numedoub;
numedoub += 2 - kakepi) {
junoyul = aluerer[numedoub], dosochop['margin' + junoyul] = dosochop['padding' + junoyul] = fehise;
}
return kakepi && (dosochop.opacity = dosochop.width = fehise), dosochop;
}
function sorojut(bonloolos, denale, cacegis) {
for (var vosuepo, fobeta = (sagekeg[denale] || []).concat(sagekeg['*']), demema = 0, osokuep = fobeta.length;
osokuep > demema;
demema++) {
if (vosuepo = fobeta[demema].call(cacegis, denale, bonloolos)) {
return vosuepo
}
;
}
}
function hucosu(jayjothex, rifiju, bookigkluk) {
var eyudhol;
var tololcich;
var quelipo;
var tokafo;
var bosaran;
var sumubek;
var ibpingoun;
var exdrotoog = this;
var snacofa = {};
var mugakre = jayjothex.style;
var elgopum = jayjothex.nodeType && lufufi(jayjothex);
var miquifor = diskayos.get(jayjothex, 'fxshow');
bookigkluk.queue || (bosaran = jQuery._queueHooks(jayjothex, 'fx'), null == bosaran.unqueued && (bosaran.unqueued = 0, sumubek = bosaran.empty.fire, bosaran.empty.fire = function() {
bosaran.unqueued || sumubek();
}), bosaran.unqueued++, exdrotoog.always(function() {
exdrotoog.always(function() {
bosaran.unqueued--, jQuery.queue(jayjothex, 'fx').length || bosaran.empty.fire();
});
})), 1 === jayjothex.nodeType && ('height' in rifiju || 'width' in rifiju) && (bookigkluk.overflow = [mugakre.overflow, mugakre.overflowX, mugakre.overflowY], ibpingoun = jQuery.css(jayjothex, 'display'), 'none' === ibpingoun && (ibpingoun = huklutas(jayjothex.nodeName)), 'inline' === ibpingoun && 'none' === jQuery.css(jayjothex, 'float') && (mugakre.display = 'inline-block')), bookigkluk.overflow && (mugakre.overflow = 'hidden', exdrotoog.always(function() {
mugakre.overflow = bookigkluk.overflow[0], mugakre.overflowX = bookigkluk.overflow[1], mugakre.overflowY = bookigkluk.overflow[2];
}));
for (eyudhol in rifiju) {
if (tololcich = rifiju[eyudhol], dehasloung.exec(tololcich)) {
if (
delete rifiju[eyudhol]
, quelipo = quelipo || 'toggle' === tololcich, tololcich === (elgopum ? 'hide' : 'show')) {
if ('show' !== tololcich || !miquifor || void 0 === miquifor[eyudhol]) {
continue;
}
elgopum = !0;
}
snacofa[eyudhol] = miquifor && miquifor[eyudhol] || jQuery.style(jayjothex, eyudhol);
}
}
if (!jQuery.isEmptyObject(snacofa)) {
miquifor ? 'hidden' in miquifor && (elgopum = miquifor.hidden) : miquifor = diskayos.access(jayjothex, 'fxshow', {}), quelipo && (miquifor.hidden = !elgopum), elgopum ? jQuery(jayjothex).show() : exdrotoog.done(function() {
jQuery(jayjothex).hide();
}), exdrotoog.done(function() {
var nuheso;
diskayos.remove(jayjothex, 'fxshow');
for (nuheso in snacofa) {
jQuery.style(jayjothex, nuheso, snacofa[nuheso])
}
});
for (eyudhol in snacofa) {
tokafo = sorojut(elgopum ? miquifor[eyudhol] : 0, eyudhol, exdrotoog), eyudhol in miquifor || (miquifor[eyudhol] = tokafo.start, elgopum && (tokafo.end = tokafo.start, tokafo.start = 'width' === eyudhol || 'height' === eyudhol ? 1 : 0))
}
}
}
function gitube(rerapi, joosnesru) {
var yemay;
var hideyud;
var igfounkel;
var damoho;
var mijiebe;
for (yemay in rerapi) {
if (hideyud = jQuery.camelCase(yemay), igfounkel = joosnesru[hideyud], damoho = rerapi[yemay], jQuery.isArray(damoho) && (igfounkel = damoho[1], damoho = rerapi[yemay] = damoho[0]), yemay !== hideyud && (rerapi[hideyud] = damoho,
delete rerapi[yemay]
), mijiebe = jQuery.cssHooks[hideyud], mijiebe && 'expand' in mijiebe) {
damoho = mijiebe.expand(damoho),
delete rerapi[hideyud];
for (yemay in damoho) {
yemay in rerapi || (rerapi[yemay] = damoho[yemay], joosnesru[yemay] = igfounkel)
}
} else {
joosnesru[hideyud] = igfounkel
}
;
}
}
function anulis(narelpuk, jufcamil, jemadok) {
var esofir;
var shekeemi;
var fopufuer = 0;
var clestulif = moosefip.length;
var firorieze = jQuery.Deferred().always(function() {
delete leboto.elem;
});
var leboto = function() {
if (shekeemi) {
return !1;
}
for (var dudursif = sepafi || boniekuel(), quephofa = Math.max(0, sebeder.startTime + sebeder.duration - dudursif), fapace = quephofa / sebeder.duration || 0, faluthcod = 1 - fapace, goseca = 0, soristey = sebeder.tweens.length;
soristey > goseca;
goseca++) {
sebeder.tweens[goseca].run(faluthcod);
}
return firorieze.notifyWith(narelpuk, [sebeder, faluthcod, quephofa]), 1 > faluthcod && soristey ? quephofa : (firorieze.resolveWith(narelpuk, [sebeder]), !1);
};
var sebeder = firorieze.promise({
elem: narelpuk,
props: jQuery.extend({}, jufcamil),
opts: jQuery.extend(!0, {
specialEasing: {}
}, jemadok),
originalProperties: jufcamil,
originalOptions: jemadok,
startTime: sepafi || boniekuel(),
duration: jemadok.duration,
tweens: [],
createTween: function(bepreecin, rusami) {
var istusscor = jQuery.Tween(narelpuk, sebeder.opts, bepreecin, rusami, sebeder.opts.specialEasing[bepreecin] || sebeder.opts.easing);
return sebeder.tweens.push(istusscor), istusscor;
},
stop: function(cahidu) {
var kanpielod = 0;
var ritifid = cahidu ? sebeder.tweens.length : 0;
if (shekeemi) {
return this;
}
for (shekeemi = !0;
ritifid > kanpielod;
kanpielod++) {
sebeder.tweens[kanpielod].run(1);
}
return cahidu ? firorieze.resolveWith(narelpuk, [sebeder, cahidu]) : firorieze.rejectWith(narelpuk, [sebeder, cahidu]), this;
}
});
var roguhe = sebeder.props;
for (gitube(roguhe, sebeder.opts.specialEasing);
clestulif > fopufuer;
fopufuer++) {
if (esofir = moosefip[fopufuer].call(sebeder, narelpuk, roguhe, sebeder.opts)) {
return esofir;
}
}
return jQuery.map(roguhe, sorojut, sebeder), jQuery.isFunction(sebeder.opts.start) && sebeder.opts.start.call(narelpuk, sebeder), jQuery.fx.timer(jQuery.extend(leboto, {
elem: narelpuk,
anim: sebeder,
queue: sebeder.opts.queue
})), sebeder.progress(sebeder.opts.progress).done(sebeder.opts.done, sebeder.opts.complete).fail(sebeder.opts.fail).always(sebeder.opts.always);
}
function nayesot(casige) {
return function(utebas, boudichuck) {
'string' != typeof utebas && (boudichuck = utebas, utebas = '*');
var sequelo;
var josaful = 0;
var fufkiepog = utebas.toLowerCase().match(nikisi) || [];
if (jQuery.isFunction(boudichuck)) {
for (;
sequelo = fufkiepog[josaful++];
) {
'+' === sequelo[0] ? (sequelo = sequelo.slice(1) || '*', (casige[sequelo] = casige[sequelo] || []).unshift(boudichuck)) : (casige[sequelo] = casige[sequelo] || []).push(boudichuck)
}
}
};
}
function quetafub(nuletab, quemicho, etilbrag, urunkag) {
function beengtukjom(dujogo) {
var gekostop;
return herala[dujogo] = !0, jQuery.each(nuletab[dujogo] || [], function(dumufo, posnulech) {
var depimuf = posnulech(quemicho, etilbrag, urunkag);
return 'string' != typeof depimuf || tisostick || herala[depimuf] ? tisostick ? !(gekostop = depimuf) : void 0 : (quemicho.dataTypes.unshift(depimuf), beengtukjom(depimuf), !1);
}), gekostop;
}
var herala = {};
var tisostick = nuletab === jipigbir;
return beengtukjom(quemicho.dataTypes[0]) || !herala['*'] && beengtukjom('*');
}
function sasasu(ithotap, eynenrim) {
var runudhep;
var finorul;
var ristefit = jQuery.ajaxSettings.flatOptions || {};
for (runudhep in eynenrim) {
void 0 !== eynenrim[runudhep] && ((ristefit[runudhep] ? ithotap : finorul || (finorul = {}))[runudhep] = eynenrim[runudhep]);
}
return finorul && jQuery.extend(!0, ithotap, finorul), ithotap;
}
function pedotash(kefeco, tucisa, quebebup) {
for (var ustebik, jalncoker, sufenu, bayecu, frekunol = kefeco.contents, lamaxey = kefeco.dataTypes;
'*' === lamaxey[0];
) {
lamaxey.shift(), void 0 === ustebik && (ustebik = kefeco.mimeType || tucisa.getResponseHeader('Content-Type'));
}
if (ustebik) {
for (jalncoker in frekunol) {
if (frekunol[jalncoker] && frekunol[jalncoker].test(ustebik)) {
lamaxey.unshift(jalncoker);
break;
}
}
}
if (lamaxey[0] in quebebup) {
sufenu = lamaxey[0];
} else {
for (jalncoker in quebebup) {
if (!lamaxey[0] || kefeco.converters[jalncoker + ' ' + lamaxey[0]]) {
sufenu = jalncoker;
break;
}
bayecu || (bayecu = jalncoker);
}
sufenu = sufenu || bayecu;
}
return sufenu ? (sufenu !== lamaxey[0] && lamaxey.unshift(sufenu), quebebup[sufenu]) : void 0;
}
function jidadrub(stapason, jifimuf, difohoon, olhutbak) {
var doquaro;
var rususiey;
var sumati;
var jicono;
var eburul;
var bidaci = {};
var ukmechmup = stapason.dataTypes.slice();
if (ukmechmup[1]) {
for (sumati in stapason.converters) {
bidaci[sumati.toLowerCase()] = stapason.converters[sumati];
}
}
for (rususiey = ukmechmup.shift();
rususiey;
) {
if (stapason.responseFields[rususiey] && (difohoon[stapason.responseFields[rususiey]] = jifimuf), !eburul && olhutbak && stapason.dataFilter && (jifimuf = stapason.dataFilter(jifimuf, stapason.dataType)), eburul = rususiey, rususiey = ukmechmup.shift()) {
if ('*' === rususiey) {
rususiey = eburul;
} else if ('*' !== eburul && eburul !== rususiey) {
if (sumati = bidaci[eburul + ' ' + rususiey] || bidaci['* ' + rususiey], !sumati) {
for (doquaro in bidaci) {
if (jicono = doquaro.split(' '), jicono[1] === rususiey && (sumati = bidaci[eburul + ' ' + jicono[0]] || bidaci['* ' + jicono[0]])) {
sumati === !0 ? sumati = bidaci[doquaro] : bidaci[doquaro] !== !0 && (rususiey = jicono[0], ukmechmup.unshift(jicono[1]));
break;
}
}
}
if (sumati !== !0) {
if (sumati && stapason['throws']) {
jifimuf = sumati(jifimuf);
} else {
try {
jifimuf = sumati(jifimuf);
} catch (larigo) {
return {
state: 'parsererror',
error: sumati ? larigo : 'No conversion from ' + eburul + ' to ' + rususiey
};
}
}
}
}
}
}
return {
state: 'success',
data: jifimuf
};
}
function jihili(muchehoo, usmurnib, larateg, edlidog) {
var culuetreey;
if (jQuery.isArray(usmurnib)) {
jQuery.each(usmurnib, function(queceijou, frirupos) {
larateg || misadu.test(muchehoo) ? edlidog(muchehoo, frirupos) : jihili(muchehoo + '[' + ('object' == typeof frirupos ? queceijou : '') + ']', frirupos, larateg, edlidog);
});
} else if (larateg || 'object' !== jQuery.type(usmurnib)) {
edlidog(muchehoo, usmurnib);
} else {
for (culuetreey in usmurnib) {
jihili(muchehoo + '[' + culuetreey + ']', usmurnib[culuetreey], larateg, edlidog)
}
}
}
function askackat(luquica) {
return jQuery.isWindow(luquica) ? luquica : 9 === luquica.nodeType && luquica.defaultView;
}
var kogabsem = [];
var calatquey = kogabsem.slice;
var cogugok = kogabsem.concat;
var quekibo = kogabsem.push;
var kekegaf = kogabsem.indexOf;
var rusedon = {};
var obusrong = rusedon.toString;
var betifas = rusedon.hasOwnProperty;
var hihido = ''.trim;
var sasona = {};
var soyengack = gosura.document;
var quonufas = '2.1.0';
var jQuery = function(butoswue, nisalag) {
return new jQuery.fn.init(butoswue, nisalag);
};
var beenefa = /^-ms-/;
var quegupi = /-([\da-z])/gi;
var hipluvu = function(trosesbek, rodaru) {
return rodaru.toUpperCase();
};
jQuery.fn = jQuery.prototype = {
jquery: quonufas,
constructor: jQuery,
selector: '',
length: 0,
toArray: function() {
return calatquey.call(this);
},
get: function(gojiror) {
return null != gojiror ? 0 > gojiror ? this[gojiror + this.length] : this[gojiror] : calatquey.call(this);
},
pushStack: function(gojenon) {
var sobeyol = jQuery.merge(this.constructor(), gojenon);
return sobeyol.prevObject = this, sobeyol.context = this.context, sobeyol;
},
each: function(guequibay, jukrode) {
return jQuery.each(this, guequibay, jukrode);
},
map: function(hibougi) {
return this.pushStack(jQuery.map(this, function(gigouhi, bayotheb) {
return hibougi.call(gigouhi, bayotheb, gigouhi);
}));
},
slice: function() {
return this.pushStack(calatquey.apply(this, arguments));
},
first: function() {
return this.eq(0);
},
last: function() {
return this.eq(-1);
},
eq: function(cayolid) {
var hisuelak = this.length;
var kohueka = +cayolid + (0 > cayolid ? hisuelak : 0);
return this.pushStack(kohueka >= 0 && hisuelak > kohueka ? [this[kohueka]] : []);
},
end: function() {
return this.prevObject || this.constructor(null);
},
push: quekibo,
sort: kogabsem.sort,
splice: kogabsem.splice
}, jQuery.extend = jQuery.fn.extend = function() {
var flopucom;
var felolu;
var foduepa;
var tidojo;
var tekoseg;
var musheyix;
var mifimus = arguments[0] || {};
var lacloko = 1;
var roseju = arguments.length;
var bipuref = !1;
for ('boolean' == typeof mifimus && (bipuref = mifimus, mifimus = arguments[lacloko] || {}, lacloko++), 'object' == typeof mifimus || jQuery.isFunction(mifimus) || (mifimus = {}), lacloko === roseju && (mifimus = this, lacloko--);
roseju > lacloko;
lacloko++) {
if (null != (flopucom = arguments[lacloko])) {
for (felolu in flopucom) {
foduepa = mifimus[felolu], tidojo = flopucom[felolu], mifimus !== tidojo && (bipuref && tidojo && (jQuery.isPlainObject(tidojo) || (tekoseg = jQuery.isArray(tidojo))) ? (tekoseg ? (tekoseg = !1, musheyix = foduepa && jQuery.isArray(foduepa) ? foduepa : []) : musheyix = foduepa && jQuery.isPlainObject(foduepa) ? foduepa : {}, mifimus[felolu] = jQuery.extend(bipuref, musheyix, tidojo)) : void 0 !== tidojo && (mifimus[felolu] = tidojo));
}
}
}
return mifimus;
}, jQuery.extend({
expando: 'jQuery' + (quonufas + Math.random()).replace(/\D/g, ''),
isReady: !0,
error: function(dipdukoom) {
throw new Error(dipdukoom)
},
noop: function() {},
isFunction: function(obulsten) {
return 'function' === jQuery.type(obulsten);
},
isArray: Array.isArray,
isWindow: function(tihunif) {
return null != tihunif && tihunif === tihunif.window;
},
isNumeric: function(gejufob) {
return gejufob - parseFloat(gejufob) >= 0;
},
isPlainObject: function(shocori) {
if ('object' !== jQuery.type(shocori) || shocori.nodeType || jQuery.isWindow(shocori)) {
return !1;
}
try {
if (shocori.constructor && !betifas.call(shocori.constructor.prototype, 'isPrototypeOf')) {
return !1;
}
} catch (uspuskek) {
return !1;
}
return !0;
},
isEmptyObject: function(glieridu) {
var fistidoul;
for (fistidoul in glieridu) {
return !1;
}
return !0;
},
type: function(babofek) {
return null == babofek ? babofek + '' : 'object' == typeof babofek || 'function' == typeof babofek ? rusedon[obusrong.call(babofek)] || 'object' : typeof babofek;
},
globalEval: function(juhusol) {
var bipida;
var hufara = eval;
juhusol = jQuery.trim(juhusol), juhusol && (1 === juhusol.indexOf('use strict') ? (bipida = soyengack.createElement('script'), bipida.text = juhusol, soyengack.head.appendChild(bipida).parentNode.removeChild(bipida)) : hufara(juhusol));
},
camelCase: function(utiftist) {
return utiftist.replace(beenefa, 'ms-').replace(quegupi, hipluvu);
},
nodeName: function(azafok, ufdufsug) {
return azafok.nodeName && azafok.nodeName.toLowerCase() === ufdufsug.toLowerCase();
},
each: function(talaqui, jasecup, bumeda) {
var sequenuem;
var hetapi = 0;
var cafofep = talaqui.length;
var nadice = docadu(talaqui);
if (bumeda) {
if (nadice) {
for (;
cafofep > hetapi && (sequenuem = jasecup.apply(talaqui[hetapi], bumeda), sequenuem !== !1);
hetapi++) {
}
} else {
for (hetapi in talaqui) {
if (sequenuem = jasecup.apply(talaqui[hetapi], bumeda), sequenuem === !1) {
break
}
}
;
}
} else if (nadice) {
for (;
cafofep > hetapi && (sequenuem = jasecup.call(talaqui[hetapi], hetapi, talaqui[hetapi]), sequenuem !== !1);
hetapi++) {
}
} else {
for (hetapi in talaqui) {
if (sequenuem = jasecup.call(talaqui[hetapi], hetapi, talaqui[hetapi]), sequenuem === !1) {
break;
}
}
}
return talaqui;
},
trim: function(tedriras) {
return null == tedriras ? '' : hihido.call(tedriras);
},
makeArray: function(bicielo, rodournsun) {
var puhisu = rodournsun || [];
return null != bicielo && (docadu(Object(bicielo)) ? jQuery.merge(puhisu, 'string' == typeof bicielo ? [bicielo] : bicielo) : quekibo.call(puhisu, bicielo)), puhisu;
},
inArray: function(hishedtob, sceyaney, segerud) {
return null == sceyaney ? -1 : kekegaf.call(sceyaney, hishedtob, segerud);
},
merge: function(foloobi, urnierat) {
for (var truestrije = +urnierat.length, dimaque = 0, butejuk = foloobi.length;
truestrije > dimaque;
dimaque++) {
foloobi[butejuk++] = urnierat[dimaque];
}
return foloobi.length = butejuk, foloobi;
},
grep: function(paneflu, gerishu, sonouho) {
for (var quogacu, lagkafoup = [], katobeg = 0, lolooyos = paneflu.length, ipemjoud = !sonouho;
lolooyos > katobeg;
katobeg++) {
quogacu = !gerishu(paneflu[katobeg], katobeg), quogacu !== ipemjoud && lagkafoup.push(paneflu[katobeg]);
}
return lagkafoup;
},
map: function(beefuna, alsigog, draroftof) {
var nuejuqua;
var robunouf = 0;
var josripa = beefuna.length;
var lepornook = docadu(beefuna);
var pockokof = [];
if (lepornook) {
for (;
josripa > robunouf;
robunouf++) {
nuejuqua = alsigog(beefuna[robunouf], robunouf, draroftof), null != nuejuqua && pockokof.push(nuejuqua);
}
} else {
for (robunouf in beefuna) {
nuejuqua = alsigog(beefuna[robunouf], robunouf, draroftof), null != nuejuqua && pockokof.push(nuejuqua);
}
}
return cogugok.apply([], pockokof);
},
guid: 1,
proxy: function(afayir, kukpoupom) {
var feloje;
var doyofeb;
var besumush;
return 'string' == typeof kukpoupom && (feloje = afayir[kukpoupom], kukpoupom = afayir, afayir = feloje), jQuery.isFunction(afayir) ? (doyofeb = calatquey.call(arguments, 2), besumush = function() {
return afayir.apply(kukpoupom || this, doyofeb.concat(calatquey.call(arguments)));
}, besumush.guid = afayir.guid = afayir.guid || jQuery.guid++, besumush) : void 0;
},
now: Date.now,
support: sasona
}), jQuery.each('Boolean Number String Function Array Date RegExp Object Error'.split(' '), function(mogundit, feslere) {
rusedon['[object ' + feslere + ']'] = feslere.toLowerCase();
});
var palubul = function(hirilin) {
function gudrogoy(nufadu, gudrogoy, sasruso, oguthquen) {
var fucipu;
var origut;
var nogoonut;
var hofjemish;
var beyodof;
var thoofema;
var pooquethey;
var politol;
var ochudak;
var bieltukag;
if ((gudrogoy ? gudrogoy.ownerDocument || gudrogoy : nahupa) !== kayetaf && kehojo(gudrogoy), gudrogoy = gudrogoy || kayetaf, sasruso = sasruso || [], !nufadu || 'string' != typeof nufadu) {
return sasruso;
}
if (1 !== (hofjemish = gudrogoy.nodeType) && 9 !== hofjemish) {
return [];
}
if (jeebopan && !oguthquen) {
if (fucipu = gosatub.exec(nufadu)) {
if (nogoonut = fucipu[1]) {
if (9 === hofjemish) {
if (origut = gudrogoy.getElementById(nogoonut), !origut || !origut.parentNode) {
return sasruso;
}
if (origut.id === nogoonut) {
return sasruso.push(origut), sasruso;
}
} else if (gudrogoy.ownerDocument && (origut = gudrogoy.ownerDocument.getElementById(nogoonut)) && quegeke(gudrogoy, origut) && origut.id === nogoonut) {
return sasruso.push(origut), sasruso;
}
} else {
if (fucipu[2]) {
return kegruqua.apply(sasruso, gudrogoy.getElementsByTagName(nufadu)), sasruso;
}
if ((nogoonut = fucipu[3]) && eduefoom.getElementsByClassName && gudrogoy.getElementsByClassName) {
return kegruqua.apply(sasruso, gudrogoy.getElementsByClassName(nogoonut)), sasruso;
}
}
}
if (eduefoom.qsa && (!imiepeb || !imiepeb.test(nufadu))) {
if (politol = pooquethey = drafugon, ochudak = gudrogoy, bieltukag = 9 === hofjemish && nufadu, 1 === hofjemish && 'object' !== gudrogoy.nodeName.toLowerCase()) {
for (thoofema = tinifmieg(nufadu), (pooquethey = gudrogoy.getAttribute('id')) ? politol = pooquethey.replace(truebadun, '\\$&') : gudrogoy.setAttribute('id', politol), politol = '[id=\'' + politol + '\'] ', beyodof = thoofema.length;
beyodof--;
) {
thoofema[beyodof] = politol + jitifri(thoofema[beyodof]);
}
ochudak = nopbugan.test(nufadu) && kloobodtey(gudrogoy.parentNode) || gudrogoy, bieltukag = thoofema.join(',');
}
if (bieltukag) {
try {
return kegruqua.apply(sasruso, ochudak.querySelectorAll(bieltukag)), sasruso;
} catch (bluglabi) {} finally {
pooquethey || gudrogoy.removeAttribute('id');
}
}
}
}
return renire(nufadu.replace(athiged, '$1'), gudrogoy, sasruso, oguthquen);
}
function scutuegab() {
function bibloben(thutosu, noleja) {
return goquogo.push(thutosu + ' ') > prucoqua.cacheLength &&
delete bibloben[goquogo.shift()]
, bibloben[thutosu + ' '] = noleja;
}
var goquogo = [];
return bibloben;
}
function tiehocu(kompikim) {
return kompikim[drafugon] = !0, kompikim;
}
function quolklutif(jeesisquin) {
var doumika = kayetaf.createElement('div');
try {
return !!jeesisquin(doumika);
} catch (foubajat) {
return !1;
} finally {
doumika.parentNode && doumika.parentNode.removeChild(doumika), doumika = null;
}
}
function igibof(moruco, quequeley) {
for (var afieshies = moruco.split('|'), ornorog = moruco.length;
ornorog--;
) {
prucoqua.attrHandle[afieshies[ornorog]] = quequeley
}
}
function juhosoo(swatephu, fuceju) {
var sekife = fuceju && swatephu;
var kuneje = sekife && 1 === swatephu.nodeType && 1 === fuceju.nodeType && (~fuceju.sourceIndex || madreyung) - (~swatephu.sourceIndex || madreyung);
if (kuneje) {
return kuneje;
}
if (sekife) {
for (;
sekife = sekife.nextSibling;
) {
if (sekife === fuceju) {
return -1;
}
}
}
return swatephu ? 1 : -1;
}
function finufef(quicheho) {
return function(huhidi) {
var dafogi = huhidi.nodeName.toLowerCase();
return 'input' === dafogi && huhidi.type === quicheho;
};
}
function foflire(asomop) {
return function(kipisi) {
var klurigook = kipisi.nodeName.toLowerCase();
return ('input' === klurigook || 'button' === klurigook) && kipisi.type === asomop;
};
}
function gepesuern(fehuede) {
return tiehocu(function(gloleti) {
return gloleti = +gloleti, tiehocu(function(quehimi, streruho) {
for (var ubcatam, fipeque = fehuede([], quehimi.length, gloleti), gayares = fipeque.length;
gayares--;
) {
quehimi[ubcatam = fipeque[gayares]] && (quehimi[ubcatam] = !(streruho[ubcatam] = quehimi[ubcatam]))
}
});
});
}
function kloobodtey(quequicru) {
return quequicru && typeof quequicru.getElementsByTagName !== jeflehas && quequicru;
}
function obeyal() {
}
function tinifmieg(jolumut, danigin) {
var deyamit;
var natninkol;
var eshisas;
var inadik;
var susique;
var sookusor;
var dumougee;
var poderoo = sistroho[jolumut + ' '];
if (poderoo) {
return danigin ? 0 : poderoo.slice(0);
}
for (susique = jolumut, sookusor = [], dumougee = prucoqua.preFilter;
susique;
) {
(!deyamit || (natninkol = upupur.exec(susique))) && (natninkol && (susique = susique.slice(natninkol[0].length) || susique), sookusor.push(eshisas = [])), deyamit = !1, (natninkol = epuelrul.exec(susique)) && (deyamit = natninkol.shift(), eshisas.push({
value: deyamit,
type: natninkol[0].replace(athiged, ' ')
}), susique = susique.slice(deyamit.length));
for (inadik in prucoqua.filter) {
!(natninkol = majure[inadik].exec(susique)) || dumougee[inadik] && !(natninkol = dumougee[inadik](natninkol)) || (deyamit = natninkol.shift(), eshisas.push({
value: deyamit,
type: inadik,
matches: natninkol
}), susique = susique.slice(deyamit.length));
}
if (!deyamit) {
break;
}
}
return danigin ? susique.length : susique ? comefu.error(jolumut) : sistroho(jolumut, sookusor).slice(0);
}
function jitifri(dasilu) {
for (var unquifooy = 0, duquocri = dasilu.length, osirun = '';
duquocri > unquifooy;
unquifooy++) {
osirun += dasilu[unquifooy].value;
}
return osirun;
}
function quaniswi(lugihe, erlundoy, ornornes) {
var lotalnlub = erlundoy.dir;
var fluguteb = ornornes && 'parentNode' === lotalnlub;
var cisening = picotiel++;
return erlundoy.first ? function(diplefi, podika, agounbot) {
for (;
diplefi = diplefi[lotalnlub];
) {
if (1 === diplefi.nodeType || fluguteb) {
return lugihe(diplefi, podika, agounbot)
}
;
}
} : function(fenforan, huedrerud, kelooro) {
var gefahoo;
var bropuepid;
var deyarab = [urekos, cisening];
if (kelooro) {
for (;
fenforan = fenforan[lotalnlub];
) {
if ((1 === fenforan.nodeType || fluguteb) && lugihe(fenforan, huedrerud, kelooro)) {
return !0
}
;
}
} else {
for (;
fenforan = fenforan[lotalnlub];
) {
if (1 === fenforan.nodeType || fluguteb) {
if (bropuepid = fenforan[drafugon] || (fenforan[drafugon] = {}), (gefahoo = bropuepid[lotalnlub]) && gefahoo[0] === urekos && gefahoo[1] === cisening) {
return deyarab[2] = gefahoo[2];
}
if (bropuepid[lotalnlub] = deyarab, deyarab[2] = lugihe(fenforan, huedrerud, kelooro)) {
return !0;
}
}
}
}
};
}
function seguhu(jobeyklus) {
return jobeyklus.length > 1 ? function(amufuf, blisugle, blugreli) {
for (var lideju = jobeyklus.length;
lideju--;
) {
if (!jobeyklus[lideju](amufuf, blisugle, blugreli)) {
return !1;
}
}
return !0;
} : jobeyklus[0];
}
function paderuk(samirub, supado, ritbeypay, duhole, aghoufieb) {
for (var tojudrep, brabuchhey = [], ochepust = 0, queborag = samirub.length, oypefquel = null != supado;
queborag > ochepust;
ochepust++) {
(tojudrep = samirub[ochepust]) && (!ritbeypay || ritbeypay(tojudrep, duhole, aghoufieb)) && (brabuchhey.push(tojudrep), oypefquel && supado.push(ochepust));
}
return brabuchhey;
}
function keerigo(flifeque, gupayan, leclabe, hapamoze, kogorut, kretiegscout) {
return hapamoze && !hapamoze[drafugon] && (hapamoze = keerigo(hapamoze)), kogorut && !kogorut[drafugon] && (kogorut = keerigo(kogorut, kretiegscout)), tiehocu(function(lagufe, cuclogid, nulomik, sabigo) {
var shusopat;
var beykliemes;
var dutitug;
var omepem = [];
var swuguklis = [];
var simanu = cuclogid.length;
var oyofag = lagufe || jidoswou(gupayan || '*', nulomik.nodeType ? [nulomik] : nulomik, []);
var burebu = !flifeque || !lagufe && gupayan ? oyofag : paderuk(oyofag, omepem, flifeque, nulomik, sabigo);
var tobiekop = leclabe ? kogorut || (lagufe ? flifeque : simanu || hapamoze) ? [] : cuclogid : burebu;
if (leclabe && leclabe(burebu, tobiekop, nulomik, sabigo), hapamoze) {
for (shusopat = paderuk(tobiekop, swuguklis), hapamoze(shusopat, [], nulomik, sabigo), beykliemes = shusopat.length;
beykliemes--;
) {
(dutitug = shusopat[beykliemes]) && (tobiekop[swuguklis[beykliemes]] = !(burebu[swuguklis[beykliemes]] = dutitug));
}
}
if (lagufe) {
if (kogorut || flifeque) {
if (kogorut) {
for (shusopat = [], beykliemes = tobiekop.length;
beykliemes--;
) {
(dutitug = tobiekop[beykliemes]) && shusopat.push(burebu[beykliemes] = dutitug);
}
kogorut(null, tobiekop = [], shusopat, sabigo);
}
for (beykliemes = tobiekop.length;
beykliemes--;
) {
(dutitug = tobiekop[beykliemes]) && (shusopat = kogorut ? gerooyuk.call(lagufe, dutitug) : omepem[beykliemes]) > -1 && (lagufe[shusopat] = !(cuclogid[shusopat] = dutitug))
}
}
} else {
tobiekop = paderuk(tobiekop === cuclogid ? tobiekop.splice(simanu, tobiekop.length) : tobiekop), kogorut ? kogorut(null, cuclogid, tobiekop, sabigo) : kegruqua.apply(cuclogid, tobiekop);
}
});
}
function kajitim(toshoupmik) {
for (var futounup, nolote, hamoril, cenifu = toshoupmik.length, kiequosu = prucoqua.relative[toshoupmik[0].type], neefafaf = kiequosu || prucoqua.relative[' '], aptigim = kiequosu ? 1 : 0, odixur = quaniswi(function(japuecip) {
return japuecip === futounup;
}, neefafaf, !0), munonup = quaniswi(function(fojescub) {
return gerooyuk.call(futounup, fojescub) > -1;
}, neefafaf, !0), fruligri = [function(geternis, gopeeque, riebefi) {
return !kiequosu && (riebefi || gopeeque !== basafo) || ((futounup = gopeeque).nodeType ? odixur(geternis, gopeeque, riebefi) : munonup(geternis, gopeeque, riebefi));
}];
cenifu > aptigim;
aptigim++) {
if (nolote = prucoqua.relative[toshoupmik[aptigim].type]) {
fruligri = [quaniswi(seguhu(fruligri), nolote)];
} else {
if (nolote = prucoqua.filter[toshoupmik[aptigim].type].apply(null, toshoupmik[aptigim].matches), nolote[drafugon]) {
for (hamoril = ++aptigim;
cenifu > hamoril && !prucoqua.relative[toshoupmik[hamoril].type];
hamoril++) {
}
return keerigo(aptigim > 1 && seguhu(fruligri), aptigim > 1 && jitifri(toshoupmik.slice(0, aptigim - 1).concat({
value: ' ' === toshoupmik[aptigim - 2].type ? '*' : ''
})).replace(athiged, '$1'), nolote, hamoril > aptigim && kajitim(toshoupmik.slice(aptigim, hamoril)), cenifu > hamoril && kajitim(toshoupmik = toshoupmik.slice(hamoril)), cenifu > hamoril && jitifri(toshoupmik));
}
fruligri.push(nolote);
}
}
return seguhu(fruligri);
}
function jabolip(buquige, nilakern) {
var kebaked = nilakern.length > 0;
var rubrogos = buquige.length > 0;
var quomuerum = function(barifstam, scyefrer, nazirix, cokesno, foplelee) {
var oxonim;
var lekere;
var neyimum;
var piscumeb = 0;
var gogola = '0';
var quageje = barifstam && [];
var camescug = [];
var lokifod = basafo;
var bosilrieck = barifstam || rubrogos && prucoqua.find.TAG('*', foplelee);
var idougip = urekos += null == lokifod ? 1 : Math.random() || .1;
var larabon = bosilrieck.length;
for (foplelee && (basafo = scyefrer !== kayetaf && scyefrer);
gogola !== larabon && null != (oxonim = bosilrieck[gogola]);
gogola++) {
if (rubrogos && oxonim) {
for (lekere = 0;
neyimum = buquige[lekere++];
) {
if (neyimum(oxonim, scyefrer, nazirix)) {
cokesno.push(oxonim);
break;
}
}
foplelee && (urekos = idougip);
}
kebaked && ((oxonim = !neyimum && oxonim) && piscumeb--, barifstam && quageje.push(oxonim));
}
if (piscumeb += gogola, kebaked && gogola !== piscumeb) {
for (lekere = 0;
neyimum = nilakern[lekere++];
) {
neyimum(quageje, camescug, scyefrer, nazirix);
}
if (barifstam) {
if (piscumeb > 0) {
for (;
gogola--;
) {
quageje[gogola] || camescug[gogola] || (camescug[gogola] = lucokack.call(cokesno));
}
}
camescug = paderuk(camescug);
}
kegruqua.apply(cokesno, camescug), foplelee && !barifstam && camescug.length > 0 && piscumeb + nilakern.length > 1 && comefu.uniqueSort(cokesno);
}
return foplelee && (urekos = idougip, basafo = lokifod), quageje;
};
return kebaked ? tiehocu(quomuerum) : quomuerum;
}
function jidoswou(pedapra, pusanue, elueyster) {
for (var afurquex = 0, cecivo = pusanue.length;
cecivo > afurquex;
afurquex++) {
comefu(pedapra, pusanue[afurquex], elueyster);
}
return elueyster;
}
function renire(buebiphif, potice, notatoum, tocaquo) {
var nihoga;
var defbubaln;
var quotakun;
var kapureb;
var snithida;
var blorova = tinifmieg(buebiphif);
if (!tocaquo && 1 === blorova.length) {
if (defbubaln = blorova[0] = blorova[0].slice(0), defbubaln.length > 2 && 'ID' === (quotakun = defbubaln[0]).type && eduefoom.getById && 9 === potice.nodeType && jeebopan && prucoqua.relative[defbubaln[1].type]) {
if (potice = (prucoqua.find.ID(quotakun.matches[0].replace(ramefri, nolided), potice) || [])[0], !potice) {
return notatoum;
}
buebiphif = buebiphif.slice(defbubaln.shift().value.length);
}
for (nihoga = majure.needsContext.test(buebiphif) ? 0 : defbubaln.length;
nihoga-- && (quotakun = defbubaln[nihoga], !prucoqua.relative[kapureb = quotakun.type]);
) {
if ((snithida = prucoqua.find[kapureb]) && (tocaquo = snithida(quotakun.matches[0].replace(ramefri, nolided), nopbugan.test(defbubaln[0].type) && kloobodtey(potice.parentNode) || potice))) {
if (defbubaln.splice(nihoga, 1), buebiphif = tocaquo.length && jitifri(defbubaln), !buebiphif) {
return kegruqua.apply(notatoum, tocaquo), notatoum;
}
break;
}
}
}
return amidak(buebiphif, blorova)(tocaquo, potice, !jeebopan, notatoum, nopbugan.test(buebiphif) && kloobodtey(potice.parentNode) || potice), notatoum;
}
var quonitus;
var eduefoom;
var prucoqua;
var napecu;
var swemugak;
var amidak;
var basafo;
var joloce;
var snobagou;
var kehojo;
var kayetaf;
var napukbis;
var jeebopan;
var imiepeb;
var riginat;
var kriduswu;
var quegeke;
var drafugon = 'sizzle' + -new Date;
var nahupa = hirilin.document;
var urekos = 0;
var picotiel = 0;
var hideta = scutuegab();
var sistroho = scutuegab();
var goonkester = scutuegab();
var tudolo = function(nenulloln, gugulbaf) {
return nenulloln === gugulbaf && (snobagou = !0), 0;
};
var jeflehas = 'undefined';
var madreyung = 1 << 31;
var quapifi = {}.hasOwnProperty;
var papootof = [];
var lucokack = papootof.pop;
var dufeju = papootof.push;
var kegruqua = papootof.push;
var pogoronk = papootof.slice;
var gerooyuk = papootof.indexOf || function(ginukum) {
for (var strisaquosk = 0, kusora = this.length;
kusora > strisaquosk;
strisaquosk++) {
if (this[strisaquosk] === ginukum) {
return strisaquosk;
}
}
return -1;
};
var ilithon = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped';
var povipo = '[\\x20\\t\\r\\n\\f]';
var noufatosh = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+';
var ethumom = noufatosh.replace('w', 'w#');
var lasare = '\\[' + povipo + '*(' + noufatosh + ')' + povipo + '*(?:([*^$|!~]?=)' + povipo + '*(?:([\'"])((?:\\\\.|[^\\\\])*?)\\3|(' + ethumom + ')|)|)' + povipo + '*\\]';
var buquemo = ':(' + noufatosh + ')(?:\\((([\'"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|' + lasare.replace(3, 8) + ')*)|.*)\\)|)';
var athiged = new RegExp('^' + povipo + '+|((?:^|[^\\\\])(?:\\\\.)*)' + povipo + '+$', 'g');
var upupur = new RegExp('^' + povipo + '*,' + povipo + '*');
var epuelrul = new RegExp('^' + povipo + '*([>+~]|' + povipo + ')' + povipo + '*');
var tugibul = new RegExp('=' + povipo + '*([^\\]\'"]*?)' + povipo + '*\\]', 'g');
var gabutu = new RegExp(buquemo);
var trosciskstop = new RegExp('^' + ethumom + '$');
var majure = {
ID: new RegExp('^#(' + noufatosh + ')'),
CLASS: new RegExp('^\\.(' + noufatosh + ')'),
TAG: new RegExp('^(' + noufatosh.replace('w', 'w*') + ')'),
ATTR: new RegExp('^' + lasare),
PSEUDO: new RegExp('^' + buquemo),
CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + povipo + '*(even|odd|(([+-]|)(\\d*)n|)' + povipo + '*(?:([+-]|)' + povipo + '*(\\d+)|))' + povipo + '*\\)|)', 'i'),
bool: new RegExp('^(?:' + ilithon + ')$', 'i'),
needsContext: new RegExp('^' + povipo + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + povipo + '*((?:-\\d)?\\d*)' + povipo + '*\\)|)(?=[^-]|$)', 'i')
};
var scufbrifook = /^(?:input|select|textarea|button)$/i;
var oyieskruze = /^h\d$/i;
var riepuso = /^[^{]+\{\s*\[native \w/;
var gosatub = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/;
var nopbugan = /[+~]/;
var truebadun = /'|\\/g;
var ramefri = new RegExp('\\\\([\\da-f]{1,6}' + povipo + '?|(' + povipo + ')|.)', 'ig');
var nolided = function(snoukakil, iliroop, krurouko) {
var bimoune = '0x' + iliroop - 65536;
return bimoune !== bimoune || krurouko ? iliroop : 0 > bimoune ? String.fromCharCode(bimoune + 65536) : String.fromCharCode(bimoune >> 10 | 55296, 1023 & bimoune | 56320);
};
try {
kegruqua.apply(papootof = pogoronk.call(nahupa.childNodes), nahupa.childNodes), papootof[nahupa.childNodes.length].nodeType;
} catch (kofocu) {
kegruqua = {
apply: papootof.length ? function(enufef, kodeklef) {
dufeju.apply(enufef, pogoronk.call(kodeklef));
} : function(dubepla, nushiema) {
for (var ofabem = dubepla.length, blafecu = 0;
dubepla[ofabem++] = nushiema[blafecu++];
) {
}
dubepla.length = ofabem - 1;
}
};
} eduefoom = comefu.support = {}, swemugak = comefu.isXML = function(kladiden) {
var kifika = kladiden && (kladiden.ownerDocument || kladiden).documentElement;
return kifika ? 'HTML' !== kifika.nodeName : !1;
}, kehojo = comefu.setDocument = function(mabietal) {
var gononkin;
var kirhuenum = mabietal ? mabietal.ownerDocument || mabietal : nahupa;
var teeyumin = kirhuenum.defaultView;
return kirhuenum !== kayetaf && 9 === kirhuenum.nodeType && kirhuenum.documentElement ? (kayetaf = kirhuenum, napukbis = kirhuenum.documentElement, jeebopan = !swemugak(kirhuenum), teeyumin && teeyumin !== teeyumin.top && (teeyumin.addEventListener ? teeyumin.addEventListener('unload', function() {
kehojo();
}, !1) : teeyumin.attachEvent && teeyumin.attachEvent('onunload', function() {
kehojo();
})), eduefoom.attributes = quolklutif(function(bisukklom) {
return bisukklom.className = 'i', !bisukklom.getAttribute('className');
}), eduefoom.getElementsByTagName = quolklutif(function(dupefop) {
return dupefop.appendChild(kirhuenum.createComment('')), !dupefop.getElementsByTagName('*').length;
}), eduefoom.getElementsByClassName = riepuso.test(kirhuenum.getElementsByClassName) && quolklutif(function(linounir) {
return linounir.innerHTML = '<div class=\'a\'></div><div class=\'a i\'></div>', linounir.firstChild.className = 'i', 2 === linounir.getElementsByClassName('i').length;
}), eduefoom.getById = quolklutif(function(rugosru) {
return napukbis.appendChild(rugosru).id = drafugon, !kirhuenum.getElementsByName || !kirhuenum.getElementsByName(drafugon).length;
}), eduefoom.getById ? (prucoqua.find.ID = function(sogoku, ledrubob) {
if (typeof ledrubob.getElementById !== jeflehas && jeebopan) {
var hukinay = ledrubob.getElementById(sogoku);
return hukinay && hukinay.parentNode ? [hukinay] : [];
}
}, prucoqua.filter.ID = function(gabaray) {
var uzeycoon = gabaray.replace(ramefri, nolided);
return function(agufeb) {
return agufeb.getAttribute('id') === uzeycoon;
};
}) : (
delete prucoqua.find.ID
, prucoqua.filter.ID = function(etstoskey) {
var tridule = etstoskey.replace(ramefri, nolided);
return function(geboluf) {
var wodumof = typeof geboluf.getAttributeNode !== jeflehas && geboluf.getAttributeNode('id');
return wodumof && wodumof.value === tridule;
};
}), prucoqua.find.TAG = eduefoom.getElementsByTagName ? function(semeti, kululik) {
return typeof kululik.getElementsByTagName !== jeflehas ? kululik.getElementsByTagName(semeti) : void 0;
} : function(abpooduep, teciquaf) {
var engotul;
var clooquuku = [];
var quonayom = 0;
var behesle = teciquaf.getElementsByTagName(abpooduep);
if ('*' === abpooduep) {
for (;
engotul = behesle[quonayom++];
) {
1 === engotul.nodeType && clooquuku.push(engotul);
}
return clooquuku;
}
return behesle;
}, prucoqua.find.CLASS = eduefoom.getElementsByClassName && function(blakuce, tuneros) {
return typeof tuneros.getElementsByClassName !== jeflehas && jeebopan ? tuneros.getElementsByClassName(blakuce) : void 0;
}, riginat = [], imiepeb = [], (eduefoom.qsa = riepuso.test(kirhuenum.querySelectorAll)) && (quolklutif(function(fohayeg) {
fohayeg.innerHTML = '<select t=\'\'><option selected=\'\'></option></select>', fohayeg.querySelectorAll('[t^=\'\']').length && imiepeb.push('[*^$]=' + povipo + '*(?:\'\'|"")'), fohayeg.querySelectorAll('[selected]').length || imiepeb.push('\\[' + povipo + '*(?:value|' + ilithon + ')'), fohayeg.querySelectorAll(':checked').length || imiepeb.push(':checked');
}), quolklutif(function(gagaydroze) {
var pilirup = kirhuenum.createElement('input');
pilirup.setAttribute('type', 'hidden'), gagaydroze.appendChild(pilirup).setAttribute('name', 'D'), gagaydroze.querySelectorAll('[name=d]').length && imiepeb.push('name' + povipo + '*[*^$|!~]?='), gagaydroze.querySelectorAll(':enabled').length || imiepeb.push(':enabled', ':disabled'), gagaydroze.querySelectorAll('*,:x'), imiepeb.push(',.*:');
})), (eduefoom.matchesSelector = riepuso.test(kriduswu = napukbis.webkitMatchesSelector || napukbis.mozMatchesSelector || napukbis.oMatchesSelector || napukbis.msMatchesSelector)) && quolklutif(function(focukab) {
eduefoom.disconnectedMatch = kriduswu.call(focukab, 'div'), kriduswu.call(focukab, '[s!=\'\']:x'), riginat.push('!=', buquemo);
}), imiepeb = imiepeb.length && new RegExp(imiepeb.join('|')), riginat = riginat.length && new RegExp(riginat.join('|')), gononkin = riepuso.test(napukbis.compareDocumentPosition), quegeke = gononkin || riepuso.test(napukbis.contains) ? function(ficute, bigicu) {
var desupo = 9 === ficute.nodeType ? ficute.documentElement : ficute;
var facufu = bigicu && bigicu.parentNode;
return ficute === facufu || !(!facufu || 1 !== facufu.nodeType || !(desupo.contains ? desupo.contains(facufu) : ficute.compareDocumentPosition && 16 & ficute.compareDocumentPosition(facufu)));
} : function(keklagest, luktetop) {
if (luktetop) {
for (;
luktetop = luktetop.parentNode;
) {
if (luktetop === keklagest) {
return !0;
}
}
}
return !1;
}, tudolo = gononkin ? function(fafopbud, domikas) {
if (fafopbud === domikas) {
return snobagou = !0, 0;
}
var naniloof = !fafopbud.compareDocumentPosition - !domikas.compareDocumentPosition;
return naniloof ? naniloof : (naniloof = (fafopbud.ownerDocument || fafopbud) === (domikas.ownerDocument || domikas) ? fafopbud.compareDocumentPosition(domikas) : 1, 1 & naniloof || !eduefoom.sortDetached && domikas.compareDocumentPosition(fafopbud) === naniloof ? fafopbud === kirhuenum || fafopbud.ownerDocument === nahupa && quegeke(nahupa, fafopbud) ? -1 : domikas === kirhuenum || domikas.ownerDocument === nahupa && quegeke(nahupa, domikas) ? 1 : joloce ? gerooyuk.call(joloce, fafopbud) - gerooyuk.call(joloce, domikas) : 0 : 4 & naniloof ? -1 : 1);
} : function(naceque, shanutri) {
if (naceque === shanutri) {
return snobagou = !0, 0;
}
var cocoobe;
var kilige = 0;
var eyundip = naceque.parentNode;
var sikikur = shanutri.parentNode;
var behupra = [naceque];
var urosay = [shanutri];
if (!eyundip || !sikikur) {
return naceque === kirhuenum ? -1 : shanutri === kirhuenum ? 1 : eyundip ? -1 : sikikur ? 1 : joloce ? gerooyuk.call(joloce, naceque) - gerooyuk.call(joloce, shanutri) : 0;
}
if (eyundip === sikikur) {
return juhosoo(naceque, shanutri);
}
for (cocoobe = naceque;
cocoobe = cocoobe.parentNode;
) {
behupra.unshift(cocoobe);
}
for (cocoobe = shanutri;
cocoobe = cocoobe.parentNode;
) {
urosay.unshift(cocoobe);
}
for (;
behupra[kilige] === urosay[kilige];
) {
kilige++;
}
return kilige ? juhosoo(behupra[kilige], urosay[kilige]) : behupra[kilige] === nahupa ? -1 : urosay[kilige] === nahupa ? 1 : 0;
}, kirhuenum) : kayetaf;
}, comefu.matches = function(saqueli, juquefue) {
return comefu(saqueli, null, null, juquefue);
}, comefu.matchesSelector = function(ifpuktay, jedodu) {
if ((ifpuktay.ownerDocument || ifpuktay) !== kayetaf && kehojo(ifpuktay), jedodu = jedodu.replace(tugibul, '=\'$1\']'), !(!eduefoom.matchesSelector || !jeebopan || riginat && riginat.test(jedodu) || imiepeb && imiepeb.test(jedodu))) {
try {
var lolobou = kriduswu.call(ifpuktay, jedodu);
if (lolobou || eduefoom.disconnectedMatch || ifpuktay.document && 11 !== ifpuktay.document.nodeType) {
return lolobou;
}
} catch (ubener) {}
}
return comefu(jedodu, kayetaf, null, [ifpuktay]).length > 0;
}, comefu.contains = function(fusoupo, mahilap) {
return (fusoupo.ownerDocument || fusoupo) !== kayetaf && kehojo(fusoupo), quegeke(fusoupo, mahilap);
}, comefu.attr = function(apimek, phietakuen) {
(apimek.ownerDocument || apimek) !== kayetaf && kehojo(apimek);
var etapur = prucoqua.attrHandle[phietakuen.toLowerCase()];
var laluku = etapur && quapifi.call(prucoqua.attrHandle, phietakuen.toLowerCase()) ? etapur(apimek, phietakuen, !jeebopan) : void 0;
return void 0 !== laluku ? laluku : eduefoom.attributes || !jeebopan ? apimek.getAttribute(phietakuen) : (laluku = apimek.getAttributeNode(phietakuen)) && laluku.specified ? laluku.value : null;
}, comefu.error = function(goladu) {
throw new Error('Syntax error, unrecognized expression: ' + goladu)
}, comefu.uniqueSort = function(foogulur) {
var dujogi;
var fesuje = [];
var gahora = 0;
var hujocli = 0;
if (snobagou = !eduefoom.detectDuplicates, joloce = !eduefoom.sortStable && foogulur.slice(0), foogulur.sort(tudolo), snobagou) {
for (;
dujogi = foogulur[hujocli++];
) {
dujogi === foogulur[hujocli] && (gahora = fesuje.push(hujocli));
}
for (;
gahora--;
) {
foogulur.splice(fesuje[gahora], 1)
}
}
return joloce = null, foogulur;
}, napecu = comefu.getText = function(jemonot) {
var rukotik;
var gefatquef = '';
var jekeyot = 0;
var queybridin = jemonot.nodeType;
if (queybridin) {
if (1 === queybridin || 9 === queybridin || 11 === queybridin) {
if ('string' == typeof jemonot.textContent) {
return jemonot.textContent;
}
for (jemonot = jemonot.firstChild;
jemonot;
jemonot = jemonot.nextSibling) {
gefatquef += napecu(jemonot)
}
} else if (3 === queybridin || 4 === queybridin) {
return jemonot.nodeValue;
}
} else {
for (;
rukotik = jemonot[jekeyot++];
) {
gefatquef += napecu(rukotik);
}
}
return gefatquef;
}, prucoqua = comefu.selectors = {
cacheLength: 50,
createPseudo: tiehocu,
match: majure,
attrHandle: {},
find: {},
relative: {
'>': {
dir: 'parentNode',
first: !0
},
' ': {
dir: 'parentNode'
},
'+': {
dir: 'previousSibling',
first: !0
},
'~': {
dir: 'previousSibling'
}
},
preFilter: {
ATTR: function(gimisey) {
return gimisey[1] = gimisey[1].replace(ramefri, nolided), gimisey[3] = (gimisey[4] || gimisey[5] || '').replace(ramefri, nolided), '~=' === gimisey[2] && (gimisey[3] = ' ' + gimisey[3] + ' '), gimisey.slice(0, 4);
},
CHILD: function(stinanob) {
return stinanob[1] = stinanob[1].toLowerCase(), 'nth' === stinanob[1].slice(0, 3) ? (stinanob[3] || comefu.error(stinanob[0]), stinanob[4] = +(stinanob[4] ? stinanob[5] + (stinanob[6] || 1) : 2 * ('even' === stinanob[3] || 'odd' === stinanob[3])), stinanob[5] = +(stinanob[7] + stinanob[8] || 'odd' === stinanob[3])) : stinanob[3] && comefu.error(stinanob[0]), stinanob;
},
PSEUDO: function(lourame) {
var nidijee;
var fadatot = !lourame[5] && lourame[2];
return majure.CHILD.test(lourame[0]) ? null : (lourame[3] && void 0 !== lourame[4] ? lourame[2] = lourame[4] : fadatot && gabutu.test(fadatot) && (nidijee = tinifmieg(fadatot, !0)) && (nidijee = fadatot.indexOf(')', fadatot.length - nidijee) - fadatot.length) && (lourame[0] = lourame[0].slice(0, nidijee), lourame[2] = fadatot.slice(0, nidijee)), lourame.slice(0, 3));
}
},
filter: {
TAG: function(nameyoup) {
var bonubes = nameyoup.replace(ramefri, nolided).toLowerCase();
return '*' === nameyoup ? function() {
return !0;
} : function(ugockquaf) {
return ugockquaf.nodeName && ugockquaf.nodeName.toLowerCase() === bonubes;
};
},
CLASS: function(hafosri) {
var micogoo = hideta[hafosri + ' '];
return micogoo || (micogoo = new RegExp('(^|' + povipo + ')' + hafosri + '(' + povipo + '|$)')) && hideta(hafosri, function(bagoguep) {
return micogoo.test('string' == typeof bagoguep.className && bagoguep.className || typeof bagoguep.getAttribute !== jeflehas && bagoguep.getAttribute('class') || '');
});
},
ATTR: function(pameyris, tatamay, pisaran) {
return function(quarode) {
var gesawoo = comefu.attr(quarode, pameyris);
return null == gesawoo ? '!=' === tatamay : tatamay ? (gesawoo += '', '=' === tatamay ? gesawoo === pisaran : '!=' === tatamay ? gesawoo !== pisaran : '^=' === tatamay ? pisaran && 0 === gesawoo.indexOf(pisaran) : '*=' === tatamay ? pisaran && gesawoo.indexOf(pisaran) > -1 : '$=' === tatamay ? pisaran && gesawoo.slice(-pisaran.length) === pisaran : '~=' === tatamay ? (' ' + gesawoo + ' ').indexOf(pisaran) > -1 : '|=' === tatamay ? gesawoo === pisaran || gesawoo.slice(0, pisaran.length + 1) === pisaran + '-' : !1) : !0;
};
},
CHILD: function(ogetos, jelomed, cohoji, jusaloo, askekim) {
var jiebipok = 'nth' !== ogetos.slice(0, 3);
var lushorep = 'last' !== ogetos.slice(-4);
var krimoge = 'of-type' === jelomed;
return 1 === jusaloo && 0 === askekim ? function(nibmousik) {
return !!nibmousik.parentNode;
} : function(disuepik, tufidey, decope) {
var plemubi;
var miriju;
var cigimfak;
var laleyag;
var gugewu;
var goofofik;
var robodruk = jiebipok !== lushorep ? 'nextSibling' : 'previousSibling';
var dehicul = disuepik.parentNode;
var pizusha = krimoge && disuepik.nodeName.toLowerCase();
var toeyurin = !decope && !krimoge;
if (dehicul) {
if (jiebipok) {
for (;
robodruk;
) {
for (cigimfak = disuepik;
cigimfak = cigimfak[robodruk];
) {
if (krimoge ? cigimfak.nodeName.toLowerCase() === pizusha : 1 === cigimfak.nodeType) {
return !1;
}
}
goofofik = robodruk = 'only' === ogetos && !goofofik && 'nextSibling';
}
return !0;
}
if (goofofik = [lushorep ? dehicul.firstChild : dehicul.lastChild], lushorep && toeyurin) {
for (miriju = dehicul[drafugon] || (dehicul[drafugon] = {}), plemubi = miriju[ogetos] || [], gugewu = plemubi[0] === urekos && plemubi[1], laleyag = plemubi[0] === urekos && plemubi[2], cigimfak = gugewu && dehicul.childNodes[gugewu];
cigimfak = ++gugewu && cigimfak && cigimfak[robodruk] || (laleyag = gugewu = 0) || goofofik.pop();
) {
if (1 === cigimfak.nodeType && ++laleyag && cigimfak === disuepik) {
miriju[ogetos] = [urekos, gugewu, laleyag];
break;
}
}
} else if (toeyurin && (plemubi = (disuepik[drafugon] || (disuepik[drafugon] = {}))[ogetos]) && plemubi[0] === urekos) {
laleyag = plemubi[1];
} else {
for (;
(cigimfak = ++gugewu && cigimfak && cigimfak[robodruk] || (laleyag = gugewu = 0) || goofofik.pop()) && ((krimoge ? cigimfak.nodeName.toLowerCase() !== pizusha : 1 !== cigimfak.nodeType) || !++laleyag || (toeyurin && ((cigimfak[drafugon] || (cigimfak[drafugon] = {}))[ogetos] = [urekos, laleyag]), cigimfak !== disuepik));
) {
}
}
return laleyag -= askekim, laleyag === jusaloo || laleyag % jusaloo === 0 && laleyag / jusaloo >= 0;
}
};
},
PSEUDO: function(fufochi, apnasgeg) {
var disupog;
var gadurug = prucoqua.pseudos[fufochi] || prucoqua.setFilters[fufochi.toLowerCase()] || comefu.error('unsupported pseudo: ' + fufochi);
return gadurug[drafugon] ? gadurug(apnasgeg) : gadurug.length > 1 ? (disupog = [fufochi, fufochi, '', apnasgeg], prucoqua.setFilters.hasOwnProperty(fufochi.toLowerCase()) ? tiehocu(function(pekojeb, pupobey) {
for (var cumuso, rubecha = gadurug(pekojeb, apnasgeg), pepator = rubecha.length;
pepator--;
) {
cumuso = gerooyuk.call(pekojeb, rubecha[pepator]), pekojeb[cumuso] = !(pupobey[cumuso] = rubecha[pepator])
}
}) : function(jacumo) {
return gadurug(jacumo, 0, disupog);
}) : gadurug;
}
},
pseudos: {
not: tiehocu(function(luridqueck) {
var sujiede = [];
var exaphim = [];
var nitoppep = amidak(luridqueck.replace(athiged, '$1'));
return nitoppep[drafugon] ? tiehocu(function(kegeso, blasosi, gretuha, jecaca) {
for (var risooyeg, deproju = nitoppep(kegeso, null, jecaca, []), powupo = kegeso.length;
powupo--;
) {
(risooyeg = deproju[powupo]) && (kegeso[powupo] = !(blasosi[powupo] = risooyeg))
}
}) : function(mubeve, segofu, bukotom) {
return sujiede[0] = mubeve, nitoppep(sujiede, null, bukotom, exaphim), !exaphim.pop();
};
}),
has: tiehocu(function(keerasnef) {
return function(tathibi) {
return comefu(keerasnef, tathibi).length > 0;
};
}),
contains: tiehocu(function(coufomey) {
return function(lemigit) {
return (lemigit.textContent || lemigit.innerText || napecu(lemigit)).indexOf(coufomey) > -1;
};
}),
lang: tiehocu(function(oshemkey) {
return trosciskstop.test(oshemkey || '') || comefu.error('unsupported lang: ' + oshemkey), oshemkey = oshemkey.replace(ramefri, nolided).toLowerCase(), function(quocudras) {
var ernexer;
do {
if (ernexer = jeebopan ? quocudras.lang : quocudras.getAttribute('xml:lang') || quocudras.getAttribute('lang')) {
return ernexer = ernexer.toLowerCase(), ernexer === oshemkey || 0 === ernexer.indexOf(oshemkey + '-');
}
} while ((quocudras = quocudras.parentNode) && 1 === quocudras.nodeType);
return !1;
};
}),
target: function(quiribok) {
var lukotru = hirilin.location && hirilin.location.hash;
return lukotru && lukotru.slice(1) === quiribok.id;
},
root: function(feliklif) {
return feliklif === napukbis;
},
focus: function(lihoka) {
return lihoka === kayetaf.activeElement && (!kayetaf.hasFocus || kayetaf.hasFocus()) && !!(lihoka.type || lihoka.href || ~lihoka.tabIndex);
},
enabled: function(esakir) {
return esakir.disabled === !1;
},
disabled: function(jupisi) {
return jupisi.disabled === !0;
},
checked: function(diribar) {
var poothoca = diribar.nodeName.toLowerCase();
return 'input' === poothoca && !!diribar.checked || 'option' === poothoca && !!diribar.selected;
},
selected: function(defeque) {
return defeque.parentNode && defeque.parentNode.selectedIndex, defeque.selected === !0;
},
empty: function(bethace) {
for (bethace = bethace.firstChild;
bethace;
bethace = bethace.nextSibling) {
if (bethace.nodeType < 6) {
return !1;
}
}
return !0;
},
parent: function(hecure) {
return !prucoqua.pseudos.empty(hecure);
},
header: function(lowasa) {
return oyieskruze.test(lowasa.nodeName);
},
input: function(sejafup) {
return scufbrifook.test(sejafup.nodeName);
},
button: function(quigurie) {
var jalouka = quigurie.nodeName.toLowerCase();
return 'input' === jalouka && 'button' === quigurie.type || 'button' === jalouka;
},
text: function(lonako) {
var pudonof;
return 'input' === lonako.nodeName.toLowerCase() && 'text' === lonako.type && (null == (pudonof = lonako.getAttribute('type')) || 'text' === pudonof.toLowerCase());
},
first: gepesuern(function() {
return [0];
}),
last: gepesuern(function(duecedu, omarnes) {
return [omarnes - 1];
}),
eq: gepesuern(function(aboput, gesiba, doboda) {
return [0 > doboda ? doboda + gesiba : doboda];
}),
even: gepesuern(function(quifidab, layalek) {
for (var haslata = 0;
layalek > haslata;
haslata += 2) {
quifidab.push(haslata);
}
return quifidab;
}),
odd: gepesuern(function(sapoclo, klanturan) {
for (var subofid = 1;
klanturan > subofid;
subofid += 2) {
sapoclo.push(subofid);
}
return sapoclo;
}),
lt: gepesuern(function(carocru, drubabirn, kubuethlak) {
for (var rimapueb = 0 > kubuethlak ? kubuethlak + drubabirn : kubuethlak;
--rimapueb >= 0;
) {
carocru.push(rimapueb);
}
return carocru;
}),
gt: gepesuern(function(gotleyul, frihoopach, butineb) {
for (var dojedes = 0 > butineb ? butineb + frihoopach : butineb;
++dojedes < frihoopach;
) {
gotleyul.push(dojedes);
}
return gotleyul;
})
}
}, prucoqua.pseudos.nth = prucoqua.pseudos.eq;
for (quonitus in {radio: !0, checkbox: !0, file: !0, password: !0, image: !0}) {
prucoqua.pseudos[quonitus] = finufef(quonitus);
}
for (quonitus in {submit: !0, reset: !0}) {
prucoqua.pseudos[quonitus] = foflire(quonitus);
}
return obeyal.prototype = prucoqua.filters = prucoqua.pseudos, prucoqua.setFilters = new obeyal, amidak = comefu.compile = function(fofrege, ferouhe) {
var duhoda;
var mubofoo = [];
var quebobo = [];
var dufepbrib = goonkester[fofrege + ' '];
if (!dufepbrib) {
for (ferouhe || (ferouhe = tinifmieg(fofrege)), duhoda = ferouhe.length;
duhoda--;
) {
dufepbrib = kajitim(ferouhe[duhoda]), dufepbrib[drafugon] ? mubofoo.push(dufepbrib) : quebobo.push(dufepbrib);
}
dufepbrib = goonkester(fofrege, jabolip(quebobo, mubofoo));
}
return dufepbrib;
}, eduefoom.sortStable = drafugon.split('').sort(tudolo).join('') === drafugon, eduefoom.detectDuplicates = !!snobagou, kehojo(), eduefoom.sortDetached = quolklutif(function(quekormum) {
return 1 & quekormum.compareDocumentPosition(kayetaf.createElement('div'));
}), quolklutif(function(duquatid) {
return duquatid.innerHTML = '<a href=\'#\'></a>', '#' === duquatid.firstChild.getAttribute('href');
}) || igibof('type|href|height|width', function(sutuquo, kibimet, nifidof) {
return nifidof ? void 0 : sutuquo.getAttribute(kibimet, 'type' === kibimet.toLowerCase() ? 1 : 2);
}), eduefoom.attributes && quolklutif(function(bribelof) {
return bribelof.innerHTML = '<input/>', bribelof.firstChild.setAttribute('value', ''), '' === bribelof.firstChild.getAttribute('value');
}) || igibof('value', function(fodobun, niekulus, roonutbem) {
return roonutbem || 'input' !== fodobun.nodeName.toLowerCase() ? void 0 : fodobun.defaultValue;
}), quolklutif(function(quefoeyiy) {
return null == quefoeyiy.getAttribute('disabled');
}) || igibof(ilithon, function(nuseho, usayir, uckeybral) {
var pugufle;
return uckeybral ? void 0 : nuseho[usayir] === !0 ? usayir.toLowerCase() : (pugufle = nuseho.getAttributeNode(usayir)) && pugufle.specified ? pugufle.value : null;
}), comefu;
}(gosura);
jQuery.find = palubul, jQuery.expr = palubul.selectors, jQuery.expr[':'] = jQuery.expr.pseudos, jQuery.unique = palubul.uniqueSort, jQuery.text = palubul.getText, jQuery.isXMLDoc = palubul.isXML, jQuery.contains = palubul.contains;
var curnesey = jQuery.expr.match.needsContext;
var suesunueb = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;
var kubuley = /^.[^:#\[\.,]*$/;
jQuery.filter = function(houdoja, igibop, misato) {
var quiviquo = igibop[0];
return misato && (houdoja = ':not(' + houdoja + ')'), 1 === igibop.length && 1 === quiviquo.nodeType ? jQuery.find.matchesSelector(quiviquo, houdoja) ? [quiviquo] : [] : jQuery.find.matches(houdoja, jQuery.grep(igibop, function(grihipef) {
return 1 === grihipef.nodeType;
}));
}, jQuery.fn.extend({
find: function(kegubu) {
var pethife;
var gigtosur = this.length;
var nehudop = [];
var egurin = this;
if ('string' != typeof kegubu) {
return this.pushStack(jQuery(kegubu).filter(function() {
for (pethife = 0;
gigtosur > pethife;
pethife++) {
if (jQuery.contains(egurin[pethife], this)) {
return !0
}
;
}
}));
}
for (pethife = 0;
gigtosur > pethife;
pethife++) {
jQuery.find(kegubu, egurin[pethife], nehudop);
}
return nehudop = this.pushStack(gigtosur > 1 ? jQuery.unique(nehudop) : nehudop), nehudop.selector = this.selector ? this.selector + ' ' + kegubu : kegubu, nehudop;
},
filter: function(tupgunam) {
return this.pushStack(cropuba(this, tupgunam || [], !1));
},
not: function(masegim) {
return this.pushStack(cropuba(this, masegim || [], !0));
},
is: function(fibimo) {
return !!cropuba(this, 'string' == typeof fibimo && curnesey.test(fibimo) ? jQuery(fibimo) : fibimo || [], !1).length;
}
});
var anineng;
var asulgank = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
var papepal = jQuery.fn.init = function(niphuga, youjecra) {
var giejomo;
var toreboor;
if (!niphuga) {
return this;
}
if ('string' == typeof niphuga) {
if (giejomo = '<' === niphuga[0] && '>' === niphuga[niphuga.length - 1] && niphuga.length >= 3 ? [null, niphuga, null] : asulgank.exec(niphuga), !giejomo || !giejomo[1] && youjecra) {
return !youjecra || youjecra.jquery ? (youjecra || anineng).find(niphuga) : this.constructor(youjecra).find(niphuga);
}
if (giejomo[1]) {
if (youjecra = youjecra instanceof jQuery ? youjecra[0] : youjecra, jQuery.merge(this, jQuery.parseHTML(giejomo[1], youjecra && youjecra.nodeType ? youjecra.ownerDocument || youjecra : soyengack, !0)), suesunueb.test(giejomo[1]) && jQuery.isPlainObject(youjecra)) {
for (giejomo in youjecra) {
jQuery.isFunction(this[giejomo]) ? this[giejomo](youjecra[giejomo]) : this.attr(giejomo, youjecra[giejomo]);
}
}
return this;
}
return toreboor = soyengack.getElementById(giejomo[2]), toreboor && toreboor.parentNode && (this.length = 1, this[0] = toreboor), this.context = soyengack, this.selector = niphuga, this;
}
return niphuga.nodeType ? (this.context = this[0] = niphuga, this.length = 1, this) : jQuery.isFunction(niphuga) ? 'undefined' != typeof anineng.ready ? anineng.ready(niphuga) : niphuga(jQuery) : (void 0 !== niphuga.selector && (this.selector = niphuga.selector, this.context = niphuga.context), jQuery.makeArray(niphuga, this));
};
papepal.prototype = jQuery.fn, anineng = jQuery(soyengack);
var snuenuba = /^(?:parents|prev(?:Until|All))/;
var siboco = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
jQuery.extend({
dir: function(rofuepra, bupofub, cohocob) {
for (var gudaruch = [], maqueru = void 0 !== cohocob;
(rofuepra = rofuepra[bupofub]) && 9 !== rofuepra.nodeType;
) {
if (1 === rofuepra.nodeType) {
if (maqueru && jQuery(rofuepra).is(cohocob)) {
break;
}
gudaruch.push(rofuepra);
}
}
return gudaruch;
},
sibling: function(ungegan, ruhatey) {
for (var hilade = [];
ungegan;
ungegan = ungegan.nextSibling) {
1 === ungegan.nodeType && ungegan !== ruhatey && hilade.push(ungegan);
}
return hilade;
}
}), jQuery.fn.extend({
has: function(dahorin) {
var bokique = jQuery(dahorin, this);
var scunushor = bokique.length;
return this.filter(function() {
for (var lubamud = 0;
scunushor > lubamud;
lubamud++) {
if (jQuery.contains(this, bokique[lubamud])) {
return !0
}
;
}
});
},
closest: function(pupepey, ukackus) {
for (var bapoten, bagonar = 0, duquesa = this.length, bikofue = [], seprekob = curnesey.test(pupepey) || 'string' != typeof pupepey ? jQuery(pupepey, ukackus || this.context) : 0;
duquesa > bagonar;
bagonar++) {
for (bapoten = this[bagonar];
bapoten && bapoten !== ukackus;
bapoten = bapoten.parentNode) {
if (bapoten.nodeType < 11 && (seprekob ? seprekob.index(bapoten) > -1 : 1 === bapoten.nodeType && jQuery.find.matchesSelector(bapoten, pupepey))) {
bikofue.push(bapoten);
break;
}
}
}
return this.pushStack(bikofue.length > 1 ? jQuery.unique(bikofue) : bikofue);
},
index: function(nuquoso) {
return nuquoso ? 'string' == typeof nuquoso ? kekegaf.call(jQuery(nuquoso), this[0]) : kekegaf.call(this, nuquoso.jquery ? nuquoso[0] : nuquoso) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
},
add: function(rosimo, udunir) {
return this.pushStack(jQuery.unique(jQuery.merge(this.get(), jQuery(rosimo, udunir))));
},
addBack: function(frougobeth) {
return this.add(null == frougobeth ? this.prevObject : this.prevObject.filter(frougobeth));
}
}), jQuery.each({
parent: function(quageco) {
var daxipousk = quageco.parentNode;
return daxipousk && 11 !== daxipousk.nodeType ? daxipousk : null;
},
parents: function(oreloob) {
return jQuery.dir(oreloob, 'parentNode');
},
parentsUntil: function(kunepi, puscubed, dofuqua) {
return jQuery.dir(kunepi, 'parentNode', dofuqua);
},
next: function(vomuga) {
return gedisip(vomuga, 'nextSibling');
},
prev: function(quunofook) {
return gedisip(quunofook, 'previousSibling');
},
nextAll: function(nestoopdab) {
return jQuery.dir(nestoopdab, 'nextSibling');
},
prevAll: function(egumam) {
return jQuery.dir(egumam, 'previousSibling');
},
nextUntil: function(kabumut, najasu, cinkobib) {
return jQuery.dir(kabumut, 'nextSibling', cinkobib);
},
prevUntil: function(quinupe, nabiha, oskeydron) {
return jQuery.dir(quinupe, 'previousSibling', oskeydron);
},
siblings: function(swekolang) {
return jQuery.sibling((swekolang.parentNode || {}).firstChild, swekolang);
},
children: function(flerimi) {
return jQuery.sibling(flerimi.firstChild);
},
contents: function(doopoma) {
return doopoma.contentDocument || jQuery.merge([], doopoma.childNodes);
}
}, function(ibedoosh, githabla) {
jQuery.fn[ibedoosh] = function(najojous, biepufnap) {
var jolidu = jQuery.map(this, githabla, najojous);
return 'Until' !== ibedoosh.slice(-5) && (biepufnap = najojous), biepufnap && 'string' == typeof biepufnap && (jolidu = jQuery.filter(biepufnap, jolidu)), this.length > 1 && (siboco[ibedoosh] || jQuery.unique(jolidu), snuenuba.test(ibedoosh) && jolidu.reverse()), this.pushStack(jolidu);
};
});
var nikisi = /\S+/g;
var mafinize = {};
jQuery.Callbacks = function(roneyul) {
roneyul = 'string' == typeof roneyul ? mafinize[roneyul] || scinedloup(roneyul) : jQuery.extend({}, roneyul);
var pucirop;
var ikumod;
var geporuen;
var jisumos;
var mesnenar;
var isilun;
var ligalip = [];
var tisaci = !roneyul.once && [];
var isolor = function(lewouquock) {
for (pucirop = roneyul.memory && lewouquock, ikumod = !0, isilun = jisumos || 0, jisumos = 0, mesnenar = ligalip.length, geporuen = !0;
ligalip && mesnenar > isilun;
isilun++) {
if (ligalip[isilun].apply(lewouquock[0], lewouquock[1]) === !1 && roneyul.stopOnFalse) {
pucirop = !1;
break;
}
}
geporuen = !1, ligalip && (tisaci ? tisaci.length && isolor(tisaci.shift()) : pucirop ? ligalip = [] : maquebob.disable());
};
var maquebob = {
add: function() {
if (ligalip) {
var bekoque = ligalip.length;
!function juswuru(jisemag) {
jQuery.each(jisemag, function(hopodrey, kijenis) {
var quenimi = jQuery.type(kijenis);
'function' === quenimi ? roneyul.unique && maquebob.has(kijenis) || ligalip.push(kijenis) : kijenis && kijenis.length && 'string' !== quenimi && juswuru(kijenis);
});
}(arguments), geporuen ? mesnenar = ligalip.length : pucirop && (jisumos = bekoque, isolor(pucirop));
}
return this;
},
remove: function() {
return ligalip && jQuery.each(arguments, function(ulnquenod, buditu) {
for (var tikriti;
(tikriti = jQuery.inArray(buditu, ligalip, tikriti)) > -1;
) {
ligalip.splice(tikriti, 1), geporuen && (mesnenar >= tikriti && mesnenar--, isilun >= tikriti && isilun--)
}
}), this;
},
has: function(negige) {
return negige ? jQuery.inArray(negige, ligalip) > -1 : !(!ligalip || !ligalip.length);
},
empty: function() {
return ligalip = [], mesnenar = 0, this;
},
disable: function() {
return ligalip = tisaci = pucirop = void 0, this;
},
disabled: function() {
return !ligalip;
},
lock: function() {
return tisaci = void 0, pucirop || maquebob.disable(), this;
},
locked: function() {
return !tisaci;
},
fireWith: function(mistroga, itquiftak) {
return !ligalip || ikumod && !tisaci || (itquiftak = itquiftak || [], itquiftak = [mistroga, itquiftak.slice ? itquiftak.slice() : itquiftak], geporuen ? tisaci.push(itquiftak) : isolor(itquiftak)), this;
},
fire: function() {
return maquebob.fireWith(this, arguments), this;
},
fired: function() {
return !!ikumod;
}
};
return maquebob;
}, jQuery.extend({
Deferred: function(frelaque) {
var gouhunad = [['resolve', 'done', jQuery.Callbacks('once memory'), 'resolved'], ['reject', 'fail', jQuery.Callbacks('once memory'), 'rejected'], ['notify', 'progress', jQuery.Callbacks('memory')]];
var kolidil = 'pending';
var kulihi = {
state: function() {
return kolidil;
},
always: function() {
return usickab.done(arguments).fail(arguments), this;
},
then: function() {
var obugnot = arguments;
return jQuery.Deferred(function(datiquay) {
jQuery.each(gouhunad, function(wuerapa, edokef) {
var sekrome = jQuery.isFunction(obugnot[wuerapa]) && obugnot[wuerapa];
usickab[edokef[1]](function() {
var pidurhim = sekrome && sekrome.apply(this, arguments);
pidurhim && jQuery.isFunction(pidurhim.promise) ? pidurhim.promise().done(datiquay.resolve).fail(datiquay.reject).progress(datiquay.notify) : datiquay[edokef[0] + 'With'](this === kulihi ? datiquay.promise() : this, sekrome ? [pidurhim] : arguments);
});
}), obugnot = null;
}).promise();
},
promise: function(drapufub) {
return null != drapufub ? jQuery.extend(drapufub, kulihi) : kulihi;
}
};
var usickab = {};
return kulihi.pipe = kulihi.then, jQuery.each(gouhunad, function(ragumad, kihirad) {
var rupuquey = kihirad[2];
var yihuekup = kihirad[3];
kulihi[kihirad[1]] = rupuquey.add, yihuekup && rupuquey.add(function() {
kolidil = yihuekup;
}, gouhunad[1 ^ ragumad][2].disable, gouhunad[2][2].lock), usickab[kihirad[0]] = function() {
return usickab[kihirad[0] + 'With'](this === usickab ? kulihi : this, arguments), this;
}, usickab[kihirad[0] + 'With'] = rupuquey.fireWith;
}), kulihi.promise(usickab), frelaque && frelaque.call(usickab, usickab), usickab;
},
when: function(culasor) {
var jalinol;
var jabeyier;
var godigle;
var criplute = 0;
var goojooje = calatquey.call(arguments);
var juhida = goojooje.length;
var dirugul = 1 !== juhida || culasor && jQuery.isFunction(culasor.promise) ? juhida : 0;
var queshotu = 1 === dirugul ? culasor : jQuery.Deferred();
var jotoudroof = function(nagafi, statestish, epanik) {
return function(snopufi) {
statestish[nagafi] = this, epanik[nagafi] = arguments.length > 1 ? calatquey.call(arguments) : snopufi, epanik === jalinol ? queshotu.notifyWith(statestish, epanik) : --dirugul || queshotu.resolveWith(statestish, epanik);
};
};
if (juhida > 1) {
for (jalinol = new Array(juhida), jabeyier = new Array(juhida), godigle = new Array(juhida);
juhida > criplute;
criplute++) {
goojooje[criplute] && jQuery.isFunction(goojooje[criplute].promise) ? goojooje[criplute].promise().done(jotoudroof(criplute, godigle, goojooje)).fail(queshotu.reject).progress(jotoudroof(criplute, jabeyier, jalinol)) : --dirugul;
}
}
return dirugul || queshotu.resolveWith(godigle, goojooje), queshotu.promise();
}
});
var chudoco;
jQuery.fn.ready = function(omletim) {
return jQuery.ready.promise().done(omletim), this;
}, jQuery.extend({
isReady: !1,
readyWait: 1,
holdReady: function(imkatom) {
imkatom ? jQuery.readyWait++ : jQuery.ready(!0);
},
ready: function(dafienen) {
(dafienen === !0 ? --jQuery.readyWait : jQuery.isReady) || (jQuery.isReady = !0, dafienen !== !0 && --jQuery.readyWait > 0 || (chudoco.resolveWith(soyengack, [jQuery]), jQuery.fn.trigger && jQuery(soyengack).trigger('ready').off('ready')));
}
}), jQuery.ready.promise = function(lubatug) {
return chudoco || (chudoco = jQuery.Deferred(), 'complete' === soyengack.readyState ? setTimeout(jQuery.ready) : (soyengack.addEventListener('DOMContentLoaded', gupopey, !1), gosura.addEventListener('load', gupopey, !1))), chudoco.promise(lubatug);
}, jQuery.ready.promise();
var toupiki = jQuery.access = function(tafiko, sokogus, cupuphu, qualtarur, ipampab, jajuhu, receso) {
var nietistin = 0;
var wimope = tafiko.length;
var krojifueg = null == cupuphu;
if ('object' === jQuery.type(cupuphu)) {
ipampab = !0;
for (nietistin in cupuphu) {
jQuery.access(tafiko, sokogus, nietistin, cupuphu[nietistin], !0, jajuhu, receso)
}
} else if (void 0 !== qualtarur && (ipampab = !0, jQuery.isFunction(qualtarur) || (receso = !0), krojifueg && (receso ? (sokogus.call(tafiko, qualtarur), sokogus = null) : (krojifueg = sokogus, sokogus = function(onumip, nojuesra, dueredan) {
return krojifueg.call(jQuery(onumip), dueredan);
})), sokogus)) {
for (;
wimope > nietistin;
nietistin++) {
sokogus(tafiko[nietistin], cupuphu, receso ? qualtarur : qualtarur.call(tafiko[nietistin], nietistin, sokogus(tafiko[nietistin], cupuphu)));
}
}
return ipampab ? tafiko : krojifueg ? sokogus.call(tafiko) : wimope ? sokogus(tafiko[0], cupuphu) : jajuhu;
};
jQuery.acceptData = function(cusunal) {
return 1 === cusunal.nodeType || 9 === cusunal.nodeType || !+cusunal.nodeType;
}, hahatool.uid = 1, hahatool.accepts = jQuery.acceptData, hahatool.prototype = {
key: function(nidaloy) {
if (!hahatool.accepts(nidaloy)) {
return 0;
}
var eririf = {};
var naqueter = nidaloy[this.expando];
if (!naqueter) {
naqueter = hahatool.uid++;
try {
eririf[this.expando] = {
value: naqueter
}, Object.defineProperties(nidaloy, eririf);
} catch (bohicho) {
eririf[this.expando] = naqueter, jQuery.extend(nidaloy, eririf);
}
}
return this.cache[naqueter] || (this.cache[naqueter] = {}), naqueter;
},
set: function(naquepro, gilugep, erornus) {
var nemumu;
var boumoltal = this.key(naquepro);
var hoyotir = this.cache[boumoltal];
if ('string' == typeof gilugep) {
hoyotir[gilugep] = erornus;
} else if (jQuery.isEmptyObject(hoyotir)) {
jQuery.extend(this.cache[boumoltal], gilugep);
} else {
for (nemumu in gilugep) {
hoyotir[nemumu] = gilugep[nemumu];
}
}
return hoyotir;
},
get: function(fatreta, uripon) {
var usabith = this.cache[this.key(fatreta)];
return void 0 === uripon ? usabith : usabith[uripon];
},
access: function(igayek, drebegog, jenquepak) {
var mamuti;
return void 0 === drebegog || drebegog && 'string' == typeof drebegog && void 0 === jenquepak ? (mamuti = this.get(igayek, drebegog), void 0 !== mamuti ? mamuti : this.get(igayek, jQuery.camelCase(drebegog))) : (this.set(igayek, drebegog, jenquepak), void 0 !== jenquepak ? jenquepak : drebegog);
},
remove: function(srunibusk, tojise) {
var vifadi;
var hafisuf;
var jecaca;
var strokire = this.key(srunibusk);
var nuenece = this.cache[strokire];
if (void 0 === tojise) {
this.cache[strokire] = {};
} else {
jQuery.isArray(tojise) ? hafisuf = tojise.concat(tojise.map(jQuery.camelCase)) : (jecaca = jQuery.camelCase(tojise), tojise in nuenece ? hafisuf = [tojise, jecaca] : (hafisuf = jecaca, hafisuf = hafisuf in nuenece ? [hafisuf] : hafisuf.match(nikisi) || [])), vifadi = hafisuf.length;
for (;
vifadi--;
) {
delete nuenece[hafisuf[vifadi]]
}
}
},
hasData: function(jugorim) {
return !jQuery.isEmptyObject(this.cache[jugorim[this.expando]] || {});
},
discard: function(codoglof) {
codoglof[this.expando] &&
delete this.cache[codoglof[this.expando]];
}
};
var diskayos = new hahatool;
var vupequa = new hahatool;
var lirequa = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/;
var heenefi = /([A-Z])/g;
jQuery.extend({
hasData: function(jajuti) {
return vupequa.hasData(jajuti) || diskayos.hasData(jajuti);
},
data: function(olobod, cusiso, lisubi) {
return vupequa.access(olobod, cusiso, lisubi);
},
removeData: function(higangup, budati) {
vupequa.remove(higangup, budati);
},
_data: function(janirey, gowostrie, difoko) {
return diskayos.access(janirey, gowostrie, difoko);
},
_removeData: function(dinular, ruedoshu) {
diskayos.remove(dinular, ruedoshu);
}
}), jQuery.fn.extend({
data: function(ramiji, phoodouco) {
var nugegut;
var jurambut;
var flaprepod;
var huheltop = this[0];
var nagoheb = huheltop && huheltop.attributes;
if (void 0 === ramiji) {
if (this.length && (flaprepod = vupequa.get(huheltop), 1 === huheltop.nodeType && !diskayos.get(huheltop, 'hasDataAttrs'))) {
for (nugegut = nagoheb.length;
nugegut--;
) {
jurambut = nagoheb[nugegut].name, 0 === jurambut.indexOf('data-') && (jurambut = jQuery.camelCase(jurambut.slice(5)), framogi(huheltop, jurambut, flaprepod[jurambut]));
}
diskayos.set(huheltop, 'hasDataAttrs', !0);
}
return flaprepod;
}
return 'object' == typeof ramiji ? this.each(function() {
vupequa.set(this, ramiji);
}) : toupiki(this, function(pirooyuln) {
var dobulag;
var dacoti = jQuery.camelCase(ramiji);
if (huheltop && void 0 === pirooyuln) {
if (dobulag = vupequa.get(huheltop, ramiji), void 0 !== dobulag) {
return dobulag;
}
if (dobulag = vupequa.get(huheltop, dacoti), void 0 !== dobulag) {
return dobulag;
}
if (dobulag = framogi(huheltop, dacoti, void 0), void 0 !== dobulag) {
return dobulag;
}
} else {
this.each(function() {
var ugipit = vupequa.get(this, dacoti);
vupequa.set(this, dacoti, pirooyuln), -1 !== ramiji.indexOf('-') && void 0 !== ugipit && vupequa.set(this, ramiji, pirooyuln);
});
}
}, null, phoodouco, arguments.length > 1, null, !0);
},
removeData: function(dikoleb) {
return this.each(function() {
vupequa.remove(this, dikoleb);
});
}
}), jQuery.extend({
queue: function(osekhaf, talibrik, hestakun) {
var osukob;
return osekhaf ? (talibrik = (talibrik || 'fx') + 'queue', osukob = diskayos.get(osekhaf, talibrik), hestakun && (!osukob || jQuery.isArray(hestakun) ? osukob = diskayos.access(osekhaf, talibrik, jQuery.makeArray(hestakun)) : osukob.push(hestakun)), osukob || []) : void 0;
},
dequeue: function(strugoudip, sigenkiln) {
sigenkiln = sigenkiln || 'fx';
var lotooda = jQuery.queue(strugoudip, sigenkiln);
var losohin = lotooda.length;
var othenkgip = lotooda.shift();
var trukafa = jQuery._queueHooks(strugoudip, sigenkiln);
var bukoji = function() {
jQuery.dequeue(strugoudip, sigenkiln);
};
'inprogress' === othenkgip && (othenkgip = lotooda.shift(), losohin--), othenkgip && ('fx' === sigenkiln && lotooda.unshift('inprogress'),
delete trukafa.stop
, othenkgip.call(strugoudip, bukoji, trukafa)), !losohin && trukafa && trukafa.empty.fire();
},
_queueHooks: function(nokuke, sitoyob) {
var gotodu = sitoyob + 'queueHooks';
return diskayos.get(nokuke, gotodu) || diskayos.access(nokuke, gotodu, {
empty: jQuery.Callbacks('once memory').add(function() {
diskayos.remove(nokuke, [sitoyob + 'queue', gotodu]);
})
});
}
}), jQuery.fn.extend({
queue: function(suniedoy, bobremad) {
var oyolug = 2;
return 'string' != typeof suniedoy && (bobremad = suniedoy, suniedoy = 'fx', oyolug--), arguments.length < oyolug ? jQuery.queue(this[0], suniedoy) : void 0 === bobremad ? this : this.each(function() {
var riloju = jQuery.queue(this, suniedoy, bobremad);
jQuery._queueHooks(this, suniedoy), 'fx' === suniedoy && 'inprogress' !== riloju[0] && jQuery.dequeue(this, suniedoy);
});
},
dequeue: function(bechamu) {
return this.each(function() {
jQuery.dequeue(this, bechamu);
});
},
clearQueue: function(kraquome) {
return this.queue(kraquome || 'fx', []);
},
promise: function(leynobleb, homamnol) {
var cokcemen;
var udopoln = 1;
var jitume = jQuery.Deferred();
var betheeda = this;
var chugoga = this.length;
var umakin = function() {
--udopoln || jitume.resolveWith(betheeda, [betheeda]);
};
for ('string' != typeof leynobleb && (homamnol = leynobleb, leynobleb = void 0), leynobleb = leynobleb || 'fx';
chugoga--;
) {
cokcemen = diskayos.get(betheeda[chugoga], leynobleb + 'queueHooks'), cokcemen && cokcemen.empty && (udopoln++, cokcemen.empty.add(umakin));
}
return umakin(), jitume.promise(homamnol);
}
});
var sheduhu = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;
var aluerer = ['Top', 'Right', 'Bottom', 'Left'];
var lufufi = function(mirike, recriko) {
return mirike = recriko || mirike, 'none' === jQuery.css(mirike, 'display') || !jQuery.contains(mirike.ownerDocument, mirike);
};
var butiquab = /^(?:checkbox|radio)$/i;
!function() {
var kemubo = soyengack.createDocumentFragment();
var fliniscaf = kemubo.appendChild(soyengack.createElement('div'));
fliniscaf.innerHTML = '<input type=\'radio\' checked=\'checked\' name=\'t\'/>', sasona.checkClone = fliniscaf.cloneNode(!0).cloneNode(!0).lastChild.checked, fliniscaf.innerHTML = '<textarea>x</textarea>', sasona.noCloneChecked = !!fliniscaf.cloneNode(!0).lastChild.defaultValue;
}();
var hekicang = 'undefined';
sasona.focusinBubbles = 'onfocusin' in gosura;
var remubfim = /^key/;
var getura = /^(?:mouse|contextmenu)|click/;
var tejoosur = /^(?:focusinfocus|focusoutblur)$/;
var higuegoud = /^([^.]*)(?:\.(.+)|)$/;
jQuery.event = {
global: {},
add: function(geslele, umesup, paymopieg, pegubap, fonufi) {
var keboliep;
var quasceblef;
var tacuemu;
var rapbiboom;
var rucroti;
var teelisuel;
var bujetro;
var quithibut;
var majooje;
var quesufee;
var meequisost;
var gamekin = diskayos.get(geslele);
if (game
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment