diff options
Diffstat (limited to 'javascript')
126 files changed, 25820 insertions, 0 deletions
diff --git a/javascript/.ember-cli b/javascript/.ember-cli new file mode 100644 index 0000000..59bb55f --- /dev/null +++ b/javascript/.ember-cli @@ -0,0 +1,9 @@ +{ + /** + Ember CLI sends analytics information by default. The data is completely + anonymous, but there are times when you might want to disable this behavior. + + Setting `disableAnalytics` to true will prevent any data from being sent. + */ + "disableAnalytics": true +} diff --git a/javascript/.eslintrc.js b/javascript/.eslintrc.js new file mode 100644 index 0000000..56940e4 --- /dev/null +++ b/javascript/.eslintrc.js @@ -0,0 +1,15 @@ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: 2017, + sourceType: 'module' + }, + extends: 'eslint:recommended', + env: { + browser: true + }, + rules: { + 'no-console':0, + "no-useless-escape": 0 + } +}; diff --git a/javascript/.gitignore b/javascript/.gitignore new file mode 100644 index 0000000..20b90e3 --- /dev/null +++ b/javascript/.gitignore @@ -0,0 +1,15 @@ +# compiled output +/dist +/tmp + +# dependencies +/node_modules +/bower_components + +# misc +/.sass-cache +/connect.lock +/coverage/* +/libpeerconnection.log +npm-debug.log +testem.log diff --git a/javascript/.watchmanconfig b/javascript/.watchmanconfig new file mode 100644 index 0000000..e7834e3 --- /dev/null +++ b/javascript/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/javascript/README.md b/javascript/README.md new file mode 100644 index 0000000..d73ef9e --- /dev/null +++ b/javascript/README.md @@ -0,0 +1,26 @@ +# haskell-code-explorer + +## Prerequisites +* [Node.js](https://nodejs.org/) (with NPM) +* [Ember CLI](https://ember-cli.com/) +* [bower](https://bower.io/) + +## Installation +* `cd haskell-code-explorer/javascript` +* `npm install` +* `bower install` + +## Running / Development +* Start haskell-code-server on port 8080 +* `ember server --port=4200 --proxy=http://localhost:8080` +* Visit your app at [http://localhost:4200](http://localhost:4200). + +To test the app with real-world data : +* ember server --proxy=https://haskell-code-explorer.mfix.io/ + +## Running Tests +* `ember server --port=4200` +* Open [http://localhost:4200/tests](http://localhost:4200/tests) in a browser + +## Building +* `ember build --environment production` diff --git a/javascript/app/app.js b/javascript/app/app.js new file mode 100644 index 0000000..9b24136 --- /dev/null +++ b/javascript/app/app.js @@ -0,0 +1,15 @@ +import Ember from 'ember'; +import Resolver from 'ember-resolver'; +import loadInitializers from 'ember-load-initializers'; +import config from './config/environment'; + +var App; + +App = Ember.Application.extend({ + modulePrefix: config.modulePrefix, + Resolver: Resolver +}); + +loadInitializers(App, config.modulePrefix); + +export default App; diff --git a/javascript/app/components/.gitkeep b/javascript/app/components/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/app/components/.gitkeep diff --git a/javascript/app/components/bottom-panel.js b/javascript/app/components/bottom-panel.js new file mode 100644 index 0000000..5d8b5bc --- /dev/null +++ b/javascript/app/components/bottom-panel.js @@ -0,0 +1,52 @@ +import Ember from 'ember'; + +function show(component) { + const height = Math.floor(component.$containerElement.height() /2); + component.$().css({ + "display":"block", + "top" : height+"px" + }); + component.$topPanelElement.css({ + "height":height+"px" + }); +} + +function hide(component) { + const height = Math.floor(component.$containerElement.height()/2); + component.$().css({ + "display":"none", + "height":height+"px" + }); + component.$topPanelElement.css({ + "height":"100%" + }); +} + +export default Ember.Component.extend({ + classNames:["bottom-panel"], + didInsertElement : function () { + this._super(...arguments); + this.$topPanelElement = Ember.$(this.get('topPanelElementId')); + this.$containerElement = Ember.$(this.get('containerElementId')); + Ember.run.next(this,() => { + Ember.$(this.element).resizable({ + handles:"n", + maxHeight:700, + minHeight:200, + resize: (event,ui) => { + Ember.run.next(this,() => { + this.$topPanelElement.css({"height": this.$containerElement.height() - ui.size.height}); + }); + } + }); + }); + }, + visibilityObserver : Ember.observer('visible',function () { + this.get('visible') ? show(this) : hide(this); + }), + actions : { + close () { + this.set('visible',false); + } + } +}); diff --git a/javascript/app/components/expression-info.js b/javascript/app/components/expression-info.js new file mode 100644 index 0000000..d403c49 --- /dev/null +++ b/javascript/app/components/expression-info.js @@ -0,0 +1,3 @@ +import Ember from 'ember'; +export default Ember.Component.extend({ +}); diff --git a/javascript/app/components/file-tree.js b/javascript/app/components/file-tree.js new file mode 100644 index 0000000..c86a71d --- /dev/null +++ b/javascript/app/components/file-tree.js @@ -0,0 +1,94 @@ +import Ember from 'ember'; + +const directoryTreeToJsTree = function (packageId,directoryTree) { + return directoryTree.contents.map((node) => { + const jsTreeNode = {}; + jsTreeNode.text = node.name; + jsTreeNode.data = node; + if(node.path) { + jsTreeNode.id = node.path; + jsTreeNode.a_attr = {href:"/package/" + packageId + "/show/" + node.path}; + } + if(node.tag === "Dir") { + jsTreeNode.children = directoryTreeToJsTree(packageId,node); + jsTreeNode.state = {"opened" : containsHaskellModule(node)}; + } else { + if(node.isHaskellModule) { + jsTreeNode.icon = "/assets/haskell.ico"; + jsTreeNode.isHaskellModule = true; + } else { + jsTreeNode.icon = "jstree-file"; + jsTreeNode.isHaskellModule = false; + } + } + return jsTreeNode; + }); +}; + +const containsHaskellModule = function(node) { + return node.contents.some((n) => { + if(n.tag === "File") { + return n.isHaskellModule; + } else { + return containsHaskellModule(n); + } + }); +} + +export default Ember.Component.extend({ + query: null, + didInsertElement : function () { + this._super(...arguments); + const element = this.element.getElementsByClassName('file-tree')[0]; + + const jstreeElement = Ember.$(element).jstree({ + 'core' : { + 'data' : directoryTreeToJsTree(this.get('packageId'),this.get('directoryTree')) + }, + "plugins" : [ + "search" + ], + "search": { + "case_insensitive": true, + "show_only_matches" : true, + "show_only_matches_children": true + } + }); + + jstreeElement.on("select_node.jstree",(event,data) => { + const file = data.node.data; + if(file.tag != "Dir") { + this.sendAction('openFile',file.path); + } + }); + + const jstree = jstreeElement.jstree(true); + + if(this.get('currentFile')) { + jstree.select_node(this.get('currentFile')); + const node = jstree.get_node(this.get('currentFile'),true)[0]; + if(node) { + node.scrollIntoView(); + } + } + this.jstree = jstree; + }, + currentFileObserver : Ember.observer('currentFile',function() { + Ember.run.next(() => { + this.jstree.deselect_all(); + this.jstree.select_node(this.get('currentFile')); + }); + }), + queryObserver : Ember.observer('query',function() { + if(this.get('query')) { + this.jstree.search(this.get('query')); + } else { + this.jstree.clear_search(); + } + }), + actions : { + hide() { + this.get('hide')(); + } + } +}); diff --git a/javascript/app/components/haskell-module.js b/javascript/app/components/haskell-module.js new file mode 100644 index 0000000..8883a9c --- /dev/null +++ b/javascript/app/components/haskell-module.js @@ -0,0 +1,492 @@ +import Ember from 'ember'; +import {goToDefinition} from '../utils/go-to-definition'; +import {initializeLineSelection} from '../utils/line-selection'; + +function compareLocations (p1,p2) { + if(p1.line === p2.line) { + if(p1.column === p2.column) { + return 0; + } else if(p1.column > p2.column) { + return 1; + } else { + return -1; + } + } else if(p1.line > p2.line) { + return 1; + } else { + return -1; + } +} + +function buildSrcSpan(sourceCodeLines,start,end) { + if(sourceCodeLines[start.line] && sourceCodeLines[end.line]) { + if(start.line === end.line) { + return sourceCodeLines[start.line].slice(start.column-1,end.column-1); + } else { + const firstLine = sourceCodeLines[start.line]; + let middleLines = []; + for(let i = start.line + 1; i < end.line;i ++) { + middleLines.push(sourceCodeLines[i]); + } + const lastLine = sourceCodeLines[end.line]; + const minOffset = Math.min(start.column, + (middleLines.concat([lastLine])) + .map((line) => line.search(/\S/)) + .reduce((min,value) => Math.min(min,value))); + return firstLine.slice(start.column-1,firstLine.length) + "\n" + + middleLines.map((line) => line.slice(minOffset,line.length)).join("\n") + + (middleLines.length ? "\n" : "") + lastLine.slice(minOffset,end.column-1); + } + } else { + return null; + } +} + +function modifyClass(element,on) { + if(on) { + element.classList.add('highlighted-identifier'); + } else { + element.classList.remove('highlighted-identifier'); + } +} + +function highlightIdentifiers(parentElement,identifierElement,on) { + if(identifierElement.id) { + const identifiers = Array.prototype.slice.call(parentElement.querySelectorAll("span[id='"+identifierElement.id+"']")); + identifiers.forEach((identifier) => { + modifyClass(identifier,on); + }); + } else { + modifyClass(identifierElement,on);//Literal + } +} + +//divident is a string +//divident may have any number of digits +function modulo(divident, divisor) { + return Array.from(divident).map(c => parseInt(c)) + .reduce((acc, value) => { + return (acc * 10 + value) % divisor; + },0); +} + +function isDefinedInCurrentModule(moduleName,modulePath,identifierInfo) { + return (identifierInfo.sort === "External") && + (identifierInfo.locationInfo.modulePath === modulePath + || identifierInfo.locationInfo.moduleName === moduleName) +} + +function identifierStyle(identifierElement, + identifiers, + occurrences, + path, + colorTheme, + moduleName) { + const idOcc = occurrences[identifierElement.dataset.occurrence]; + + let color = colorTheme.defaultColor; + let fontWeight; + + if(idOcc) { + if(idOcc.sort.tag === 'TypeId') { + color = colorTheme.typeColor; + } else if(idOcc.description === "HsLit" || + idOcc.description === "HsOverLit"|| + idOcc.description === "LitPat" || + idOcc.description === "NPat" || + idOcc.description === "NPlusKPat" || + idOcc.description === "OverLit") { + color = colorTheme.literalColor; + } else { + const idInfo = identifiers[identifierElement.dataset.identifier]; + if(idInfo) { + if(isDefinedInCurrentModule(moduleName,path,idInfo)) { + color = colorTheme.topLevelIdFromCurrentModule; + } else if(idInfo.sort === "Internal" && idInfo.locationInfo.tag === "ExactLocation") { + const colorNumber = modulo(identifierElement.id,colorTheme.localIdentifierColor.length); + color = colorTheme.localIdentifierColor[colorNumber]; + fontWeight = "bold"; + } + } + } + } + + return "color:"+color+";" + +(fontWeight ? "font-weight:" + fontWeight : "")+";" + +(idOcc.isBinder ? "text-decoration:underline;" : ""); +} + +function initializeIdentifiers (sourceCodeContainerElement,component) { + const identifierElements = Array.prototype.slice.call(sourceCodeContainerElement.querySelectorAll("span.identifier")); + if(identifierElements.length > 0) { + const timeout = 250;//milliseconds + let timer = null; + + identifierElements.forEach((identifierElement) => { + + const cssText = identifierStyle(identifierElement, + component.get('identifiers'), + component.get('occurrences'), + component.get('path'), + component.get('colorTheme'), + component.get('name')); + + identifierElement.style.cssText = cssText; + + //go to definition + identifierElement.onmouseup = (event) => { + if(timer) { + clearTimeout(timer); + } + + if(!window.getSelection().isCollapsed) { + return; + } + + const identifierInfo = component.get('identifiers')[identifierElement.dataset.identifier]; + const idOccurrenceInfo = component.get('occurrences')[identifierElement.dataset.occurrence]; + + const currentLineNumber = parseInt(identifierElement.parentNode.dataset.line); + + if(idOccurrenceInfo.sort.tag === "ModuleId") { + goToDefinition(component.get('store'), + idOccurrenceInfo.sort.contents, + event.which, + currentLineNumber); + } + else { + if(!idOccurrenceInfo.isBinder && identifierInfo + && (event.which === 1 || event.which === 2)) { + goToDefinition(component.get('store'), + identifierInfo.locationInfo, + event.which, + currentLineNumber); + } + } + } + + identifierElement.onmouseover = () => { + highlightIdentifiers(sourceCodeContainerElement,identifierElement,true); + if(timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { + Ember.run.next(component,() => { + const identifierInfo = component.get('identifiers')[identifierElement.dataset.identifier]; + const identifierOccurrence = component.get('occurrences')[identifierElement.dataset.occurrence]; + console.log(identifierOccurrence); + console.log(identifierInfo); + + component.set('selectedIdentifier',identifierElement); + component.set('currentLineNumber',parseInt(identifierElement.parentNode.dataset.line) || 1); + component.set('identifierInfo',identifierInfo); + component.set('identifierOccurrence',identifierOccurrence); + component.set('hasSelectedExpression',false); + component.set('isHoveredOverIdentifier',true); + + }); + },timeout); + }; + + identifierElement.onmouseout = () => { + highlightIdentifiers(sourceCodeContainerElement,identifierElement,false); + + if(timer) { + clearTimeout(timer); + } + + timer = setTimeout (() => { + Ember.run.next(component,() => { + component.set('isHoveredOverIdentifier',false); + }); + },timeout); + }; + }); + component.timer = timer; + } +} + + + +function contains (node, other) { + return node === other || !!(node.compareDocumentPosition(other) & 16); +} + +function initializeExpressionInfo(sourceCodeContainerElement,component) { + const lineElements = Array.prototype.slice.call(sourceCodeContainerElement.querySelectorAll("td.line-content")); + if(lineElements.length > 0) { + + //Line numbers start with 1 + let sourceCodeLines = [""]; + + lineElements.forEach((el) => { + sourceCodeLines.push(el.textContent); + }); + + const allowedNodeNames = ["#text","SPAN","TD"]; + let isLoading = false; + let shouldWait = false; + const timeout = 400;//milliseconds + + const onmouseup = function() { + Ember.run.next(() => { + if(isLoading || shouldWait) { + return; + } + shouldWait = true; + setTimeout(() => {shouldWait = false;},timeout); + + component.set('hasSelectedExpression',false); + + const selection = window.getSelection(); + + //Selection of multiple lines inside a table doesn't work in Firefox + //https://bugzilla.mozilla.org/show_bug.cgi?id=365900 + + if(!(selection.anchorNode && selection.focusNode) + || !contains(sourceCodeContainerElement,selection.anchorNode) + || !contains(sourceCodeContainerElement,selection.focusNode) + || (allowedNodeNames.indexOf(selection.anchorNode.nodeName) === -1) + || (allowedNodeNames.indexOf(selection.focusNode.nodeName) === -1) + || selection.isCollapsed) { + return; + } + + // Detects whether the selection is backwards + const detectionRange = document.createRange(); + detectionRange.setStart(selection.anchorNode, selection.anchorOffset); + detectionRange.setEnd(selection.focusNode, selection.focusOffset); + const isBackward = detectionRange.collapsed; + + let startNode,startNodeOffset,endNode,endNodeOffset; + + if(isBackward) { + startNode = selection.focusNode; + startNodeOffset = selection.focusOffset; + endNode = selection.anchorNode; + endNodeOffset = selection.anchorOffset; + } else { + startNode = selection.anchorNode; + startNodeOffset = selection.anchorOffset; + endNode = selection.focusNode; + endNodeOffset = selection.focusOffset; + } + + let lineStart,columnStart,lineEnd,columnEnd; + let infoWindowTargetElement; + + + //HTML inside source code container : + //<tr><td><span data-start="1" date-end="3">abc</span><span>...</span></td></tr> + //<tr>...</tr> + if(startNode.nodeName === "#text") { + const parent = startNode.parentNode;//<span> + columnStart = parseInt(parent.dataset.start) + startNodeOffset; + lineStart = parseInt(parent.parentNode.dataset.line); + + if(startNodeOffset === startNode.textContent.length && parent.nextSibling === null) { + const tr = startNode.parentNode.parentNode.parentNode;// span -> td -> tr + + //Skipping empty lines + let nextLine = tr.nextSibling; + while(nextLine.children[1].textContent === "") { + nextLine = nextLine.nextSibling; + } + infoWindowTargetElement = nextLine.children[1].children[0]; + + } else { + if(!(startNodeOffset === 0) && (parent.nextSibling)) { + infoWindowTargetElement = parent.nextSibling; + } else { + infoWindowTargetElement = parent; + } + } + } else if(startNode.nodeName === "SPAN") { + columnStart = 1; + lineStart = parseInt(startNode.parentNode.dataset.line); + + const tr = startNode.parentNode.parentNode; // td -> tr + let nextLine = tr.nextSibling; + while(nextLine.children[1].textContent === "") { + nextLine = nextLine.nextSibling; + } + infoWindowTargetElement = nextLine.children[1].children[0]; + + } else if(startNode.nodeName === "TD") { + if(startNodeOffset > 0) { + const child = startNode.children[startNodeOffset-1]; + columnStart = parseInt(child.dataset.start); + } else { + columnStart = 1; + } + lineStart = parseInt(startNode.id.slice(2)); + infoWindowTargetElement = startNode.children[0]; + } + + if(endNode.nodeName === "#text") { + columnEnd = parseInt(endNode.parentNode.dataset.start) + endNodeOffset; + lineEnd = parseInt(endNode.parentNode.parentNode.dataset.line); + } else if(endNode.nodeName === "SPAN") { + columnEnd = 1; + lineEnd = parseInt(endNode.parentNode.dataset.line); + } else if(endNode.nodeName === "TD"){ + if(endNodeOffset > 0) { + const child = endNode.children[endNodeOffset-1]; + columnEnd = parseInt(child.dataset.start); + } else { + columnEnd = 1; + } + lineEnd = parseInt(endNode.id.slice(2)); + } + + const loadExprPromise = component.get('store').loadExpressions( + component.get('packageId'), + component.get('path'), + lineStart, + columnStart, + lineEnd, + columnEnd); + isLoading = true; + + loadExprPromise.then((expressions) => { + Ember.run.next(() => { + if(expressions && expressions.length > 0) { + expressions.sort(function(expr1,expr2) { + if( compareLocations(expr1.srcSpan.start,expr2.srcSpan.start) <= 0 + && compareLocations(expr1.srcSpan.end,expr2.srcSpan.end) >= 0 ) { + return -1; + } else { + return 1; + } + }); + + const expressionsWithSourceCode = expressions.reduce((result,expression) => { + const object = Ember.copy(expression); + const srcSpan = buildSrcSpan(sourceCodeLines, + expression.srcSpan.start, + expression.srcSpan.end); + if(srcSpan) { + object.sourceCode = srcSpan; + return result.concat(object); + } else { + return result; + } + },[]); + + if(expressionsWithSourceCode.length > 0) { + component.set('selectedIdentifier',infoWindowTargetElement); + component.set('expressions',expressionsWithSourceCode); + component.set('currentLineNumber',parseInt(infoWindowTargetElement.parentNode.dataset.line) || 1); + component.set('hasSelectedExpression',true); + + } + } + isLoading = false; + }); + }); + }); + }; + + sourceCodeContainerElement.addEventListener('mouseup',onmouseup); + component._onmouseup = onmouseup; + } +} + +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + selectedIdentifier : null, + isHoveredOverIdentifier : false, + hasSelectedExpression : false, + showDeclarations : true, + showDeclarationsLabel : Ember.computed('showDeclarations',function () { + return this.get('showDeclarations') ? "Hide" : "Show"; + }), + queryObserver : Ember.observer("query",function() { + Ember.run.debounce(this, () => { + const regExp = new RegExp(this.get('query'),"i"); + const filteredDeclarations = this.get('declarations').filter((d) => d.name.search(regExp) != -1); + Ember.run.next(() => { + this.set('filteredDeclarations',filteredDeclarations); + }); + }, 300); + }), + identifierLocationInfo : Ember.computed('identifierInfo','identifierOccurrence',function() { + const idOcc = this.get('identifierOccurrence'); + const idInfo = this.get('identifierInfo'); + if(idOcc) { + if(idOcc.sort.tag === "ModuleId") { + return idOcc.sort.contents; + } else { + if(idInfo) { + return idInfo.locationInfo; + } else { + return null; + } + } + } + }), + themeObserver : Ember.observer('colorTheme',function() { + Ember.run.next(this,() => { + this.cleanup(); + this.didInsertElement(); + }); + }), + fileObserver : Ember.observer('path',function() { + Ember.run.next(this,() => { + this.cleanup(); + this.didInsertElement(); + }); + }), + cleanup() { + if(this.timer) { + clearTimeout(this.timer); + } + if(this._onhashchange) { + window.removeEventListener('hashchange',this._onhashchange); + } + if(this._onkeydown) { + document.removeEventListener('keydown',this._onkeydown); + } + if(this._onkeyup) { + document.removeEventListener('keyup',this._onkeyup); + } + if(this._onmouseup) { + this.sourceCodeContainerElement.removeEventListener('mouseup',this._onmouseup); + } + this.set('selectedIdentifier',null); + this.set('isHoveredOverIdentifier',false); + this.set('hasSelectedExpression',false); + this.set('showDeclarations',true); + }, + didReceiveAttrs() { + this.set('filteredDeclarations',this.get('declarations')); + }, + didInsertElement() { + this._super(...arguments); + const sourceCodeContainerElement = this.element.querySelector('.source-code-container'); + sourceCodeContainerElement.innerHTML = this.get('html'); + this.sourceCodeContainerElement = sourceCodeContainerElement; + this.element.parentNode.scrollTop = 0; + const declarations = this.element.querySelector('.declarations-content'); + this.set('query',''); + if(declarations) { + declarations.scrollTop = 0; + } + Ember.run.next(this,() => { + initializeIdentifiers(sourceCodeContainerElement,this); + initializeLineSelection(sourceCodeContainerElement,this); + initializeExpressionInfo(sourceCodeContainerElement,this); + }); + }, + willDestroyElement() { + this.cleanup(); + }, + actions : { + goToLine(lineNumber) { + window.location.hash = "L"+lineNumber; + }, + toggleShowDeclarations() { + this.toggleProperty('showDeclarations'); + } + } +}); diff --git a/javascript/app/components/identifier-info.js b/javascript/app/components/identifier-info.js new file mode 100644 index 0000000..537697a --- /dev/null +++ b/javascript/app/components/identifier-info.js @@ -0,0 +1,62 @@ +import Ember from 'ember'; +import {goToDefinition} from '../utils/go-to-definition'; + +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + downloadedDocumentation : null, + didInsertElement () { + const onmouseup = (event) => { + if(event.target.dataset.location) { + let location; + try { + location = JSON.parse(event.target.dataset.location); + } catch (e) { + console.log(e); + } + if(location) { + goToDefinition(this.get('store'),location,event.which,this.get('currentLineNumber')); + } + } + }; + this.element.addEventListener('mouseup',onmouseup); + this._onmouseup = onmouseup; + }, + willDestroyElement : function () { + if(this._onmouseup) { + this.element.removeEventListener('mouseup',this._onmouseup); + } + }, + //Naughty record selectors : + //https://github.com/ghc/ghc/blob/ced2cb5e8fbf4493488d1c336da7b00d174923ce/compiler/typecheck/TcTyDecls.hs#L940-L961 + isNaughtyRecSel : Ember.computed('identifierInfo',function () { + const idInfo = this.get('identifierInfo'); + return idInfo ? (idInfo.details === "RecSelIdNaughty") : false; + }), + isExternalIdentifier : Ember.computed('identifierInfo',function () { + const idInfo = this.get('identifierInfo'); + return idInfo ? (idInfo.sort === "External") : false; + }), + identifierObserver : Ember.observer('identifierInfo',function () { + this.set("downloadedDocumentation",""); + const idInfo = this.get('identifierInfo'); + if(idInfo) { + const locationInfo = idInfo.locationInfo; + if(locationInfo.tag === "ApproximateLocation") { + const packageId = locationInfo.packageId.name + "-" + locationInfo.packageId.version; + const currentIdentifier = idInfo; + + this.get('store').loadDefinitionSite(packageId, + locationInfo.moduleName, + locationInfo.componentId, + locationInfo.entity, + locationInfo.name) + .then((definitionSite) => { + Ember.run.next(this,() => { + if(currentIdentifier === this.get('identifierInfo')) { + this.set('downloadedDocumentation',definitionSite.documentation); + }}); + }); + } + } + }) +}); diff --git a/javascript/app/components/identifier-name.js b/javascript/app/components/identifier-name.js new file mode 100644 index 0000000..950b8c7 --- /dev/null +++ b/javascript/app/components/identifier-name.js @@ -0,0 +1,60 @@ +import Ember from 'ember'; +import {goToDefinition} from '../utils/go-to-definition'; + +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + name : Ember.computed('identifierElement',function() { + const element = this.get('identifierElement'); + if(element) { + return element.innerText; + } + }), + style : Ember.computed('identifierElement',function() { + const element = this.get('identifierElement'); + if(element) { + return new Ember.String.htmlSafe("color:"+element.style.color); + } + }), + locationInfo : Ember.computed('identifierInfo','identifierOccurrence',function() { + if(this.get('identifierOccurrence.sort.tag') === "ModuleId") { + return this.get('identifierOccurrence.sort.contents'); + } else { + return this.get('identifierInfo.locationInfo'); + } + }), + location : Ember.computed('locationInfo',function() { + const loc = this.get('locationInfo'); + if(loc) { + if(loc.tag === "ExactLocation") { + return loc.modulePath; + } else if(loc.tag === "ApproximateLocation") { + if(loc.entity === "Mod") { + return loc.packageId.name + "-" + loc.packageId.version; + } else { + return loc.packageId.name + "-" + loc.packageId.version + " " + loc.moduleName; + } + } else { + return loc.contents; + } + } else { + return ""; + } + }), + isExternalIdentifier : Ember.computed('identifierInfo',function () { + return (this.get('identifierInfo.sort') === "External"); + }), + actions : { + goToDefinition (event) { + goToDefinition(this.get('store'), + this.get('locationInfo'), + event.which, + this.get('currentLineNumber')); + return false; + }, + findReferences (identifierInfo,currentPackageId) { + this.get('findReferences')(currentPackageId, + identifierInfo.externalId, + identifierInfo.demangledOccName); + } + } +}); diff --git a/javascript/app/components/infinite-list.js b/javascript/app/components/infinite-list.js new file mode 100644 index 0000000..b73b6d4 --- /dev/null +++ b/javascript/app/components/infinite-list.js @@ -0,0 +1,50 @@ +import Component from '@ember/component'; +import { run } from '@ember/runloop'; +import { observer } from '@ember/object'; + +let pageNumber; +let updating = false; + +function initialize(component) { + component.set('renderedElements',component.get('elements').slice(0,component.get('perPage'))); + pageNumber = 1; +} + +export default Component.extend({ + renderedElements : [], + init() { + this._super(...arguments); + initialize(this); + }, + elementsObserver : observer('elements',function() { + initialize(this); + const containerElement = document.getElementById(this.get('containerElementId')); + if(containerElement) { + containerElement.scrollTop = 0; + } + }), + didInsertElement() { + const containerElement = document.getElementById(this.get('containerElementId')); + if(containerElement) { + const component = this; + containerElement.onscroll = function() { + const perPage = component.get('perPage'); + const elements = component.get('elements'); + + if(!updating && + (pageNumber * perPage < elements.length) && + (containerElement.scrollTop + containerElement.offsetHeight + > component.element.offsetHeight - 100)) { + + updating = true; + run.next(component,() => { + const newElements = elements.slice(pageNumber * perPage,(pageNumber + 1) * perPage); + component.get('renderedElements').pushObjects(newElements); + pageNumber ++; + updating = false; + }); + } + } + } + } +}); diff --git a/javascript/app/components/info-window.js b/javascript/app/components/info-window.js new file mode 100644 index 0000000..a011f99 --- /dev/null +++ b/javascript/app/components/info-window.js @@ -0,0 +1,144 @@ +import Ember from 'ember'; + +let resizing = false; +let dragging = false; + +function updatePosition(component) { + const targetElement = component.get('targetElement'); + if(targetElement) { + const infoWindowHeight = component.element.offsetHeight; + const targetElementHeight = targetElement.offsetHeight; + + const parent = targetElement.parentNode;//<td> element + const containerElement = document.querySelector("#" + component.get('containerElementId')); + + //getBoundingClientRect() returns the smallest rectangle which contains + //the entire element, with read-only left, top, right, bottom, x, y, width, + //and height properties describing the overall border-box in pixels. Properties + //other than width and height are relative to the top-left of the *viewport*. + const targetTopViewport = targetElement.getBoundingClientRect().top; + + let containerTopViewport; + if (containerElement) { + containerTopViewport = containerElement.getBoundingClientRect().top; + } else { + containerTopViewport = 0; + } + + let infoWindowTop; + if(targetTopViewport < infoWindowHeight + containerTopViewport) { + //offsetTop is the number of pixels from the top of the closest relatively + //positioned parent element. + infoWindowTop = targetElement.offsetTop + parent.offsetTop + + targetElementHeight + 10 + "px"; + } else { + infoWindowTop = targetElement.offsetTop + parent.offsetTop + - infoWindowHeight + "px"; + } + + const infoWindowLeft = targetElement.offsetLeft + parent.offsetLeft + "px"; + + component.$().css({ + top:infoWindowTop, + left:infoWindowLeft + }); + } else { + component.set('isPinned',false); + } +} + +export default Ember.Component.extend({ + classNames : ["info-window-container"], + attributeBindings: ['hidden'], + isPinned : false, + isFocused: false, + didInsertElement () { + const component = this; + + const $headerElement = Ember.$(component.element.querySelector(".info-window-header")); + const $contentElement = Ember.$(component.element.querySelector(".info-window-content")); + const $infoWindowElement = Ember.$(component.element.querySelector(".info-window")); + const $infoWindowContainerElement = Ember.$(component.element); + + this.$headerElement = $headerElement; + this.$contentElement = $contentElement; + + this.$().resizable({ + handles: "n,w", + minHeight: 80, + minWidth: 400, + start: function() { + resizing = true; + }, + stop: function() { + resizing = false; + }, + resize : function() { + const containerHeight = $infoWindowContainerElement.height(); + $infoWindowElement.css({ + "height": containerHeight + 2 + "px" + }); + $contentElement.css({ + "max-height":(containerHeight - $headerElement.outerHeight(true)) + "px" + }); + } + }); + this.$().draggable({ + containment:"#" + this.get('containerElementId'), + handle: $headerElement, + start: function() { + dragging = true; + }, + stop: function() { + dragging = false; + } + }); + }, + mouseEnter () { + if(!this.get('hasSelectedExpression')) { + this.set('isFocused',true); + } + }, + mouseLeave (event) { + //Workaround for a bug in Chrome + const element = document.elementFromPoint(event.clientX,event.clientY); + if(element && element.classList.contains('link')) { + return; + } + if(!resizing + && !dragging + && !this.get('isPinned') + && !this.get('hasSelectedExpression')) { + this.set('isFocused',false); + } + }, + hidden : Ember.computed('isHoveredOverIdentifier', + 'isFocused', + 'hasSelectedExpression', + 'isPinned', function() { + if (this.$contentElement) { + this.$contentElement.scrollTop(0); + } + if (this.get('isPinned') + || this.get('isFocused') + || this.get('isHoveredOverIdentifier') + || this.get('hasSelectedExpression')) { + return false; + } else { + return true; + } + }), + didUpdate() { + updatePosition(this); + }, + actions : { + close() { + this.set('isPinned',false); + this.set('isFocused',false); + this.set('hasSelectedExpression',false); + }, + pin() { + this.toggleProperty('isPinned'); + } + } +}); diff --git a/javascript/app/components/input-with-autocomplete.js b/javascript/app/components/input-with-autocomplete.js new file mode 100644 index 0000000..2b09ea4 --- /dev/null +++ b/javascript/app/components/input-with-autocomplete.js @@ -0,0 +1,131 @@ +import Ember from 'ember'; +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + highlightedItemIndex: -1, + items : [], + query: null, + didInsertElement() { + const $input = Ember.$(this.element).find(".search-input"); + const $autocompleteContainer = Ember.$(this.element).find(".autocomplete-container"); + this.$input = $input; + this.$autocompleteContainer = $autocompleteContainer; + const width = $input.width() + 300; + $autocompleteContainer.css({ + "width" : width+"px", + "top" : $input.outerHeight() + }); + $input.keyup((e) => { + if(e.which === 13) { + this.onEnter(); + } else if(e.which === 27) { + this.onEsc(); + } else if(e.which === 40) { + this.onDown(); + } else if(e.which === 38) { + this.onUp(); + } + }); + $input.focusin(() => { + this.showAutocompleteList(); + }); + $input.focusout(() => { + //Timeout is needed to make sure that click event fires + Ember.run.later((() => { + this.hideAutocompleteList(); + }), 100); + }); + }, + willDestroyElement() { + this._super(...arguments); + this.$input.off('keyup'); + this.$input.off('focusin'); + this.$input.off('focusout'); + }, + onEnter() { + if(this.get('highlightedItemIndex') !== -1) { + const item = this.get('items')[this.get('highlightedItemIndex')]; + if(item) { + this.hideAutocompleteList(); + this.get('selectItem')(item); + } + } else { + this.hideAutocompleteList(); + this.get('onSubmit')(this.get('query')); + } + }, + onEsc() { + this.hideAutocompleteList(); + }, + onDown() { + this.showAutocompleteList(); + const index = this.get('highlightedItemIndex'); + const items = this.get('items'); + const itemsCount = items.length; + if(itemsCount > 0) { + if(index !== -1) { + if(index === itemsCount - 1) { + this.set('highlightedItemIndex',0); + } else { + this.set('highlightedItemIndex',index+1); + } + } else { + this.set('highlightedItemIndex',0); + } + } + }, + onUp() { + this.showAutocompleteList(); + const index = this.get('highlightedItemIndex'); + const items = this.get('items'); + const itemsCount = items.length; + if(itemsCount > 0) { + if(index !== -1) { + if(index === 0) { + this.set('highlightedItemIndex',itemsCount - 1); + } else { + this.set('highlightedItemIndex',index - 1); + } + } else { + this.set('highlightedItemIndex',itemsCount - 1); + } + } + }, + hideAutocompleteList() { + this.set('highlightedItemIndex',-1); + this.$autocompleteContainer.css({ + "display":"none", + }); + }, + showAutocompleteList() { + this.$autocompleteContainer.css({ + "display":"block" + }); + }, + queryObserver : Ember.observer("query",function() { + if(this.get('query')) { + const perPage = this.get('maxItems') ? this.get('maxItems') : 10; + const url = this.get('createSearchUrlFunction')(this.get('query')) + "?per_page=" + perPage; + Ember.run.debounce(this, () => { + this.get('store').loadFromUrlPaginated(url).then((result) => { + Ember.run.next(() => { + this.set('items',result.items); + }); + }); + }, 400); + this.showAutocompleteList(); + } else { + this.hideAutocompleteList(); + this.set('items',[]); + } + }), + actions : { + onSubmit() { + this.hideAutocompleteList(); + this.get('onSubmit')(this.get('query')); + }, + goToDefinition (item) { + this.hideAutocompleteList(); + this.get('selectItem')(item); + } + } +}); diff --git a/javascript/app/components/instance-info.js b/javascript/app/components/instance-info.js new file mode 100644 index 0000000..a0e04ed --- /dev/null +++ b/javascript/app/components/instance-info.js @@ -0,0 +1,21 @@ +import Ember from 'ember'; +import {goToDefinition} from '../utils/go-to-definition'; + +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + style : Ember.computed('nestedLevel',function() { + return new Ember.String.htmlSafe("margin-left :" + this.get('nestedLevel') * 10 + "px"); + }), + nextNestedLevel : Ember.computed('nestedLevel',function () { + return this.get('nestedLevel') + 1; + }), + actions : { + goToDefinition (event) { + goToDefinition(this.get('store'), + this.get('instance.location'), + event.which, + this.get('currentLineNumber')); + return false; + } + } +}); diff --git a/javascript/app/components/paginated-list.js b/javascript/app/components/paginated-list.js new file mode 100644 index 0000000..9d85610 --- /dev/null +++ b/javascript/app/components/paginated-list.js @@ -0,0 +1,48 @@ +import Ember from 'ember'; +function loadItems(store,component,url) { + store.loadFromUrlPaginated(url).then((result) => { + Ember.run.next(() => { + component.set('total',result.total); + component.set('items',result.items); + component.set('first',result.linkHeader.first); + component.set('next',result.linkHeader.next); + component.set('prev',result.linkHeader.prev); + component.set('last',result.linkHeader.last); + + const pageMatch = url.match(/(&|\?)page=(\d+)/); + const perPageMatch = url.match(/(&|\?)per_page=(\d+)/); + + const page = pageMatch ? pageMatch[2] : 1; + const perPage = perPageMatch ? perPageMatch[2] : 20; + + if(result.linkHeader.next || result.linkHeader.prev) { + component.set('firstItemOnPage',(page - 1) * perPage + 1); + if(!result.linkHeader.last) { + component.set('lastItemOnPage',result.total); + } else { + component.set('lastItemOnPage',page * perPage); + } + } + }); + }); +} + +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + init() { + this._super(...arguments); + if(this.get('url')) { + loadItems(this.get('store'),this,this.get('url')); + } + }, + urlObserver : Ember.observer('url',function () { + loadItems(this.get('store'),this,this.get('url')); + this.element.querySelector(".paginated-list-content").scrollTop = 0; + }), + actions : { + update(url) { + this.element.querySelector(".paginated-list-content").scrollTop = 0; + loadItems(this.get('store'),this,url); + } + } +}); diff --git a/javascript/app/components/resizable-panel.js b/javascript/app/components/resizable-panel.js new file mode 100644 index 0000000..8dae7ed --- /dev/null +++ b/javascript/app/components/resizable-panel.js @@ -0,0 +1,72 @@ +import Ember from 'ember'; + +function hide (component,byUser) { + component.$alsoResizeElement.css({left: 0}); + component.$().css({width:0}); + component.set('hidden',true); + component.$(".show-left-panel-button").show(); + if(byUser) { + component.set('hiddenByUser',true); + } +} + +function show (component,byUser) { + component.$alsoResizeElement.css({left: 300}); + component.$().css({width:300}); + component.set('hidden',false); + component.$(".show-left-panel-button").hide(); + if(byUser) { + component.set('hiddenByUser',false); + } +} + +export default Ember.Component.extend({ + hidden:false, + hiddenByUser:false, + didInsertElement : function () { + this._super(...arguments); + Ember.run.next(this,() => { + const onresize = () => { + if(!this.get('hiddenByUser')) { + const width = window.innerWidth; + if(!this.get('hidden') && width < 700) { + hide(this,false); + } else if(this.get('hidden') && width > 700) { + show(this,false); + } + } + }; + this._onresize = onresize; + window.addEventListener('resize', onresize); + const $alsoResizeElement = Ember.$(this.get('alsoResizeElementId')); + Ember.$(this.element).resizable({ + maxWidth: 800, + minWidth: 200, + handles: 'e', + resize: (event,ui) => { + Ember.run.next(this,() => { + $alsoResizeElement.css({left: ui.size.width}); + }); + } + }); + this.$alsoResizeElement = $alsoResizeElement; + }); + }, + hideButtonLabel : Ember.computed('hidden',function() { + return this.get('hidden') ? ">" : "<"; + }), + willDestroyElement() { + if(this._onresize) { + window.removeEventListener('resize',this._onresize); + } + }, + actions : { + hide() { + if(this.get('hidden')) { + show(this,true); + } else { + hide(this,true); + } + } + } +}); diff --git a/javascript/app/components/text-file.js b/javascript/app/components/text-file.js new file mode 100644 index 0000000..05be31a --- /dev/null +++ b/javascript/app/components/text-file.js @@ -0,0 +1,67 @@ +/* global showdown */ +import Ember from 'ember'; +import {initializeLineSelection} from '../utils/line-selection'; + +function escapeHtml(text) { + return text.replace(/[\"&<>]/g, function (a) { + return { '"': '"', '&': '&', '<': '<', '>': '>' }[a]; + }); +} + +function addLineNumbers (text) { + const start = "<table class='source-code'><tbody>"; + const end = "</tbody></table>"; + let lineNumber = 0; + const lines = text.split("\n").map((line) => { + lineNumber ++; + const lineNumberHtml = "<td id='LN"+lineNumber+"' class='line-number'>"+lineNumber+"</td>"; + const lineContentHtml = "<td id='LC"+lineNumber+"' class='line-content'>"+escapeHtml(line)+"</td>"; + return "<tr>"+ lineNumberHtml + lineContentHtml + "</tr>"; + }).join(""); + return start + lines + end; +} + +const markdownExtensions = ["markdown", "mdown", "mkdn", "mkd", "md"]; + +export default Ember.Component.extend({ + isMarkdown : Ember.computed('path',function() { + const maybeExtension = this.get('path').split('.').pop(); + return markdownExtensions.any((extension) => (maybeExtension === extension)); + }), + html : Ember.computed('path','isMarkdown',function() { + if(this.get('isMarkdown')) { + return this.markdownConverter.makeHtml(this.get('text')); + } else { + return addLineNumbers(this.get('text')); + } + }), + init() { + this._super(...arguments); + this.markdownConverter = new showdown.Converter(); + }, + didInsertElement() { + const sourceCodeContainerElement = this.element.querySelector('.source-code-container'); + initializeLineSelection(sourceCodeContainerElement,this); + this.element.parentNode.scrollTop = 0; + }, + willDestroyElement : function () { + this.cleanup(); + }, + cleanup() { + if(this._onhashchange) { + window.removeEventListener('hashchange',this._onhashchange); + } + if(this._onkeydown) { + document.removeEventListener('keydown',this._onkeydown); + } + if(this._onkeyup) { + document.removeEventListener('keyup',this._onkeyup); + } + }, + pathObserver : Ember.observer('path',function() { + Ember.run.next(this,() => { + this.cleanup(); + this.didInsertElement(); + }); + }) +}); diff --git a/javascript/app/components/type-component.js b/javascript/app/components/type-component.js new file mode 100644 index 0000000..c19facc --- /dev/null +++ b/javascript/app/components/type-component.js @@ -0,0 +1,29 @@ +import Ember from 'ember'; +import {goToDefinition} from '../utils/go-to-definition'; + +export default Ember.Component.extend({ + store : Ember.inject.service('store'), + tagName : 'span', + classNames: ["type-component"], + contextMenu() {//right mouse button click to show kind of a type constructor or type variable + if(this.get('identifiers') && this.get('internalId')) { + this.set('expanded',true); + } + return false; + }, + linkClass : Ember.computed('identifierInfo',function() { + return this.get('identifierInfo') ? "link" : ""; + }), + identifierInfo : Ember.computed('internalId',function() { + return this.get('internalId') ? this.get('identifiers')[this.get('internalId')] : null; + }), + actions : { + onmouseup (event) { + if(this.get('identifierInfo') && (event.which !== 3 )) { + const locationInfo = this.get('identifierInfo').locationInfo; + goToDefinition(this.get('store'),locationInfo,event.which,this.get('currentLineNumber')); + return false; + } + } + } +}); diff --git a/javascript/app/components/type-signature-text.js b/javascript/app/components/type-signature-text.js new file mode 100644 index 0000000..e4eb200 --- /dev/null +++ b/javascript/app/components/type-signature-text.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; +export default Ember.Component.extend({ + tagName : "span" +}); diff --git a/javascript/app/components/type-signature.js b/javascript/app/components/type-signature.js new file mode 100644 index 0000000..ed1849c --- /dev/null +++ b/javascript/app/components/type-signature.js @@ -0,0 +1,23 @@ +import Ember from 'ember'; +export default Ember.Component.extend({ + tagName : "span", + expandTypeSynonyms: false, + expandTypeSynonymsLabel : Ember.computed('expandTypeSynonyms',function() { + return this.get('expandTypeSynonyms') ? "Show type synonyms" : "Expand type synonyms"; + }), + components : Ember.computed('type','expandTypeSynonyms',function() { + if(this.get('expandTypeSynonyms') && this.get('type.componentsExpanded')) { + return this.get('type.componentsExpanded'); + } else { + return this.get('type.components'); + } + }), + typeObserver : Ember.observer('type',function() { + this.set('expandTypeSynonyms',false); + }), + actions : { + toggleExpandTypeSynonyms () { + this.toggleProperty('expandTypeSynonyms'); + } + } +}); diff --git a/javascript/app/controllers/application.js b/javascript/app/controllers/application.js new file mode 100644 index 0000000..2936011 --- /dev/null +++ b/javascript/app/controllers/application.js @@ -0,0 +1,21 @@ +import {updateColorThemeCss,themes} from '../utils/color-themes'; +import Ember from 'ember'; + +export default Ember.Controller.extend({ + settings : Ember.inject.service('settings'), + themes: Object.values(themes), + init() { + this._super(...arguments); + updateColorThemeCss(this.get('settings').get('colorTheme')); + }, + currentTheme: Ember.computed('settings',function() { + return this.get('settings.colorTheme.id'); + }), + actions : { + themeChanged (themeId) { + const theme = themes[themeId]; + this.get('settings').set('colorTheme',theme); + updateColorThemeCss(theme); + } + } +}); diff --git a/javascript/app/controllers/package.js b/javascript/app/controllers/package.js new file mode 100644 index 0000000..45a8bab --- /dev/null +++ b/javascript/app/controllers/package.js @@ -0,0 +1,24 @@ +import Ember from 'ember'; +import {goToDefinition} from '../utils/go-to-definition'; +export default Ember.Controller.extend({ + store : Ember.inject.service('store'), + currentFile : null, + loadItemsFunction : null, + query : null, + actions : { + searchIdentifier (query) { + if(query) { + this.set('currentFile',null); + document.title = this.get('model.id'); + this.transitionToRoute('package.search',query); + } + }, + showIdentifier (identifierInfo) { + goToDefinition(this.get('store'), + identifierInfo.locationInfo, + 1,//left mouse button + null); + return false; + } + } +}); diff --git a/javascript/app/controllers/package/index.js b/javascript/app/controllers/package/index.js new file mode 100644 index 0000000..cd02416 --- /dev/null +++ b/javascript/app/controllers/package/index.js @@ -0,0 +1,14 @@ +import Ember from 'ember'; +export default Ember.Controller.extend({ + modulesFiltered : Ember.computed('model','query',function () { + const query = this.get('query'); + const modules = Object.keys(this.get('model.modules')).sort(); + if(query) { + const regExp = new RegExp(query,"i"); + return modules.filter((p) => p.search(regExp) != -1); + } else { + return modules; + } + }) +}); + diff --git a/javascript/app/controllers/package/search.js b/javascript/app/controllers/package/search.js new file mode 100644 index 0000000..46f2efd --- /dev/null +++ b/javascript/app/controllers/package/search.js @@ -0,0 +1,15 @@ +import Ember from 'ember'; +import {goToDefinition} from '../../utils/go-to-definition'; + +export default Ember.Controller.extend({ + store : Ember.inject.service('store'), + actions : { + goToDefinition (locationInfo,event) { + goToDefinition(this.get('store'), + locationInfo, + event.which, + null); + return false; + } + } +}); diff --git a/javascript/app/controllers/package/show/file.js b/javascript/app/controllers/package/show/file.js new file mode 100644 index 0000000..c566e7e --- /dev/null +++ b/javascript/app/controllers/package/show/file.js @@ -0,0 +1,9 @@ +import Ember from 'ember'; +export default Ember.Controller.extend({ + settings : Ember.inject.service('settings'), + actions : { + findReferences(packageId,externalId,occName) { + this.send('updateReferences',packageId,externalId,occName); + } + } +}); diff --git a/javascript/app/controllers/packages.js b/javascript/app/controllers/packages.js new file mode 100644 index 0000000..a1724dd --- /dev/null +++ b/javascript/app/controllers/packages.js @@ -0,0 +1,12 @@ +import Ember from 'ember'; +export default Ember.Controller.extend({ + queryObserver : Ember.observer("query",function() { + Ember.run.debounce(this, () => { + const regExp = new RegExp(this.get('query'),"i"); + const packages = this.get('model').filter((p) => p.name.search(regExp) != -1); + Ember.run.next(() => { + this.set('packages',packages); + }); + }, 300); + }) +}); diff --git a/javascript/app/helpers/.gitkeep b/javascript/app/helpers/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/app/helpers/.gitkeep diff --git a/javascript/app/index.html b/javascript/app/index.html new file mode 100644 index 0000000..0c8f882 --- /dev/null +++ b/javascript/app/index.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>Haskell code explorer</title> + <meta name="description" content="Haskell code explorer"> + <meta name="google" content="notranslate"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + {{content-for 'head'}} + <link rel="stylesheet" href="/assets/vendor.css"> + <link rel="stylesheet" href="/assets/haskell-code-explorer.css"> + {{content-for 'head-footer'}} + </head> + <body> + {{content-for 'body'}} + <script pace-src="/assets/vendor.js"></script> + <script pace-src="/assets/haskell-code-explorer.js"></script> + {{content-for 'body-footer'}} + <noscript>You need to enable JavaScript to run this app.</noscript> + </body> +</html> diff --git a/javascript/app/router.js b/javascript/app/router.js new file mode 100644 index 0000000..f58e9ab --- /dev/null +++ b/javascript/app/router.js @@ -0,0 +1,20 @@ +import Ember from 'ember'; +import config from './config/environment'; + +var Router = Ember.Router.extend({ + location: config.locationType +}); + +Router.map(function() { + this.route('packages',{path:''}); + this.route('package', {path:'/package/:packageId'}, function() { + this.route('show',function() { + this.route('file', {path:'*filePath'}, function() { + }); + }); + this.route('search',{path:'/search/:query'}); + }); + this.route('bad-url', { path: '/*badurl' }); +}); + +export default Router; diff --git a/javascript/app/routes/application.js b/javascript/app/routes/application.js new file mode 100644 index 0000000..279bd32 --- /dev/null +++ b/javascript/app/routes/application.js @@ -0,0 +1,3 @@ +import Ember from 'ember'; +export default Ember.Route.extend({ +}); diff --git a/javascript/app/routes/package.js b/javascript/app/routes/package.js new file mode 100644 index 0000000..92fea03 --- /dev/null +++ b/javascript/app/routes/package.js @@ -0,0 +1,38 @@ +import Ember from 'ember'; +import {urls} from '../utils/api-urls'; + +export default Ember.Route.extend({ + store : Ember.inject.service('store'), + model (params) { + return this.get('store').loadPackage(params.packageId) + .catch((e) => {console.log(e);this.transitionTo("/package-not-found");}); + }, + afterModel(model) { + document.title = model.id; + }, + setupController(controller, model) { + this._super(controller, model); + const packageId = this.modelFor('package').id; + controller.set('bottomPanelVisible',false); + controller.set('createSearchUrlFunction',(query) => { + return urls.identifierSearchUrl(packageId,query); + }); + }, + actions : { + openFile (filePath) { + this.transitionTo('package.show.file',filePath); + }, + fileOpened (filePath) { + if(this.get('controller')) { + this.set('controller.currentFile',filePath); + } + }, + updateReferences(packageId,externalId,occName) { + this.set('controller.packageId',packageId); + this.set('controller.externalId',externalId); + this.set('controller.occName',occName); + this.set('controller.bottomPanelVisible',true); + this.set('controller.referencesUrl',urls.referencesUrl(packageId,externalId)+"?per_page=50"); + } + } +}); diff --git a/javascript/app/routes/package/index.js b/javascript/app/routes/package/index.js new file mode 100644 index 0000000..e36abd5 --- /dev/null +++ b/javascript/app/routes/package/index.js @@ -0,0 +1,7 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + afterModel : function (model,transition) { + transition.send("fileOpened",null); + } +}); diff --git a/javascript/app/routes/package/search.js b/javascript/app/routes/package/search.js new file mode 100644 index 0000000..7bc711b --- /dev/null +++ b/javascript/app/routes/package/search.js @@ -0,0 +1,36 @@ +import Ember from 'ember'; +import {urls} from '../../utils/api-urls'; +import {goToDefinition} from '../../utils/go-to-definition'; + +export default Ember.Route.extend({ + store : Ember.inject.service('store'), + model (params) { + return { + query: params.query, + url: urls.identifierSearchUrl(this.modelFor('package').id,params.query)+"?per_page=20" + }; + }, + afterModel () { + const onmouseup = (event) => { + // This makes links in documentation clickable + if(event.target.dataset.location) { + let location; + try { + location = JSON.parse(event.target.dataset.location); + } catch (e) { + console.log(e); + } + if(location) { + goToDefinition(this.get('store'),location,event.which); + } + } + }; + this._onmouseup = onmouseup; + document.addEventListener('mouseup',onmouseup); + }, + deactivate() { + if(this._onmouseup) { + document.removeEventListener('mouseup',this._onmouseup); + } + } +}); diff --git a/javascript/app/routes/package/show/file.js b/javascript/app/routes/package/show/file.js new file mode 100644 index 0000000..ead6ee8 --- /dev/null +++ b/javascript/app/routes/package/show/file.js @@ -0,0 +1,27 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + store : Ember.inject.service(), + model : function (params) { + const packageInfo = this.modelFor('package'); + if(packageInfo.modules[params.filePath]) { + return this.get('store').loadHaskellModule(packageInfo.id,params.filePath) + .catch((e) => {console.log(e);this.transitionTo("/not-found");}); + } else { + return this.get('store').loadFile(packageInfo.id,params.filePath) + .then((result) => { + document.title = packageInfo.id; + return result; + }) + .catch((e) => {console.log(e);this.transitionTo("/not-found");}); + } + }, + afterModel (model) { + document.title = model.id + " - " + this.modelFor('package').id; + }, + actions : { + didTransition : function () { + this.send("fileOpened",this.currentModel.id); + } + } +}); diff --git a/javascript/app/routes/package/show/index.js b/javascript/app/routes/package/show/index.js new file mode 100644 index 0000000..e36abd5 --- /dev/null +++ b/javascript/app/routes/package/show/index.js @@ -0,0 +1,7 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + afterModel : function (model,transition) { + transition.send("fileOpened",null); + } +}); diff --git a/javascript/app/routes/packages.js b/javascript/app/routes/packages.js new file mode 100644 index 0000000..2bbf9bc --- /dev/null +++ b/javascript/app/routes/packages.js @@ -0,0 +1,16 @@ +import Ember from 'ember'; +import {urls} from '../utils/api-urls'; +import config from '../config/environment'; + +export default Ember.Route.extend({ + model () { + return Ember.$.getJSON(urls.packagesUrl); + }, + setupController(controller, model) { + this._super(controller, model); + controller.set('packages',model); + }, + afterModel () { + document.title = config.APP.title; + } +}); diff --git a/javascript/app/services/settings.js b/javascript/app/services/settings.js new file mode 100644 index 0000000..a79779a --- /dev/null +++ b/javascript/app/services/settings.js @@ -0,0 +1,21 @@ +import Ember from 'ember'; +import {themes} from '../utils/color-themes'; + +export default Ember.Service.extend({ + init() { + this._super(...arguments); + if(localStorage) { + const colorThemeId = localStorage.getItem("colorThemeId"); + const colorTheme = themes[colorThemeId]; + if(colorThemeId) { + this.set('colorTheme',colorTheme); + } + } + }, + colorTheme : themes["darkTheme"], + settingsObserver : Ember.observer("colorTheme",function() { + if(localStorage) { + localStorage.setItem("colorThemeId",this.get('colorTheme').id); + } + }) +}); diff --git a/javascript/app/services/store.js b/javascript/app/services/store.js new file mode 100644 index 0000000..cf48f9d --- /dev/null +++ b/javascript/app/services/store.js @@ -0,0 +1,141 @@ +import Ember from 'ember'; +import RSVP from 'rsvp'; +import {urls} from '../utils/api-urls'; + + +//******************************************************************************** +//https://coderwall.com/p/zrlulq/parsing-a-link-header-in-javascript +function unquote(value) { + if (value.charAt(0) == '"' && value.charAt(value.length - 1) == '"') { + return value.substring(1, value.length - 1); + } else { + return value; + } +} + +function parseLinkHeader(header) { + if(!header) {return {}} + var linkexp = /<[^>]*>\s*(\s*;\s*[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*")))*(,|$)/g; + var paramexp = /[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*"))/g; + + var matches = header.match(linkexp); + var rels = new Object(); + for (let i = 0; i < matches.length; i++) { + var split = matches[i].split('>'); + var href = split[0].substring(1); + var ps = split[1]; + var link = new Object(); + link.href = href; + var s = ps.match(paramexp); + for (let j = 0; j < s.length; j++) { + var p = s[j]; + var paramsplit = p.split('='); + var name = paramsplit[0]; + link[name] = unquote(paramsplit[1]); + } + + if (link.rel != undefined) { + rels[link.rel] = link; + } + } + return rels; +} +//******************************************************************************** + + +export default Ember.Service.extend({ + init() { + this.packages = {}; + this.files = {}; + this.haskellModules = {}; + this.definitionSites = {}; + this.modulePaths = {}; + this.expressions = {}; + this.references = {}; + }, + loadPackage(packageId) { + const packageInfo = this.packages[packageId]; + if(packageInfo) { + return new RSVP.Promise((resolve) => {resolve(packageInfo);}); + } else { + const url = urls.packageInfoUrl(packageId); + return Ember.$.getJSON(url).then((packageInfo) => { + this.packages[packageId] = packageInfo; + return packageInfo; + }); + } + }, + loadFile(packageId,filePath) { + const fileId = packageId + "/" + filePath; + const file = this.files[fileId]; + if(file) { + return new RSVP.Promise((resolve) => {resolve(file);}); + } else { + const url = urls.fileUrl(packageId,filePath); + return Ember.$.get({url:url,dataType:"text"}).then((text) => { + const file = {}; + file.text = text; + file.packageId = packageId; + file.isHaskellModule = false; + file.id = filePath; + this.files[fileId] = file; + return file; + }); + } + }, + loadHaskellModule(packageId,filePath) { + const moduleId = packageId + "/" + filePath ; + const module = this.haskellModules[moduleId]; + if(module) { + return new RSVP.Promise((resolve)=>{resolve(module);}); + } else { + const url = urls.haskellModuleUrl(packageId,filePath); + return Ember.$.getJSON(url).then((module) => { + module.packageId = packageId; + module.isHaskellModule = true; + this.haskellModules[moduleId] = module; + return module; + }); + } + }, + loadDefinitionSite(packageId,moduleName,componentId,entity,name) { + const id = packageId + "/"+ componentId + "/" + moduleName + "/" + entity + "/" + name; + const definitionSite = this.definitionSites[id]; + if(definitionSite) { + return new RSVP.Promise((resolve)=>{resolve(definitionSite);}); + } else { + const url = urls.identifierDefinitionSiteUrl(packageId,moduleName,componentId,entity,name); + return Ember.$.getJSON(url).then((definitionSite) => { + this.definitionSites[id] = definitionSite; + return definitionSite; + }); + } + }, + loadExpressions(packageId,modulePath,lineStart,columnStart,lineEnd,columnEnd) { + const id = packageId + "/" + encodeURIComponent(modulePath) + + "/" + lineStart + "/" + columnStart + "/" + lineEnd + "/" + columnEnd; + const exprs = this.expressions[id]; + if(exprs) { + return new RSVP.Promise((resolve)=>{resolve(exprs);}); + } else { + const url = urls.expressionsUrl(packageId,modulePath,lineStart,columnStart,lineEnd,columnEnd); + return Ember.$.getJSON(url).then((exprs) => { + this.expressions[id] = exprs; + return exprs; + }); + } + }, + loadFromUrlPaginated(url) { + return Ember.$.getJSON(url).then((items,textStatus,jqXHR) => { + const linkHeaderText = jqXHR.getResponseHeader('Link'); + const totalCountHeaderText = jqXHR.getResponseHeader('x-total-count'); + const linkHeader = parseLinkHeader(linkHeaderText); + const total = parseInt(totalCountHeaderText); + return { + items:items, + total:total, + linkHeader:linkHeader + }; + }); + } +}); diff --git a/javascript/app/styles/app.scss b/javascript/app/styles/app.scss new file mode 100644 index 0000000..f094187 --- /dev/null +++ b/javascript/app/styles/app.scss @@ -0,0 +1,555 @@ +@import "ember-cli-bootstrap-4/bootstrap"; + +body { + font-size:14px; +} + +a, a:visited, a:focus, a:active, a:hover{ + outline:0 none; +} + +input:focus{ + outline:none; +} + +p { + margin-top:1rem; +} + +.ember-radio-button { + cursor:pointer; +} + +label { + margin-bottom:0px; +} + +ul { + list-style: none; + padding : 0; +} + +ol { + list-style: none; + padding : 0; +} + +li { + list-style: none; +} + +.documentation { + margin-top:10px; + li { + list-style: disc outside none; + } + ul { + padding-left:15px; + } + ol { + padding-left:15px; + } +} + +.flex-container { + display:flex; + flex-direction:column; + height:100%; + width:100%; +} + +.absolute-container { + position:absolute; + top:0; + bottom:0; + left:0; + right:0; +} + +.header { + flex: none; + padding:5px; + img { + float:left; + } +} + +.header-item { + display:inline-block; + margin-top:5px; + font-size : 1rem; + margin-right: 40px; + white-space: nowrap; + @media screen and (max-width: 700px) { + margin-right: 10px; + margin-left: 10px; + } +} + +.content { + flex: auto; + position:relative; + overflow:auto; +} + +.packages { + flex:auto; + overflow-y:auto; + li { + margin-bottom: 5px; + } + a { + margin-right:5px; + } +} + +.package-content { + flex:auto; + position:relative; +} + +.package-header { + padding:5px; +} + +.package-header-input { + display:inline-block; + margin-right:10px; +} + +.package-modules { + margin-left:10px; +} + +.module-name { + font-size:0.7rem; +} + +.package-search-form { + max-width:500px; + margin-bottom:10px; + margin-top:20px; +} + +.package-header-filename { + white-space: nowrap; +} + +.package-header-package-name { + margin-right:10px; + font-size:17px; +} + +.module-search-input { + max-width:500px; + margin:5px; +} + +ul.modules { + position:absolute; + top:50px; + bottom:0px; + margin:0px; + padding-left:15px; + left:0px; + right:0px; + display:flex; + flex-direction: column; + flex-wrap: wrap; + li { + margin-right: 10px; + } + overflow-x:auto; +} + +.left-panel { + position: absolute; + bottom : 0; + top : 0; + left : 0; + width : 300px; +} + +.show-left-panel-button { + position:absolute; + top:0px; + right:-20px; + z-index:2; + width:20px; + height:20px; + text-align:center; + vertical-align:middle; + a { + text-decoration:none; + } + opacity:0.6; + display:none; +} + +.show-left-panel-button:hover { + opacity:1; + cursor:pointer; +} + +.hide-file-tree { + position: relative; + top: 8px; + left: 3px; +} + +.hide-declarations { + margin:7px; +} + +.right-panel { + position: absolute; + bottom : 0; + top : 0; + right : 0; + left : 300px; + overflow-x: auto; + overflow-y: auto; +} + +.file-tree-container { + overflow-x: hidden; + overflow-y: auto; + position: absolute; + bottom : 0; + top : 0; + left: 0; + right: 0; +} + +.file-container { + position: absolute; + bottom : 0px; + top : 0; + right : 0; + left : 0; + overflow-x: auto; + overflow-y: auto; +} + +.bottom-panel { + display:none; + position: absolute; + bottom : 0; + right : 0; + left : 0; + overflow-x: auto; + overflow-y: auto; + z-index:4; +} + +.bottom-panel-header { + position: absolute; + top: 0; + right : 0; + left : 0; + height: 35px; + padding: 5px; +} + +.bottom-panel-content { + position: absolute; + bottom : 0; + top : 35px; + right : 0; + left : 0; + overflow-x: auto; + overflow-y: auto; +} + +.bottom-panel-header-options { + float:right; +} + +.bottom-panel-header-content { + white-space:nowrap; +} + +.highlighted-identifier { + border-radius: 3px; + box-shadow: 0 0 0 1px #B4B4B4; +} + +.identifier { + cursor:pointer; +} + +td.line-number { + cursor:pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: 1%; + min-width: 60px; + text-align: left; + padding-left:10px; + opacity: 0.8; +} + +td.line-number:hover { + opacity : 1; +} + +td.line-content { + padding-left:5px; + +} + +$source-code-font:Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + +.source-code { + font-family: $source-code-font; + white-space:pre; + line-height:1.25; + tab-size: 4; +} + +.break-word { + word-wrap:break-word; +} + +code,pre { + font-family: $source-code-font !important; + white-space:pre; + line-height:1.25; + font-size:100%; + color : unset; +} + +.source-code-font { + font-family: $source-code-font; + line-height:1.25; +} + +.source-code-snippet { + padding: 4px; + text-decoration:none !important; + display:block; +} + +.source-code-snippet > b { + border-radius: 3px; + border: 1px solid #B4B4B4; + margin: -1px; +} + +.source-code-snippet:hover { + text-decoration:none; +} + +.source-code-container { + margin : 5px; +} + +.declarations { + position:fixed; + top:150px; + right:15px; + width: 450px; + z-index:1; + div { + margin : 5px; + } +} + +.declarations-header { + opacity:0.9; + height:50px; +} + +.declarations-content { + opacity:0.9; + position:absolute; + top:50px; + left:0px; + right:0px; + max-height:500px; + overflow-y:auto; + overflow-x:hidden; +} + +@media screen and (max-width: 1500px) { + .declarations { + display:none; + } +} + +.info-window-container { + position:absolute; + width:750px; + z-index:10; +} + +.info-window-header { + margin:5px; + width: 100%; + cursor: move; + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; +} + +.info-window-content { + max-height:200px; + overflow-x:auto; + overflow-y:auto; +} + +.info-window-options { + margin-right:10px; + margin-left:10px; + float:right; +} + + +.ui-draggable-dragging .info-window-header { + cursor: grabbing; + cursor: -moz-grabbing; + cursor: -webkit-grabbing; +} + +span.link { + cursor:pointer; + white-space:nowrap; +} + +span.link:hover { + text-decoration:underline; +} + +.ui-resizable-n { + height: 13px !important;; +} + +.ui-resizable-w { + width: 13px !important;; +} + +.type-info { + padding-top: 5px; + padding-bottom: 5px; +} + +.type-component { + display: inline-block; +} + +dd { + margin-left: 1em; +} + +.autocomplete-container { + position:absolute; + z-index:10; + display:none; + left:0px; +} + +ul.autocomplete-items { + li { + cursor:pointer; + max-height: 200px; + overflow: hidden; + } +} + +.autocomplete-item { + padding:5px; +} + +.file-tree-header { + position:absolute; + top:0; + left:0; + right:0; + height:50px; + margin:5px; +} + +.file-tree-content { + position:absolute; + top:50px; + left:0; + right:0; + bottom:0; + overflow-x:auto; + overflow-x:auto; +} + +button { + color:black; +} + +.paginated-list-header { + position:absolute; + top:0px; + left:0px; + right:0px; + height:40px; + padding: 5px; + white-space:nowrap; +} + +.paginated-list-content { + position:absolute; + top:40px; + bottom:0px; + left:0px; + right:0px; + overflow:auto; +} + +.pagination-button { + font-size: 10px; +} + +.search-results-header { + position:absolute; + top:0px; + left:0px; + right:0px; + height:35px; + padding: 5px; + white-space:nowrap; +} + +.search-results-content { + position:absolute; + top:35px; + bottom:0px; + left:0px; + right:0px; +} + +.search-result { + padding:5px; +} + +.expression { + margin-bottom:15px; +} + +.expressions { + margin:5px; +} + +.file-name { + margin-left:5px; +} + +.identifier-info { + margin:5px; +} + +.identifier-module { + margin-top:10px; +} + +.identifier-menu-item { + margin-right:10px; +} diff --git a/javascript/app/templates/application.hbs b/javascript/app/templates/application.hbs new file mode 100644 index 0000000..bd64fdb --- /dev/null +++ b/javascript/app/templates/application.hbs @@ -0,0 +1,26 @@ +<div class="absolute-container"> + <div class="flex-container"> + <div class="header"> + <img src="/assets/haskell.ico"> + <div class="container"> + <span class="header-item">{{#link-to 'packages'}}Haskell packages{{/link-to}}</span> + <span class="header-item"><a target="_blank" href="https://github.com/alexwl/haskell-code-explorer">About</a></span> + <span class="header-item"> + {{#each themes as |theme|}} + {{#radio-button + value=theme.id + groupValue=currentTheme + changed="themeChanged"}} + <span>{{theme.name}}</span> + {{/radio-button}} + {{/each}} + </span> + </div> + </div> + <div class="content"> + <div class="absolute-container"> + {{outlet}} + </div> + </div> + </div> +</div> diff --git a/javascript/app/templates/bad-url.hbs b/javascript/app/templates/bad-url.hbs new file mode 100644 index 0000000..6b36386 --- /dev/null +++ b/javascript/app/templates/bad-url.hbs @@ -0,0 +1,6 @@ +<div class="container"> + <div style="margin-top:10px"> + <h1>Not found</h1> + <div><a href="/">Main page</a></div> + </div> +</div> diff --git a/javascript/app/templates/components/.gitkeep b/javascript/app/templates/components/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/app/templates/components/.gitkeep diff --git a/javascript/app/templates/components/bottom-panel.hbs b/javascript/app/templates/components/bottom-panel.hbs new file mode 100644 index 0000000..26b1919 --- /dev/null +++ b/javascript/app/templates/components/bottom-panel.hbs @@ -0,0 +1,9 @@ +<div class="bottom-panel-header"> + <span class="bottom-panel-header-content">{{yield "header"}}</span> + <span class="bottom-panel-header-options"> + <a href="#" {{action "close"}}>Close</a> + </span> +</div> +<div class="bottom-panel-content"> + {{yield "body"}} +</div> diff --git a/javascript/app/templates/components/expression-info.hbs b/javascript/app/templates/components/expression-info.hbs new file mode 100644 index 0000000..509fb24 --- /dev/null +++ b/javascript/app/templates/components/expression-info.hbs @@ -0,0 +1,8 @@ +<div class="expressions"> + {{#each expressions as |expression|}} + <div class="expression"> + <span class="source-code">{{expression.sourceCode}}</span> + <br/>:: {{type-signature type=expression.info.exprType identifiers=identifiers currentLineNumber=currentLineNumber}} + </div> + {{/each}} +</div> diff --git a/javascript/app/templates/components/file-tree.hbs b/javascript/app/templates/components/file-tree.hbs new file mode 100644 index 0000000..b5e38ef --- /dev/null +++ b/javascript/app/templates/components/file-tree.hbs @@ -0,0 +1,8 @@ +<div class="file-tree-header"> + <div class="input-group"> + {{input class="form-control" value=query placeholder="Filename"}}<a class="hide-file-tree" href="#" {{action "hide"}}>Hide</a> + </div> +</div> +<div class="file-tree-content"> + <div class="file-tree"></div> +</div> diff --git a/javascript/app/templates/components/haskell-module.hbs b/javascript/app/templates/components/haskell-module.hbs new file mode 100644 index 0000000..77b9df7 --- /dev/null +++ b/javascript/app/templates/components/haskell-module.hbs @@ -0,0 +1,57 @@ +<div class="source-code-container"></div> +{{#if declarations}} + <div class="declarations"> + <div class="declarations-header"> + <div class="input-group"> + {{input class="form-control" value=query placeholder="Identifier"}}<a class="hide-declarations" href="#" {{action "toggleShowDeclarations"}}>{{showDeclarationsLabel}}</a> + </div> + </div> + {{#if showDeclarations}} + <div id="declarations-content" class="declarations-content"> + <ul> + {{#infinite-list containerElementId="declarations-content" elements=filteredDeclarations perPage=30 as |declaration|}} + <li class="declaration"> + <div class="declaration"> + <a {{action "goToLine" declaration.lineNumber}} href="#"><span class="source-code-font">{{declaration.name}}{{#if declaration.declType}} :: {{type-signature-text components=declaration.declType.components}}{{/if}}</span> + </a><span>{{#unless declaration.isExported}}<i>(not exported)</i>{{/unless}}</span> + </div> + </li> + {{/infinite-list}} + </ul> + </div> + {{/if}} + </div> +{{/if}} +{{#info-window + targetElement=selectedIdentifier + isHoveredOverIdentifier=isHoveredOverIdentifier + hasSelectedExpression=hasSelectedExpression + containerElementId="right-panel" as |section|}} + {{#if (eq section "header")}} + {{#if hasSelectedExpression}} + <div>Selected expressions</div> + {{else}} + {{identifier-name + identifierInfo=identifierInfo + identifierOccurrence=identifierOccurrence + identifierElement=selectedIdentifier + currentPackageId=packageId + isBinder=identifierOccurrence.isBinder + currentLineNumber=currentLineNumber + findReferences=findReferences}} + {{/if}} + {{else}} + {{#unless hasSelectedExpression}} + {{identifier-info + identifierInfo=identifierInfo + identifierOccurrence=identifierOccurrence + identifiers=identifiers + currentLineNumber=currentLineNumber}} + {{else}} + {{expression-info + expressions=expressions + identifiers=identifiers + currentLineNumber=currentLineNumber}} + {{/unless}} + {{/if}} +{{/info-window}} diff --git a/javascript/app/templates/components/identifier-info.hbs b/javascript/app/templates/components/identifier-info.hbs new file mode 100644 index 0000000..7146a2e --- /dev/null +++ b/javascript/app/templates/components/identifier-info.hbs @@ -0,0 +1,39 @@ +{{#if (or identifierInfo identifierOccurrence.idOccType)}} + <div class="identifier-info"> + {{#if identifierInfo}} + {{#if isNaughtyRecSel}} + <i>This record selector can never be called because its type mentions a type variable that isn't in the result type of the constructor</i> + {{else}} + {{type-signature + type=identifierInfo.idType + identifiers=identifiers + currentLineNumber=currentLineNumber}} + {{/if}} + {{/if}} + {{#if (and identifierInfo identifierOccurrence identifierOccurrence.idOccType)}} + <div style="height:10px"></div> + {{/if}} + {{#if (and identifierOccurrence identifierOccurrence.idOccType)}} + {{type-signature + type=identifierOccurrence.idOccType + identifiers=identifiers + currentLineNumber=currentLineNumber}} + {{/if}} + <div class="documentation"> + {{{identifierInfo.doc}}} + {{{downloadedDocumentation}}} + </div> + {{#if identifierOccurrence.instanceResolution}} + <div style="height:10px"></div> + {{/if}} + <div> + {{#if identifierOccurrence.instanceResolution}} + {{instance-info + instance=identifierOccurrence.instanceResolution + identifiers=identifiers + nestedLevel=0 + currentLineNumber=currentLineNumber}} + {{/if}} + </div> + </div> +{{/if}} diff --git a/javascript/app/templates/components/identifier-name.hbs b/javascript/app/templates/components/identifier-name.hbs new file mode 100644 index 0000000..ca16e23 --- /dev/null +++ b/javascript/app/templates/components/identifier-name.hbs @@ -0,0 +1,12 @@ +<div> + <span class="source-code-font break-word identifier-menu-item" style={{style}}>{{#if identifierInfo.demangledOccName}}{{identifierInfo.demangledOccName}}{{else}}{{name}}{{/if}}</span> + {{#unless isBinder}} + {{#if location}} + <span class="identifier-menu-item">{{location}}</span> + <span class="link identifier-menu-item" onmouseup={{action "goToDefinition"}}>Go to definition</span> + {{/if}} + {{/unless}} + {{#if isExternalIdentifier}} + <span class="link identifier-menu-item" onmouseup={{action "findReferences" identifierInfo currentPackageId}}>Find references</span> + {{/if}} +</div> diff --git a/javascript/app/templates/components/infinite-list.hbs b/javascript/app/templates/components/infinite-list.hbs new file mode 100644 index 0000000..ab103d4 --- /dev/null +++ b/javascript/app/templates/components/infinite-list.hbs @@ -0,0 +1,3 @@ +{{#each renderedElements as |element|}} + {{yield element}} +{{/each}} diff --git a/javascript/app/templates/components/info-window.hbs b/javascript/app/templates/components/info-window.hbs new file mode 100644 index 0000000..003e2c5 --- /dev/null +++ b/javascript/app/templates/components/info-window.hbs @@ -0,0 +1,12 @@ +<div class="info-window"> + <div class="info-window-header"> + <div class="info-window-options"> + <a href="#" {{action "pin"}}>{{#if isPinned}}Unpin{{else}}Pin{{/if}}</a> + <a href="#" {{action "close"}}>Close</a> + </div> + {{yield "header"}} + </div> + <div class="info-window-content"> + {{yield "body"}} + </div> +</div> diff --git a/javascript/app/templates/components/input-with-autocomplete.hbs b/javascript/app/templates/components/input-with-autocomplete.hbs new file mode 100644 index 0000000..eb0100d --- /dev/null +++ b/javascript/app/templates/components/input-with-autocomplete.hbs @@ -0,0 +1,19 @@ +<div class="input-group"> + {{input class="form-control search-input" value=query placeholder=placeholder}} + <div class="autocomplete-container"> + {{# if items}} + <ul class="autocomplete-items"> + {{#each items as |item index|}} + <li class="{{if (eq index highlightedItemIndex) "highlighted"}}" onclick={{action "goToDefinition" item}}> + <div class="autocomplete-item"> + {{yield item}} + </div> + </li> + {{/each}} + </ul> + {{/if}} + </div> + <div class="input-group-append"> + <button id="search-input" class="btn btn-outline-secondary" {{action "onSubmit" query}}>Search</button> + </div> +</div> diff --git a/javascript/app/templates/components/instance-info.hbs b/javascript/app/templates/components/instance-info.hbs new file mode 100644 index 0000000..b5c2fdf --- /dev/null +++ b/javascript/app/templates/components/instance-info.hbs @@ -0,0 +1,10 @@ +{{#if instance}} + <div style={{style}}> + <span class="source-code-font"> + instance {{type-signature type=instance.instanceType identifiers=identifiers currentLineNumber=currentLineNumber noExpand=true}}</span> + (<span class="link" onclick={{action "goToDefinition"}}>Go to definition</span>) + {{#each instance.instances as |inst|}} + {{instance-info instance=inst identifiers=identifiers nestedLevel=nextNestedLevel currentLineNumber=currentLineNumber}} + {{/each}} + </div> +{{/if}} diff --git a/javascript/app/templates/components/paginated-list.hbs b/javascript/app/templates/components/paginated-list.hbs new file mode 100644 index 0000000..2ae9813 --- /dev/null +++ b/javascript/app/templates/components/paginated-list.hbs @@ -0,0 +1,17 @@ +<div class="paginated-list-header"> + <span>Found {{total}}</span> + {{#if (or next prev)}} + + + <span> + {{#if first}}<button class="btn btn-outline-secondary btn-sm" {{action "update" first.href}}><<</button>{{/if}} + {{#if prev}}<button button class="btn btn-outline-secondary btn-sm" {{action "update" prev.href}}><</button>{{/if}} + {{firstItemOnPage}} - {{lastItemOnPage}} + {{#if next}}<button button class="btn btn-outline-secondary btn-sm" {{action "update" next.href}}>></button>{{/if}} + {{#if last}}<button button class="btn btn-outline-secondary btn-sm" {{action "update" last.href}}>>></button>{{/if}} + </span> + {{/if}} +</div> +<div class="paginated-list-content"> + {{yield items}} +</div> diff --git a/javascript/app/templates/components/resizable-panel.hbs b/javascript/app/templates/components/resizable-panel.hbs new file mode 100644 index 0000000..0fd3aa7 --- /dev/null +++ b/javascript/app/templates/components/resizable-panel.hbs @@ -0,0 +1,5 @@ +<div class="absolute-container">{{yield (action "hide")}} + <div onclick={{action "hide"}} class="show-left-panel-button"> + {{{hideButtonLabel}}} + </div> +</div> diff --git a/javascript/app/templates/components/text-file.hbs b/javascript/app/templates/components/text-file.hbs new file mode 100644 index 0000000..6a50453 --- /dev/null +++ b/javascript/app/templates/components/text-file.hbs @@ -0,0 +1,3 @@ +<div class="source-code-container"> +{{{html}}} +</div> diff --git a/javascript/app/templates/components/type-component.hbs b/javascript/app/templates/components/type-component.hbs new file mode 100644 index 0000000..775324e --- /dev/null +++ b/javascript/app/templates/components/type-component.hbs @@ -0,0 +1,3 @@ +{{#if (and expanded identifierInfo)}}({{/if}} +<span class="source-code {{linkClass}}" onmouseup={{action "onmouseup"}}>{{occName}}</span> +{{#if (and expanded identifierInfo)}} :: {{type-signature type=identifierInfo.idType identifiers=identifiers noExpand=true}}){{/if}} diff --git a/javascript/app/templates/components/type-signature-text.hbs b/javascript/app/templates/components/type-signature-text.hbs new file mode 100644 index 0000000..505a466 --- /dev/null +++ b/javascript/app/templates/components/type-signature-text.hbs @@ -0,0 +1,2 @@ +{{!-- No newlines to get rid of spaces between spans --}} +{{#each components as |typeComponent|}}{{#if (eq typeComponent.tag "Text")}}{{typeComponent.contents}}{{else}}{{typeComponent.name}}{{/if}}{{/each}} diff --git a/javascript/app/templates/components/type-signature.hbs b/javascript/app/templates/components/type-signature.hbs new file mode 100644 index 0000000..249f1b8 --- /dev/null +++ b/javascript/app/templates/components/type-signature.hbs @@ -0,0 +1,10 @@ +{{!-- No newlines to get rid of spaces between spans --}} +{{#each components as |typeComponent|}}{{#if (eq typeComponent.tag "Text")}}<span class="source-code">{{typeComponent.contents}}</span>{{else}}{{type-component occName=typeComponent.name internalId=typeComponent.internalId identifiers=identifiers currentLineNumber=currentLineNumber}}{{/if}}{{/each}} +{{#unless noExpand}} + {{#if type.componentsExpanded}} + <div style="margin-top:5px"> + <button class="btn btn-outline-secondary btn-sm" {{action "toggleExpandTypeSynonyms"}}>{{expandTypeSynonymsLabel}} + </button> + </div> + {{/if}} +{{/unless}} diff --git a/javascript/app/templates/package.hbs b/javascript/app/templates/package.hbs new file mode 100644 index 0000000..c8ed0dc --- /dev/null +++ b/javascript/app/templates/package.hbs @@ -0,0 +1,57 @@ +<div class="flex-container"> + <div class="package-header"> + <span class="package-header-package-name">{{#link-to 'package' model}}{{model.id}}{{/link-to}}</span> + <span class="package-header-input"> + {{#input-with-autocomplete + onSubmit=(action 'searchIdentifier') + createSearchUrlFunction=createSearchUrlFunction + maxItems=10 + selectItem=(action 'showIdentifier') + placeholder="Identifier" as |identifier|}} + <span class="source-code-font">{{identifier.demangledOccName}} :: {{type-signature-text components=identifier.idType.components}}</span> + <div class="module-name"> + {{#if identifier.locationInfo.modulePath}} + {{identifier.locationInfo.modulePath}} + {{else}} + {{identifier.locationInfo.moduleName}} + {{/if}} + </div> + {{/input-with-autocomplete}} + </span> + {{#if currentFile}} + <span class="package-header-filename"> + {{currentFile}} + </span> + {{/if}} + </div> + <div class="package-content"> + {{#resizable-panel class="left-panel" alsoResizeElementId="#right-panel" as |hide|}} + <div class="file-tree-container"> + {{file-tree directoryTree=model.directoryTree openFile="openFile" currentFile=currentFile packageId=model.id hide=hide}} + </div> + {{/resizable-panel}} + <div id="right-panel" class="right-panel"> + <div id="file-container" class="file-container"> + {{outlet}} + </div> + {{#bottom-panel visible=bottomPanelVisible topPanelElementId="#file-container" containerElementId="#right-panel" as |section|}} + {{#if (eq section "header")}} + References to <b><span class="source-code">{{occName}}</span></b> in <span class="source-code">{{packageId}}</span> + {{else}} + {{#paginated-list url=referencesUrl as |files|}} + <ul> + {{#each files as |file|}} + <li> + <div class="file-name"><a href="/package/{{packageId}}/show/{{file.name}}">{{file.name}}</a></div> + {{#each file.references as |reference|}} + <a class="source-code source-code-snippet" href="/package/{{packageId}}/show/{{file.name}}#L{{reference.idSrcSpan.line}}">{{{reference.sourceCodeHtml}}}</a> + {{/each}} + </li> + {{/each}} + </ul> + {{/paginated-list}} + {{/if}} + {{/bottom-panel}} + </div> + </div> +</div> diff --git a/javascript/app/templates/package/index.hbs b/javascript/app/templates/package/index.hbs new file mode 100644 index 0000000..e9bc592 --- /dev/null +++ b/javascript/app/templates/package/index.hbs @@ -0,0 +1,12 @@ +<div class="package-modules"> + <div class="module-search-input"> + {{input class="form-control" type="text" value=query placeholder="Module name"}} + </div> + <ul class="modules"> + {{#each modulesFiltered as |module|}} + <li> + <a href="/package/{{model.id}}/show/{{module}}">{{module}}</a> + </li> + {{/each}} + </ul> +</div> diff --git a/javascript/app/templates/package/search.hbs b/javascript/app/templates/package/search.hbs new file mode 100644 index 0000000..ebc4d52 --- /dev/null +++ b/javascript/app/templates/package/search.hbs @@ -0,0 +1,21 @@ +<div class="search-results-header"> + Query : {{model.query}} +</div> +<div class="search-results-content"> + {{#paginated-list url=model.url as |identifiers|}} + <ul> + {{#each identifiers as |identifier|}} + <li class="search-result"> + <span class="source-code" >{{identifier.demangledOccName}} :: {{type-signature-text components=identifier.idType.components}}</span> + <div><a href="#" onmouseup={{action "goToDefinition" identifier.locationInfo}}>Go to definition</a></div> + <div class="identifier-module"> + {{#if identifier.locationInfo.modulePath}} + Defined in <a href="/package/{{identifier.locationInfo.packageId.name}}-{{identifier.locationInfo.packageId.version}}/show/{{identifier.locationInfo.modulePath}}">{{identifier.locationInfo.modulePath}}</a> + {{/if}} + </div> + <div>{{{identifier.doc}}}</div> + </li> + {{/each}} + </ul> + {{/paginated-list}} +</div> diff --git a/javascript/app/templates/package/show.hbs b/javascript/app/templates/package/show.hbs new file mode 100644 index 0000000..c24cd68 --- /dev/null +++ b/javascript/app/templates/package/show.hbs @@ -0,0 +1 @@ +{{outlet}} diff --git a/javascript/app/templates/package/show/file.hbs b/javascript/app/templates/package/show/file.hbs new file mode 100644 index 0000000..b127fd7 --- /dev/null +++ b/javascript/app/templates/package/show/file.hbs @@ -0,0 +1,16 @@ +{{#if model.isHaskellModule}} + {{haskell-module + path=model.id + name=model.name + packageId=model.packageId + componentId=model.componentId + html=model.sourceCodeHtml + identifiers=model.identifiers + occurrences=model.occurrences + colorTheme=settings.colorTheme + declarations=model.declarations + findReferences=(action "findReferences") + }} +{{else}} + {{text-file text=model.text path=model.id}} +{{/if}} diff --git a/javascript/app/templates/packages.hbs b/javascript/app/templates/packages.hbs new file mode 100644 index 0000000..6dc4b7b --- /dev/null +++ b/javascript/app/templates/packages.hbs @@ -0,0 +1,26 @@ +<div class="flex-container container"> + <div> + <!-- <p class="lead"><b>Haskell code explorer</b> </p> --> + <div class="package-search-form"> + {{input class="form-control" type="text" value=query placeholder="Package name"}} + <span>Number of packages : {{packages.length}}</span> + </div> + </div> + <div id="packages" class="packages"> + <ul> + {{#infinite-list containerElementId="packages" elements=packages perPage=80 as |package|}} + <li> + {{#each package.versions as |version index|}} + {{#link-to 'package' (concat package.name "-" version)}} + {{#if (gt index 0)}} + {{version}} + {{else}} + {{package.name}}-{{version}} + {{/if}} + {{/link-to}} + {{/each}} + </li> + {{/infinite-list}} + </ul> + </div> +</div> diff --git a/javascript/app/utils/api-urls.js b/javascript/app/utils/api-urls.js new file mode 100644 index 0000000..b2748b6 --- /dev/null +++ b/javascript/app/utils/api-urls.js @@ -0,0 +1,29 @@ +import config from '../config/environment'; + +export const urls = { + packageInfoUrl : function(packageId) { + return config.APP.staticUrlPrefix+"/"+packageId+"/"+config.APP.haskellCodeExplorerDirectory+"/packageInfo.json"; + }, + fileUrl : function(packageId,filePath) { + return config.APP.staticUrlPrefix+"/"+packageId+"/"+filePath; + }, + haskellModuleUrl : function (packageId,filePath) { + return config.APP.staticUrlPrefix+"/"+packageId+"/"+config.APP.haskellCodeExplorerDirectory+"/"+encodeURIComponent(encodeURIComponent(filePath))+ ".json"; + }, + packagesUrl : config.APP.apiUrlPrefix + "/packages", + identifierDefinitionSiteUrl : function(packageId,moduleName,componentId,entity,name) { + return config.APP.apiUrlPrefix + "/definitionSite/" + packageId+"/"+componentId+"/"+moduleName+"/"+entity+"/"+encodeURIComponent(name).replace(/\./g, '%2E'); + }, + modulePathUrl : function (packageId,moduleName,componentId) { + return config.APP.apiUrlPrefix + "/modulePath/"+packageId+"/"+componentId+"/"+moduleName; + }, + expressionsUrl : function (packageId,modulePath,lineStart,columnStart,lineEnd,columnEnd) { + return config.APP.apiUrlPrefix + "/expressions/"+packageId+"/"+encodeURIComponent(modulePath) +"/"+lineStart+"/"+columnStart+"/"+lineEnd+"/"+columnEnd; + }, + referencesUrl : function (packageId,externalId) { + return config.APP.apiUrlPrefix + "/references/"+packageId+"/"+encodeURIComponent(externalId); + }, + identifierSearchUrl : function (packageId,query) { + return config.APP.apiUrlPrefix + "/identifiers/"+packageId+"/"+encodeURIComponent(query).replace(/\./g, '%2E'); + } +} diff --git a/javascript/app/utils/color-themes.js b/javascript/app/utils/color-themes.js new file mode 100644 index 0000000..0a563ff --- /dev/null +++ b/javascript/app/utils/color-themes.js @@ -0,0 +1,188 @@ +function colorThemeToCss(colorTheme) { + const css = ` + body { + color: ${colorTheme.defaultColor} !important; + background-color: ${colorTheme.backgroundColor} !important; + } + input { + color: ${colorTheme.defaultColor} !important; + background-color: ${colorTheme.backgroundColor} !important; + border-color: ${colorTheme.borderColor} !important; + } + .package-content { + border-top: 1px solid ${colorTheme.borderColor} !important; + } + .header a { + color : ${colorTheme.menuLinkColor} !important; + } + a { + color: ${colorTheme.typeColor} !important; + } + span.link { + color: ${colorTheme.typeColor} !important; + } + .header { + background-color: ${colorTheme.menuColor} !important; + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + .declarations-content { + background-color: ${colorTheme.navigationPanelColor} !important; + border: 1px solid ${colorTheme.borderColor} !important; + } + .declarations-header { + background-color: ${colorTheme.navigationPanelColor} !important; + border: 1px solid ${colorTheme.borderColor} !important; + } + li.declaration { + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + .left-panel { + background-color: ${colorTheme.navigationPanelColor} !important; + border-right: 1px solid ${colorTheme.borderColor} !important; + } + .show-left-panel-button { + background-color: ${colorTheme.navigationPanelColor} !important; + border-right:1px solid ${colorTheme.borderColor} !important; + border-bottom:1px solid ${colorTheme.borderColor} !important; + } + .right-panel { + background-color: ${colorTheme.backgroundColor} !important; + } + a.jstree-anchor { + color: ${colorTheme.defaultColor} !important; + } + .declaration > a { + color: ${colorTheme.defaultColor} !important; + } + .highlighted-line { + background : ${colorTheme.highlightedLineColor} !important; + } + table.source-code { + background-color: ${colorTheme.backgroundColor} !important; + color: ${colorTheme.defaultColor} !important; + } + .jstree-clicked { + background-color: ${colorTheme.backgroundColor} !important; + } + .jstree-hovered { + background-color: ${colorTheme.backgroundColor} !important; + } + ul.autocomplete-items { + background-color: ${colorTheme.backgroundColor} !important; + border-top: 1px solid ${colorTheme.borderColor} !important; + border-left: 1px solid ${colorTheme.borderColor} !important; + border-right: 1px solid ${colorTheme.borderColor} !important; + } + ul.autocomplete-items > li { + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + ul.autocomplete-items > li:hover { + background-color: ${colorTheme.highlightedLineColor} !important; + } + ul.autocomplete-items > li.highlighted { + background-color: ${colorTheme.highlightedLineColor} !important; + } + .source-code-snippet { + color: ${colorTheme.defaultColor} !important; + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + .source-code-snippet:hover { + background-color: ${colorTheme.highlightedLineColor} !important; + } + .bottom-panel { + background-color: ${colorTheme.backgroundColor} !important; + border-top: 1px solid ${colorTheme.borderColor} !important; + } + .bottom-panel-header { + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + .paginated-list-header { + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + li.search-result { + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + .search-results-header { + border-bottom: 1px solid ${colorTheme.borderColor} !important; + } + .info-window-content { + border-top: 1px solid ${colorTheme.borderColor} !important; + } + .info-window { + border: 1px solid ${colorTheme.borderColor} !important; + background-color:${colorTheme.infoWindowColor} !important; + color: ${colorTheme.defaultColor} !important; + } + .type-info { + border-top: 1px solid ${colorTheme.borderColor} !important; + }`; + return css; +} + +const darkTheme = { + id: "darkTheme", + name: "Dark theme", + description: "Dark theme (Monokai based)", + defaultColor: "#F8F8F2", + backgroundColor: "#272822", + typeColor: "#66D9EF", + literalColor: "#E6DB74", + topLevelIdFromCurrentModule : "#A6E22E", + localIdentifierColor: ["#F0A3FF","#0075DC","#993F00", + "#2BCE48","#FFCC99","#808080","#94FFB5","#8F7C00", + "#C20088","#FFA405","#FFA8BB","#426600","#FF0010", + "#5EF1F2","#00998F","#E0FF66","#FFFF80", + "#FFFF00","#FF5005"], + menuColor: "#3c3b37", + menuLinkColor : "#F8F8F2", + infoWindowColor: "#3c3b37", + navigationPanelColor: "#3c3b37", + linkColor : "#0366d6", + borderColor: "#535557", + highlightedLineColor: "#4a4a4a" +}; + +const lightTheme = { + id: "lightTheme", + name: "Light theme", + description: "Light theme (Github based)", + defaultColor: "#24292e", + backgroundColor: "#ffffff", + typeColor: "#005cc5", + literalColor: "#032f62", + topLevelIdFromCurrentModule : "#6f42c1", + localIdentifierColor: ["#005C31", + "#2BCE48","#808080","#8F7C00", + "#C20088","#FFA405","#ffa8bb","#426600","#FF0010", + "#09d7d8","#00998F","#990000","#FF5005"], + menuColor: "#f2f4f8", + menuLinkColor : "#24292e", + infoWindowColor: "#f2f4f8", + navigationPanelColor: "#f2f4f8", + linkColor : "#0366d6", + borderColor: "#e1e4e8", + highlightedLineColor: "#eaeaea" +}; + +function updateColorThemeCss (colorTheme) { + const newStyle = document.createElement('style'); + newStyle.type = 'text/css'; + newStyle.innerHTML = colorThemeToCss(colorTheme); + newStyle.id = 'color-theme'; + const oldStyle = document.querySelector("style#color-theme"); + if(oldStyle) { + oldStyle.parentElement.removeChild(oldStyle); + } + document.getElementsByTagName('head')[0].appendChild(newStyle); +} + +const themes = { + darkTheme: darkTheme, + lightTheme: lightTheme +}; + +export { + updateColorThemeCss, + colorThemeToCss, + themes +} diff --git a/javascript/app/utils/go-to-definition.js b/javascript/app/utils/go-to-definition.js new file mode 100644 index 0000000..e05f6bf --- /dev/null +++ b/javascript/app/utils/go-to-definition.js @@ -0,0 +1,95 @@ +function exactLocationToUrl(exactLocation) { + const modulePath = exactLocation.modulePath; + const packageId = exactLocation.packageId.name + "-" + exactLocation.packageId.version; + let hash = ""; + if(exactLocation.startLine != 1) { + hash = "#L" + exactLocation.startLine; + } + return "/package/"+packageId+"/show/"+modulePath+hash; +} + +function hackageUrl(packageId,locationInfo) { + const dasherizedModuleName = locationInfo.moduleName.replace(/\./g,'-'); + let key; + if(locationInfo.entity === "Val") { + key = "v"; + } else { + key = "t"; + } + let hash = ""; + if(locationInfo.entity === "Val" || locationInfo.entity === "Typ") { + hash = "#"+key+":"+locationInfo.haddockAnchorId; + } + return "https://hackage.haskell.org/package/"+packageId+"/docs/"+dasherizedModuleName+".html"+hash; +} + +function openUrl(buttonId,url) { + if(buttonId === 2) {//middle mouse button + window.open(url, '_blank'); + } else if(buttonId == 1) {//left mouse button + window.location = url; + } + return false; +} + +function saveCurrentLocation(currentLineNumber) { + if(currentLineNumber) { + const url = window.location.origin + window.location.pathname + "#L" + currentLineNumber; + if(location.href != url) { + window.location.hash = "#L" + currentLineNumber; + } + } +} + +function goToDefinition(store,locationInfo,buttonId,currentLineNumber) { + if(locationInfo.tag === "ExactLocation") { + const url = exactLocationToUrl(locationInfo); + if(locationInfo.startLine !== currentLineNumber) { + saveCurrentLocation(currentLineNumber); + } + openUrl(buttonId,url); + } else if(locationInfo.tag === "ApproximateLocation") { + const packageId = locationInfo.packageId.name+"-"+locationInfo.packageId.version; + if(locationInfo.entity === "Mod") { + store.loadDefinitionSite(packageId, + locationInfo.moduleName, + locationInfo.componentId, + locationInfo.entity, + locationInfo.moduleName) + .then((defSite) => { + const packageId = defSite.location.packageId.name + "-" + defSite.location.packageId.version; + openUrl(buttonId,"/package/" + packageId + "/show/" + defSite.location.modulePath); + }).catch(() => { + openUrl(buttonId,hackageUrl(packageId,locationInfo)); + }); + } else { + store.loadDefinitionSite(packageId, + locationInfo.moduleName, + locationInfo.componentId, + locationInfo.entity, + locationInfo.name) + .then((definitionSite) => { + if(definitionSite.location.tag === "ExactLocation") { + const url = exactLocationToUrl(definitionSite.location); + if(locationInfo.startLine !== currentLineNumber) { + saveCurrentLocation(currentLineNumber); + } + openUrl(buttonId,url); + } else { + saveCurrentLocation(currentLineNumber); + openUrl(buttonId,hackageUrl(packageId,locationInfo)); + } + }).catch((e) => { + console.log(e); + saveCurrentLocation(currentLineNumber); + openUrl(buttonId,hackageUrl(packageId,locationInfo)); + }); + } + } else { + alert('No location info'); + } +} + +export { + goToDefinition,openUrl +} diff --git a/javascript/app/utils/line-selection.js b/javascript/app/utils/line-selection.js new file mode 100644 index 0000000..d6d0976 --- /dev/null +++ b/javascript/app/utils/line-selection.js @@ -0,0 +1,111 @@ +function initializeLineSelection(sourceCodeContainerElement,component) { + const lineNumbers = Array.prototype.slice.call(sourceCodeContainerElement.querySelectorAll("td.line-number")); + if(lineNumbers.length > 0) { + const onhashchange = function () { + highlightSelectedLines(sourceCodeContainerElement); + } + window.addEventListener("hashchange",onhashchange); + component._onhashchange = onhashchange; + + let shiftPressed; + const onkeydown = function (event) { + if(event.keyCode === 16) { shiftPressed = true; } + }; + const onkeyup = function (event) { + if(event.keyCode === 16) { shiftPressed = false; } + }; + + document.addEventListener('keydown',onkeydown); + document.addEventListener('keyup',onkeyup); + component._onkeydown = onkeydown; + component._onkeyup = onkeyup; + + let selectedLine1,selectedLine2; + lineNumbers.forEach((lineNumberElement) => { + lineNumberElement.onclick = function() { + const number = parseInt(this.textContent); + if(shiftPressed && selectedLine1) { + if(selectedLine1 != number) { + selectedLine2 = number; + if(selectedLine1 < selectedLine2) { + highlightLines(sourceCodeContainerElement,selectedLine1,selectedLine2); + window.location.hash = "L"+selectedLine1+"-L"+selectedLine2; + } else { + highlightLines(sourceCodeContainerElement,selectedLine2,selectedLine1); + window.location.hash = "L"+selectedLine2+"-L"+selectedLine1; + } + } + } else { + selectedLine1 = number; + selectedLine2 = null; + highlightLines(sourceCodeContainerElement,selectedLine1,selectedLine1); + window.location.hash = "L"+number; + } + } + }); + const lines = highlightSelectedLines(sourceCodeContainerElement); + if(lines.length) { + selectedLine1 = lines[0]; + selectedLine2 = lines[1]; + } + } +} + +function highlightSelectedLines (sourceCodeContainerElement) { + const lineInfo = window.location.hash.slice(1); + if(lineInfo) { + if(lineInfo.includes('-')) { + const lines = lineInfo.split("-"); + const lineNumber1 = parseInt(lines[0].substring(1)); + const lineNumber2 = parseInt(lines[1].substring(1)); + if(lineNumber1 && lineNumber2 && lineNumber1 <= lineNumber2) { + highlightLines(sourceCodeContainerElement,lineNumber1,lineNumber2); + const line = sourceCodeContainerElement.querySelector("td#LC"+lineNumber1); + if(line) { + scrollLineIntoView(line,sourceCodeContainerElement); + } + return [lineNumber1,lineNumber2]; + } + } else { + const lineNumber = parseInt(lineInfo.substring(1)); + if(lineNumber) { + highlightLines(sourceCodeContainerElement,lineNumber,lineNumber); + const line = sourceCodeContainerElement.querySelector("td#LC"+lineNumber); + if(line) { + scrollLineIntoView(line,sourceCodeContainerElement); + } + return [lineNumber]; + } + } + } else { + highlightLines(sourceCodeContainerElement,0,0); + return []; + } +} + +function scrollLineIntoView(lineElement,sourceCodeContainerElement) { + lineElement.parentNode.scrollIntoView(); + const container = sourceCodeContainerElement.parentNode.parentNode; + const windowHeight = container.offsetHeight; + const fullHeight = sourceCodeContainerElement.offsetHeight; + + if(fullHeight - container.scrollTop > windowHeight) { + container.scrollTop = container.scrollTop - (windowHeight/2 - 20); + } +} + +function highlightLines(parentElement,startLine,endLine) { + const lineElements = Array.prototype.slice.call(parentElement.querySelectorAll("td.line-content")); + lineElements.forEach((lineElement) => { + const number = parseInt(lineElement.id.substring(2)); //<td "id"="LC10">...</td> + if(number >= startLine && number <= endLine) { + lineElement.classList.add('highlighted-line'); + } else { + lineElement.classList.remove('highlighted-line'); + } + }); +} + +export { + initializeLineSelection,highlightLines,highlightSelectedLines +} diff --git a/javascript/bower.json b/javascript/bower.json new file mode 100644 index 0000000..9b3b4a5 --- /dev/null +++ b/javascript/bower.json @@ -0,0 +1,6 @@ +{ + "name": "haskell-code-explorer", + "dependencies": { + "pace": "^1.0.2" + } +} diff --git a/javascript/config/environment.js b/javascript/config/environment.js new file mode 100644 index 0000000..5e53024 --- /dev/null +++ b/javascript/config/environment.js @@ -0,0 +1,64 @@ +/* eslint-env node */ +'use strict'; + +module.exports = function(environment) { + let ENV = { + modulePrefix: 'haskell-code-explorer', + environment, + rootURL: '/', + locationType: 'auto', + EmberENV: { + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. 'with-controller': true + }, + EXTEND_PROTOTYPES: { + // Prevent Ember Data from overriding Date.parse. + Date: false + } + }, + pace: { + theme: 'minimal', + color: 'silver', + target: 'body', + elements: { + checkInterval: 100, + selectors: ['body', '.ember-view'] + }, + ajax: false + }, + APP: { + staticUrlPrefix: "/files", + apiUrlPrefix: "/api", + haskellCodeExplorerDirectory: ".haskell-code-explorer", + title: "Haskell code explorer" + } + }; + + if (environment === 'development') { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + } + + if (environment === 'test') { + // Testem prefers this... + ENV.locationType = 'none'; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.autoboot = false; + + ENV.APP.rootElement = '#ember-testing'; + } + + if (environment === 'production') { + + } + + return ENV; +}; diff --git a/javascript/config/targets.js b/javascript/config/targets.js new file mode 100644 index 0000000..df7664c --- /dev/null +++ b/javascript/config/targets.js @@ -0,0 +1,9 @@ +/* eslint-env node */ +module.exports = { + browsers: [ + 'ie 9', + 'last 1 Chrome versions', + 'last 1 Firefox versions', + 'last 1 Safari versions' + ] +}; diff --git a/javascript/ember-cli-build.js b/javascript/ember-cli-build.js new file mode 100644 index 0000000..0178882 --- /dev/null +++ b/javascript/ember-cli-build.js @@ -0,0 +1,21 @@ +/* eslint-env node */ +'use strict'; + +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +module.exports = function(defaults) { + let app = new EmberApp(defaults, { + 'ember-cli-bootstrap-4': { + js: null + }, + 'ember-cli-babel': { + includePolyfill: true + } + }); + app.import('vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js')// only draggable and resizable + app.import('vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css') + app.import('node_modules/jstree/dist/jstree.min.js'); + app.import('node_modules/jstree/dist/themes/default/style.min.css'); + app.import('node_modules/showdown/dist/showdown.min.js'); + return app.toTree(); +}; diff --git a/javascript/package.json b/javascript/package.json new file mode 100644 index 0000000..ce4f045 --- /dev/null +++ b/javascript/package.json @@ -0,0 +1,53 @@ +{ + "name": "haskell-code-explorer", + "version": "0.0.1", + "description": "Haskell code explorer", + "private": false, + "license": "MIT", + "author": "alexwl", + "directories": { + "doc": "doc", + "test": "tests" + }, + "repository": "", + "scripts": { + "build": "ember build --environment=production", + "release": "ember build --environment=production --output-path=release", + "start": "ember server" + }, + "devDependencies": { + "broccoli-asset-rev": "^2.4.5", + "ember-cli": "^3.2.0", + "ember-cli-app-version": "^3.0.0", + "ember-cli-babel": "^6.12.0", + "ember-cli-bootstrap-4": "^0.5.6", + "ember-cli-dependency-checker": "^1.3.0", + "ember-cli-eslint": "^4.2.1", + "ember-cli-htmlbars": "^2.0.1", + "ember-cli-htmlbars-inline-precompile": "^1.0.0", + "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-pace": "^0.1.0", + "ember-cli-qunit": "^4.1.1", + "ember-cli-sass": "^7.1.7", + "ember-cli-shims": "^1.1.0", + "ember-cli-sri": "^2.1.0", + "ember-cli-uglify": "^1.2.0", + "ember-export-application-global": "^2.0.0", + "ember-load-initializers": "^1.0.0", + "ember-radio-button": "^1.1.1", + "ember-resolver": "^4.0.0", + "ember-sinon": "^1.0.1", + "ember-sinon-qunit": "^2.0.0", + "ember-source": "3.2.0", + "ember-truth-helpers": "^2.0.0", + "express": "^4.16.2", + "glob": "^4.5.3", + "jstree": "3.3.5", + "loader.js": "^4.2.3", + "morgan": "^1.9.0", + "showdown": "^1.8.6" + }, + "engines": { + "node": "^4.5 || 6.* || >= 7.*" + } +} diff --git a/javascript/public/assets/32px.png b/javascript/public/assets/32px.png Binary files differnew file mode 100644 index 0000000..d6fd721 --- /dev/null +++ b/javascript/public/assets/32px.png diff --git a/javascript/public/assets/40px.png b/javascript/public/assets/40px.png Binary files differnew file mode 100644 index 0000000..4fc88e4 --- /dev/null +++ b/javascript/public/assets/40px.png diff --git a/javascript/public/assets/favicon.ico b/javascript/public/assets/favicon.ico Binary files differnew file mode 100644 index 0000000..37816fd --- /dev/null +++ b/javascript/public/assets/favicon.ico diff --git a/javascript/public/assets/haskell.ico b/javascript/public/assets/haskell.ico Binary files differnew file mode 100644 index 0000000..37816fd --- /dev/null +++ b/javascript/public/assets/haskell.ico diff --git a/javascript/public/assets/throbber.gif b/javascript/public/assets/throbber.gif Binary files differnew file mode 100644 index 0000000..cd75035 --- /dev/null +++ b/javascript/public/assets/throbber.gif diff --git a/javascript/public/robots.txt b/javascript/public/robots.txt new file mode 100644 index 0000000..f591645 --- /dev/null +++ b/javascript/public/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.png b/javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.png Binary files differnew file mode 100644 index 0000000..d6fd721 --- /dev/null +++ b/javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.png diff --git a/javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.png b/javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.png Binary files differnew file mode 100644 index 0000000..4fc88e4 --- /dev/null +++ b/javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.png diff --git a/javascript/release/assets/favicon.ico b/javascript/release/assets/favicon.ico Binary files differnew file mode 100644 index 0000000..37816fd --- /dev/null +++ b/javascript/release/assets/favicon.ico diff --git a/javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js b/javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js new file mode 100644 index 0000000..36bba99 --- /dev/null +++ b/javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js @@ -0,0 +1,204 @@ +"use strict" +define("haskell-code-explorer/app",["exports","ember-resolver","ember-load-initializers","haskell-code-explorer/config/environment"],function(e,t,n,o){Object.defineProperty(e,"__esModule",{value:!0}) +var r +r=Ember.Application.extend({modulePrefix:o.default.modulePrefix,Resolver:t.default}),(0,n.default)(r,o.default.modulePrefix),e.default=r}),define("haskell-code-explorer/components/bottom-panel",["exports"],function(e){function t(e){var t=Math.floor(e.$containerElement.height()/2) +e.$().css({display:"block",top:t+"px"}),e.$topPanelElement.css({height:t+"px"})}function n(e){var t=Math.floor(e.$containerElement.height()/2) +e.$().css({display:"none",height:t+"px"}),e.$topPanelElement.css({height:"100%"})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({classNames:["bottom-panel"],didInsertElement:function(){var e=this +this._super.apply(this,arguments),this.$topPanelElement=Ember.$(this.get("topPanelElementId")),this.$containerElement=Ember.$(this.get("containerElementId")),Ember.run.next(this,function(){Ember.$(e.element).resizable({handles:"n",maxHeight:700,minHeight:200,resize:function(t,n){Ember.run.next(e,function(){e.$topPanelElement.css({height:e.$containerElement.height()-n.size.height})})}})})},visibilityObserver:Ember.observer("visible",function(){this.get("visible")?t(this):n(this)}),actions:{close:function(){this.set("visible",!1)}}})}),define("haskell-code-explorer/components/expression-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({})}),define("haskell-code-explorer/components/file-tree",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}) +var t=function e(t,o){return o.contents.map(function(o){var r={} +return r.text=o.name,r.data=o,o.path&&(r.id=o.path,r.a_attr={href:"/package/"+t+"/show/"+o.path}),"Dir"===o.tag?(r.children=e(t,o),r.state={opened:n(o)}):o.isHaskellModule?(r.icon="/assets/haskell.ico",r.isHaskellModule=!0):(r.icon="jstree-file",r.isHaskellModule=!1),r})},n=function e(t){return t.contents.some(function(t){return"File"===t.tag?t.isHaskellModule:e(t)})} +e.default=Ember.Component.extend({query:null,didInsertElement:function(){var e=this +this._super.apply(this,arguments) +var n=this.element.getElementsByClassName("file-tree")[0],o=Ember.$(n).jstree({core:{data:t(this.get("packageId"),this.get("directoryTree"))},plugins:["search"],search:{case_insensitive:!0,show_only_matches:!0,show_only_matches_children:!0}}) +o.on("select_node.jstree",function(t,n){var o=n.node.data +"Dir"!=o.tag&&e.sendAction("openFile",o.path)}) +var r=o.jstree(!0) +if(this.get("currentFile")){r.select_node(this.get("currentFile")) +var i=r.get_node(this.get("currentFile"),!0)[0] +i&&i.scrollIntoView()}this.jstree=r},currentFileObserver:Ember.observer("currentFile",function(){var e=this +Ember.run.next(function(){e.jstree.deselect_all(),e.jstree.select_node(e.get("currentFile"))})}),queryObserver:Ember.observer("query",function(){this.get("query")?this.jstree.search(this.get("query")):this.jstree.clear_search()}),actions:{hide:function(){this.get("hide")()}}})}),define("haskell-code-explorer/components/haskell-module",["exports","haskell-code-explorer/utils/go-to-definition","haskell-code-explorer/utils/line-selection"],function(e,t,n){function o(e,t){return e.line===t.line?e.column===t.column?0:e.column>t.column?1:-1:e.line>t.line?1:-1}function r(e,t,n){if(e[t.line]&&e[n.line]){if(t.line===n.line)return e[t.line].slice(t.column-1,n.column-1) +for(var o=e[t.line],r=[],i=t.line+1;i<n.line;i++)r.push(e[i]) +var l=e[n.line],s=Math.min(t.column,r.concat([l]).map(function(e){return e.search(/\S/)}).reduce(function(e,t){return Math.min(e,t)})) +return o.slice(t.column-1,o.length)+"\n"+r.map(function(e){return e.slice(s,e.length)}).join("\n")+(r.length?"\n":"")+l.slice(s,n.column-1)}return null}function i(e,t){t?e.classList.add("highlighted-identifier"):e.classList.remove("highlighted-identifier")}function l(e,t,n){if(t.id){Array.prototype.slice.call(e.querySelectorAll("span[id='"+t.id+"']")).forEach(function(e){i(e,n)})}else i(t,n)}function s(e,t){return Array.from(e).map(function(e){return parseInt(e)}).reduce(function(e,n){return(10*e+n)%t},0)}function a(e,t,n){return"External"===n.sort&&(n.locationInfo.modulePath===t||n.locationInfo.moduleName===e)}function c(e,t,n,o,r,i){var l=n[e.dataset.occurrence],c=r.defaultColor,d=void 0 +if(l)if("TypeId"===l.sort.tag)c=r.typeColor +else if("HsLit"===l.description||"HsOverLit"===l.description||"LitPat"===l.description||"NPat"===l.description||"NPlusKPat"===l.description||"OverLit"===l.description)c=r.literalColor +else{var u=t[e.dataset.identifier] +if(u)if(a(i,o,u))c=r.topLevelIdFromCurrentModule +else if("Internal"===u.sort&&"ExactLocation"===u.locationInfo.tag){var p=s(e.id,r.localIdentifierColor.length) +c=r.localIdentifierColor[p],d="bold"}}return"color:"+c+";"+(d?"font-weight:"+d:"")+";"+(l.isBinder?"text-decoration:underline;":"")}function d(e,n){var o=Array.prototype.slice.call(e.querySelectorAll("span.identifier")) +if(o.length>0){var r=null +o.forEach(function(o){var i=c(o,n.get("identifiers"),n.get("occurrences"),n.get("path"),n.get("colorTheme"),n.get("name")) +o.style.cssText=i,o.onmouseup=function(e){if(r&&clearTimeout(r),window.getSelection().isCollapsed){var i=n.get("identifiers")[o.dataset.identifier],l=n.get("occurrences")[o.dataset.occurrence],s=parseInt(o.parentNode.dataset.line) +"ModuleId"===l.sort.tag?(0,t.goToDefinition)(n.get("store"),l.sort.contents,e.which,s):l.isBinder||!i||1!==e.which&&2!==e.which||(0,t.goToDefinition)(n.get("store"),i.locationInfo,e.which,s)}},o.onmouseover=function(){l(e,o,!0),r&&clearTimeout(r),r=setTimeout(function(){Ember.run.next(n,function(){var e=n.get("identifiers")[o.dataset.identifier],t=n.get("occurrences")[o.dataset.occurrence] +console.log(t),console.log(e),n.set("selectedIdentifier",o),n.set("currentLineNumber",parseInt(o.parentNode.dataset.line)||1),n.set("identifierInfo",e),n.set("identifierOccurrence",t),n.set("hasSelectedExpression",!1),n.set("isHoveredOverIdentifier",!0)})},250)},o.onmouseout=function(){l(e,o,!1),r&&clearTimeout(r),r=setTimeout(function(){Ember.run.next(n,function(){n.set("isHoveredOverIdentifier",!1)})},250)}}),n.timer=r}}function u(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}function p(e,t){var n=Array.prototype.slice.call(e.querySelectorAll("td.line-content")) +if(n.length>0){var i=[""] +n.forEach(function(e){i.push(e.textContent)}) +var l=["#text","SPAN","TD"],s=!1,a=!1,c=function(){Ember.run.next(function(){if(!s&&!a){a=!0,setTimeout(function(){a=!1},400),t.set("hasSelectedExpression",!1) +var n=window.getSelection() +if(n.anchorNode&&n.focusNode&&u(e,n.anchorNode)&&u(e,n.focusNode)&&-1!==l.indexOf(n.anchorNode.nodeName)&&-1!==l.indexOf(n.focusNode.nodeName)&&!n.isCollapsed){var c=document.createRange() +c.setStart(n.anchorNode,n.anchorOffset),c.setEnd(n.focusNode,n.focusOffset) +var d=c.collapsed,p=void 0,f=void 0,m=void 0,h=void 0 +d?(p=n.focusNode,f=n.focusOffset,m=n.anchorNode,h=n.anchorOffset):(p=n.anchorNode,f=n.anchorOffset,m=n.focusNode,h=n.focusOffset) +var b=void 0,g=void 0,v=void 0,x=void 0,y=void 0 +if("#text"===p.nodeName){var k=p.parentNode +if(g=parseInt(k.dataset.start)+f,b=parseInt(k.parentNode.dataset.line),f===p.textContent.length&&null===k.nextSibling){for(var E=p.parentNode.parentNode.parentNode,I=E.nextSibling;""===I.children[1].textContent;)I=I.nextSibling +y=I.children[1].children[0]}else y=0!==f&&k.nextSibling?k.nextSibling:k}else if("SPAN"===p.nodeName){g=1,b=parseInt(p.parentNode.dataset.line) +for(var P=p.parentNode.parentNode,_=P.nextSibling;""===_.children[1].textContent;)_=_.nextSibling +y=_.children[1].children[0]}else if("TD"===p.nodeName){if(f>0){var O=p.children[f-1] +g=parseInt(O.dataset.start)}else g=1 +b=parseInt(p.id.slice(2)),y=p.children[0]}if("#text"===m.nodeName)x=parseInt(m.parentNode.dataset.start)+h,v=parseInt(m.parentNode.parentNode.dataset.line) +else if("SPAN"===m.nodeName)x=1,v=parseInt(m.parentNode.dataset.line) +else if("TD"===m.nodeName){if(h>0){var w=m.children[h-1] +x=parseInt(w.dataset.start)}else x=1 +v=parseInt(m.id.slice(2))}var C=t.get("store").loadExpressions(t.get("packageId"),t.get("path"),b,g,v,x) +s=!0,C.then(function(e){Ember.run.next(function(){if(e&&e.length>0){e.sort(function(e,t){return o(e.srcSpan.start,t.srcSpan.start)<=0&&o(e.srcSpan.end,t.srcSpan.end)>=0?-1:1}) +var n=e.reduce(function(e,t){var n=Ember.copy(t),o=r(i,t.srcSpan.start,t.srcSpan.end) +return o?(n.sourceCode=o,e.concat(n)):e},[]) +n.length>0&&(t.set("selectedIdentifier",y),t.set("expressions",n),t.set("currentLineNumber",parseInt(y.parentNode.dataset.line)||1),t.set("hasSelectedExpression",!0))}s=!1})})}}})} +e.addEventListener("mouseup",c),t._onmouseup=c}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),selectedIdentifier:null,isHoveredOverIdentifier:!1,hasSelectedExpression:!1,showDeclarations:!0,showDeclarationsLabel:Ember.computed("showDeclarations",function(){return this.get("showDeclarations")?"Hide":"Show"}),queryObserver:Ember.observer("query",function(){var e=this +Ember.run.debounce(this,function(){var t=new RegExp(e.get("query"),"i"),n=e.get("declarations").filter(function(e){return-1!=e.name.search(t)}) +Ember.run.next(function(){e.set("filteredDeclarations",n)})},300)}),identifierLocationInfo:Ember.computed("identifierInfo","identifierOccurrence",function(){var e=this.get("identifierOccurrence"),t=this.get("identifierInfo") +if(e)return"ModuleId"===e.sort.tag?e.sort.contents:t?t.locationInfo:null}),themeObserver:Ember.observer("colorTheme",function(){var e=this +Ember.run.next(this,function(){e.cleanup(),e.didInsertElement()})}),fileObserver:Ember.observer("path",function(){var e=this +Ember.run.next(this,function(){e.cleanup(),e.didInsertElement()})}),cleanup:function(){this.timer&&clearTimeout(this.timer),this._onhashchange&&window.removeEventListener("hashchange",this._onhashchange),this._onkeydown&&document.removeEventListener("keydown",this._onkeydown),this._onkeyup&&document.removeEventListener("keyup",this._onkeyup),this._onmouseup&&this.sourceCodeContainerElement.removeEventListener("mouseup",this._onmouseup),this.set("selectedIdentifier",null),this.set("isHoveredOverIdentifier",!1),this.set("hasSelectedExpression",!1),this.set("showDeclarations",!0)},didReceiveAttrs:function(){this.set("filteredDeclarations",this.get("declarations"))},didInsertElement:function(){var e=this +this._super.apply(this,arguments) +var t=this.element.querySelector(".source-code-container") +t.innerHTML=this.get("html"),this.sourceCodeContainerElement=t,this.element.parentNode.scrollTop=0 +var o=this.element.querySelector(".declarations-content") +this.set("query",""),o&&(o.scrollTop=0),Ember.run.next(this,function(){d(t,e),(0,n.initializeLineSelection)(t,e),p(t,e)})},willDestroyElement:function(){this.cleanup()},actions:{goToLine:function(e){window.location.hash="L"+e},toggleShowDeclarations:function(){this.toggleProperty("showDeclarations")}}})}),define("haskell-code-explorer/components/identifier-info",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),downloadedDocumentation:null,didInsertElement:function(){var e=this,n=function(n){if(n.target.dataset.location){var o=void 0 +try{o=JSON.parse(n.target.dataset.location)}catch(e){console.log(e)}o&&(0,t.goToDefinition)(e.get("store"),o,n.which,e.get("currentLineNumber"))}} +this.element.addEventListener("mouseup",n),this._onmouseup=n},willDestroyElement:function(){this._onmouseup&&this.element.removeEventListener("mouseup",this._onmouseup)},isNaughtyRecSel:Ember.computed("identifierInfo",function(){var e=this.get("identifierInfo") +return!!e&&"RecSelIdNaughty"===e.details}),isExternalIdentifier:Ember.computed("identifierInfo",function(){var e=this.get("identifierInfo") +return!!e&&"External"===e.sort}),identifierObserver:Ember.observer("identifierInfo",function(){var e=this +this.set("downloadedDocumentation","") +var t=this.get("identifierInfo") +if(t){var n=t.locationInfo +if("ApproximateLocation"===n.tag){var o=n.packageId.name+"-"+n.packageId.version,r=t +this.get("store").loadDefinitionSite(o,n.moduleName,n.componentId,n.entity,n.name).then(function(t){Ember.run.next(e,function(){r===e.get("identifierInfo")&&e.set("downloadedDocumentation",t.documentation)})})}}})})}),define("haskell-code-explorer/components/identifier-name",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),name:Ember.computed("identifierElement",function(){var e=this.get("identifierElement") +if(e)return e.innerText}),style:Ember.computed("identifierElement",function(){var e=this.get("identifierElement") +if(e)return new Ember.String.htmlSafe("color:"+e.style.color)}),locationInfo:Ember.computed("identifierInfo","identifierOccurrence",function(){return"ModuleId"===this.get("identifierOccurrence.sort.tag")?this.get("identifierOccurrence.sort.contents"):this.get("identifierInfo.locationInfo")}),location:Ember.computed("locationInfo",function(){var e=this.get("locationInfo") +return e?"ExactLocation"===e.tag?e.modulePath:"ApproximateLocation"===e.tag?"Mod"===e.entity?e.packageId.name+"-"+e.packageId.version:e.packageId.name+"-"+e.packageId.version+" "+e.moduleName:e.contents:""}),isExternalIdentifier:Ember.computed("identifierInfo",function(){return"External"===this.get("identifierInfo.sort")}),actions:{goToDefinition:function(e){return(0,t.goToDefinition)(this.get("store"),this.get("locationInfo"),e.which,this.get("currentLineNumber")),!1},findReferences:function(e,t){this.get("findReferences")(t,e.externalId,e.demangledOccName)}}})}),define("haskell-code-explorer/components/infinite-list",["exports"],function(e){function t(e){e.set("renderedElements",e.get("elements").slice(0,e.get("perPage"))),n=1}Object.defineProperty(e,"__esModule",{value:!0}) +var n=void 0,o=!1 +e.default=Ember.Component.extend({renderedElements:[],init:function(){this._super.apply(this,arguments),t(this)},elementsObserver:Ember.observer("elements",function(){t(this) +var e=document.getElementById(this.get("containerElementId")) +e&&(e.scrollTop=0)}),didInsertElement:function(){var e=document.getElementById(this.get("containerElementId")) +if(e){var t=this +e.onscroll=function(){var r=t.get("perPage"),i=t.get("elements") +!o&&n*r<i.length&&e.scrollTop+e.offsetHeight>t.element.offsetHeight-100&&(o=!0,Ember.run.next(t,function(){var e=i.slice(n*r,(n+1)*r) +t.get("renderedElements").pushObjects(e),n++,o=!1}))}}}})}),define("haskell-code-explorer/components/info-window",["exports"],function(e){function t(e){var t=e.get("targetElement") +if(t){var n=e.element.offsetHeight,o=t.offsetHeight,r=t.parentNode,i=document.querySelector("#"+e.get("containerElementId")),l=t.getBoundingClientRect().top,s=void 0 +s=i?i.getBoundingClientRect().top:0 +var a=void 0 +a=l<n+s?t.offsetTop+r.offsetTop+o+10+"px":t.offsetTop+r.offsetTop-n+"px" +var c=t.offsetLeft+r.offsetLeft+"px" +e.$().css({top:a,left:c})}else e.set("isPinned",!1)}Object.defineProperty(e,"__esModule",{value:!0}) +var n=!1,o=!1 +e.default=Ember.Component.extend({classNames:["info-window-container"],attributeBindings:["hidden"],isPinned:!1,isFocused:!1,didInsertElement:function(){var e=this,t=Ember.$(e.element.querySelector(".info-window-header")),r=Ember.$(e.element.querySelector(".info-window-content")),i=Ember.$(e.element.querySelector(".info-window")),l=Ember.$(e.element) +this.$headerElement=t,this.$contentElement=r,this.$().resizable({handles:"n,w",minHeight:80,minWidth:400,start:function(){n=!0},stop:function(){n=!1},resize:function(){var e=l.height() +i.css({height:e+2+"px"}),r.css({"max-height":e-t.outerHeight(!0)+"px"})}}),this.$().draggable({containment:"#"+this.get("containerElementId"),handle:t,start:function(){o=!0},stop:function(){o=!1}})},mouseEnter:function(){this.get("hasSelectedExpression")||this.set("isFocused",!0)},mouseLeave:function(e){var t=document.elementFromPoint(e.clientX,e.clientY) +t&&t.classList.contains("link")||n||o||this.get("isPinned")||this.get("hasSelectedExpression")||this.set("isFocused",!1)},hidden:Ember.computed("isHoveredOverIdentifier","isFocused","hasSelectedExpression","isPinned",function(){return this.$contentElement&&this.$contentElement.scrollTop(0),!(this.get("isPinned")||this.get("isFocused")||this.get("isHoveredOverIdentifier")||this.get("hasSelectedExpression"))}),didUpdate:function(){t(this)},actions:{close:function(){this.set("isPinned",!1),this.set("isFocused",!1),this.set("hasSelectedExpression",!1)},pin:function(){this.toggleProperty("isPinned")}}})}),define("haskell-code-explorer/components/input-with-autocomplete",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),highlightedItemIndex:-1,items:[],query:null,didInsertElement:function(){var e=this,t=Ember.$(this.element).find(".search-input"),n=Ember.$(this.element).find(".autocomplete-container") +this.$input=t,this.$autocompleteContainer=n +var o=t.width()+300 +n.css({width:o+"px",top:t.outerHeight()}),t.keyup(function(t){13===t.which?e.onEnter():27===t.which?e.onEsc():40===t.which?e.onDown():38===t.which&&e.onUp()}),t.focusin(function(){e.showAutocompleteList()}),t.focusout(function(){Ember.run.later(function(){e.hideAutocompleteList()},100)})},willDestroyElement:function(){this._super.apply(this,arguments),this.$input.off("keyup"),this.$input.off("focusin"),this.$input.off("focusout")},onEnter:function(){if(-1!==this.get("highlightedItemIndex")){var e=this.get("items")[this.get("highlightedItemIndex")] +e&&(this.hideAutocompleteList(),this.get("selectItem")(e))}else this.hideAutocompleteList(),this.get("onSubmit")(this.get("query"))},onEsc:function(){this.hideAutocompleteList()},onDown:function(){this.showAutocompleteList() +var e=this.get("highlightedItemIndex"),t=this.get("items"),n=t.length +n>0&&(-1!==e?e===n-1?this.set("highlightedItemIndex",0):this.set("highlightedItemIndex",e+1):this.set("highlightedItemIndex",0))},onUp:function(){this.showAutocompleteList() +var e=this.get("highlightedItemIndex"),t=this.get("items"),n=t.length +n>0&&(-1!==e?0===e?this.set("highlightedItemIndex",n-1):this.set("highlightedItemIndex",e-1):this.set("highlightedItemIndex",n-1))},hideAutocompleteList:function(){this.set("highlightedItemIndex",-1),this.$autocompleteContainer.css({display:"none"})},showAutocompleteList:function(){this.$autocompleteContainer.css({display:"block"})},queryObserver:Ember.observer("query",function(){var e=this +if(this.get("query")){var t=this.get("maxItems")?this.get("maxItems"):10,n=this.get("createSearchUrlFunction")(this.get("query"))+"?per_page="+t +Ember.run.debounce(this,function(){e.get("store").loadFromUrlPaginated(n).then(function(t){Ember.run.next(function(){e.set("items",t.items)})})},400),this.showAutocompleteList()}else this.hideAutocompleteList(),this.set("items",[])}),actions:{onSubmit:function(){this.hideAutocompleteList(),this.get("onSubmit")(this.get("query"))},goToDefinition:function(e){this.hideAutocompleteList(),this.get("selectItem")(e)}}})}),define("haskell-code-explorer/components/instance-info",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),style:Ember.computed("nestedLevel",function(){return new Ember.String.htmlSafe("margin-left :"+10*this.get("nestedLevel")+"px")}),nextNestedLevel:Ember.computed("nestedLevel",function(){return this.get("nestedLevel")+1}),actions:{goToDefinition:function(e){return(0,t.goToDefinition)(this.get("store"),this.get("instance.location"),e.which,this.get("currentLineNumber")),!1}}})}),define("haskell-code-explorer/components/labeled-radio-button",["exports","ember-radio-button/components/labeled-radio-button"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("haskell-code-explorer/components/paginated-list",["exports"],function(e){function t(e,t,n){e.loadFromUrlPaginated(n).then(function(e){Ember.run.next(function(){t.set("total",e.total),t.set("items",e.items),t.set("first",e.linkHeader.first),t.set("next",e.linkHeader.next),t.set("prev",e.linkHeader.prev),t.set("last",e.linkHeader.last) +var o=n.match(/(&|\?)page=(\d+)/),r=n.match(/(&|\?)per_page=(\d+)/),i=o?o[2]:1,l=r?r[2]:20;(e.linkHeader.next||e.linkHeader.prev)&&(t.set("firstItemOnPage",(i-1)*l+1),e.linkHeader.last?t.set("lastItemOnPage",i*l):t.set("lastItemOnPage",e.total))})})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),init:function(){this._super.apply(this,arguments),this.get("url")&&t(this.get("store"),this,this.get("url"))},urlObserver:Ember.observer("url",function(){t(this.get("store"),this,this.get("url")),this.element.querySelector(".paginated-list-content").scrollTop=0}),actions:{update:function(e){this.element.querySelector(".paginated-list-content").scrollTop=0,t(this.get("store"),this,e)}}})}),define("haskell-code-explorer/components/radio-button-input",["exports","ember-radio-button/components/radio-button-input"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("haskell-code-explorer/components/radio-button",["exports","ember-radio-button/components/radio-button"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("haskell-code-explorer/components/resizable-panel",["exports"],function(e){function t(e,t){e.$alsoResizeElement.css({left:0}),e.$().css({width:0}),e.set("hidden",!0),e.$(".show-left-panel-button").show(),t&&e.set("hiddenByUser",!0)}function n(e,t){e.$alsoResizeElement.css({left:300}),e.$().css({width:300}),e.set("hidden",!1),e.$(".show-left-panel-button").hide(),t&&e.set("hiddenByUser",!1)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({hidden:!1,hiddenByUser:!1,didInsertElement:function(){var e=this +this._super.apply(this,arguments),Ember.run.next(this,function(){var o=function(){if(!e.get("hiddenByUser")){var o=window.innerWidth +!e.get("hidden")&&o<700?t(e,!1):e.get("hidden")&&o>700&&n(e,!1)}} +e._onresize=o,window.addEventListener("resize",o) +var r=Ember.$(e.get("alsoResizeElementId")) +Ember.$(e.element).resizable({maxWidth:800,minWidth:200,handles:"e",resize:function(t,n){Ember.run.next(e,function(){r.css({left:n.size.width})})}}),e.$alsoResizeElement=r})},hideButtonLabel:Ember.computed("hidden",function(){return this.get("hidden")?">":"<"}),willDestroyElement:function(){this._onresize&&window.removeEventListener("resize",this._onresize)},actions:{hide:function(){this.get("hidden")?n(this,!0):t(this,!0)}}})}),define("haskell-code-explorer/components/text-file",["exports","haskell-code-explorer/utils/line-selection"],function(e,t){function n(e){return e.replace(/[\"&<>]/g,function(e){return{'"':""","&":"&","<":"<",">":">"}[e]})}function o(e){var t=0 +return"<table class='source-code'><tbody>"+e.split("\n").map(function(e){return"<tr><td id='LN"+ ++t+"' class='line-number'>"+t+"</td><td id='LC"+t+"' class='line-content'>"+n(e)+"</td></tr>"}).join("")+"</tbody></table>"}Object.defineProperty(e,"__esModule",{value:!0}) +var r=["markdown","mdown","mkdn","mkd","md"] +e.default=Ember.Component.extend({isMarkdown:Ember.computed("path",function(){var e=this.get("path").split(".").pop() +return r.any(function(t){return e===t})}),html:Ember.computed("path","isMarkdown",function(){return this.get("isMarkdown")?this.markdownConverter.makeHtml(this.get("text")):o(this.get("text"))}),init:function(){this._super.apply(this,arguments),this.markdownConverter=new showdown.Converter},didInsertElement:function(){var e=this.element.querySelector(".source-code-container");(0,t.initializeLineSelection)(e,this),this.element.parentNode.scrollTop=0},willDestroyElement:function(){this.cleanup()},cleanup:function(){this._onhashchange&&window.removeEventListener("hashchange",this._onhashchange),this._onkeydown&&document.removeEventListener("keydown",this._onkeydown),this._onkeyup&&document.removeEventListener("keyup",this._onkeyup)},pathObserver:Ember.observer("path",function(){var e=this +Ember.run.next(this,function(){e.cleanup(),e.didInsertElement()})})})}),define("haskell-code-explorer/components/type-component",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),tagName:"span",classNames:["type-component"],contextMenu:function(){return this.get("identifiers")&&this.get("internalId")&&this.set("expanded",!0),!1},linkClass:Ember.computed("identifierInfo",function(){return this.get("identifierInfo")?"link":""}),identifierInfo:Ember.computed("internalId",function(){return this.get("internalId")?this.get("identifiers")[this.get("internalId")]:null}),actions:{onmouseup:function(e){if(this.get("identifierInfo")&&3!==e.which){var n=this.get("identifierInfo").locationInfo +return(0,t.goToDefinition)(this.get("store"),n,e.which,this.get("currentLineNumber")),!1}}}})}),define("haskell-code-explorer/components/type-signature-text",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"span"})}),define("haskell-code-explorer/components/type-signature",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"span",expandTypeSynonyms:!1,expandTypeSynonymsLabel:Ember.computed("expandTypeSynonyms",function(){return this.get("expandTypeSynonyms")?"Show type synonyms":"Expand type synonyms"}),components:Ember.computed("type","expandTypeSynonyms",function(){return this.get("expandTypeSynonyms")&&this.get("type.componentsExpanded")?this.get("type.componentsExpanded"):this.get("type.components")}),typeObserver:Ember.observer("type",function(){this.set("expandTypeSynonyms",!1)}),actions:{toggleExpandTypeSynonyms:function(){this.toggleProperty("expandTypeSynonyms")}}})}),define("haskell-code-explorer/controllers/application",["exports","haskell-code-explorer/utils/color-themes"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({settings:Ember.inject.service("settings"),themes:Object.values(t.themes),init:function(){this._super.apply(this,arguments),(0,t.updateColorThemeCss)(this.get("settings").get("colorTheme"))},currentTheme:Ember.computed("settings",function(){return this.get("settings.colorTheme.id")}),actions:{themeChanged:function(e){var n=t.themes[e] +this.get("settings").set("colorTheme",n),(0,t.updateColorThemeCss)(n)}}})}),define("haskell-code-explorer/controllers/package",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({store:Ember.inject.service("store"),currentFile:null,loadItemsFunction:null,query:null,actions:{searchIdentifier:function(e){e&&(this.set("currentFile",null),document.title=this.get("model.id"),this.transitionToRoute("package.search",e))},showIdentifier:function(e){return(0,t.goToDefinition)(this.get("store"),e.locationInfo,1,null),!1}}})}),define("haskell-code-explorer/controllers/package/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({modulesFiltered:Ember.computed("model","query",function(){var e=this.get("query"),t=Object.keys(this.get("model.modules")).sort() +if(e){var n=new RegExp(e,"i") +return t.filter(function(e){return-1!=e.search(n)})}return t})})}),define("haskell-code-explorer/controllers/package/search",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({store:Ember.inject.service("store"),actions:{goToDefinition:function(e,n){return(0,t.goToDefinition)(this.get("store"),e,n.which,null),!1}}})}),define("haskell-code-explorer/controllers/package/show/file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({settings:Ember.inject.service("settings"),actions:{findReferences:function(e,t,n){this.send("updateReferences",e,t,n)}}})}),define("haskell-code-explorer/controllers/packages",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({queryObserver:Ember.observer("query",function(){var e=this +Ember.run.debounce(this,function(){var t=new RegExp(e.get("query"),"i"),n=e.get("model").filter(function(e){return-1!=e.name.search(t)}) +Ember.run.next(function(){e.set("packages",n)})},300)})})}),define("haskell-code-explorer/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("haskell-code-explorer/helpers/app-version",["exports","haskell-code-explorer/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function o(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.APP.version,i=o.versionOnly||o.hideSha,l=o.shaOnly||o.hideVersion,s=null +return i&&(o.showExtended&&(s=r.match(n.versionExtendedRegExp)),s||(s=r.match(n.versionRegExp))),l&&(s=r.match(n.shaRegExp)),s?s[0]:r}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o,e.default=Ember.Helper.helper(o)}),define("haskell-code-explorer/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("haskell-code-explorer/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}) +define("haskell-code-explorer/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("haskell-code-explorer/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("haskell-code-explorer/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("haskell-code-explorer/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("haskell-code-explorer/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("haskell-code-explorer/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("haskell-code-explorer/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("haskell-code-explorer/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})}),define("haskell-code-explorer/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("haskell-code-explorer/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","haskell-code-explorer/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}) +var o=void 0,r=void 0 +n.default.APP&&(o=n.default.APP.name,r=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(o,r)}}),define("haskell-code-explorer/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0] +e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("haskell-code-explorer/initializers/export-application-global",["exports","haskell-code-explorer/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0] +if(!1!==t.default.exportApplicationGlobal){var n +if("undefined"!=typeof window)n=window +else if("undefined"!=typeof global)n=global +else{if("undefined"==typeof self)return +n=self}var o,r=t.default.exportApplicationGlobal +o="string"==typeof r?r:Ember.String.classify(t.default.modulePrefix),n[o]||(n[o]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[o]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("haskell-code-explorer/router",["exports","haskell-code-explorer/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}) +var n=Ember.Router.extend({location:t.default.locationType}) +n.map(function(){this.route("packages",{path:""}),this.route("package",{path:"/package/:packageId"},function(){this.route("show",function(){this.route("file",{path:"*filePath"},function(){})}),this.route("search",{path:"/search/:query"})}),this.route("bad-url",{path:"/*badurl"})}),e.default=n}),define("haskell-code-explorer/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({})}),define("haskell-code-explorer/routes/package",["exports","haskell-code-explorer/utils/api-urls"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({store:Ember.inject.service("store"),model:function(e){var t=this +return this.get("store").loadPackage(e.packageId).catch(function(e){console.log(e),t.transitionTo("/package-not-found")})},afterModel:function(e){document.title=e.id},setupController:function(e,n){this._super(e,n) +var o=this.modelFor("package").id +e.set("bottomPanelVisible",!1),e.set("createSearchUrlFunction",function(e){return t.urls.identifierSearchUrl(o,e)})},actions:{openFile:function(e){this.transitionTo("package.show.file",e)},fileOpened:function(e){this.get("controller")&&this.set("controller.currentFile",e)},updateReferences:function(e,n,o){this.set("controller.packageId",e),this.set("controller.externalId",n),this.set("controller.occName",o),this.set("controller.bottomPanelVisible",!0),this.set("controller.referencesUrl",t.urls.referencesUrl(e,n)+"?per_page=50")}}})}),define("haskell-code-explorer/routes/package/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({afterModel:function(e,t){t.send("fileOpened",null)}})}),define("haskell-code-explorer/routes/package/search",["exports","haskell-code-explorer/utils/api-urls","haskell-code-explorer/utils/go-to-definition"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({store:Ember.inject.service("store"),model:function(e){return{query:e.query,url:t.urls.identifierSearchUrl(this.modelFor("package").id,e.query)+"?per_page=20"}},afterModel:function(){var e=this,t=function(t){if(t.target.dataset.location){var o=void 0 +try{o=JSON.parse(t.target.dataset.location)}catch(e){console.log(e)}o&&(0,n.goToDefinition)(e.get("store"),o,t.which)}} +this._onmouseup=t,document.addEventListener("mouseup",t)},deactivate:function(){this._onmouseup&&document.removeEventListener("mouseup",this._onmouseup)}})}),define("haskell-code-explorer/routes/package/show/file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({store:Ember.inject.service(),model:function(e){var t=this,n=this.modelFor("package") +return n.modules[e.filePath]?this.get("store").loadHaskellModule(n.id,e.filePath).catch(function(e){console.log(e),t.transitionTo("/not-found")}):this.get("store").loadFile(n.id,e.filePath).then(function(e){return document.title=n.id,e}).catch(function(e){console.log(e),t.transitionTo("/not-found")})},afterModel:function(e){document.title=e.id+" - "+this.modelFor("package").id},actions:{didTransition:function(){this.send("fileOpened",this.currentModel.id)}}})}),define("haskell-code-explorer/routes/package/show/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({afterModel:function(e,t){t.send("fileOpened",null)}})}),define("haskell-code-explorer/routes/packages",["exports","haskell-code-explorer/utils/api-urls","haskell-code-explorer/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({model:function(){return Ember.$.getJSON(t.urls.packagesUrl)},setupController:function(e,t){this._super(e,t),e.set("packages",t)},afterModel:function(){document.title=n.default.APP.title}})}),define("haskell-code-explorer/services/settings",["exports","haskell-code-explorer/utils/color-themes"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({init:function(){if(this._super.apply(this,arguments),localStorage){var e=localStorage.getItem("colorThemeId"),n=t.themes[e] +e&&this.set("colorTheme",n)}},colorTheme:t.themes.darkTheme,settingsObserver:Ember.observer("colorTheme",function(){localStorage&&localStorage.setItem("colorThemeId",this.get("colorTheme").id)})})}),define("haskell-code-explorer/services/store",["exports","haskell-code-explorer/utils/api-urls"],function(e,t){function n(e){return'"'==e.charAt(0)&&'"'==e.charAt(e.length-1)?e.substring(1,e.length-1):e}function o(e){if(!e)return{} +for(var t=/<[^>]*>\s*(\s*;\s*[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*")))*(,|$)/g,o=/[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*"))/g,r=e.match(t),i=new Object,l=0;l<r.length;l++){var s=r[l].split(">"),a=s[0].substring(1),c=s[1],d=new Object +d.href=a +for(var u=c.match(o),p=0;p<u.length;p++){var f=u[p],m=f.split("=") +d[m[0]]=n(m[1])}void 0!=d.rel&&(i[d.rel]=d)}return i}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({init:function(){this.packages={},this.files={},this.haskellModules={},this.definitionSites={},this.modulePaths={},this.expressions={},this.references={}},loadPackage:function(e){var n=this,o=this.packages[e] +if(o)return new Ember.RSVP.Promise(function(e){e(o)}) +var r=t.urls.packageInfoUrl(e) +return Ember.$.getJSON(r).then(function(t){return n.packages[e]=t,t})},loadFile:function(e,n){var o=this,r=e+"/"+n,i=this.files[r] +if(i)return new Ember.RSVP.Promise(function(e){e(i)}) +var l=t.urls.fileUrl(e,n) +return Ember.$.get({url:l,dataType:"text"}).then(function(t){var i={} +return i.text=t,i.packageId=e,i.isHaskellModule=!1,i.id=n,o.files[r]=i,i})},loadHaskellModule:function(e,n){var o=this,r=e+"/"+n,i=this.haskellModules[r] +if(i)return new Ember.RSVP.Promise(function(e){e(i)}) +var l=t.urls.haskellModuleUrl(e,n) +return Ember.$.getJSON(l).then(function(t){return t.packageId=e,t.isHaskellModule=!0,o.haskellModules[r]=t,t})},loadDefinitionSite:function(e,n,o,r,i){var l=this,s=e+"/"+o+"/"+n+"/"+r+"/"+i,a=this.definitionSites[s] +if(a)return new Ember.RSVP.Promise(function(e){e(a)}) +var c=t.urls.identifierDefinitionSiteUrl(e,n,o,r,i) +return Ember.$.getJSON(c).then(function(e){return l.definitionSites[s]=e,e})},loadExpressions:function(e,n,o,r,i,l){var s=this,a=e+"/"+encodeURIComponent(n)+"/"+o+"/"+r+"/"+i+"/"+l,c=this.expressions[a] +if(c)return new Ember.RSVP.Promise(function(e){e(c)}) +var d=t.urls.expressionsUrl(e,n,o,r,i,l) +return Ember.$.getJSON(d).then(function(e){return s.expressions[a]=e,e})},loadFromUrlPaginated:function(e){return Ember.$.getJSON(e).then(function(e,t,n){var r=n.getResponseHeader("Link"),i=n.getResponseHeader("x-total-count"),l=o(r) +return{items:e,total:parseInt(i),linkHeader:l}})}})}),define("haskell-code-explorer/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"VFOlgxX7",block:'{"symbols":["theme"],"statements":[[6,"div"],[10,"class","absolute-container"],[8],[0,"\\n "],[6,"div"],[10,"class","flex-container"],[8],[0,"\\n "],[6,"div"],[10,"class","header"],[8],[0,"\\n "],[6,"img"],[10,"src","/assets/haskell.ico"],[8],[9],[0,"\\n "],[6,"div"],[10,"class","container"],[8],[0,"\\n "],[6,"span"],[10,"class","header-item"],[8],[4,"link-to",["packages"],null,{"statements":[[0,"Haskell packages"]],"parameters":[]},null],[9],[0,"\\n "],[6,"span"],[10,"class","header-item"],[8],[6,"a"],[10,"target","_blank"],[10,"href","https://github.com/alexwl/haskell-code-explorer"],[8],[0,"About"],[9],[9],[0,"\\n "],[6,"span"],[10,"class","header-item"],[8],[0,"\\n"],[4,"each",[[22,["themes"]]],null,{"statements":[[4,"radio-button",null,[["value","groupValue","changed"],[[21,1,["id"]],[22,["currentTheme"]],"themeChanged"]],{"statements":[[0," "],[6,"span"],[8],[1,[21,1,["name"]],false],[9],[0,"\\n"]],"parameters":[]},null]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[6,"div"],[10,"class","absolute-container"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/application.hbs"}})}),define("haskell-code-explorer/templates/bad-url",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"xPTRbxVj",block:'{"symbols":[],"statements":[[6,"div"],[10,"class","container"],[8],[0," \\n "],[6,"div"],[10,"style","margin-top:10px"],[8],[0,"\\n "],[6,"h1"],[8],[0,"Not found"],[9],[0,"\\n "],[6,"div"],[8],[6,"a"],[10,"href","/"],[8],[0,"Main page"],[9],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/bad-url.hbs"}})}),define("haskell-code-explorer/templates/components/bottom-panel",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"npSIWyPX",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","bottom-panel-header"],[8],[0,"\\n "],[6,"span"],[10,"class","bottom-panel-header-content"],[8],[13,1,["header"]],[9],[0,"\\n "],[6,"span"],[10,"class","bottom-panel-header-options"],[8],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"close"]],[8],[0,"Close"],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"],[6,"div"],[10,"class","bottom-panel-content"],[8],[0,"\\n "],[13,1,["body"]],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/bottom-panel.hbs"}})}),define("haskell-code-explorer/templates/components/expression-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"3orLnFsH",block:'{"symbols":["expression"],"statements":[[6,"div"],[10,"class","expressions"],[8],[0,"\\n"],[4,"each",[[22,["expressions"]]],null,{"statements":[[0," "],[6,"div"],[10,"class","expression"],[8],[0,"\\n "],[6,"span"],[10,"class","source-code"],[8],[1,[21,1,["sourceCode"]],false],[9],[0,"\\n "],[6,"br"],[8],[9],[0,":: "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber"],[[21,1,["info","exprType"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n "],[9],[0,"\\n"]],"parameters":[1]},null],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/expression-info.hbs"}})}),define("haskell-code-explorer/templates/components/file-tree",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"GBZ0wuAl",block:'{"symbols":[],"statements":[[6,"div"],[10,"class","file-tree-header"],[8],[0,"\\n "],[6,"div"],[10,"class","input-group"],[8],[0,"\\n "],[1,[26,"input",null,[["class","value","placeholder"],["form-control",[22,["query"]],"Filename"]]],false],[6,"a"],[10,"class","hide-file-tree"],[10,"href","#"],[3,"action",[[21,0,[]],"hide"]],[8],[0,"Hide"],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"],[6,"div"],[10,"class","file-tree-content"],[8],[0,"\\n "],[6,"div"],[10,"class","file-tree"],[8],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/file-tree.hbs"}})}),define("haskell-code-explorer/templates/components/haskell-module",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"9AHnGiA+",block:'{"symbols":["section","declaration"],"statements":[[6,"div"],[10,"class","source-code-container"],[8],[9],[0,"\\n"],[4,"if",[[22,["declarations"]]],null,{"statements":[[0," "],[6,"div"],[10,"class","declarations"],[8],[0,"\\n "],[6,"div"],[10,"class","declarations-header"],[8],[0," \\n "],[6,"div"],[10,"class","input-group"],[8],[0,"\\n "],[1,[26,"input",null,[["class","value","placeholder"],["form-control",[22,["query"]],"Identifier"]]],false],[6,"a"],[10,"class","hide-declarations"],[10,"href","#"],[3,"action",[[21,0,[]],"toggleShowDeclarations"]],[8],[1,[20,"showDeclarationsLabel"],false],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[4,"if",[[22,["showDeclarations"]]],null,{"statements":[[0," "],[6,"div"],[10,"id","declarations-content"],[10,"class","declarations-content"],[8],[0," \\n "],[6,"ul"],[8],[0," \\n"],[4,"infinite-list",null,[["containerElementId","elements","perPage"],["declarations-content",[22,["filteredDeclarations"]],30]],{"statements":[[0," "],[6,"li"],[10,"class","declaration"],[8],[0,"\\n "],[6,"div"],[10,"class","declaration"],[8],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"goToLine",[21,2,["lineNumber"]]]],[8],[6,"span"],[10,"class","source-code-font"],[8],[1,[21,2,["name"]],false],[4,"if",[[21,2,["declType"]]],null,{"statements":[[0," :: "],[1,[26,"type-signature-text",null,[["components"],[[21,2,["declType","components"]]]]],false]],"parameters":[]},null],[9],[0,"\\n "],[9],[6,"span"],[8],[4,"unless",[[21,2,["isExported"]]],null,{"statements":[[6,"i"],[8],[0,"(not exported)"],[9]],"parameters":[]},null],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[2]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[4,"info-window",null,[["targetElement","isHoveredOverIdentifier","hasSelectedExpression","containerElementId"],[[22,["selectedIdentifier"]],[22,["isHoveredOverIdentifier"]],[22,["hasSelectedExpression"]],"right-panel"]],{"statements":[[4,"if",[[26,"eq",[[21,1,[]],"header"],null]],null,{"statements":[[4,"if",[[22,["hasSelectedExpression"]]],null,{"statements":[[0," "],[6,"div"],[8],[0,"Selected expressions"],[9],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"identifier-name",null,[["identifierInfo","identifierOccurrence","identifierElement","currentPackageId","isBinder","currentLineNumber","findReferences"],[[22,["identifierInfo"]],[22,["identifierOccurrence"]],[22,["selectedIdentifier"]],[22,["packageId"]],[22,["identifierOccurrence","isBinder"]],[22,["currentLineNumber"]],[22,["findReferences"]]]]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]},{"statements":[[4,"unless",[[22,["hasSelectedExpression"]]],null,{"statements":[[0," "],[1,[26,"identifier-info",null,[["identifierInfo","identifierOccurrence","identifiers","currentLineNumber"],[[22,["identifierInfo"]],[22,["identifierOccurrence"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"expression-info",null,[["expressions","identifiers","currentLineNumber"],[[22,["expressions"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]}]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/haskell-module.hbs"}})}),define("haskell-code-explorer/templates/components/identifier-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"zMkGyYS+",block:'{"symbols":[],"statements":[[4,"if",[[26,"or",[[22,["identifierInfo"]],[22,["identifierOccurrence","idOccType"]]],null]],null,{"statements":[[0," "],[6,"div"],[10,"class","identifier-info"],[8],[0,"\\n"],[4,"if",[[22,["identifierInfo"]]],null,{"statements":[[4,"if",[[22,["isNaughtyRecSel"]]],null,{"statements":[[0," "],[6,"i"],[8],[0,"This record selector can never be called because its type mentions a type variable that isn\'t in the result type of the constructor"],[9],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber"],[[22,["identifierInfo","idType"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]},null],[4,"if",[[26,"and",[[22,["identifierInfo"]],[22,["identifierOccurrence"]],[22,["identifierOccurrence","idOccType"]]],null]],null,{"statements":[[0," "],[6,"div"],[10,"style","height:10px"],[8],[9],[0,"\\n"]],"parameters":[]},null],[4,"if",[[26,"and",[[22,["identifierOccurrence"]],[22,["identifierOccurrence","idOccType"]]],null]],null,{"statements":[[0," "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber"],[[22,["identifierOccurrence","idOccType"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[6,"div"],[10,"class","documentation"],[8],[0,"\\n "],[1,[22,["identifierInfo","doc"]],true],[0,"\\n "],[1,[20,"downloadedDocumentation"],true],[0,"\\n "],[9],[0,"\\n"],[4,"if",[[22,["identifierOccurrence","instanceResolution"]]],null,{"statements":[[0," "],[6,"div"],[10,"style","height:10px"],[8],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[6,"div"],[8],[0,"\\n"],[4,"if",[[22,["identifierOccurrence","instanceResolution"]]],null,{"statements":[[0," "],[1,[26,"instance-info",null,[["instance","identifiers","nestedLevel","currentLineNumber"],[[22,["identifierOccurrence","instanceResolution"]],[22,["identifiers"]],0,[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/identifier-info.hbs"}})}),define("haskell-code-explorer/templates/components/identifier-name",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"R4FDvyEH",block:'{"symbols":[],"statements":[[6,"div"],[8],[0,"\\n "],[6,"span"],[10,"class","source-code-font break-word identifier-menu-item"],[11,"style",[20,"style"]],[8],[4,"if",[[22,["identifierInfo","demangledOccName"]]],null,{"statements":[[1,[22,["identifierInfo","demangledOccName"]],false]],"parameters":[]},{"statements":[[1,[20,"name"],false]],"parameters":[]}],[9],[0,"\\n"],[4,"unless",[[22,["isBinder"]]],null,{"statements":[[4,"if",[[22,["location"]]],null,{"statements":[[0," "],[6,"span"],[10,"class","identifier-menu-item"],[8],[1,[20,"location"],false],[9],[0," \\n "],[6,"span"],[10,"class","link identifier-menu-item"],[11,"onmouseup",[26,"action",[[21,0,[]],"goToDefinition"],null]],[8],[0,"Go to definition"],[9],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null],[4,"if",[[22,["isExternalIdentifier"]]],null,{"statements":[[0," "],[6,"span"],[10,"class","link identifier-menu-item"],[11,"onmouseup",[26,"action",[[21,0,[]],"findReferences",[22,["identifierInfo"]],[22,["currentPackageId"]]],null]],[8],[0,"Find references"],[9],[0,"\\n"]],"parameters":[]},null],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/identifier-name.hbs"}})}) +define("haskell-code-explorer/templates/components/infinite-list",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AVFRMQuE",block:'{"symbols":["element","&default"],"statements":[[4,"each",[[22,["renderedElements"]]],null,{"statements":[[0," "],[13,2,[[21,1,[]]]],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/infinite-list.hbs"}})}),define("haskell-code-explorer/templates/components/info-window",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Xi4+uOqU",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","info-window"],[8],[0,"\\n "],[6,"div"],[10,"class","info-window-header"],[8],[0,"\\n "],[6,"div"],[10,"class","info-window-options"],[8],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"pin"]],[8],[4,"if",[[22,["isPinned"]]],null,{"statements":[[0,"Unpin"]],"parameters":[]},{"statements":[[0,"Pin"]],"parameters":[]}],[9],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"close"]],[8],[0,"Close"],[9],[0,"\\n "],[9],[0,"\\n "],[13,1,["header"]],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","info-window-content"],[8],[0,"\\n "],[13,1,["body"]],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/info-window.hbs"}})}),define("haskell-code-explorer/templates/components/input-with-autocomplete",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"zEeiJBdD",block:'{"symbols":["item","index","&default"],"statements":[[6,"div"],[10,"class","input-group"],[8],[0,"\\n "],[1,[26,"input",null,[["class","value","placeholder"],["form-control search-input",[22,["query"]],[22,["placeholder"]]]]],false],[0,"\\n "],[6,"div"],[10,"class","autocomplete-container"],[8],[0,"\\n"],[4,"if",[[22,["items"]]],null,{"statements":[[0," "],[6,"ul"],[10,"class","autocomplete-items"],[8],[0,"\\n"],[4,"each",[[22,["items"]]],null,{"statements":[[0," "],[6,"li"],[11,"class",[27,[[26,"if",[[26,"eq",[[21,2,[]],[22,["highlightedItemIndex"]]],null],"highlighted"],null]]]],[11,"onclick",[26,"action",[[21,0,[]],"goToDefinition",[21,1,[]]],null]],[8],[0,"\\n "],[6,"div"],[10,"class","autocomplete-item"],[8],[0,"\\n "],[13,3,[[21,1,[]]]],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[1,2]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[6,"div"],[10,"class","input-group-append"],[8],[0,"\\n "],[6,"button"],[10,"id","search-input"],[10,"class","btn btn-outline-secondary"],[3,"action",[[21,0,[]],"onSubmit",[22,["query"]]]],[8],[0,"Search"],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/input-with-autocomplete.hbs"}})}),define("haskell-code-explorer/templates/components/instance-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"uCPSf7BD",block:'{"symbols":["inst"],"statements":[[4,"if",[[22,["instance"]]],null,{"statements":[[0," "],[6,"div"],[11,"style",[20,"style"]],[8],[0,"\\n "],[6,"span"],[10,"class","source-code-font"],[8],[0,"\\n instance "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber","noExpand"],[[22,["instance","instanceType"]],[22,["identifiers"]],[22,["currentLineNumber"]],true]]],false],[9],[0,"\\n ("],[6,"span"],[10,"class","link"],[11,"onclick",[26,"action",[[21,0,[]],"goToDefinition"],null]],[8],[0,"Go to definition"],[9],[0,")\\n"],[4,"each",[[22,["instance","instances"]]],null,{"statements":[[0," "],[1,[26,"instance-info",null,[["instance","identifiers","nestedLevel","currentLineNumber"],[[21,1,[]],[22,["identifiers"]],[22,["nextNestedLevel"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/instance-info.hbs"}})}),define("haskell-code-explorer/templates/components/paginated-list",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1Snh4cz4",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","paginated-list-header"],[8],[0," \\n "],[6,"span"],[8],[0,"Found "],[1,[20,"total"],false],[9],[0,"\\n"],[4,"if",[[26,"or",[[22,["next"]],[22,["prev"]]],null]],null,{"statements":[[0," \\n \\n "],[6,"span"],[8],[0,"\\n "],[4,"if",[[22,["first"]]],null,{"statements":[[6,"button"],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["first","href"]]]],[8],[0,"<<"],[9]],"parameters":[]},null],[0,"\\n "],[4,"if",[[22,["prev"]]],null,{"statements":[[6,"button"],[10,"button",""],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["prev","href"]]]],[8],[0,"<"],[9]],"parameters":[]},null],[0,"\\n "],[1,[20,"firstItemOnPage"],false],[0," - "],[1,[20,"lastItemOnPage"],false],[0,"\\n "],[4,"if",[[22,["next"]]],null,{"statements":[[6,"button"],[10,"button",""],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["next","href"]]]],[8],[0,">"],[9]],"parameters":[]},null],[0,"\\n "],[4,"if",[[22,["last"]]],null,{"statements":[[6,"button"],[10,"button",""],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["last","href"]]]],[8],[0,">>"],[9]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[9],[0,"\\n"],[6,"div"],[10,"class","paginated-list-content"],[8],[0,"\\n "],[13,1,[[22,["items"]]]],[0," \\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/paginated-list.hbs"}})}),define("haskell-code-explorer/templates/components/resizable-panel",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"tpKUpnLR",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","absolute-container"],[8],[13,1,[[26,"action",[[21,0,[]],"hide"],null]]],[0,"\\n "],[6,"div"],[11,"onclick",[26,"action",[[21,0,[]],"hide"],null]],[10,"class","show-left-panel-button"],[8],[0,"\\n "],[1,[20,"hideButtonLabel"],true],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/resizable-panel.hbs"}})}),define("haskell-code-explorer/templates/components/text-file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"yYFMOyZb",block:'{"symbols":[],"statements":[[6,"div"],[10,"class","source-code-container"],[8],[0,"\\n"],[1,[20,"html"],true],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/text-file.hbs"}})}),define("haskell-code-explorer/templates/components/type-component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"nSuhY152",block:'{"symbols":[],"statements":[[4,"if",[[26,"and",[[22,["expanded"]],[22,["identifierInfo"]]],null]],null,{"statements":[[0,"("]],"parameters":[]},null],[0,"\\n"],[6,"span"],[11,"class",[27,["source-code ",[20,"linkClass"]]]],[11,"onmouseup",[26,"action",[[21,0,[]],"onmouseup"],null]],[8],[1,[20,"occName"],false],[9],[0,"\\n"],[4,"if",[[26,"and",[[22,["expanded"]],[22,["identifierInfo"]]],null]],null,{"statements":[[0," :: "],[1,[26,"type-signature",null,[["type","identifiers","noExpand"],[[22,["identifierInfo","idType"]],[22,["identifiers"]],true]]],false],[0,")"]],"parameters":[]},null],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/type-component.hbs"}})}),define("haskell-code-explorer/templates/components/type-signature-text",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"+rUvtMa3",block:'{"symbols":["typeComponent"],"statements":[[4,"each",[[22,["components"]]],null,{"statements":[[4,"if",[[26,"eq",[[21,1,["tag"]],"Text"],null]],null,{"statements":[[1,[21,1,["contents"]],false]],"parameters":[]},{"statements":[[1,[21,1,["name"]],false]],"parameters":[]}]],"parameters":[1]},null],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/type-signature-text.hbs"}})}),define("haskell-code-explorer/templates/components/type-signature",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"SdJzinj9",block:'{"symbols":["typeComponent"],"statements":[[4,"each",[[22,["components"]]],null,{"statements":[[4,"if",[[26,"eq",[[21,1,["tag"]],"Text"],null]],null,{"statements":[[6,"span"],[10,"class","source-code"],[8],[1,[21,1,["contents"]],false],[9]],"parameters":[]},{"statements":[[1,[26,"type-component",null,[["occName","internalId","identifiers","currentLineNumber"],[[21,1,["name"]],[21,1,["internalId"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false]],"parameters":[]}]],"parameters":[1]},null],[0,"\\n"],[4,"unless",[[22,["noExpand"]]],null,{"statements":[[4,"if",[[22,["type","componentsExpanded"]]],null,{"statements":[[0," "],[6,"div"],[10,"style","margin-top:5px"],[8],[0,"\\n "],[6,"button"],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"toggleExpandTypeSynonyms"]],[8],[1,[20,"expandTypeSynonymsLabel"],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/type-signature.hbs"}})}),define("haskell-code-explorer/templates/package",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"wmOuG9eh",block:'{"symbols":["section","files","file","reference","hide","identifier"],"statements":[[6,"div"],[10,"class","flex-container"],[8],[0,"\\n "],[6,"div"],[10,"class","package-header"],[8],[0,"\\n "],[6,"span"],[10,"class","package-header-package-name"],[8],[4,"link-to",["package",[22,["model"]]],null,{"statements":[[1,[22,["model","id"]],false]],"parameters":[]},null],[9],[0," \\n "],[6,"span"],[10,"class","package-header-input"],[8],[0,"\\n"],[4,"input-with-autocomplete",null,[["onSubmit","createSearchUrlFunction","maxItems","selectItem","placeholder"],[[26,"action",[[21,0,[]],"searchIdentifier"],null],[22,["createSearchUrlFunction"]],10,[26,"action",[[21,0,[]],"showIdentifier"],null],"Identifier"]],{"statements":[[0," "],[6,"span"],[10,"class","source-code-font"],[8],[1,[21,6,["demangledOccName"]],false],[0," :: "],[1,[26,"type-signature-text",null,[["components"],[[21,6,["idType","components"]]]]],false],[9],[0,"\\n "],[6,"div"],[10,"class","module-name"],[8],[0,"\\n"],[4,"if",[[21,6,["locationInfo","modulePath"]]],null,{"statements":[[0," "],[1,[21,6,["locationInfo","modulePath"]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[21,6,["locationInfo","moduleName"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"]],"parameters":[6]},null],[0," "],[9],[0,"\\n"],[4,"if",[[22,["currentFile"]]],null,{"statements":[[0," "],[6,"span"],[10,"class","package-header-filename"],[8],[0,"\\n "],[1,[20,"currentFile"],false],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[6,"div"],[10,"class","package-content"],[8],[0,"\\n"],[4,"resizable-panel",null,[["class","alsoResizeElementId"],["left-panel","#right-panel"]],{"statements":[[0," "],[6,"div"],[10,"class","file-tree-container"],[8],[0,"\\n "],[1,[26,"file-tree",null,[["directoryTree","openFile","currentFile","packageId","hide"],[[22,["model","directoryTree"]],"openFile",[22,["currentFile"]],[22,["model","id"]],[21,5,[]]]]],false],[0,"\\n "],[9],[0,"\\n"]],"parameters":[5]},null],[0," "],[6,"div"],[10,"id","right-panel"],[10,"class","right-panel"],[8],[0,"\\n "],[6,"div"],[10,"id","file-container"],[10,"class","file-container"],[8],[0," \\n "],[1,[20,"outlet"],false],[0," \\n "],[9],[0,"\\n"],[4,"bottom-panel",null,[["visible","topPanelElementId","containerElementId"],[[22,["bottomPanelVisible"]],"#file-container","#right-panel"]],{"statements":[[4,"if",[[26,"eq",[[21,1,[]],"header"],null]],null,{"statements":[[0," References to "],[6,"b"],[8],[6,"span"],[10,"class","source-code"],[8],[1,[20,"occName"],false],[9],[9],[0," in "],[6,"span"],[10,"class","source-code"],[8],[1,[20,"packageId"],false],[9],[0,"\\n"]],"parameters":[]},{"statements":[[4,"paginated-list",null,[["url"],[[22,["referencesUrl"]]]],{"statements":[[0," "],[6,"ul"],[8],[0,"\\n"],[4,"each",[[21,2,[]]],null,{"statements":[[0," "],[6,"li"],[8],[0,"\\n "],[6,"div"],[10,"class","file-name"],[8],[6,"a"],[11,"href",[27,["/package/",[20,"packageId"],"/show/",[21,3,["name"]]]]],[8],[1,[21,3,["name"]],false],[9],[9],[0,"\\n"],[4,"each",[[21,3,["references"]]],null,{"statements":[[0," "],[6,"a"],[10,"class","source-code source-code-snippet"],[11,"href",[27,["/package/",[20,"packageId"],"/show/",[21,3,["name"]],"#L",[21,4,["idSrcSpan","line"]]]]],[8],[1,[21,4,["sourceCodeHtml"]],true],[9],[0,"\\n"]],"parameters":[4]},null],[0," "],[9],[0,"\\n"]],"parameters":[3]},null],[0," "],[9],[0,"\\n"]],"parameters":[2]},null]],"parameters":[]}]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package.hbs"}})}),define("haskell-code-explorer/templates/package/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"NL2mPZNK",block:'{"symbols":["module"],"statements":[[6,"div"],[10,"class","package-modules"],[8],[0,"\\n "],[6,"div"],[10,"class","module-search-input"],[8],[0,"\\n "],[1,[26,"input",null,[["class","type","value","placeholder"],["form-control","text",[22,["query"]],"Module name"]]],false],[0," \\n "],[9],[0," \\n "],[6,"ul"],[10,"class","modules"],[8],[0,"\\n"],[4,"each",[[22,["modulesFiltered"]]],null,{"statements":[[0," "],[6,"li"],[8],[0,"\\n "],[6,"a"],[11,"href",[27,["/package/",[22,["model","id"]],"/show/",[21,1,[]]]]],[8],[1,[21,1,[]],false],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0," \\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/index.hbs"}})}),define("haskell-code-explorer/templates/package/search",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"tnwltDLx",block:'{"symbols":["identifiers","identifier"],"statements":[[6,"div"],[10,"class","search-results-header"],[8],[0,"\\n Query : "],[1,[22,["model","query"]],false],[0,"\\n"],[9],[0,"\\n"],[6,"div"],[10,"class","search-results-content"],[8],[0,"\\n"],[4,"paginated-list",null,[["url"],[[22,["model","url"]]]],{"statements":[[0," "],[6,"ul"],[8],[0,"\\n"],[4,"each",[[21,1,[]]],null,{"statements":[[0," "],[6,"li"],[10,"class","search-result"],[8],[0," \\n "],[6,"span"],[10,"class","source-code"],[8],[1,[21,2,["demangledOccName"]],false],[0," :: "],[1,[26,"type-signature-text",null,[["components"],[[21,2,["idType","components"]]]]],false],[9],[0,"\\n "],[6,"div"],[8],[6,"a"],[10,"href","#"],[11,"onmouseup",[26,"action",[[21,0,[]],"goToDefinition",[21,2,["locationInfo"]]],null]],[8],[0,"Go to definition"],[9],[9],[0,"\\n "],[6,"div"],[10,"class","identifier-module"],[8],[0,"\\n"],[4,"if",[[21,2,["locationInfo","modulePath"]]],null,{"statements":[[0," Defined in "],[6,"a"],[11,"href",[27,["/package/",[21,2,["locationInfo","packageId","name"]],"-",[21,2,["locationInfo","packageId","version"]],"/show/",[21,2,["locationInfo","modulePath"]]]]],[8],[1,[21,2,["locationInfo","modulePath"]],false],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[6,"div"],[8],[1,[21,2,["doc"]],true],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[2]},null],[0," "],[9],[0,"\\n"]],"parameters":[1]},null],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/search.hbs"}})}),define("haskell-code-explorer/templates/package/show",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"aR1d98il",block:'{"symbols":[],"statements":[[1,[20,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/show.hbs"}})}),define("haskell-code-explorer/templates/package/show/file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"n+gY0z10",block:'{"symbols":[],"statements":[[4,"if",[[22,["model","isHaskellModule"]]],null,{"statements":[[0," "],[1,[26,"haskell-module",null,[["path","name","packageId","componentId","html","identifiers","occurrences","colorTheme","declarations","findReferences"],[[22,["model","id"]],[22,["model","name"]],[22,["model","packageId"]],[22,["model","componentId"]],[22,["model","sourceCodeHtml"]],[22,["model","identifiers"]],[22,["model","occurrences"]],[22,["settings","colorTheme"]],[22,["model","declarations"]],[26,"action",[[21,0,[]],"findReferences"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"text-file",null,[["text","path"],[[22,["model","text"]],[22,["model","id"]]]]],false],[0,"\\n"]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/show/file.hbs"}})}),define("haskell-code-explorer/templates/packages",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"b/AToiBD",block:'{"symbols":["package","version","index"],"statements":[[6,"div"],[10,"class","flex-container container"],[8],[0,"\\n "],[6,"div"],[8],[0," \\n "],[2," <p class=\\"lead\\"><b>Haskell code explorer</b> </p> "],[0,"\\n "],[6,"div"],[10,"class","package-search-form"],[8],[0,"\\n "],[1,[26,"input",null,[["class","type","value","placeholder"],["form-control","text",[22,["query"]],"Package name"]]],false],[0,"\\n "],[6,"span"],[8],[0,"Number of packages : "],[1,[22,["packages","length"]],false],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"id","packages"],[10,"class","packages"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n"],[4,"infinite-list",null,[["containerElementId","elements","perPage"],["packages",[22,["packages"]],80]],{"statements":[[0," "],[6,"li"],[8],[0,"\\n"],[4,"each",[[21,1,["versions"]]],null,{"statements":[[4,"link-to",["package",[26,"concat",[[21,1,["name"]],"-",[21,2,[]]],null]],null,{"statements":[[4,"if",[[26,"gt",[[21,3,[]],0],null]],null,{"statements":[[0," "],[1,[21,2,[]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[21,1,["name"]],false],[0,"-"],[1,[21,2,[]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]},null]],"parameters":[2,3]},null],[0," "],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/packages.hbs"}})}),define("haskell-code-explorer/utils/api-urls",["exports","haskell-code-explorer/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.urls=void 0 +e.urls={packageInfoUrl:function(e){return t.default.APP.staticUrlPrefix+"/"+e+"/"+t.default.APP.haskellCodeExplorerDirectory+"/packageInfo.json"},fileUrl:function(e,n){return t.default.APP.staticUrlPrefix+"/"+e+"/"+n},haskellModuleUrl:function(e,n){return t.default.APP.staticUrlPrefix+"/"+e+"/"+t.default.APP.haskellCodeExplorerDirectory+"/"+encodeURIComponent(encodeURIComponent(n))+".json"},packagesUrl:t.default.APP.apiUrlPrefix+"/packages",identifierDefinitionSiteUrl:function(e,n,o,r,i){return t.default.APP.apiUrlPrefix+"/definitionSite/"+e+"/"+o+"/"+n+"/"+r+"/"+encodeURIComponent(i).replace(/\./g,"%2E")},modulePathUrl:function(e,n,o){return t.default.APP.apiUrlPrefix+"/modulePath/"+e+"/"+o+"/"+n},expressionsUrl:function(e,n,o,r,i,l){return t.default.APP.apiUrlPrefix+"/expressions/"+e+"/"+encodeURIComponent(n)+"/"+o+"/"+r+"/"+i+"/"+l},referencesUrl:function(e,n){return t.default.APP.apiUrlPrefix+"/references/"+e+"/"+encodeURIComponent(n)},identifierSearchUrl:function(e,n){return t.default.APP.apiUrlPrefix+"/identifiers/"+e+"/"+encodeURIComponent(n).replace(/\./g,"%2E")}}}),define("haskell-code-explorer/utils/color-themes",["exports"],function(e){function t(e){return"\n body { \n color: "+e.defaultColor+" !important;\n background-color: "+e.backgroundColor+" !important;\n }\n input {\n color: "+e.defaultColor+" !important;\n background-color: "+e.backgroundColor+" !important;\n border-color: "+e.borderColor+" !important;\n }\n .package-content {\n border-top: 1px solid "+e.borderColor+" !important;\n }\n .header a {\n color : "+e.menuLinkColor+" !important;\n }\n a {\n color: "+e.typeColor+" !important;\n }\n span.link {\n color: "+e.typeColor+" !important;\n }\n .header {\n background-color: "+e.menuColor+" !important;\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .declarations-content {\n background-color: "+e.navigationPanelColor+" !important;\n border: 1px solid "+e.borderColor+" !important;\n }\n .declarations-header {\n background-color: "+e.navigationPanelColor+" !important;\n border: 1px solid "+e.borderColor+" !important; \n }\n li.declaration {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .left-panel {\n background-color: "+e.navigationPanelColor+" !important;\n border-right: 1px solid "+e.borderColor+" !important;\n }\n .show-left-panel-button {\n background-color: "+e.navigationPanelColor+" !important;\n border-right:1px solid "+e.borderColor+" !important;\n border-bottom:1px solid "+e.borderColor+" !important;\n }\n .right-panel {\n background-color: "+e.backgroundColor+" !important;\n }\n a.jstree-anchor {\n color: "+e.defaultColor+" !important;\n }\n .declaration > a {\n color: "+e.defaultColor+" !important;\n }\n .highlighted-line {\n background : "+e.highlightedLineColor+" !important;\n }\n table.source-code {\n background-color: "+e.backgroundColor+" !important;\n color: "+e.defaultColor+" !important;\n }\n .jstree-clicked {\n background-color: "+e.backgroundColor+" !important;\n }\n .jstree-hovered {\n background-color: "+e.backgroundColor+" !important;\n }\n ul.autocomplete-items {\n background-color: "+e.backgroundColor+" !important;\n border-top: 1px solid "+e.borderColor+" !important;\n border-left: 1px solid "+e.borderColor+" !important;\n border-right: 1px solid "+e.borderColor+" !important;\n }\n ul.autocomplete-items > li { \n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n ul.autocomplete-items > li:hover { \n background-color: "+e.highlightedLineColor+" !important;\n }\n ul.autocomplete-items > li.highlighted { \n background-color: "+e.highlightedLineColor+" !important;\n }\n .source-code-snippet {\n color: "+e.defaultColor+" !important;\n border-bottom: 1px solid "+e.borderColor+" !important;\n } \n .source-code-snippet:hover {\n background-color: "+e.highlightedLineColor+" !important;\n }\n .bottom-panel {\n background-color: "+e.backgroundColor+" !important;\n border-top: 1px solid "+e.borderColor+" !important;\n }\n .bottom-panel-header {\n border-bottom: 1px solid "+e.borderColor+" !important; \n }\n .paginated-list-header {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n li.search-result {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .search-results-header {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .info-window-content {\n border-top: 1px solid "+e.borderColor+" !important;\n }\n .info-window {\n border: 1px solid "+e.borderColor+" !important;\n background-color:"+e.infoWindowColor+" !important;\n color: "+e.defaultColor+" !important;\n }\n .type-info {\n border-top: 1px solid "+e.borderColor+" !important;\n }"}function n(e){var n=document.createElement("style") +n.type="text/css",n.innerHTML=t(e),n.id="color-theme" +var o=document.querySelector("style#color-theme") +o&&o.parentElement.removeChild(o),document.getElementsByTagName("head")[0].appendChild(n)}Object.defineProperty(e,"__esModule",{value:!0}) +var o={id:"darkTheme",name:"Dark theme",description:"Dark theme (Monokai based)",defaultColor:"#F8F8F2",backgroundColor:"#272822",typeColor:"#66D9EF",literalColor:"#E6DB74",topLevelIdFromCurrentModule:"#A6E22E",localIdentifierColor:["#F0A3FF","#0075DC","#993F00","#2BCE48","#FFCC99","#808080","#94FFB5","#8F7C00","#C20088","#FFA405","#FFA8BB","#426600","#FF0010","#5EF1F2","#00998F","#E0FF66","#FFFF80","#FFFF00","#FF5005"],menuColor:"#3c3b37",menuLinkColor:"#F8F8F2",infoWindowColor:"#3c3b37",navigationPanelColor:"#3c3b37",linkColor:"#0366d6",borderColor:"#535557",highlightedLineColor:"#4a4a4a"},r={id:"lightTheme",name:"Light theme",description:"Light theme (Github based)",defaultColor:"#24292e",backgroundColor:"#ffffff",typeColor:"#005cc5",literalColor:"#032f62",topLevelIdFromCurrentModule:"#6f42c1",localIdentifierColor:["#005C31","#2BCE48","#808080","#8F7C00","#C20088","#FFA405","#ffa8bb","#426600","#FF0010","#09d7d8","#00998F","#990000","#FF5005"],menuColor:"#f2f4f8",menuLinkColor:"#24292e",infoWindowColor:"#f2f4f8",navigationPanelColor:"#f2f4f8",linkColor:"#0366d6",borderColor:"#e1e4e8",highlightedLineColor:"#eaeaea"},i={darkTheme:o,lightTheme:r} +e.updateColorThemeCss=n,e.colorThemeToCss=t,e.themes=i}),define("haskell-code-explorer/utils/go-to-definition",["exports"],function(e){function t(e){var t=e.modulePath,n=e.packageId.name+"-"+e.packageId.version,o="" +return 1!=e.startLine&&(o="#L"+e.startLine),"/package/"+n+"/show/"+t+o}function n(e,t){var n=t.moduleName.replace(/\./g,"-"),o=void 0 +o="Val"===t.entity?"v":"t" +var r="" +return"Val"!==t.entity&&"Typ"!==t.entity||(r="#"+o+":"+t.haddockAnchorId),"https://hackage.haskell.org/package/"+e+"/docs/"+n+".html"+r}function o(e,t){return 2===e?window.open(t,"_blank"):1==e&&(window.location=t),!1}function r(e){if(e){var t=window.location.origin+window.location.pathname+"#L"+e +location.href!=t&&(window.location.hash="#L"+e)}}function i(e,i,l,s){if("ExactLocation"===i.tag){var a=t(i) +i.startLine!==s&&r(s),o(l,a)}else if("ApproximateLocation"===i.tag){var c=i.packageId.name+"-"+i.packageId.version +"Mod"===i.entity?e.loadDefinitionSite(c,i.moduleName,i.componentId,i.entity,i.moduleName).then(function(e){var t=e.location.packageId.name+"-"+e.location.packageId.version +o(l,"/package/"+t+"/show/"+e.location.modulePath)}).catch(function(){o(l,n(c,i))}):e.loadDefinitionSite(c,i.moduleName,i.componentId,i.entity,i.name).then(function(e){if("ExactLocation"===e.location.tag){var a=t(e.location) +i.startLine!==s&&r(s),o(l,a)}else r(s),o(l,n(c,i))}).catch(function(e){console.log(e),r(s),o(l,n(c,i))})}else alert("No location info")}Object.defineProperty(e,"__esModule",{value:!0}),e.goToDefinition=i,e.openUrl=o}),define("haskell-code-explorer/utils/line-selection",["exports"],function(e){function t(e,t){var o=Array.prototype.slice.call(e.querySelectorAll("td.line-number")) +if(o.length>0){var i=function(){n(e)} +window.addEventListener("hashchange",i),t._onhashchange=i +var l=void 0,s=function(e){16===e.keyCode&&(l=!0)},a=function(e){16===e.keyCode&&(l=!1)} +document.addEventListener("keydown",s),document.addEventListener("keyup",a),t._onkeydown=s,t._onkeyup=a +var c=void 0,d=void 0 +o.forEach(function(t){t.onclick=function(){var t=parseInt(this.textContent) +l&&c?c!=t&&(d=t,c<d?(r(e,c,d),window.location.hash="L"+c+"-L"+d):(r(e,d,c),window.location.hash="L"+d+"-L"+c)):(c=t,d=null,r(e,c,c),window.location.hash="L"+t)}}) +var u=n(e) +u.length&&(c=u[0],d=u[1])}}function n(e){var t=window.location.hash.slice(1) +if(!t)return r(e,0,0),[] +if(t.includes("-")){var n=t.split("-"),i=parseInt(n[0].substring(1)),l=parseInt(n[1].substring(1)) +if(i&&l&&i<=l){r(e,i,l) +var s=e.querySelector("td#LC"+i) +return s&&o(s,e),[i,l]}}else{var a=parseInt(t.substring(1)) +if(a){r(e,a,a) +var c=e.querySelector("td#LC"+a) +return c&&o(c,e),[a]}}}function o(e,t){e.parentNode.scrollIntoView() +var n=t.parentNode.parentNode,o=n.offsetHeight +t.offsetHeight-n.scrollTop>o&&(n.scrollTop=n.scrollTop-(o/2-20))}function r(e,t,n){Array.prototype.slice.call(e.querySelectorAll("td.line-content")).forEach(function(e){var o=parseInt(e.id.substring(2)) +o>=t&&o<=n?e.classList.add("highlighted-line"):e.classList.remove("highlighted-line")})}Object.defineProperty(e,"__esModule",{value:!0}),e.initializeLineSelection=t,e.highlightLines=r,e.highlightSelectedLines=n}),define("haskell-code-explorer/config/environment",[],function(){try{var e="haskell-code-explorer/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n=JSON.parse(unescape(t)),o={default:n} +return Object.defineProperty(o,"__esModule",{value:!0}),o}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("haskell-code-explorer/app").default.create({staticUrlPrefix:"/files",apiUrlPrefix:"/api",haskellCodeExplorerDirectory:".haskell-code-explorer",title:"Haskell code explorer",name:"haskell-code-explorer",version:"0.0.1+cdeabaf8"}) diff --git a/javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css b/javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css new file mode 100644 index 0000000..25c381b --- /dev/null +++ b/javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v4.1.2 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */dd,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem}dl,ol,pre,ul{margin-top:0}address,dl,ol,p,pre,ul{margin-bottom:1rem}img,svg:not(:root){vertical-align:middle}body,caption{text-align:left}pre,textarea{overflow:auto}article,aside,figcaption,figure,footer,header,hgroup,legend,main,nav,section{display:block}address,legend{line-height:inherit}.badge,progress,sub,sup{vertical-align:baseline}button,hr,input{overflow:visible}.btn-outline-danger,.btn-outline-dark,.btn-outline-info,.btn-outline-light,.btn-outline-primary,.btn-outline-success,.btn-outline-warning,.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}.dropdown-menu,.form-control,.modal-content,.popover{background-clip:padding-box}.dropdown-menu,.nav,.navbar-nav{list-style:none}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-weight:400;line-height:1.5;color:#212529;background-color:#fff}.text-monospace,code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}.btn:not(:disabled):not(.disabled),.navbar-toggler:not(:disabled):not(.disabled),.page-link:not(:disabled):not(.disabled),summary{cursor:pointer}address{font-style:normal}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}blockquote,figure{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-size:1em}pre{-ms-overflow-style:scrollbar}img{border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;caption-side:bottom}th{text-align:inherit}label,output{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[type=submit],[type=reset],button,html [type=button]{-webkit-appearance:button}[type=submit]::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;color:inherit;white-space:normal}.badge,.btn,.dropdown-header,.dropdown-item,.input-group-text,.navbar-brand,.progress-bar{white-space:nowrap}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.display-1,.display-2,.display-3,.display-4{line-height:1.2}summary{display:list-item}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.blockquote,hr{margin-bottom:1rem}.display-1,.display-2,.display-3,.display-4,.lead{font-weight:300}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem}.display-1{font-size:6rem}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-4{font-size:3.5rem}hr{box-sizing:content-box;height:0;margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}a>code,pre code{color:inherit}code{word-break:break-word}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}.container,.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;width:100%}.btn,.btn-link,.dropdown-item{font-weight:400}pre{display:block}pre code{font-size:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:none}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:none}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered,.table-responsive>.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.collapsing,.modal,.modal-open,.progress{overflow:hidden}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.custom-file-input.is-valid~.custom-file-label,.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-file-input:valid~.custom-file-label,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.invalid-tooltip,.valid-tooltip{position:absolute;z-index:5;max-width:100%;padding:.5rem;line-height:1;border-radius:.2rem;top:100%}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{display:none;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(40,167,69,.8)}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.form-check-input.is-valid~.form-check-label,.was-validated .custom-control-input:valid~.custom-control-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.custom-file-label,.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-file-input:invalid~.custom-file-label,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{display:none;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.8)}.collapsing,.dropdown,.dropleft,.dropright,.dropup{position:relative}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.form-check-input.is-invalid~.form-check-label,.was-validated .custom-control-input:invalid~.custom-control-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn-block,input[type=submit].btn-block,input[type=button].btn-block,input[type=reset].btn-block{width:100%}.btn{display:inline-block;text-align:center;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn-primary.focus,.btn-primary:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-success.focus,.btn-success:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-info.focus,.btn-info:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-warning.focus,.btn-warning:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-danger.focus,.btn-danger:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-light.focus,.btn-light:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-dark.focus,.btn-dark:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-outline-primary.focus,.btn-outline-primary:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-secondary.focus,.btn-outline-secondary:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-success.focus,.btn-outline-success:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success{color:#28a745;background-color:transparent;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-info.focus,.btn-outline-info:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-warning.focus,.btn-outline-warning:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-danger.focus,.btn-outline-danger:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-light.focus,.btn-outline-light:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-dark.focus,.btn-outline-dark:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-link,.btn-link:hover{background-color:transparent}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline;border-color:transparent}.btn-link{color:#007bff}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus{box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block}.btn-block+.btn-block{margin-top:.5rem}.dropdown-toggle::after,.dropup .dropdown-toggle::after{width:0;height:0;vertical-align:.255em;content:""}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropleft .dropdown-toggle::before,.dropright .dropdown-toggle::after{width:0;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;height:0}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;border-right:0;border-left:.3em solid;vertical-align:0}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;border-right:.3em solid;vertical-align:0}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropdown-menu[x-placement^=top],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn,.custom-control-label,.custom-file,.dropdown-header,.input-group-text,.nav{margin-bottom:0}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;color:#212529;text-align:inherit;background-color:transparent;border:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after,.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child),.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;font-size:.875rem;color:#6c757d}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:0 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-group>.btn:first-child,.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.input-group-append,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text,.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file{display:flex;align-items:center}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-prepend{margin-right:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.nav,.navbar{flex-wrap:wrap}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative}.custom-control-label::after,.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label::before{pointer-events:none;user-select:none;background-color:#dee2e6}.custom-checkbox .custom-control-input:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-control-label::after{background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-file-input:lang(en)~.custom-file-label::after,.custom-file-label::after{content:"Browse"}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center no-repeat #fff;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select-lg,.custom-select-sm{padding-top:.375rem;padding-bottom:.375rem}.custom-file-input:focus~.custom-file-label::after,.custom-select:focus{border-color:#80bdff}.custom-select:focus{outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-file-input:disabled~.custom-file-label,.custom-select:disabled{background-color:#e9ecef}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);font-size:125%}.custom-file,.custom-file-input,.custom-file-label{height:calc(2.25rem + 2px)}.custom-file{position:relative;display:inline-block;width:100%}.custom-file-input{position:relative;z-index:2;width:100%;margin:0;opacity:0}.custom-file-label,.custom-file-label::after{position:absolute;padding:.375rem .75rem;line-height:1.5;color:#495057;top:0;right:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-label{left:0;z-index:1;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{bottom:0;z-index:3;display:block;height:2.25rem;background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;padding-left:0}.nav-link,.navbar{padding:.5rem 1rem}.nav-link{display:block}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;align-items:center;justify-content:space-between}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center no-repeat;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-footer,.card-header{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03)}.card-title{margin-bottom:.75rem}.card-header,.card-subtitle,.card-text:last-child{margin-bottom:0}.card-subtitle{margin-top:-.375rem}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-header{border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.alert,.btn .badge,.page-link{position:relative}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child),.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.card-columns .card{margin-bottom:.75rem}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb,.pagination{border-radius:.25rem;list-style:none}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;background-color:#e9ecef}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0}.page-link{display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.carousel-indicators li,.close:not(:disabled):not(.disabled),.ember-radio-button,.identifier,td.line-number{cursor:pointer}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.badge,.close{font-weight:700;line-height:1}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;text-align:center;border-radius:.25rem}.badge:empty{display:none}.btn .badge{top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.popover,.tooltip{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;text-decoration:none;word-wrap:break-word}.modal-title,.popover,.tooltip{line-height:1.5}.popover,.text-hide,.tooltip{text-shadow:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:translate(0,0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.popover,.popover .arrow,.popover .arrow::after,.popover .arrow::before,.tooltip,.tooltip .arrow{position:absolute;display:block}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{z-index:1070;margin:0;text-align:left;text-align:start;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;text-align:left;text-align:start;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.carousel,.carousel-inner,.carousel-item{position:relative}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel-inner{width:100%;overflow:hidden}.carousel-item{display:none;align-items:center;width:100%;backface-visibility:hidden;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translateX(0)}@supports (transform-style:preserve-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{transform:translateX(100%)}@supports (transform-style:preserve-3d){.active.carousel-item-right,.carousel-item-next{transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{transform:translateX(-100%)}@supports (transform-style:preserve-3d){.active.carousel-item-left,.carousel-item-prev{transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{transform:translateX(0)}@supports (transform-style:preserve-3d){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:center center no-repeat;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::after,.carousel-indicators li::before{left:0;display:inline-block;height:10px;position:absolute;content:"";width:100%}.carousel-indicators li::before{top:-10px}.carousel-indicators li::after{bottom:-10px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-left,.rounded-top{border-top-left-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-bottom,.fixed-top{position:fixed;z-index:1030;right:0;left:0}.fixed-top{top:0}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right-panel,ul.modules{bottom:0;overflow-x:auto}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd}thead{display:table-header-group}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.bottom-panel-header-content,.header-item,.package-header-filename{white-space:nowrap}body{font-size:14px}a,a:active,a:focus,a:hover,a:visited,input:focus{outline:0}p{margin-top:1rem}label{margin-bottom:0}ol,ul{list-style:none;padding:0}li{list-style:none}.documentation{margin-top:10px}.documentation li{list-style:disc}.documentation ol,.documentation ul{padding-left:15px}.header,.package-header{padding:5px}.flex-container{display:flex;flex-direction:column;height:100%;width:100%}.absolute-container{position:absolute;top:0;bottom:0;left:0;right:0}.header{flex:none}.header img{float:left}.header-item{display:inline-block;margin-top:5px;font-size:1rem;margin-right:40px}@media screen and (max-width:700px){.header-item{margin-right:10px;margin-left:10px}}.content{flex:auto;position:relative;overflow:auto}.packages{flex:auto;overflow-y:auto}.packages li{margin-bottom:5px}.packages a{margin-right:5px}.package-content{flex:auto;position:relative}.package-header-input{display:inline-block;margin-right:10px}.package-modules{margin-left:10px}.module-name{font-size:.7rem}.package-search-form{max-width:500px;margin-bottom:10px;margin-top:20px}.package-header-package-name{margin-right:10px;font-size:17px}.module-search-input{max-width:500px;margin:5px}ul.modules{position:absolute;top:50px;margin:0;padding-left:15px;left:0;right:0;display:flex;flex-direction:column;flex-wrap:wrap}ul.modules li{margin-right:10px}.left-panel{position:absolute;bottom:0;top:0;left:0;width:300px}.show-left-panel-button{position:absolute;top:0;right:-20px;z-index:2;width:20px;height:20px;text-align:center;vertical-align:middle;opacity:.6;display:none}.show-left-panel-button a{text-decoration:none}.show-left-panel-button:hover{opacity:1;cursor:pointer}.hide-file-tree{position:relative;top:8px;left:3px}.hide-declarations{margin:7px}.right-panel{position:absolute;top:0;right:0;left:300px;overflow-y:auto}.file-tree-container{overflow-x:hidden;overflow-y:auto;position:absolute;bottom:0;top:0;left:0;right:0}.bottom-panel,.bottom-panel-content,.file-container{position:absolute;right:0;left:0;overflow-x:auto;overflow-y:auto;bottom:0}.file-container{top:0}.bottom-panel{display:none;z-index:4}.bottom-panel-header{position:absolute;top:0;right:0;left:0;height:35px;padding:5px}.bottom-panel-content{top:35px}.bottom-panel-header-options{float:right}.source-code,code,pre{white-space:pre;line-height:1.25}.highlighted-identifier{border-radius:3px;box-shadow:0 0 0 1px #B4B4B4}td.line-number{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1%;min-width:60px;text-align:left;padding-left:10px;opacity:.8}td.line-number:hover{opacity:1}td.line-content{padding-left:5px}.source-code{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;tab-size:4}.break-word{word-wrap:break-word}code,pre{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif!important;font-size:100%;color:unset}.source-code-font{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;line-height:1.25}.source-code-snippet{padding:4px;text-decoration:none!important;display:block}.autocomplete-item,.search-result,.search-results-header{padding:5px}.source-code-snippet>b{border-radius:3px;border:1px solid #B4B4B4;margin:-1px}.declarations div,.source-code-container{margin:5px}.source-code-snippet:hover{text-decoration:none}.declarations{position:fixed;top:150px;right:15px;width:450px;z-index:1}.declarations-content,.file-tree-content,.file-tree-header,.paginated-list-content,.paginated-list-header,.search-results-content,.search-results-header{position:absolute;left:0;right:0}.declarations-header{opacity:.9;height:50px}.declarations-content{opacity:.9;top:50px;max-height:500px;overflow-y:auto;overflow-x:hidden}@media screen and (max-width:1500px){.declarations{display:none}}.info-window-container{position:absolute;width:750px;z-index:10}.info-window-header{margin:5px;width:100%;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.info-window-content{max-height:200px;overflow-x:auto;overflow-y:auto}.info-window-options{margin-right:10px;margin-left:10px;float:right}.ui-draggable-dragging .info-window-header{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}span.link{cursor:pointer;white-space:nowrap}span.link:hover{text-decoration:underline}.ui-resizable-n{height:13px!important}.ui-resizable-w{width:13px!important}.type-info{padding-top:5px;padding-bottom:5px}.type-component{display:inline-block}dd{margin-left:1em}.autocomplete-container{position:absolute;z-index:10;display:none;left:0}ul.autocomplete-items li{cursor:pointer;max-height:200px;overflow:hidden}.file-tree-header{top:0;height:50px;margin:5px}.file-tree-content{top:50px;bottom:0;overflow-x:auto}button{color:#000}.paginated-list-header{top:0;height:40px;padding:5px;white-space:nowrap}.paginated-list-content{top:40px;bottom:0;overflow:auto}.pagination-button{font-size:10px}.search-results-header{top:0;height:35px;white-space:nowrap}.search-results-content{top:35px;bottom:0}.expression{margin-bottom:15px}.expressions,.identifier-info{margin:5px}.file-name{margin-left:5px}.identifier-module{margin-top:10px}.identifier-menu-item{margin-right:10px}
\ No newline at end of file diff --git a/javascript/release/assets/haskell.ico b/javascript/release/assets/haskell.ico Binary files differnew file mode 100644 index 0000000..37816fd --- /dev/null +++ b/javascript/release/assets/haskell.ico diff --git a/javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gif b/javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gif Binary files differnew file mode 100644 index 0000000..cd75035 --- /dev/null +++ b/javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gif diff --git a/javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js b/javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js new file mode 100644 index 0000000..a33be0e --- /dev/null +++ b/javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js @@ -0,0 +1,5057 @@ +function createDeprecatedModule(e){define(e,["exports","ember-resolver/resolver","ember"],function(t,n,r){r.default.deprecate("Usage of `"+e+"` module is deprecated, please update to `ember-resolver`.",!1,{id:"ember-resolver.legacy-shims",until:"3.0.0"}),t.default=n.default})}window.EmberENV={FEATURES:{},EXTEND_PROTOTYPES:{Date:!1}} +var runningTests=!1,loader,define,requireModule,require,requirejs;(function(e){"use strict" +function t(){var e=Object.create(null) +return e.__=void 0,delete e.__,e}function n(e){throw new Error("an unsupported module was defined, expected `define(id, deps, module)` instead got: `"+e+"` arguments to define`")}function r(e,t,n,r){this.uuid=p++,this.id=e,this.deps=!t.length&&n.length?f:t,this.module={exports:{}},this.callback=n,this.hasExportsAsDep=!1,this.isAlias=r,this.reified=new Array(t.length),this.state="new"}function i(){}function o(e){this.id=e}function s(e,t){throw new Error("Could not find module `"+e+"` imported from `"+t+"`")}function a(e,t,n){for(var r=h[e]||h[e+"/index"];r&&r.isAlias;)r=h[r.id]||h[r.id+"/index"] +return r||s(e,t),n&&"pending"!==r.state&&"finalized"!==r.state&&(r.findDeps(n),n.push(r)),r}function u(e,t){if("."!==e.charAt(0))return e +for(var n=e.split("/"),r=t.split("/"),i=r.slice(0,-1),o=0,s=n.length;o<s;o++){var a=n[o] +if(".."===a){if(0===i.length)throw new Error("Cannot access parent module of root") +i.pop()}else{if("."===a)continue +i.push(a)}}return i.join("/")}function c(e){return!(!h[e]&&!h[e+"/index"])}var l={loader:loader,define:define,requireModule:requireModule,require:require,requirejs:requirejs} +requirejs=require=requireModule=function(e){for(var t=[],n=a(e,"(require)",t),r=t.length-1;r>=0;r--)t[r].exports() +return n.module.exports},loader={noConflict:function(t){var n,r +for(n in t)t.hasOwnProperty(n)&&l.hasOwnProperty(n)&&(r=t[n],e[r]=e[n],e[n]=l[n])},makeDefaultExport:!0} +var h=t(),d=t(),p=0,f=["require","exports","module"] +r.prototype.makeDefaultExport=function(){var e=this.module.exports +null===e||"object"!=typeof e&&"function"!=typeof e||void 0!==e.default||!Object.isExtensible(e)||(e.default=e)},r.prototype.exports=function(){if("finalized"===this.state||"reifying"===this.state)return this.module.exports +loader.wrapModules&&(this.callback=loader.wrapModules(this.id,this.callback)),this.reify() +var e=this.callback.apply(this,this.reified) +return this.reified.length=0,this.state="finalized",this.hasExportsAsDep&&void 0===e||(this.module.exports=e),loader.makeDefaultExport&&this.makeDefaultExport(),this.module.exports},r.prototype.unsee=function(){this.state="new",this.module={exports:{}}},r.prototype.reify=function(){if("reified"!==this.state){this.state="reifying" +try{this.reified=this._reify(),this.state="reified"}finally{"reifying"===this.state&&(this.state="errored")}}},r.prototype._reify=function(){for(var e=this.reified.slice(),t=0;t<e.length;t++){var n=e[t] +e[t]=n.exports?n.exports:n.module.exports()}return e},r.prototype.findDeps=function(e){if("new"===this.state){this.state="pending" +for(var t=this.deps,n=0;n<t.length;n++){var r=t[n],i=this.reified[n]={exports:void 0,module:void 0} +"exports"===r?(this.hasExportsAsDep=!0,i.exports=this.module.exports):"require"===r?i.exports=this.makeRequire():"module"===r?i.exports=this.module:i.module=a(u(r,this.id),this.id,e)}}},r.prototype.makeRequire=function(){var e=this.id,t=function(t){return require(u(t,e))} +return t.default=t,t.moduleId=e,t.has=function(t){return c(u(t,e))},t},define=function(e,t,i){var s=h[e] +s&&"new"!==s.state||(arguments.length<2&&n(arguments.length),Array.isArray(t)||(i=t,t=[]),h[e]=i instanceof o?new r(i.id,t,i,!0):new r(e,t,i,!1))},define.exports=function(e,t){var n=h[e] +if(!n||"new"===n.state)return n=new r(e,[],i,null),n.module.exports=t,n.state="finalized",h[e]=n,n},define.alias=function(e,t){return 2===arguments.length?define(t,new o(e)):new o(e)},requirejs.entries=requirejs._eak_seen=h,requirejs.has=c,requirejs.unsee=function(e){a(e,"(unsee)",!1).unsee()},requirejs.clear=function(){requirejs.entries=requirejs._eak_seen=h=t(),d=t()},define("foo",function(){}),define("foo/bar",[],function(){}),define("foo/asdf",["module","exports","require"],function(e,t,n){n.has("foo/bar")&&n("foo/bar")}),define("foo/baz",[],define.alias("foo")),define("foo/quz",define.alias("foo")),define.alias("foo","foo/qux"),define("foo/bar",["foo","./quz","./baz","./asdf","./bar","../foo"],function(){}),define("foo/main",["foo/bar"],function(){}),define.exports("foo/exports",{}),require("foo/exports"),require("foo/main"),require.unsee("foo/bar"),requirejs.clear(),"object"==typeof exports&&"object"==typeof module&&module.exports&&(module.exports={require:require,define:define})})(this),function e(t,n,r){function i(s,a){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require +if(!a&&u)return u(s,!0) +if(o)return o(s,!0) +var c=new Error("Cannot find module '"+s+"'") +throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}} +t[s][0].call(l.exports,function(e){var n=t[s][1][e] +return i(n||e)},l,l.exports,e,t,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]) +return i}({1:[function(e,t,n){(function(t){"use strict" +function n(e,t,n){e[t]||Object[r](e,t,{writable:!0,configurable:!0,value:n})}if(e(327),e(328),e(2),t._babelPolyfill)throw new Error("only one instance of babel-polyfill is allowed") +t._babelPolyfill=!0 +var r="defineProperty" +n(String.prototype,"padLeft","".padStart),n(String.prototype,"padRight","".padEnd),"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function(e){[][e]&&n(Array,e,Function.call.bind([][e]))})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2,327:327,328:328}],2:[function(e,t,n){e(130),t.exports=e(23).RegExp.escape},{130:130,23:23}],3:[function(e,t,n){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!") +return e}},{}],4:[function(e,t,n){var r=e(18) +t.exports=function(e,t){if("number"!=typeof e&&"Number"!=r(e))throw TypeError(t) +return+e}},{18:18}],5:[function(e,t,n){var r=e(128)("unscopables"),i=Array.prototype +void 0==i[r]&&e(42)(i,r,{}),t.exports=function(e){i[r][e]=!0}},{128:128,42:42}],6:[function(e,t,n){t.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!") +return e}},{}],7:[function(e,t,n){var r=e(51) +t.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!") +return e}},{51:51}],8:[function(e,t,n){"use strict" +var r=e(119),i=e(114),o=e(118) +t.exports=[].copyWithin||function(e,t){var n=r(this),s=o(n.length),a=i(e,s),u=i(t,s),c=arguments.length>2?arguments[2]:void 0,l=Math.min((void 0===c?s:i(c,s))-u,s-a),h=1 +for(u<a&&a<u+l&&(h=-1,u+=l-1,a+=l-1);l-- >0;)u in n?n[a]=n[u]:delete n[a],a+=h,u+=h +return n}},{114:114,118:118,119:119}],9:[function(e,t,n){"use strict" +var r=e(119),i=e(114),o=e(118) +t.exports=function(e){for(var t=r(this),n=o(t.length),s=arguments.length,a=i(s>1?arguments[1]:void 0,n),u=s>2?arguments[2]:void 0,c=void 0===u?n:i(u,n);c>a;)t[a++]=e +return t}},{114:114,118:118,119:119}],10:[function(e,t,n){var r=e(39) +t.exports=function(e,t){var n=[] +return r(e,!1,n.push,n,t),n}},{39:39}],11:[function(e,t,n){var r=e(117),i=e(118),o=e(114) +t.exports=function(e){return function(t,n,s){var a,u=r(t),c=i(u.length),l=o(s,c) +if(e&&n!=n){for(;c>l;)if((a=u[l++])!=a)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0 +return!e&&-1}}},{114:114,117:117,118:118}],12:[function(e,t,n){var r=e(25),i=e(47),o=e(119),s=e(118),a=e(15) +t.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,h=6==e,d=5==e||h,p=t||a +return function(t,a,f){for(var g,m,v=o(t),y=i(v),b=r(a,f,3),C=s(y.length),A=0,_=n?p(t,C):u?p(t,0):void 0;C>A;A++)if((d||A in y)&&(g=y[A],m=b(g,A,v),e))if(n)_[A]=m +else if(m)switch(e){case 3:return!0 +case 5:return g +case 6:return A +case 2:_.push(g)}else if(l)return!1 +return h?-1:c||l?l:_}}},{118:118,119:119,15:15,25:25,47:47}],13:[function(e,t,n){var r=e(3),i=e(119),o=e(47),s=e(118) +t.exports=function(e,t,n,a,u){r(t) +var c=i(e),l=o(c),h=s(c.length),d=u?h-1:0,p=u?-1:1 +if(n<2)for(;;){if(d in l){a=l[d],d+=p +break}if(d+=p,u?d<0:h<=d)throw TypeError("Reduce of empty array with no initial value")}for(;u?d>=0:h>d;d+=p)d in l&&(a=t(a,l[d],d,c)) +return a}},{118:118,119:119,3:3,47:47}],14:[function(e,t,n){var r=e(51),i=e(49),o=e(128)("species") +t.exports=function(e){var t +return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&null===(t=t[o])&&(t=void 0)),void 0===t?Array:t}},{128:128,49:49,51:51}],15:[function(e,t,n){var r=e(14) +t.exports=function(e,t){return new(r(e))(t)}},{14:14}],16:[function(e,t,n){"use strict" +var r=e(3),i=e(51),o=e(46),s=[].slice,a={},u=function(e,t,n){if(!(t in a)){for(var r=[],i=0;i<t;i++)r[i]="a["+i+"]" +a[t]=Function("F,a","return new F("+r.join(",")+")")}return a[t](e,n)} +t.exports=Function.bind||function(e){var t=r(this),n=s.call(arguments,1),a=function(){var r=n.concat(s.call(arguments)) +return this instanceof a?u(t,r.length,r):o(t,r,e)} +return i(t.prototype)&&(a.prototype=t.prototype),a}},{3:3,46:46,51:51}],17:[function(e,t,n){var r=e(18),i=e(128)("toStringTag"),o="Arguments"==r(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(e){}} +t.exports=function(e){var t,n,a +return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=s(t=Object(e),i))?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},{128:128,18:18}],18:[function(e,t,n){var r={}.toString +t.exports=function(e){return r.call(e).slice(8,-1)}},{}],19:[function(e,t,n){"use strict" +var r=e(72).f,i=e(71),o=e(93),s=e(25),a=e(6),u=e(39),c=e(55),l=e(57),h=e(100),d=e(29),p=e(66).fastKey,f=e(125),g=d?"_s":"size",m=function(e,t){var n,r=p(t) +if("F"!==r)return e._i[r] +for(n=e._f;n;n=n.n)if(n.k==t)return n} +t.exports={getConstructor:function(e,t,n,c){var l=e(function(e,r){a(e,l,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[g]=0,void 0!=r&&u(r,n,e[c],e)}) +return o(l.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i] +e._f=e._l=void 0,e[g]=0},delete:function(e){var n=f(this,t),r=m(n,e) +if(r){var i=r.n,o=r.p +delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[g]--}return!!r},forEach:function(e){f(this,t) +for(var n,r=s(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(f(this,t),e)}}),d&&r(l.prototype,"size",{get:function(){return f(this,t)[g]}}),l},def:function(e,t,n){var r,i,o=m(e,t) +return o?o.v=n:(e._l=o={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[g]++,"F"!==i&&(e._i[i]=o)),e},getEntry:m,setStrong:function(e,t,n){c(e,t,function(e,n){this._t=f(e,t),this._k=n,this._l=void 0},function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p +return e._t&&(e._l=n=n?n.n:e._t._f)?"keys"==t?l(0,n.k):"values"==t?l(0,n.v):l(0,[n.k,n.v]):(e._t=void 0,l(1))},n?"entries":"values",!n,!0),h(t)}}},{100:100,125:125,25:25,29:29,39:39,55:55,57:57,6:6,66:66,71:71,72:72,93:93}],20:[function(e,t,n){var r=e(17),i=e(10) +t.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic") +return i(this)}}},{10:10,17:17}],21:[function(e,t,n){"use strict" +var r=e(93),i=e(66).getWeak,o=e(7),s=e(51),a=e(6),u=e(39),c=e(12),l=e(41),h=e(125),d=c(5),p=c(6),f=0,g=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},v=function(e,t){return d(e.a,function(e){return e[0]===t})} +m.prototype={get:function(e){var t=v(this,e) +if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e) +n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,function(t){return t[0]===e}) +return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,n,o){var c=e(function(e,r){a(e,c,t,"_i"),e._t=t,e._i=f++,e._l=void 0,void 0!=r&&u(r,n,e[o],e)}) +return r(c.prototype,{delete:function(e){if(!s(e))return!1 +var n=i(e) +return!0===n?g(h(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!s(e))return!1 +var n=i(e) +return!0===n?g(h(this,t)).has(e):n&&l(n,this._i)}}),c},def:function(e,t,n){var r=i(o(t),!0) +return!0===r?g(e).set(t,n):r[e._i]=n,e},ufstore:g}},{12:12,125:125,39:39,41:41,51:51,6:6,66:66,7:7,93:93}],22:[function(e,t,n){"use strict" +var r=e(40),i=e(33),o=e(94),s=e(93),a=e(66),u=e(39),c=e(6),l=e(51),h=e(35),d=e(56),p=e(101),f=e(45) +t.exports=function(e,t,n,g,m,v){var y=r[e],b=y,C=m?"set":"add",A=b&&b.prototype,_={},I=function(e){var t=A[e] +o(A,e,"delete"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!l(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})} +if("function"==typeof b&&(v||A.forEach&&!h(function(){(new b).entries().next()}))){var w=new b,x=w[C](v?{}:-0,1)!=w,k=h(function(){w.has(1)}),j=d(function(e){new b(e)}),E=!v&&h(function(){for(var e=new b,t=5;t--;)e[C](t,t) +return!e.has(-0)}) +j||(b=t(function(t,n){c(t,b,e) +var r=f(new y,t,b) +return void 0!=n&&u(n,m,r[C],r),r}),b.prototype=A,A.constructor=b),(k||E)&&(I("delete"),I("has"),m&&I("get")),(E||x)&&I(C),v&&A.clear&&delete A.clear}else b=g.getConstructor(t,e,m,C),s(b.prototype,n),a.NEED=!0 +return p(b,e),_[e]=b,i(i.G+i.W+i.F*(b!=y),_),v||g.setStrong(b,e,m),b}},{101:101,33:33,35:35,39:39,40:40,45:45,51:51,56:56,6:6,66:66,93:93,94:94}],23:[function(e,t,n){var r=t.exports={version:"2.5.0"} +"number"==typeof __e&&(__e=r)},{}],24:[function(e,t,n){"use strict" +var r=e(72),i=e(92) +t.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},{72:72,92:92}],25:[function(e,t,n){var r=e(3) +t.exports=function(e,t,n){if(r(e),void 0===t)return e +switch(n){case 1:return function(n){return e.call(t,n)} +case 2:return function(n,r){return e.call(t,n,r)} +case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},{3:3}],26:[function(e,t,n){"use strict" +var r=e(35),i=Date.prototype.getTime,o=Date.prototype.toISOString,s=function(e){return e>9?e:"0"+e} +t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!r(function(){o.call(new Date(NaN))})?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value") +var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),r=t<0?"-":t>9999?"+":"" +return r+("00000"+Math.abs(t)).slice(r?-6:-4)+"-"+s(e.getUTCMonth()+1)+"-"+s(e.getUTCDate())+"T"+s(e.getUTCHours())+":"+s(e.getUTCMinutes())+":"+s(e.getUTCSeconds())+"."+(n>99?n:"0"+s(n))+"Z"}:o},{35:35}],27:[function(e,t,n){"use strict" +var r=e(7),i=e(120) +t.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint") +return i(r(this),"number"!=e)}},{120:120,7:7}],28:[function(e,t,n){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e) +return e}},{}],29:[function(e,t,n){t.exports=!e(35)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{35:35}],30:[function(e,t,n){var r=e(51),i=e(40).document,o=r(i)&&r(i.createElement) +t.exports=function(e){return o?i.createElement(e):{}}},{40:40,51:51}],31:[function(e,t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],32:[function(e,t,n){var r=e(81),i=e(78),o=e(82) +t.exports=function(e){var t=r(e),n=i.f +if(n)for(var s,a=n(e),u=o.f,c=0;a.length>c;)u.call(e,s=a[c++])&&t.push(s) +return t}},{78:78,81:81,82:82}],33:[function(e,t,n){var r=e(40),i=e(23),o=e(42),s=e(94),a=e(25),u=function(e,t,n){var c,l,h,d,p=e&u.F,f=e&u.G,g=e&u.S,m=e&u.P,v=e&u.B,y=f?r:g?r[t]||(r[t]={}):(r[t]||{}).prototype,b=f?i:i[t]||(i[t]={}),C=b.prototype||(b.prototype={}) +f&&(n=t) +for(c in n)l=!p&&y&&void 0!==y[c],h=(l?y:n)[c],d=v&&l?a(h,r):m&&"function"==typeof h?a(Function.call,h):h,y&&s(y,c,h,e&u.U),b[c]!=h&&o(b,c,d),m&&C[c]!=h&&(C[c]=h)} +r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},{23:23,25:25,40:40,42:42,94:94}],34:[function(e,t,n){var r=e(128)("match") +t.exports=function(e){var t=/./ +try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},{128:128}],35:[function(e,t,n){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],36:[function(e,t,n){"use strict" +var r=e(42),i=e(94),o=e(35),s=e(28),a=e(128) +t.exports=function(e,t,n){var u=a(e),c=n(s,u,""[e]),l=c[0],h=c[1] +o(function(){var t={} +return t[u]=function(){return 7},7!=""[e](t)})&&(i(String.prototype,e,l),r(RegExp.prototype,u,2==t?function(e,t){return h.call(e,this,t)}:function(e){return h.call(e,this)}))}},{128:128,28:28,35:35,42:42,94:94}],37:[function(e,t,n){"use strict" +var r=e(7) +t.exports=function(){var e=r(this),t="" +return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},{7:7}],38:[function(e,t,n){"use strict" +function r(e,t,n,c,l,h,d,p){for(var f,g,m=l,v=0,y=!!d&&a(d,p,3);v<c;){if(v in n){if(f=y?y(n[v],v,t):n[v],g=!1,o(f)&&(g=f[u],g=void 0!==g?!!g:i(f)),g&&h>0)m=r(e,t,f,s(f.length),m,h-1)-1 +else{if(m>=9007199254740991)throw TypeError() +e[m]=f}m++}v++}return m}var i=e(49),o=e(51),s=e(118),a=e(25),u=e(128)("isConcatSpreadable") +t.exports=r},{118:118,128:128,25:25,49:49,51:51}],39:[function(e,t,n){var r=e(25),i=e(53),o=e(48),s=e(7),a=e(118),u=e(129),c={},l={},n=t.exports=function(e,t,n,h,d){var p,f,g,m,v=d?function(){return e}:u(e),y=r(n,h,t?2:1),b=0 +if("function"!=typeof v)throw TypeError(e+" is not iterable!") +if(o(v)){for(p=a(e.length);p>b;b++)if((m=t?y(s(f=e[b])[0],f[1]):y(e[b]))===c||m===l)return m}else for(g=v.call(e);!(f=g.next()).done;)if((m=i(g,y,f.value,t))===c||m===l)return m} +n.BREAK=c,n.RETURN=l},{118:118,129:129,25:25,48:48,53:53,7:7}],40:[function(e,t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")() +"number"==typeof __g&&(__g=r)},{}],41:[function(e,t,n){var r={}.hasOwnProperty +t.exports=function(e,t){return r.call(e,t)}},{}],42:[function(e,t,n){var r=e(72),i=e(92) +t.exports=e(29)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},{29:29,72:72,92:92}],43:[function(e,t,n){var r=e(40).document +t.exports=r&&r.documentElement},{40:40}],44:[function(e,t,n){t.exports=!e(29)&&!e(35)(function(){return 7!=Object.defineProperty(e(30)("div"),"a",{get:function(){return 7}}).a})},{29:29,30:30,35:35}],45:[function(e,t,n){var r=e(51),i=e(99).set +t.exports=function(e,t,n){var o,s=t.constructor +return s!==n&&"function"==typeof s&&(o=s.prototype)!==n.prototype&&r(o)&&i&&i(e,o),e}},{51:51,99:99}],46:[function(e,t,n){t.exports=function(e,t,n){var r=void 0===n +switch(t.length){case 0:return r?e():e.call(n) +case 1:return r?e(t[0]):e.call(n,t[0]) +case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]) +case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]) +case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},{}],47:[function(e,t,n){var r=e(18) +t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},{18:18}],48:[function(e,t,n){var r=e(58),i=e(128)("iterator"),o=Array.prototype +t.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},{128:128,58:58}],49:[function(e,t,n){var r=e(18) +t.exports=Array.isArray||function(e){return"Array"==r(e)}},{18:18}],50:[function(e,t,n){var r=e(51),i=Math.floor +t.exports=function(e){return!r(e)&&isFinite(e)&&i(e)===e}},{51:51}],51:[function(e,t,n){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],52:[function(e,t,n){var r=e(51),i=e(18),o=e(128)("match") +t.exports=function(e){var t +return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},{128:128,18:18,51:51}],53:[function(e,t,n){var r=e(7) +t.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return +throw void 0!==o&&r(o.call(e)),t}}},{7:7}],54:[function(e,t,n){"use strict" +var r=e(71),i=e(92),o=e(101),s={} +e(42)(s,e(128)("iterator"),function(){return this}),t.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},{101:101,128:128,42:42,71:71,92:92}],55:[function(e,t,n){"use strict" +var r=e(60),i=e(33),o=e(94),s=e(42),a=e(41),u=e(58),c=e(54),l=e(101),h=e(79),d=e(128)("iterator"),p=!([].keys&&"next"in[].keys()),f=function(){return this} +t.exports=function(e,t,n,g,m,v,y){c(n,t,g) +var b,C,A,_=function(e){if(!p&&e in k)return k[e] +switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},I=t+" Iterator",w="values"==m,x=!1,k=e.prototype,j=k[d]||k["@@iterator"]||m&&k[m],E=j||_(m),S=m?w?_("entries"):E:void 0,T="Array"==t?k.entries||j:j +if(T&&(A=h(T.call(new e)))!==Object.prototype&&A.next&&(l(A,I,!0),r||a(A,d)||s(A,d,f)),w&&j&&"values"!==j.name&&(x=!0,E=function(){return j.call(this)}),r&&!y||!p&&!x&&k[d]||s(k,d,E),u[t]=E,u[I]=f,m)if(b={values:w?E:_("values"),keys:v?E:_("keys"),entries:S},y)for(C in b)C in k||o(k,C,b[C]) +else i(i.P+i.F*(p||x),t,b) +return b}},{101:101,128:128,33:33,41:41,42:42,54:54,58:58,60:60,79:79,94:94}],56:[function(e,t,n){var r=e(128)("iterator"),i=!1 +try{var o=[7][r]() +o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!i)return!1 +var n=!1 +try{var o=[7],s=o[r]() +s.next=function(){return{done:n=!0}},o[r]=function(){return s},e(o)}catch(e){}return n}},{128:128}],57:[function(e,t,n){t.exports=function(e,t){return{value:t,done:!!e}}},{}],58:[function(e,t,n){t.exports={}},{}],59:[function(e,t,n){var r=e(81),i=e(117) +t.exports=function(e,t){for(var n,o=i(e),s=r(o),a=s.length,u=0;a>u;)if(o[n=s[u++]]===t)return n}},{117:117,81:81}],60:[function(e,t,n){t.exports=!1},{}],61:[function(e,t,n){var r=Math.expm1 +t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:r},{}],62:[function(e,t,n){var r=e(65),i=Math.pow,o=i(2,-52),s=i(2,-23),a=i(2,127)*(2-s),u=i(2,-126),c=function(e){return e+1/o-1/o} +t.exports=Math.fround||function(e){var t,n,i=Math.abs(e),l=r(e) +return i<u?l*c(i/u/s)*u*s:(t=(1+s/o)*i,n=t-(t-i),n>a||n!=n?l*(1/0):l*n)}},{65:65}],63:[function(e,t,n){t.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},{}],64:[function(e,t,n){t.exports=Math.scale||function(e,t,n,r,i){return 0===arguments.length||e!=e||t!=t||n!=n||r!=r||i!=i?NaN:e===1/0||e===-1/0?e:(e-t)*(i-r)/(n-t)+r}},{}],65:[function(e,t,n){t.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},{}],66:[function(e,t,n){var r=e(124)("meta"),i=e(51),o=e(41),s=e(72).f,a=0,u=Object.isExtensible||function(){return!0},c=!e(35)(function(){return u(Object.preventExtensions({}))}),l=function(e){s(e,r,{value:{i:"O"+ ++a,w:{}}})},h=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e +if(!o(e,r)){if(!u(e))return"F" +if(!t)return"E" +l(e)}return e[r].i},d=function(e,t){if(!o(e,r)){if(!u(e))return!0 +if(!t)return!1 +l(e)}return e[r].w},p=function(e){return c&&f.NEED&&u(e)&&!o(e,r)&&l(e),e},f=t.exports={KEY:r,NEED:!1,fastKey:h,getWeak:d,onFreeze:p}},{124:124,35:35,41:41,51:51,72:72}],67:[function(e,t,n){var r=e(160),i=e(33),o=e(103)("metadata"),s=o.store||(o.store=new(e(266))),a=function(e,t,n){var i=s.get(e) +if(!i){if(!n)return +s.set(e,i=new r)}var o=i.get(t) +if(!o){if(!n)return +i.set(t,o=new r)}return o},u=function(e,t,n){var r=a(t,n,!1) +return void 0!==r&&r.has(e)},c=function(e,t,n){var r=a(t,n,!1) +return void 0===r?void 0:r.get(e)},l=function(e,t,n,r){a(n,r,!0).set(e,t)},h=function(e,t){var n=a(e,t,!1),r=[] +return n&&n.forEach(function(e,t){r.push(t)}),r},d=function(e){return void 0===e||"symbol"==typeof e?e:String(e)},p=function(e){i(i.S,"Reflect",e)} +t.exports={store:s,map:a,has:u,get:c,set:l,keys:h,key:d,exp:p}},{103:103,160:160,266:266,33:33}],68:[function(e,t,n){var r=e(40),i=e(113).set,o=r.MutationObserver||r.WebKitMutationObserver,s=r.process,a=r.Promise,u="process"==e(18)(s) +t.exports=function(){var e,t,n,c=function(){var r,i +for(u&&(r=s.domain)&&r.exit();e;){i=e.fn,e=e.next +try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()} +if(u)n=function(){s.nextTick(c)} +else if(o){var l=!0,h=document.createTextNode("") +new o(c).observe(h,{characterData:!0}),n=function(){h.data=l=!l}}else if(a&&a.resolve){var d=a.resolve() +n=function(){d.then(c)}}else n=function(){i.call(r,c)} +return function(r){var i={fn:r,next:void 0} +t&&(t.next=i),e||(e=i,n()),t=i}}},{113:113,18:18,40:40}],69:[function(e,t,n){"use strict" +function r(e){var t,n +this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor") +t=e,n=r}),this.resolve=i(t),this.reject=i(n)}var i=e(3) +t.exports.f=function(e){return new r(e)}},{3:3}],70:[function(e,t,n){"use strict" +var r=e(81),i=e(78),o=e(82),s=e(119),a=e(47),u=Object.assign +t.exports=!u||e(35)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst" +return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=s(e),u=arguments.length,c=1,l=i.f,h=o.f;u>c;)for(var d,p=a(arguments[c++]),f=l?r(p).concat(l(p)):r(p),g=f.length,m=0;g>m;)h.call(p,d=f[m++])&&(n[d]=p[d]) +return n}:u},{119:119,35:35,47:47,78:78,81:81,82:82}],71:[function(e,t,n){var r=e(7),i=e(73),o=e(31),s=e(102)("IE_PROTO"),a=function(){},u=function(){var t,n=e(30)("iframe"),r=o.length +for(n.style.display="none",e(43).appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[o[r]] +return u()} +t.exports=Object.create||function(e,t){var n +return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[s]=e):n=u(),void 0===t?n:i(n,t)}},{102:102,30:30,31:31,43:43,7:7,73:73}],72:[function(e,t,n){var r=e(7),i=e(44),o=e(120),s=Object.defineProperty +n.f=e(29)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!") +return"value"in n&&(e[t]=n.value),e}},{120:120,29:29,44:44,7:7}],73:[function(e,t,n){var r=e(72),i=e(7),o=e(81) +t.exports=e(29)?Object.defineProperties:function(e,t){i(e) +for(var n,s=o(t),a=s.length,u=0;a>u;)r.f(e,n=s[u++],t[n]) +return e}},{29:29,7:7,72:72,81:81}],74:[function(e,t,n){"use strict" +t.exports=e(60)||!e(35)(function(){var t=Math.random() +__defineSetter__.call(null,t,function(){}),delete e(40)[t]})},{35:35,40:40,60:60}],75:[function(e,t,n){var r=e(82),i=e(92),o=e(117),s=e(120),a=e(41),u=e(44),c=Object.getOwnPropertyDescriptor +n.f=e(29)?c:function(e,t){if(e=o(e),t=s(t,!0),u)try{return c(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},{117:117,120:120,29:29,41:41,44:44,82:82,92:92}],76:[function(e,t,n){var r=e(117),i=e(77).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return i(e)}catch(e){return s.slice()}} +t.exports.f=function(e){return s&&"[object Window]"==o.call(e)?a(e):i(r(e))}},{117:117,77:77}],77:[function(e,t,n){var r=e(80),i=e(31).concat("length","prototype") +n.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},{31:31,80:80}],78:[function(e,t,n){n.f=Object.getOwnPropertySymbols},{}],79:[function(e,t,n){var r=e(41),i=e(119),o=e(102)("IE_PROTO"),s=Object.prototype +t.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},{102:102,119:119,41:41}],80:[function(e,t,n){var r=e(41),i=e(117),o=e(11)(!1),s=e(102)("IE_PROTO") +t.exports=function(e,t){var n,a=i(e),u=0,c=[] +for(n in a)n!=s&&r(a,n)&&c.push(n) +for(;t.length>u;)r(a,n=t[u++])&&(~o(c,n)||c.push(n)) +return c}},{102:102,11:11,117:117,41:41}],81:[function(e,t,n){var r=e(80),i=e(31) +t.exports=Object.keys||function(e){return r(e,i)}},{31:31,80:80}],82:[function(e,t,n){n.f={}.propertyIsEnumerable},{}],83:[function(e,t,n){var r=e(33),i=e(23),o=e(35) +t.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={} +s[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",s)}},{23:23,33:33,35:35}],84:[function(e,t,n){var r=e(81),i=e(117),o=e(82).f +t.exports=function(e){return function(t){for(var n,s=i(t),a=r(s),u=a.length,c=0,l=[];u>c;)o.call(s,n=a[c++])&&l.push(e?[n,s[n]]:s[n]) +return l}}},{117:117,81:81,82:82}],85:[function(e,t,n){var r=e(77),i=e(78),o=e(7),s=e(40).Reflect +t.exports=s&&s.ownKeys||function(e){var t=r.f(o(e)),n=i.f +return n?t.concat(n(e)):t}},{40:40,7:7,77:77,78:78}],86:[function(e,t,n){var r=e(40).parseFloat,i=e(111).trim +t.exports=1/r(e(112)+"-0")!=-1/0?function(e){var t=i(String(e),3),n=r(t) +return 0===n&&"-"==t.charAt(0)?-0:n}:r},{111:111,112:112,40:40}],87:[function(e,t,n){var r=e(40).parseInt,i=e(111).trim,o=e(112),s=/^[-+]?0[xX]/ +t.exports=8!==r(o+"08")||22!==r(o+"0x16")?function(e,t){var n=i(String(e),3) +return r(n,t>>>0||(s.test(n)?16:10))}:r},{111:111,112:112,40:40}],88:[function(e,t,n){"use strict" +var r=e(89),i=e(46),o=e(3) +t.exports=function(){for(var e=o(this),t=arguments.length,n=Array(t),s=0,a=r._,u=!1;t>s;)(n[s]=arguments[s++])===a&&(u=!0) +return function(){var r,o=this,s=arguments.length,c=0,l=0 +if(!u&&!s)return i(e,n,o) +if(r=n.slice(),u)for(;t>c;c++)r[c]===a&&(r[c]=arguments[l++]) +for(;s>l;)r.push(arguments[l++]) +return i(e,r,o)}}},{3:3,46:46,89:89}],89:[function(e,t,n){t.exports=e(40)},{40:40}],90:[function(e,t,n){t.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},{}],91:[function(e,t,n){var r=e(69) +t.exports=function(e,t){var n=r.f(e) +return(0,n.resolve)(t),n.promise}},{69:69}],92:[function(e,t,n){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],93:[function(e,t,n){var r=e(94) +t.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n) +return e}},{94:94}],94:[function(e,t,n){var r=e(40),i=e(42),o=e(41),s=e(124)("src"),a=Function.toString,u=(""+a).split("toString") +e(23).inspectSource=function(e){return a.call(e)},(t.exports=function(e,t,n,a){var c="function"==typeof n +c&&(o(n,"name")||i(n,"name",t)),e[t]!==n&&(c&&(o(n,s)||i(n,s,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:a?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[s]||a.call(this)})},{124:124,23:23,40:40,41:41,42:42}],95:[function(e,t,n){t.exports=function(e,t){var n=t===Object(t)?function(e){return t[e]}:t +return function(t){return String(t).replace(e,n)}}},{}],96:[function(e,t,n){t.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},{}],97:[function(e,t,n){"use strict" +var r=e(33),i=e(3),o=e(25),s=e(39) +t.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,a,u=arguments[1] +return i(this),t=void 0!==u,t&&i(u),void 0==e?new this:(n=[],t?(r=0,a=o(u,arguments[2],2),s(e,!1,function(e){n.push(a(e,r++))})):s(e,!1,n.push,n),new this(n))}})}},{25:25,3:3,33:33,39:39}],98:[function(e,t,n){"use strict" +var r=e(33) +t.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e] +return new this(t)}})}},{33:33}],99:[function(e,t,n){var r=e(51),i=e(7),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")} +t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,r){try{r=e(25)(Function.call,e(75).f(Object.prototype,"__proto__").set,2),r(t,[]),n=!(t instanceof Array)}catch(e){n=!0}return function(e,t){return o(e,t),n?e.__proto__=t:r(e,t),e}}({},!1):void 0),check:o}},{25:25,51:51,7:7,75:75}],100:[function(e,t,n){"use strict" +var r=e(40),i=e(72),o=e(29),s=e(128)("species") +t.exports=function(e){var t=r[e] +o&&t&&!t[s]&&i.f(t,s,{configurable:!0,get:function(){return this}})}},{128:128,29:29,40:40,72:72}],101:[function(e,t,n){var r=e(72).f,i=e(41),o=e(128)("toStringTag") +t.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},{128:128,41:41,72:72}],102:[function(e,t,n){var r=e(103)("keys"),i=e(124) +t.exports=function(e){return r[e]||(r[e]=i(e))}},{103:103,124:124}],103:[function(e,t,n){var r=e(40),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={}) +t.exports=function(e){return i[e]||(i[e]={})}},{40:40}],104:[function(e,t,n){var r=e(7),i=e(3),o=e(128)("species") +t.exports=function(e,t){var n,s=r(e).constructor +return void 0===s||void 0==(n=r(s)[o])?t:i(n)}},{128:128,3:3,7:7}],105:[function(e,t,n){"use strict" +var r=e(35) +t.exports=function(e,t){return!!e&&r(function(){t?e.call(null,function(){},1):e.call(null)})}},{35:35}],106:[function(e,t,n){var r=e(116),i=e(28) +t.exports=function(e){return function(t,n){var o,s,a=String(i(t)),u=r(n),c=a.length +return u<0||u>=c?e?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?e?a.charAt(u):o:e?a.slice(u,u+2):s-56320+(o-55296<<10)+65536)}}},{116:116,28:28}],107:[function(e,t,n){var r=e(52),i=e(28) +t.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!") +return String(i(e))}},{28:28,52:52}],108:[function(e,t,n){var r=e(33),i=e(35),o=e(28),s=/"/g,a=function(e,t,n,r){var i=String(o(e)),a="<"+t +return""!==n&&(a+=" "+n+'="'+String(r).replace(s,""")+'"'),a+">"+i+"</"+t+">"} +t.exports=function(e,t){var n={} +n[e]=t(a),r(r.P+r.F*i(function(){var t=""[e]('"') +return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},{28:28,33:33,35:35}],109:[function(e,t,n){var r=e(118),i=e(110),o=e(28) +t.exports=function(e,t,n,s){var a=String(o(e)),u=a.length,c=void 0===n?" ":String(n),l=r(t) +if(l<=u||""==c)return a +var h=l-u,d=i.call(c,Math.ceil(h/c.length)) +return d.length>h&&(d=d.slice(0,h)),s?d+a:a+d}},{110:110,118:118,28:28}],110:[function(e,t,n){"use strict" +var r=e(116),i=e(28) +t.exports=function(e){var t=String(i(this)),n="",o=r(e) +if(o<0||o==1/0)throw RangeError("Count can't be negative") +for(;o>0;(o>>>=1)&&(t+=t))1&o&&(n+=t) +return n}},{116:116,28:28}],111:[function(e,t,n){var r=e(33),i=e(28),o=e(35),s=e(112),a="["+s+"]",u="
",c=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),h=function(e,t,n){var i={},a=o(function(){return!!s[e]()||u[e]()!=u}),c=i[e]=a?t(d):s[e] +n&&(i[n]=c),r(r.P+r.F*a,"String",i)},d=h.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(c,"")),2&t&&(e=e.replace(l,"")),e} +t.exports=h},{112:112,28:28,33:33,35:35}],112:[function(e,t,n){t.exports="\t\n\v\f\r \u2028\u2029\ufeff"},{}],113:[function(e,t,n){var r,i,o,s=e(25),a=e(46),u=e(43),c=e(30),l=e(40),h=l.process,d=l.setImmediate,p=l.clearImmediate,f=l.MessageChannel,g=l.Dispatch,m=0,v={},y=function(){var e=+this +if(v.hasOwnProperty(e)){var t=v[e] +delete v[e],t()}},b=function(e){y.call(e.data)} +d&&p||(d=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]) +return v[++m]=function(){a("function"==typeof e?e:Function(e),t)},r(m),m},p=function(e){delete v[e]},"process"==e(18)(h)?r=function(e){h.nextTick(s(y,e,1))}:g&&g.now?r=function(e){g.now(s(y,e,1))}:f?(i=new f,o=i.port2,i.port1.onmessage=b,r=s(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(s(y,e,1),0)}),t.exports={set:d,clear:p}},{18:18,25:25,30:30,40:40,43:43,46:46}],114:[function(e,t,n){var r=e(116),i=Math.max,o=Math.min +t.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},{116:116}],115:[function(e,t,n){var r=e(116),i=e(118) +t.exports=function(e){if(void 0===e)return 0 +var t=r(e),n=i(t) +if(t!==n)throw RangeError("Wrong length!") +return n}},{116:116,118:118}],116:[function(e,t,n){var r=Math.ceil,i=Math.floor +t.exports=function(e){return isNaN(e=+e)?0:(e>0?i:r)(e)}},{}],117:[function(e,t,n){var r=e(47),i=e(28) +t.exports=function(e){return r(i(e))}},{28:28,47:47}],118:[function(e,t,n){var r=e(116),i=Math.min +t.exports=function(e){return e>0?i(r(e),9007199254740991):0}},{116:116}],119:[function(e,t,n){var r=e(28) +t.exports=function(e){return Object(r(e))}},{28:28}],120:[function(e,t,n){var r=e(51) +t.exports=function(e,t){if(!r(e))return e +var n,i +if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i +if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i +if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i +throw TypeError("Can't convert object to primitive value")}},{51:51}],121:[function(e,t,n){"use strict" +if(e(29)){var r=e(60),i=e(40),o=e(35),s=e(33),a=e(123),u=e(122),c=e(25),l=e(6),h=e(92),d=e(42),p=e(93),f=e(116),g=e(118),m=e(115),v=e(114),y=e(120),b=e(41),C=e(17),A=e(51),_=e(119),I=e(48),w=e(71),x=e(79),k=e(77).f,j=e(129),E=e(124),S=e(128),T=e(12),P=e(11),O=e(104),R=e(141),N=e(58),M=e(56),L=e(100),D=e(9),z=e(8),F=e(72),B=e(75),H=F.f,U=B.f,q=i.RangeError,V=i.TypeError,W=i.Uint8Array,G=Array.prototype,Y=u.ArrayBuffer,K=u.DataView,Q=T(0),Z=T(2),X=T(3),J=T(4),$=T(5),ee=T(6),te=P(!0),ne=P(!1),re=R.values,ie=R.keys,oe=R.entries,se=G.lastIndexOf,ae=G.reduce,ue=G.reduceRight,ce=G.join,le=G.sort,he=G.slice,de=G.toString,pe=G.toLocaleString,fe=S("iterator"),ge=S("toStringTag"),me=E("typed_constructor"),ve=E("def_constructor"),ye=a.CONSTR,be=a.TYPED,Ce=a.VIEW,Ae=T(1,function(e,t){return ke(O(e,e[ve]),t)}),_e=o(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),Ie=!!W&&!!W.prototype.set&&o(function(){new W(1).set({})}),we=function(e,t){var n=f(e) +if(n<0||n%t)throw q("Wrong offset!") +return n},xe=function(e){if(A(e)&&be in e)return e +throw V(e+" is not a typed array!")},ke=function(e,t){if(!(A(e)&&me in e))throw V("It is not a typed array constructor!") +return new e(t)},je=function(e,t){return Ee(O(e,e[ve]),t)},Ee=function(e,t){for(var n=0,r=t.length,i=ke(e,r);r>n;)i[n]=t[n++] +return i},Se=function(e,t,n){H(e,t,{get:function(){return this._d[n]}})},Te=function(e){var t,n,r,i,o,s,a=_(e),u=arguments.length,l=u>1?arguments[1]:void 0,h=void 0!==l,d=j(a) +if(void 0!=d&&!I(d)){for(s=d.call(a),r=[],t=0;!(o=s.next()).done;t++)r.push(o.value) +a=r}for(h&&u>2&&(l=c(l,arguments[2],2)),t=0,n=g(a.length),i=ke(this,n);n>t;t++)i[t]=h?l(a[t],t):a[t] +return i},Pe=function(){for(var e=0,t=arguments.length,n=ke(this,t);t>e;)n[e]=arguments[e++] +return n},Oe=!!W&&o(function(){pe.call(new W(1))}),Re=function(){return pe.apply(Oe?he.call(xe(this)):xe(this),arguments)},Ne={copyWithin:function(e,t){return z.call(xe(this),e,t,arguments.length>2?arguments[2]:void 0)},every:function(e){return J(xe(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return D.apply(xe(this),arguments)},filter:function(e){return je(this,Z(xe(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return $(xe(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(xe(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){Q(xe(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return ne(xe(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return te(xe(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return ce.apply(xe(this),arguments)},lastIndexOf:function(e){return se.apply(xe(this),arguments)},map:function(e){return Ae(xe(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return ae.apply(xe(this),arguments)},reduceRight:function(e){return ue.apply(xe(this),arguments)},reverse:function(){for(var e,t=this,n=xe(t).length,r=Math.floor(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e +return t},some:function(e){return X(xe(this),e,arguments.length>1?arguments[1]:void 0)},sort:function(e){return le.call(xe(this),e)},subarray:function(e,t){var n=xe(this),r=n.length,i=v(e,r) +return new(O(n,n[ve]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,g((void 0===t?r:v(t,r))-i))}},Me=function(e,t){return je(this,he.call(xe(this),e,t))},Le=function(e){xe(this) +var t=we(arguments[1],1),n=this.length,r=_(e),i=g(r.length),o=0 +if(i+t>n)throw q("Wrong length!") +for(;o<i;)this[t+o]=r[o++]},De={entries:function(){return oe.call(xe(this))},keys:function(){return ie.call(xe(this))},values:function(){return re.call(xe(this))}},ze=function(e,t){return A(e)&&e[be]&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},Fe=function(e,t){return ze(e,t=y(t,!0))?h(2,e[t]):U(e,t)},Be=function(e,t,n){return!(ze(e,t=y(t,!0))&&A(n)&&b(n,"value"))||b(n,"get")||b(n,"set")||n.configurable||b(n,"writable")&&!n.writable||b(n,"enumerable")&&!n.enumerable?H(e,t,n):(e[t]=n.value,e)} +ye||(B.f=Fe,F.f=Be),s(s.S+s.F*!ye,"Object",{getOwnPropertyDescriptor:Fe,defineProperty:Be}),o(function(){de.call({})})&&(de=pe=function(){return ce.call(this)}) +var He=p({},Ne) +p(He,De),d(He,fe,De.values),p(He,{slice:Me,set:Le,constructor:function(){},toString:de,toLocaleString:Re}),Se(He,"buffer","b"),Se(He,"byteOffset","o"),Se(He,"byteLength","l"),Se(He,"length","e"),H(He,ge,{get:function(){return this[be]}}),t.exports=function(e,t,n,u){u=!!u +var c=e+(u?"Clamped":"")+"Array",h="get"+e,p="set"+e,f=i[c],v=f||{},y=f&&x(f),b=!f||!a.ABV,_={},I=f&&f.prototype,j=function(e,n){var r=e._d +return r.v[h](n*t+r.o,_e)},E=function(e,n,r){var i=e._d +u&&(r=(r=Math.round(r))<0?0:r>255?255:255&r),i.v[p](n*t+i.o,r,_e)},S=function(e,t){H(e,t,{get:function(){return j(this,t)},set:function(e){return E(this,t,e)},enumerable:!0})} +b?(f=n(function(e,n,r,i){l(e,f,c,"_d") +var o,s,a,u,h=0,p=0 +if(A(n)){if(!(n instanceof Y||"ArrayBuffer"==(u=C(n))||"SharedArrayBuffer"==u))return be in n?Ee(f,n):Te.call(f,n) +o=n,p=we(r,t) +var v=n.byteLength +if(void 0===i){if(v%t)throw q("Wrong length!") +if((s=v-p)<0)throw q("Wrong length!")}else if((s=g(i)*t)+p>v)throw q("Wrong length!") +a=s/t}else a=m(n),s=a*t,o=new Y(s) +for(d(e,"_d",{b:o,o:p,l:s,e:a,v:new K(o)});h<a;)S(e,h++)}),I=f.prototype=w(He),d(I,"constructor",f)):o(function(){f(1)})&&o(function(){new f(-1)})&&M(function(e){new f,new f(null),new f(1.5),new f(e)},!0)||(f=n(function(e,n,r,i){l(e,f,c) +var o +return A(n)?n instanceof Y||"ArrayBuffer"==(o=C(n))||"SharedArrayBuffer"==o?void 0!==i?new v(n,we(r,t),i):void 0!==r?new v(n,we(r,t)):new v(n):be in n?Ee(f,n):Te.call(f,n):new v(m(n))}),Q(y!==Function.prototype?k(v).concat(k(y)):k(v),function(e){e in f||d(f,e,v[e])}),f.prototype=I,r||(I.constructor=f)) +var T=I[fe],P=!!T&&("values"==T.name||void 0==T.name),O=De.values +d(f,me,!0),d(I,be,c),d(I,Ce,!0),d(I,ve,f),(u?new f(1)[ge]==c:ge in I)||H(I,ge,{get:function(){return c}}),_[c]=f,s(s.G+s.W+s.F*(f!=v),_),s(s.S,c,{BYTES_PER_ELEMENT:t}),s(s.S+s.F*o(function(){v.of.call(f,1)}),c,{from:Te,of:Pe}),"BYTES_PER_ELEMENT"in I||d(I,"BYTES_PER_ELEMENT",t),s(s.P,c,Ne),L(c),s(s.P+s.F*Ie,c,{set:Le}),s(s.P+s.F*!P,c,De),r||I.toString==de||(I.toString=de),s(s.P+s.F*o(function(){new f(1).slice()}),c,{slice:Me}),s(s.P+s.F*(o(function(){return[1,2].toLocaleString()!=new f([1,2]).toLocaleString()})||!o(function(){I.toLocaleString.call([1,2])})),c,{toLocaleString:Re}),N[c]=P?T:O,r||P||d(I,fe,O)}}else t.exports=function(){}},{100:100,104:104,11:11,114:114,115:115,116:116,118:118,119:119,12:12,120:120,122:122,123:123,124:124,128:128,129:129,141:141,17:17,25:25,29:29,33:33,35:35,40:40,41:41,42:42,48:48,51:51,56:56,58:58,6:6,60:60,71:71,72:72,75:75,77:77,79:79,8:8,9:9,92:92,93:93}],122:[function(e,t,n){"use strict" +function r(e,t,n){var r,i,o,s=Array(n),a=8*n-t-1,u=(1<<a)-1,c=u>>1,l=23===t?z(2,-24)-z(2,-77):0,h=0,d=e<0||0===e&&1/e<0?1:0 +for(e=D(e),e!=e||e===M?(i=e!=e?1:0,r=u):(r=F(B(e)/H),e*(o=z(2,-r))<1&&(r--,o*=2),e+=r+c>=1?l/o:l*z(2,1-c),e*o>=2&&(r++,o/=2),r+c>=u?(i=0,r=u):r+c>=1?(i=(e*o-1)*z(2,t),r+=c):(i=e*z(2,c-1)*z(2,t),r=0));t>=8;s[h++]=255&i,i/=256,t-=8);for(r=r<<t|i,a+=t;a>0;s[h++]=255&r,r/=256,a-=8);return s[--h]|=128*d,s}function i(e,t,n){var r,i=8*n-t-1,o=(1<<i)-1,s=o>>1,a=i-7,u=n-1,c=e[u--],l=127&c +for(c>>=7;a>0;l=256*l+e[u],u--,a-=8);for(r=l&(1<<-a)-1,l>>=-a,a+=t;a>0;r=256*r+e[u],u--,a-=8);if(0===l)l=1-s +else{if(l===o)return r?NaN:c?-M:M +r+=z(2,t),l-=s}return(c?-1:1)*r*z(2,l-t)}function o(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function s(e){return[255&e]}function a(e){return[255&e,e>>8&255]}function u(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function c(e){return r(e,52,8)}function l(e){return r(e,23,4)}function h(e,t,n){k(e[S],t,{get:function(){return this[n]}})}function d(e,t,n,r){var i=+n,o=w(i) +if(o+t>e[q])throw N(T) +var s=e[U]._b,a=o+e[V],u=s.slice(a,a+t) +return r?u:u.reverse()}function p(e,t,n,r,i,o){var s=+n,a=w(s) +if(a+t>e[q])throw N(T) +for(var u=e[U]._b,c=a+e[V],l=r(+i),h=0;h<t;h++)u[c+h]=l[o?h:t-h-1]}var f=e(40),g=e(29),m=e(60),v=e(123),y=e(42),b=e(93),C=e(35),A=e(6),_=e(116),I=e(118),w=e(115),x=e(77).f,k=e(72).f,j=e(9),E=e(101),S="prototype",T="Wrong index!",P=f.ArrayBuffer,O=f.DataView,R=f.Math,N=f.RangeError,M=f.Infinity,L=P,D=R.abs,z=R.pow,F=R.floor,B=R.log,H=R.LN2,U=g?"_b":"buffer",q=g?"_l":"byteLength",V=g?"_o":"byteOffset" +if(v.ABV){if(!C(function(){P(1)})||!C(function(){new P(-1)})||C(function(){return new P,new P(1.5),new P(NaN),"ArrayBuffer"!=P.name})){P=function(e){return A(this,P),new L(w(e))} +for(var W,G=P[S]=L[S],Y=x(L),K=0;Y.length>K;)(W=Y[K++])in P||y(P,W,L[W]) +m||(G.constructor=P)}var Q=new O(new P(2)),Z=O[S].setInt8 +Q.setInt8(0,2147483648),Q.setInt8(1,2147483649),!Q.getInt8(0)&&Q.getInt8(1)||b(O[S],{setInt8:function(e,t){Z.call(this,e,t<<24>>24)},setUint8:function(e,t){Z.call(this,e,t<<24>>24)}},!0)}else P=function(e){A(this,P,"ArrayBuffer") +var t=w(e) +this._b=j.call(Array(t),0),this[q]=t},O=function(e,t,n){A(this,O,"DataView"),A(e,P,"DataView") +var r=e[q],i=_(t) +if(i<0||i>r)throw N("Wrong offset!") +if(n=void 0===n?r-i:I(n),i+n>r)throw N("Wrong length!") +this[U]=e,this[V]=i,this[q]=n},g&&(h(P,"byteLength","_l"),h(O,"buffer","_b"),h(O,"byteLength","_l"),h(O,"byteOffset","_o")),b(O[S],{getInt8:function(e){return d(this,1,e)[0]<<24>>24},getUint8:function(e){return d(this,1,e)[0]},getInt16:function(e){var t=d(this,2,e,arguments[1]) +return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=d(this,2,e,arguments[1]) +return t[1]<<8|t[0]},getInt32:function(e){return o(d(this,4,e,arguments[1]))},getUint32:function(e){return o(d(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return i(d(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return i(d(this,8,e,arguments[1]),52,8)},setInt8:function(e,t){p(this,1,e,s,t)},setUint8:function(e,t){p(this,1,e,s,t)},setInt16:function(e,t){p(this,2,e,a,t,arguments[2])},setUint16:function(e,t){p(this,2,e,a,t,arguments[2])},setInt32:function(e,t){p(this,4,e,u,t,arguments[2])},setUint32:function(e,t){p(this,4,e,u,t,arguments[2])},setFloat32:function(e,t){p(this,4,e,l,t,arguments[2])},setFloat64:function(e,t){p(this,8,e,c,t,arguments[2])}}) +E(P,"ArrayBuffer"),E(O,"DataView"),y(O[S],v.VIEW,!0),n.ArrayBuffer=P,n.DataView=O},{101:101,115:115,116:116,118:118,123:123,29:29,35:35,40:40,42:42,6:6,60:60,72:72,77:77,9:9,93:93}],123:[function(e,t,n){for(var r,i=e(40),o=e(42),s=e(124),a=s("typed_array"),u=s("view"),c=!(!i.ArrayBuffer||!i.DataView),l=c,h=0,d="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");h<9;)(r=i[d[h++]])?(o(r.prototype,a,!0),o(r.prototype,u,!0)):l=!1 +t.exports={ABV:c,CONSTR:l,TYPED:a,VIEW:u}},{124:124,40:40,42:42}],124:[function(e,t,n){var r=0,i=Math.random() +t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+i).toString(36))}},{}],125:[function(e,t,n){var r=e(51) +t.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!") +return e}},{51:51}],126:[function(e,t,n){var r=e(40),i=e(23),o=e(60),s=e(127),a=e(72).f +t.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{}) +"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},{127:127,23:23,40:40,60:60,72:72}],127:[function(e,t,n){n.f=e(128)},{128:128}],128:[function(e,t,n){var r=e(103)("wks"),i=e(124),o=e(40).Symbol,s="function"==typeof o;(t.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))}).store=r},{103:103,124:124,40:40}],129:[function(e,t,n){var r=e(17),i=e(128)("iterator"),o=e(58) +t.exports=e(23).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},{128:128,17:17,23:23,58:58}],130:[function(e,t,n){var r=e(33),i=e(95)(/[\\^$*+?.()|[\]{}]/g,"\\$&") +r(r.S,"RegExp",{escape:function(e){return i(e)}})},{33:33,95:95}],131:[function(e,t,n){var r=e(33) +r(r.P,"Array",{copyWithin:e(8)}),e(5)("copyWithin")},{33:33,5:5,8:8}],132:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(4) +r(r.P+r.F*!e(105)([].every,!0),"Array",{every:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],133:[function(e,t,n){var r=e(33) +r(r.P,"Array",{fill:e(9)}),e(5)("fill")},{33:33,5:5,9:9}],134:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(2) +r(r.P+r.F*!e(105)([].filter,!0),"Array",{filter:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],135:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(6),o="findIndex",s=!0 +o in[]&&Array(1)[o](function(){s=!1}),r(r.P+r.F*s,"Array",{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),e(5)(o)},{12:12,33:33,5:5}],136:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(5),o=!0 +"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),e(5)("find")},{12:12,33:33,5:5}],137:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(0),o=e(105)([].forEach,!0) +r(r.P+r.F*!o,"Array",{forEach:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],138:[function(e,t,n){"use strict" +var r=e(25),i=e(33),o=e(119),s=e(53),a=e(48),u=e(118),c=e(24),l=e(129) +i(i.S+i.F*!e(56)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,h,d=o(e),p="function"==typeof this?this:Array,f=arguments.length,g=f>1?arguments[1]:void 0,m=void 0!==g,v=0,y=l(d) +if(m&&(g=r(g,f>2?arguments[2]:void 0,2)),void 0==y||p==Array&&a(y))for(t=u(d.length),n=new p(t);t>v;v++)c(n,v,m?g(d[v],v):d[v]) +else for(h=y.call(d),n=new p;!(i=h.next()).done;v++)c(n,v,m?s(h,g,[i.value,v],!0):i.value) +return n.length=v,n}})},{118:118,119:119,129:129,24:24,25:25,33:33,48:48,53:53,56:56}],139:[function(e,t,n){"use strict" +var r=e(33),i=e(11)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0 +r(r.P+r.F*(s||!e(105)(o)),"Array",{indexOf:function(e){return s?o.apply(this,arguments)||0:i(this,e,arguments[1])}})},{105:105,11:11,33:33}],140:[function(e,t,n){var r=e(33) +r(r.S,"Array",{isArray:e(49)})},{33:33,49:49}],141:[function(e,t,n){"use strict" +var r=e(5),i=e(57),o=e(58),s=e(117) +t.exports=e(55)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++ +return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},{117:117,5:5,55:55,57:57,58:58}],142:[function(e,t,n){"use strict" +var r=e(33),i=e(117),o=[].join +r(r.P+r.F*(e(47)!=Object||!e(105)(o)),"Array",{join:function(e){return o.call(i(this),void 0===e?",":e)}})},{105:105,117:117,33:33,47:47}],143:[function(e,t,n){"use strict" +var r=e(33),i=e(117),o=e(116),s=e(118),a=[].lastIndexOf,u=!!a&&1/[1].lastIndexOf(1,-0)<0 +r(r.P+r.F*(u||!e(105)(a)),"Array",{lastIndexOf:function(e){if(u)return a.apply(this,arguments)||0 +var t=i(this),n=s(t.length),r=n-1 +for(arguments.length>1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0 +return-1}})},{105:105,116:116,117:117,118:118,33:33}],144:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(1) +r(r.P+r.F*!e(105)([].map,!0),"Array",{map:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],145:[function(e,t,n){"use strict" +var r=e(33),i=e(24) +r(r.S+r.F*e(35)(function(){function e(){}return!(Array.of.call(e)instanceof e)}),"Array",{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)i(n,e,arguments[e++]) +return n.length=t,n}})},{24:24,33:33,35:35}],146:[function(e,t,n){"use strict" +var r=e(33),i=e(13) +r(r.P+r.F*!e(105)([].reduceRight,!0),"Array",{reduceRight:function(e){return i(this,e,arguments.length,arguments[1],!0)}})},{105:105,13:13,33:33}],147:[function(e,t,n){"use strict" +var r=e(33),i=e(13) +r(r.P+r.F*!e(105)([].reduce,!0),"Array",{reduce:function(e){return i(this,e,arguments.length,arguments[1],!1)}})},{105:105,13:13,33:33}],148:[function(e,t,n){"use strict" +var r=e(33),i=e(43),o=e(18),s=e(114),a=e(118),u=[].slice +r(r.P+r.F*e(35)(function(){i&&u.call(i)}),"Array",{slice:function(e,t){var n=a(this.length),r=o(this) +if(t=void 0===t?n:t,"Array"==r)return u.call(this,e,t) +for(var i=s(e,n),c=s(t,n),l=a(c-i),h=Array(l),d=0;d<l;d++)h[d]="String"==r?this.charAt(i+d):this[i+d] +return h}})},{114:114,118:118,18:18,33:33,35:35,43:43}],149:[function(e,t,n){"use strict" +var r=e(33),i=e(12)(3) +r(r.P+r.F*!e(105)([].some,!0),"Array",{some:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],150:[function(e,t,n){"use strict" +var r=e(33),i=e(3),o=e(119),s=e(35),a=[].sort,u=[1,2,3] +r(r.P+r.F*(s(function(){u.sort(void 0)})||!s(function(){u.sort(null)})||!e(105)(a)),"Array",{sort:function(e){return void 0===e?a.call(o(this)):a.call(o(this),i(e))}})},{105:105,119:119,3:3,33:33,35:35}],151:[function(e,t,n){e(100)("Array")},{100:100}],152:[function(e,t,n){var r=e(33) +r(r.S,"Date",{now:function(){return(new Date).getTime()}})},{33:33}],153:[function(e,t,n){var r=e(33),i=e(26) +r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},{26:26,33:33}],154:[function(e,t,n){"use strict" +var r=e(33),i=e(119),o=e(120) +r(r.P+r.F*e(35)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(e){var t=i(this),n=o(t) +return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},{119:119,120:120,33:33,35:35}],155:[function(e,t,n){var r=e(128)("toPrimitive"),i=Date.prototype +r in i||e(42)(i,r,e(27))},{128:128,27:27,42:42}],156:[function(e,t,n){var r=Date.prototype,i=r.toString,o=r.getTime +new Date(NaN)+""!="Invalid Date"&&e(94)(r,"toString",function(){var e=o.call(this) +return e===e?i.call(this):"Invalid Date"})},{94:94}],157:[function(e,t,n){var r=e(33) +r(r.P,"Function",{bind:e(16)})},{16:16,33:33}],158:[function(e,t,n){"use strict" +var r=e(51),i=e(79),o=e(128)("hasInstance"),s=Function.prototype +o in s||e(72).f(s,o,{value:function(e){if("function"!=typeof this||!r(e))return!1 +if(!r(this.prototype))return e instanceof this +for(;e=i(e);)if(this.prototype===e)return!0 +return!1}})},{128:128,51:51,72:72,79:79}],159:[function(e,t,n){var r=e(72).f,i=Function.prototype,o=/^\s*function ([^ (]*)/ +"name"in i||e(29)&&r(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},{29:29,72:72}],160:[function(e,t,n){"use strict" +var r=e(19),i=e(125) +t.exports=e(22)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,"Map"),e) +return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},{125:125,19:19,22:22}],161:[function(e,t,n){var r=e(33),i=e(63),o=Math.sqrt,s=Math.acosh +r(r.S+r.F*!(s&&710==Math.floor(s(Number.MAX_VALUE))&&s(1/0)==1/0),"Math",{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?Math.log(e)+Math.LN2:i(e-1+o(e-1)*o(e+1))}})},{33:33,63:63}],162:[function(e,t,n){function r(e){return isFinite(e=+e)&&0!=e?e<0?-r(-e):Math.log(e+Math.sqrt(e*e+1)):e}var i=e(33),o=Math.asinh +i(i.S+i.F*!(o&&1/o(0)>0),"Math",{asinh:r})},{33:33}],163:[function(e,t,n){var r=e(33),i=Math.atanh +r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(e){return 0==(e=+e)?e:Math.log((1+e)/(1-e))/2}})},{33:33}],164:[function(e,t,n){var r=e(33),i=e(65) +r(r.S,"Math",{cbrt:function(e){return i(e=+e)*Math.pow(Math.abs(e),1/3)}})},{33:33,65:65}],165:[function(e,t,n){var r=e(33) +r(r.S,"Math",{clz32:function(e){return(e>>>=0)?31-Math.floor(Math.log(e+.5)*Math.LOG2E):32}})},{33:33}],166:[function(e,t,n){var r=e(33),i=Math.exp +r(r.S,"Math",{cosh:function(e){return(i(e=+e)+i(-e))/2}})},{33:33}],167:[function(e,t,n){var r=e(33),i=e(61) +r(r.S+r.F*(i!=Math.expm1),"Math",{expm1:i})},{33:33,61:61}],168:[function(e,t,n){var r=e(33) +r(r.S,"Math",{fround:e(62)})},{33:33,62:62}],169:[function(e,t,n){var r=e(33),i=Math.abs +r(r.S,"Math",{hypot:function(e,t){for(var n,r,o=0,s=0,a=arguments.length,u=0;s<a;)n=i(arguments[s++]),u<n?(r=u/n,o=o*r*r+1,u=n):n>0?(r=n/u,o+=r*r):o+=n +return u===1/0?1/0:u*Math.sqrt(o)}})},{33:33}],170:[function(e,t,n){var r=e(33),i=Math.imul +r(r.S+r.F*e(35)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r +return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},{33:33,35:35}],171:[function(e,t,n){var r=e(33) +r(r.S,"Math",{log10:function(e){return Math.log(e)*Math.LOG10E}})},{33:33}],172:[function(e,t,n){var r=e(33) +r(r.S,"Math",{log1p:e(63)})},{33:33,63:63}],173:[function(e,t,n){var r=e(33) +r(r.S,"Math",{log2:function(e){return Math.log(e)/Math.LN2}})},{33:33}],174:[function(e,t,n){var r=e(33) +r(r.S,"Math",{sign:e(65)})},{33:33,65:65}],175:[function(e,t,n){var r=e(33),i=e(61),o=Math.exp +r(r.S+r.F*e(35)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(e){return Math.abs(e=+e)<1?(i(e)-i(-e))/2:(o(e-1)-o(-e-1))*(Math.E/2)}})},{33:33,35:35,61:61}],176:[function(e,t,n){var r=e(33),i=e(61),o=Math.exp +r(r.S,"Math",{tanh:function(e){var t=i(e=+e),n=i(-e) +return t==1/0?1:n==1/0?-1:(t-n)/(o(e)+o(-e))}})},{33:33,61:61}],177:[function(e,t,n){var r=e(33) +r(r.S,"Math",{trunc:function(e){return(e>0?Math.floor:Math.ceil)(e)}})},{33:33}],178:[function(e,t,n){"use strict" +var r=e(40),i=e(41),o=e(18),s=e(45),a=e(120),u=e(35),c=e(77).f,l=e(75).f,h=e(72).f,d=e(111).trim,p=r.Number,f=p,g=p.prototype,m="Number"==o(e(71)(g)),v="trim"in String.prototype,y=function(e){var t=a(e,!1) +if("string"==typeof t&&t.length>2){t=v?t.trim():d(t,3) +var n,r,i,o=t.charCodeAt(0) +if(43===o||45===o){if(88===(n=t.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(t.charCodeAt(1)){case 66:case 98:r=2,i=49 +break +case 79:case 111:r=8,i=55 +break +default:return+t}for(var s,u=t.slice(2),c=0,l=u.length;c<l;c++)if((s=u.charCodeAt(c))<48||s>i)return NaN +return parseInt(u,r)}}return+t} +if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(e){var t=arguments.length<1?0:e,n=this +return n instanceof p&&(m?u(function(){g.valueOf.call(n)}):"Number"!=o(n))?s(new f(y(t)),n,p):y(t)} +for(var b,C=e(29)?c(f):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),A=0;C.length>A;A++)i(f,b=C[A])&&!i(p,b)&&h(p,b,l(f,b)) +p.prototype=g,g.constructor=p,e(94)(r,"Number",p)}},{111:111,120:120,18:18,29:29,35:35,40:40,41:41,45:45,71:71,72:72,75:75,77:77,94:94}],179:[function(e,t,n){var r=e(33) +r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},{33:33}],180:[function(e,t,n){var r=e(33),i=e(40).isFinite +r(r.S,"Number",{isFinite:function(e){return"number"==typeof e&&i(e)}})},{33:33,40:40}],181:[function(e,t,n){var r=e(33) +r(r.S,"Number",{isInteger:e(50)})},{33:33,50:50}],182:[function(e,t,n){var r=e(33) +r(r.S,"Number",{isNaN:function(e){return e!=e}})},{33:33}],183:[function(e,t,n){var r=e(33),i=e(50),o=Math.abs +r(r.S,"Number",{isSafeInteger:function(e){return i(e)&&o(e)<=9007199254740991}})},{33:33,50:50}],184:[function(e,t,n){var r=e(33) +r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{33:33}],185:[function(e,t,n){var r=e(33) +r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{33:33}],186:[function(e,t,n){var r=e(33),i=e(86) +r(r.S+r.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},{33:33,86:86}],187:[function(e,t,n){var r=e(33),i=e(87) +r(r.S+r.F*(Number.parseInt!=i),"Number",{parseInt:i})},{33:33,87:87}],188:[function(e,t,n){"use strict" +var r=e(33),i=e(116),o=e(4),s=e(110),a=1..toFixed,u=Math.floor,c=[0,0,0,0,0,0],l="Number.toFixed: incorrect invocation!",h=function(e,t){for(var n=-1,r=t;++n<6;)r+=e*c[n],c[n]=r%1e7,r=u(r/1e7)},d=function(e){for(var t=6,n=0;--t>=0;)n+=c[t],c[t]=u(n/e),n=n%e*1e7},p=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==c[e]){var n=String(c[e]) +t=""===t?n:t+s.call("0",7-n.length)+n}return t},f=function(e,t,n){return 0===t?n:t%2==1?f(e,t-1,n*e):f(e*e,t/2,n)},g=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096 +for(;n>=2;)t+=1,n/=2 +return t} +r(r.P+r.F*(!!a&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!e(35)(function(){a.call({})})),"Number",{toFixed:function(e){var t,n,r,a,u=o(this,l),c=i(e),m="",v="0" +if(c<0||c>20)throw RangeError(l) +if(u!=u)return"NaN" +if(u<=-1e21||u>=1e21)return String(u) +if(u<0&&(m="-",u=-u),u>1e-21)if(t=g(u*f(2,69,1))-69,n=t<0?u*f(2,-t,1):u/f(2,t,1),n*=4503599627370496,(t=52-t)>0){for(h(0,n),r=c;r>=7;)h(1e7,0),r-=7 +for(h(f(10,r,1),0),r=t-1;r>=23;)d(1<<23),r-=23 +d(1<<r),h(1,1),d(2),v=p()}else h(0,n),h(1<<-t,0),v=p()+s.call("0",c) +return c>0?(a=v.length,v=m+(a<=c?"0."+s.call("0",c-a)+v:v.slice(0,a-c)+"."+v.slice(a-c))):v=m+v,v}})},{110:110,116:116,33:33,35:35,4:4}],189:[function(e,t,n){"use strict" +var r=e(33),i=e(35),o=e(4),s=1..toPrecision +r(r.P+r.F*(i(function(){return"1"!==s.call(1,void 0)})||!i(function(){s.call({})})),"Number",{toPrecision:function(e){var t=o(this,"Number#toPrecision: incorrect invocation!") +return void 0===e?s.call(t):s.call(t,e)}})},{33:33,35:35,4:4}],190:[function(e,t,n){var r=e(33) +r(r.S+r.F,"Object",{assign:e(70)})},{33:33,70:70}],191:[function(e,t,n){var r=e(33) +r(r.S,"Object",{create:e(71)})},{33:33,71:71}],192:[function(e,t,n){var r=e(33) +r(r.S+r.F*!e(29),"Object",{defineProperties:e(73)})},{29:29,33:33,73:73}],193:[function(e,t,n){var r=e(33) +r(r.S+r.F*!e(29),"Object",{defineProperty:e(72).f})},{29:29,33:33,72:72}],194:[function(e,t,n){var r=e(51),i=e(66).onFreeze +e(83)("freeze",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},{51:51,66:66,83:83}],195:[function(e,t,n){var r=e(117),i=e(75).f +e(83)("getOwnPropertyDescriptor",function(){return function(e,t){return i(r(e),t)}})},{117:117,75:75,83:83}],196:[function(e,t,n){e(83)("getOwnPropertyNames",function(){return e(76).f})},{76:76,83:83}],197:[function(e,t,n){var r=e(119),i=e(79) +e(83)("getPrototypeOf",function(){return function(e){return i(r(e))}})},{119:119,79:79,83:83}],198:[function(e,t,n){var r=e(51) +e(83)("isExtensible",function(e){return function(t){return!!r(t)&&(!e||e(t))}})},{51:51,83:83}],199:[function(e,t,n){var r=e(51) +e(83)("isFrozen",function(e){return function(t){return!r(t)||!!e&&e(t)}})},{51:51,83:83}],200:[function(e,t,n){var r=e(51) +e(83)("isSealed",function(e){return function(t){return!r(t)||!!e&&e(t)}})},{51:51,83:83}],201:[function(e,t,n){var r=e(33) +r(r.S,"Object",{is:e(96)})},{33:33,96:96}],202:[function(e,t,n){var r=e(119),i=e(81) +e(83)("keys",function(){return function(e){return i(r(e))}})},{119:119,81:81,83:83}],203:[function(e,t,n){var r=e(51),i=e(66).onFreeze +e(83)("preventExtensions",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},{51:51,66:66,83:83}],204:[function(e,t,n){var r=e(51),i=e(66).onFreeze +e(83)("seal",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},{51:51,66:66,83:83}],205:[function(e,t,n){var r=e(33) +r(r.S,"Object",{setPrototypeOf:e(99).set})},{33:33,99:99}],206:[function(e,t,n){"use strict" +var r=e(17),i={} +i[e(128)("toStringTag")]="z",i+""!="[object z]"&&e(94)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},{128:128,17:17,94:94}],207:[function(e,t,n){var r=e(33),i=e(86) +r(r.G+r.F*(parseFloat!=i),{parseFloat:i})},{33:33,86:86}],208:[function(e,t,n){var r=e(33),i=e(87) +r(r.G+r.F*(parseInt!=i),{parseInt:i})},{33:33,87:87}],209:[function(e,t,n){"use strict" +var r,i,o,s,a=e(60),u=e(40),c=e(25),l=e(17),h=e(33),d=e(51),p=e(3),f=e(6),g=e(39),m=e(104),v=e(113).set,y=e(68)(),b=e(69),C=e(90),A=e(91),_=u.TypeError,I=u.process,w=u.Promise,x="process"==l(I),k=function(){},j=i=b.f,E=!!function(){try{var t=w.resolve(1),n=(t.constructor={})[e(128)("species")]=function(e){e(k,k)} +return(x||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof n}catch(e){}}(),S=a?function(e,t){return e===t||e===w&&t===s}:function(e,t){return e===t},T=function(e){var t +return!(!d(e)||"function"!=typeof(t=e.then))&&t},P=function(e,t){if(!e._n){e._n=!0 +var n=e._c +y(function(){for(var r=e._v,i=1==e._s,o=0;n.length>o;)(function(t){var n,o,s=i?t.ok:t.fail,a=t.resolve,u=t.reject,c=t.domain +try{s?(i||(2==e._h&&N(e),e._h=1),!0===s?n=r:(c&&c.enter(),n=s(r),c&&c.exit()),n===t.promise?u(_("Promise-chain cycle")):(o=T(n))?o.call(n,a,u):a(n)):u(r)}catch(e){u(e)}})(n[o++]) +e._c=[],e._n=!1,t&&!e._h&&O(e)})}},O=function(e){v.call(u,function(){var t,n,r,i=e._v,o=R(e) +if(o&&(t=C(function(){x?I.emit("unhandledRejection",i,e):(n=u.onunhandledrejection)?n({promise:e,reason:i}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=x||R(e)?2:1),e._a=void 0,o&&t.e)throw t.v})},R=function(e){if(1==e._h)return!1 +for(var t,n=e._a||e._c,r=0;n.length>r;)if(t=n[r++],t.fail||!R(t.promise))return!1 +return!0},N=function(e){v.call(u,function(){var t +x?I.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},M=function(e){var t=this +t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),P(t,!0))},L=function(e){var t,n=this +if(!n._d){n._d=!0,n=n._w||n +try{if(n===e)throw _("Promise can't be resolved itself");(t=T(e))?y(function(){var r={_w:n,_d:!1} +try{t.call(e,c(L,r,1),c(M,r,1))}catch(e){M.call(r,e)}}):(n._v=e,n._s=1,P(n,!1))}catch(e){M.call({_w:n,_d:!1},e)}}} +E||(w=function(e){f(this,w,"Promise","_h"),p(e),r.call(this) +try{e(c(L,this,1),c(M,this,1))}catch(e){M.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=e(93)(w.prototype,{then:function(e,t){var n=j(m(this,w)) +return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=x?I.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r +this.promise=e,this.resolve=c(L,e,1),this.reject=c(M,e,1)},b.f=j=function(e){return S(w,e)?new o(e):i(e)}),h(h.G+h.W+h.F*!E,{Promise:w}),e(101)(w,"Promise"),e(100)("Promise"),s=e(23).Promise,h(h.S+h.F*!E,"Promise",{reject:function(e){var t=j(this) +return(0,t.reject)(e),t.promise}}),h(h.S+h.F*(a||!E),"Promise",{resolve:function(e){return e instanceof w&&S(e.constructor,this)?e:A(this,e)}}),h(h.S+h.F*!(E&&e(56)(function(e){w.all(e).catch(k)})),"Promise",{all:function(e){var t=this,n=j(t),r=n.resolve,i=n.reject,o=C(function(){var n=[],o=0,s=1 +g(e,!1,function(e){var a=o++,u=!1 +n.push(void 0),s++,t.resolve(e).then(function(e){u||(u=!0,n[a]=e,--s||r(n))},i)}),--s||r(n)}) +return o.e&&i(o.v),n.promise},race:function(e){var t=this,n=j(t),r=n.reject,i=C(function(){g(e,!1,function(e){t.resolve(e).then(n.resolve,r)})}) +return i.e&&r(i.v),n.promise}})},{100:100,101:101,104:104,113:113,128:128,17:17,23:23,25:25,3:3,33:33,39:39,40:40,51:51,56:56,6:6,60:60,68:68,69:69,90:90,91:91,93:93}],210:[function(e,t,n){var r=e(33),i=e(3),o=e(7),s=(e(40).Reflect||{}).apply,a=Function.apply +r(r.S+r.F*!e(35)(function(){s(function(){})}),"Reflect",{apply:function(e,t,n){var r=i(e),u=o(n) +return s?s(r,t,u):a.call(r,t,u)}})},{3:3,33:33,35:35,40:40,7:7}],211:[function(e,t,n){var r=e(33),i=e(71),o=e(3),s=e(7),a=e(51),u=e(35),c=e(16),l=(e(40).Reflect||{}).construct,h=u(function(){function e(){}return!(l(function(){},[],e)instanceof e)}),d=!u(function(){l(function(){})}) +r(r.S+r.F*(h||d),"Reflect",{construct:function(e,t){o(e),s(t) +var n=arguments.length<3?e:o(arguments[2]) +if(d&&!h)return l(e,t,n) +if(e==n){switch(t.length){case 0:return new e +case 1:return new e(t[0]) +case 2:return new e(t[0],t[1]) +case 3:return new e(t[0],t[1],t[2]) +case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null] +return r.push.apply(r,t),new(c.apply(e,r))}var u=n.prototype,p=i(a(u)?u:Object.prototype),f=Function.apply.call(e,p,t) +return a(f)?f:p}})},{16:16,3:3,33:33,35:35,40:40,51:51,7:7,71:71}],212:[function(e,t,n){var r=e(72),i=e(33),o=e(7),s=e(120) +i(i.S+i.F*e(35)(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(e,t,n){o(e),t=s(t,!0),o(n) +try{return r.f(e,t,n),!0}catch(e){return!1}}})},{120:120,33:33,35:35,7:7,72:72}],213:[function(e,t,n){var r=e(33),i=e(75).f,o=e(7) +r(r.S,"Reflect",{deleteProperty:function(e,t){var n=i(o(e),t) +return!(n&&!n.configurable)&&delete e[t]}})},{33:33,7:7,75:75}],214:[function(e,t,n){"use strict" +var r=e(33),i=e(7),o=function(e){this._t=i(e),this._i=0 +var t,n=this._k=[] +for(t in e)n.push(t)} +e(54)(o,"Object",function(){var e,t=this,n=t._k +do{if(t._i>=n.length)return{value:void 0,done:!0}}while(!((e=n[t._i++])in t._t)) +return{value:e,done:!1}}),r(r.S,"Reflect",{enumerate:function(e){return new o(e)}})},{33:33,54:54,7:7}],215:[function(e,t,n){var r=e(75),i=e(33),o=e(7) +i(i.S,"Reflect",{getOwnPropertyDescriptor:function(e,t){return r.f(o(e),t)}})},{33:33,7:7,75:75}],216:[function(e,t,n){var r=e(33),i=e(79),o=e(7) +r(r.S,"Reflect",{getPrototypeOf:function(e){return i(o(e))}})},{33:33,7:7,79:79}],217:[function(e,t,n){function r(e,t){var n,a,l=arguments.length<3?e:arguments[2] +return c(e)===l?e[t]:(n=i.f(e,t))?s(n,"value")?n.value:void 0!==n.get?n.get.call(l):void 0:u(a=o(e))?r(a,t,l):void 0}var i=e(75),o=e(79),s=e(41),a=e(33),u=e(51),c=e(7) +a(a.S,"Reflect",{get:r})},{33:33,41:41,51:51,7:7,75:75,79:79}],218:[function(e,t,n){var r=e(33) +r(r.S,"Reflect",{has:function(e,t){return t in e}})},{33:33}],219:[function(e,t,n){var r=e(33),i=e(7),o=Object.isExtensible +r(r.S,"Reflect",{isExtensible:function(e){return i(e),!o||o(e)}})},{33:33,7:7}],220:[function(e,t,n){var r=e(33) +r(r.S,"Reflect",{ownKeys:e(85)})},{33:33,85:85}],221:[function(e,t,n){var r=e(33),i=e(7),o=Object.preventExtensions +r(r.S,"Reflect",{preventExtensions:function(e){i(e) +try{return o&&o(e),!0}catch(e){return!1}}})},{33:33,7:7}],222:[function(e,t,n){var r=e(33),i=e(99) +i&&r(r.S,"Reflect",{setPrototypeOf:function(e,t){i.check(e,t) +try{return i.set(e,t),!0}catch(e){return!1}}})},{33:33,99:99}],223:[function(e,t,n){function r(e,t,n){var u,d,p=arguments.length<4?e:arguments[3],f=o.f(l(e),t) +if(!f){if(h(d=s(e)))return r(d,t,n,p) +f=c(0)}return a(f,"value")?!(!1===f.writable||!h(p))&&(u=o.f(p,t)||c(0),u.value=n,i.f(p,t,u),!0):void 0!==f.set&&(f.set.call(p,n),!0)}var i=e(72),o=e(75),s=e(79),a=e(41),u=e(33),c=e(92),l=e(7),h=e(51) +u(u.S,"Reflect",{set:r})},{33:33,41:41,51:51,7:7,72:72,75:75,79:79,92:92}],224:[function(e,t,n){var r=e(40),i=e(45),o=e(72).f,s=e(77).f,a=e(52),u=e(37),c=r.RegExp,l=c,h=c.prototype,d=/a/g,p=/a/g,f=new c(d)!==d +if(e(29)&&(!f||e(35)(function(){return p[e(128)("match")]=!1,c(d)!=d||c(p)==p||"/a/i"!=c(d,"i")}))){c=function(e,t){var n=this instanceof c,r=a(e),o=void 0===t +return!n&&r&&e.constructor===c&&o?e:i(f?new l(r&&!o?e.source:e,t):l((r=e instanceof c)?e.source:e,r&&o?u.call(e):t),n?this:h,c)} +for(var g=s(l),m=0;g.length>m;)(function(e){e in c||o(c,e,{configurable:!0,get:function(){return l[e]},set:function(t){l[e]=t}})})(g[m++]) +h.constructor=c,c.prototype=h,e(94)(r,"RegExp",c)}e(100)("RegExp")},{100:100,128:128,29:29,35:35,37:37,40:40,45:45,52:52,72:72,77:77,94:94}],225:[function(e,t,n){e(29)&&"g"!=/./g.flags&&e(72).f(RegExp.prototype,"flags",{configurable:!0,get:e(37)})},{29:29,37:37,72:72}],226:[function(e,t,n){e(36)("match",1,function(e,t,n){return[function(n){"use strict" +var r=e(this),i=void 0==n?void 0:n[t] +return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},n]})},{36:36}],227:[function(e,t,n){e(36)("replace",2,function(e,t,n){return[function(r,i){"use strict" +var o=e(this),s=void 0==r?void 0:r[t] +return void 0!==s?s.call(r,o,i):n.call(String(o),r,i)},n]})},{36:36}],228:[function(e,t,n){e(36)("search",1,function(e,t,n){return[function(n){"use strict" +var r=e(this),i=void 0==n?void 0:n[t] +return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},n]})},{36:36}],229:[function(e,t,n){e(36)("split",2,function(t,n,r){"use strict" +var i=e(52),o=r,s=[].push,a="length" +if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1)[a]||2!="ab".split(/(?:ab)*/)[a]||4!=".".split(/(.?)(.?)/)[a]||".".split(/()()/)[a]>1||"".split(/.?/)[a]){var u=void 0===/()??/.exec("")[1] +r=function(e,t){var n=String(this) +if(void 0===e&&0===t)return[] +if(!i(e))return o.call(n,e,t) +var r,c,l,h,d,p=[],f=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),g=0,m=void 0===t?4294967295:t>>>0,v=new RegExp(e.source,f+"g") +for(u||(r=new RegExp("^"+v.source+"$(?!\\s)",f));(c=v.exec(n))&&!((l=c.index+c[0][a])>g&&(p.push(n.slice(g,c.index)),!u&&c[a]>1&&c[0].replace(r,function(){for(d=1;d<arguments[a]-2;d++)void 0===arguments[d]&&(c[d]=void 0)}),c[a]>1&&c.index<n[a]&&s.apply(p,c.slice(1)),h=c[0][a],g=l,p[a]>=m));)v.lastIndex===c.index&&v.lastIndex++ +return g===n[a]?!h&&v.test("")||p.push(""):p.push(n.slice(g)),p[a]>m?p.slice(0,m):p}}else"0".split(void 0,0)[a]&&(r=function(e,t){return void 0===e&&0===t?[]:o.call(this,e,t)}) +return[function(e,i){var o=t(this),s=void 0==e?void 0:e[n] +return void 0!==s?s.call(e,o,i):r.call(String(o),e,i)},r]})},{36:36,52:52}],230:[function(e,t,n){"use strict" +e(225) +var r=e(7),i=e(37),o=e(29),s=/./.toString,a=function(t){e(94)(RegExp.prototype,"toString",t,!0)} +e(35)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?a(function(){var e=r(this) +return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)}):"toString"!=s.name&&a(function(){return s.call(this)})},{225:225,29:29,35:35,37:37,7:7,94:94}],231:[function(e,t,n){"use strict" +var r=e(19),i=e(125) +t.exports=e(22)("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},{125:125,19:19,22:22}],232:[function(e,t,n){"use strict" +e(108)("anchor",function(e){return function(t){return e(this,"a","name",t)}})},{108:108}],233:[function(e,t,n){"use strict" +e(108)("big",function(e){return function(){return e(this,"big","","")}})},{108:108}],234:[function(e,t,n){"use strict" +e(108)("blink",function(e){return function(){return e(this,"blink","","")}})},{108:108}],235:[function(e,t,n){"use strict" +e(108)("bold",function(e){return function(){return e(this,"b","","")}})},{108:108}],236:[function(e,t,n){"use strict" +var r=e(33),i=e(106)(!1) +r(r.P,"String",{codePointAt:function(e){return i(this,e)}})},{106:106,33:33}],237:[function(e,t,n){"use strict" +var r=e(33),i=e(118),o=e(107),s="".endsWith +r(r.P+r.F*e(34)("endsWith"),"String",{endsWith:function(e){var t=o(this,e,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=i(t.length),a=void 0===n?r:Math.min(i(n),r),u=String(e) +return s?s.call(t,u,a):t.slice(a-u.length,a)===u}})},{107:107,118:118,33:33,34:34}],238:[function(e,t,n){"use strict" +e(108)("fixed",function(e){return function(){return e(this,"tt","","")}})},{108:108}],239:[function(e,t,n){"use strict" +e(108)("fontcolor",function(e){return function(t){return e(this,"font","color",t)}})},{108:108}],240:[function(e,t,n){"use strict" +e(108)("fontsize",function(e){return function(t){return e(this,"font","size",t)}})},{108:108}],241:[function(e,t,n){var r=e(33),i=e(114),o=String.fromCharCode,s=String.fromCodePoint +r(r.S+r.F*(!!s&&1!=s.length),"String",{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,s=0;r>s;){if(t=+arguments[s++],i(t,1114111)!==t)throw RangeError(t+" is not a valid code point") +n.push(t<65536?o(t):o(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},{114:114,33:33}],242:[function(e,t,n){"use strict" +var r=e(33),i=e(107) +r(r.P+r.F*e(34)("includes"),"String",{includes:function(e){return!!~i(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},{107:107,33:33,34:34}],243:[function(e,t,n){"use strict" +e(108)("italics",function(e){return function(){return e(this,"i","","")}})},{108:108}],244:[function(e,t,n){"use strict" +var r=e(106)(!0) +e(55)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i +return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},{106:106,55:55}],245:[function(e,t,n){"use strict" +e(108)("link",function(e){return function(t){return e(this,"a","href",t)}})},{108:108}],246:[function(e,t,n){var r=e(33),i=e(117),o=e(118) +r(r.S,"String",{raw:function(e){for(var t=i(e.raw),n=o(t.length),r=arguments.length,s=[],a=0;n>a;)s.push(String(t[a++])),a<r&&s.push(String(arguments[a])) +return s.join("")}})},{117:117,118:118,33:33}],247:[function(e,t,n){var r=e(33) +r(r.P,"String",{repeat:e(110)})},{110:110,33:33}],248:[function(e,t,n){"use strict" +e(108)("small",function(e){return function(){return e(this,"small","","")}})},{108:108}],249:[function(e,t,n){"use strict" +var r=e(33),i=e(118),o=e(107),s="".startsWith +r(r.P+r.F*e(34)("startsWith"),"String",{startsWith:function(e){var t=o(this,e,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e) +return s?s.call(t,r,n):t.slice(n,n+r.length)===r}})},{107:107,118:118,33:33,34:34}],250:[function(e,t,n){"use strict" +e(108)("strike",function(e){return function(){return e(this,"strike","","")}})},{108:108}],251:[function(e,t,n){"use strict" +e(108)("sub",function(e){return function(){return e(this,"sub","","")}})},{108:108}],252:[function(e,t,n){"use strict" +e(108)("sup",function(e){return function(){return e(this,"sup","","")}})},{108:108}],253:[function(e,t,n){"use strict" +e(111)("trim",function(e){return function(){return e(this,3)}})},{111:111}],254:[function(e,t,n){"use strict" +var r=e(40),i=e(41),o=e(29),s=e(33),a=e(94),u=e(66).KEY,c=e(35),l=e(103),h=e(101),d=e(124),p=e(128),f=e(127),g=e(126),m=e(59),v=e(32),y=e(49),b=e(7),C=e(117),A=e(120),_=e(92),I=e(71),w=e(76),x=e(75),k=e(72),j=e(81),E=x.f,S=k.f,T=w.f,P=r.Symbol,O=r.JSON,R=O&&O.stringify,N=p("_hidden"),M=p("toPrimitive"),L={}.propertyIsEnumerable,D=l("symbol-registry"),z=l("symbols"),F=l("op-symbols"),B=Object.prototype,H="function"==typeof P,U=r.QObject,q=!U||!U.prototype||!U.prototype.findChild,V=o&&c(function(){return 7!=I(S({},"a",{get:function(){return S(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=E(B,t) +r&&delete B[t],S(e,t,n),r&&e!==B&&S(B,t,r)}:S,W=function(e){var t=z[e]=I(P.prototype) +return t._k=e,t},G=H&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Y=function(e,t,n){return e===B&&Y(F,t,n),b(e),t=A(t,!0),b(n),i(z,t)?(n.enumerable?(i(e,N)&&e[N][t]&&(e[N][t]=!1),n=I(n,{enumerable:_(0,!1)})):(i(e,N)||S(e,N,_(1,{})),e[N][t]=!0),V(e,t,n)):S(e,t,n)},K=function(e,t){b(e) +for(var n,r=v(t=C(t)),i=0,o=r.length;o>i;)Y(e,n=r[i++],t[n]) +return e},Q=function(e,t){return void 0===t?I(e):K(I(e),t)},Z=function(e){var t=L.call(this,e=A(e,!0)) +return!(this===B&&i(z,e)&&!i(F,e))&&(!(t||!i(this,e)||!i(z,e)||i(this,N)&&this[N][e])||t)},X=function(e,t){if(e=C(e),t=A(t,!0),e!==B||!i(z,t)||i(F,t)){var n=E(e,t) +return!n||!i(z,t)||i(e,N)&&e[N][t]||(n.enumerable=!0),n}},J=function(e){for(var t,n=T(C(e)),r=[],o=0;n.length>o;)i(z,t=n[o++])||t==N||t==u||r.push(t) +return r},$=function(e){for(var t,n=e===B,r=T(n?F:C(e)),o=[],s=0;r.length>s;)!i(z,t=r[s++])||n&&!i(B,t)||o.push(z[t]) +return o} +H||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!") +var e=d(arguments.length>0?arguments[0]:void 0),t=function(n){this===B&&t.call(F,n),i(this,N)&&i(this[N],e)&&(this[N][e]=!1),V(this,e,_(1,n))} +return o&&q&&V(B,e,{configurable:!0,set:t}),W(e)},a(P.prototype,"toString",function(){return this._k}),x.f=X,k.f=Y,e(77).f=w.f=J,e(82).f=Z,e(78).f=$,o&&!e(60)&&a(B,"propertyIsEnumerable",Z,!0),f.f=function(e){return W(p(e))}),s(s.G+s.W+s.F*!H,{Symbol:P}) +for(var ee="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),te=0;ee.length>te;)p(ee[te++]) +for(var ne=j(p.store),re=0;ne.length>re;)g(ne[re++]) +s(s.S+s.F*!H,"Symbol",{for:function(e){return i(D,e+="")?D[e]:D[e]=P(e)},keyFor:function(e){if(G(e))return m(D,e) +throw TypeError(e+" is not a symbol!")},useSetter:function(){q=!0},useSimple:function(){q=!1}}),s(s.S+s.F*!H,"Object",{create:Q,defineProperty:Y,defineProperties:K,getOwnPropertyDescriptor:X,getOwnPropertyNames:J,getOwnPropertySymbols:$}),O&&s(s.S+s.F*(!H||c(function(){var e=P() +return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!G(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]) +return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!G(t))return t}),r[1]=t,R.apply(O,r)}}}),P.prototype[M]||e(42)(P.prototype,M,P.prototype.valueOf),h(P,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},{101:101,103:103,117:117,120:120,124:124,126:126,127:127,128:128,29:29,32:32,33:33,35:35,40:40,41:41,42:42,49:49,59:59,60:60,66:66,7:7,71:71,72:72,75:75,76:76,77:77,78:78,81:81,82:82,92:92,94:94}],255:[function(e,t,n){"use strict" +var r=e(33),i=e(123),o=e(122),s=e(7),a=e(114),u=e(118),c=e(51),l=e(40).ArrayBuffer,h=e(104),d=o.ArrayBuffer,p=o.DataView,f=i.ABV&&l.isView,g=d.prototype.slice,m=i.VIEW +r(r.G+r.W+r.F*(l!==d),{ArrayBuffer:d}),r(r.S+r.F*!i.CONSTR,"ArrayBuffer",{isView:function(e){return f&&f(e)||c(e)&&m in e}}),r(r.P+r.U+r.F*e(35)(function(){return!new d(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(e,t){if(void 0!==g&&void 0===t)return g.call(s(this),e) +for(var n=s(this).byteLength,r=a(e,n),i=a(void 0===t?n:t,n),o=new(h(this,d))(u(i-r)),c=new p(this),l=new p(o),f=0;r<i;)l.setUint8(f++,c.getUint8(r++)) +return o}}),e(100)("ArrayBuffer")},{100:100,104:104,114:114,118:118,122:122,123:123,33:33,35:35,40:40,51:51,7:7}],256:[function(e,t,n){var r=e(33) +r(r.G+r.W+r.F*!e(123).ABV,{DataView:e(122).DataView})},{122:122,123:123,33:33}],257:[function(e,t,n){e(121)("Float32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],258:[function(e,t,n){e(121)("Float64",8,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],259:[function(e,t,n){e(121)("Int16",2,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],260:[function(e,t,n){e(121)("Int32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],261:[function(e,t,n){e(121)("Int8",1,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],262:[function(e,t,n){e(121)("Uint16",2,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],263:[function(e,t,n){e(121)("Uint32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],264:[function(e,t,n){e(121)("Uint8",1,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],265:[function(e,t,n){e(121)("Uint8",1,function(e){return function(t,n,r){return e(this,t,n,r)}},!0)},{121:121}],266:[function(e,t,n){"use strict" +var r,i=e(12)(0),o=e(94),s=e(66),a=e(70),u=e(21),c=e(51),l=e(35),h=e(125),d=s.getWeak,p=Object.isExtensible,f=u.ufstore,g={},m=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},v={get:function(e){if(c(e)){var t=d(e) +return!0===t?f(h(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(h(this,"WeakMap"),e,t)}},y=t.exports=e(22)("WeakMap",m,v,u,!0,!0) +l(function(){return 7!=(new y).set((Object.freeze||Object)(g),7).get(g)})&&(r=u.getConstructor(m,"WeakMap"),a(r.prototype,v),s.NEED=!0,i(["delete","has","get","set"],function(e){var t=y.prototype,n=t[e] +o(t,e,function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r) +var o=this._f[e](t,i) +return"set"==e?this:o}return n.call(this,t,i)})}))},{12:12,125:125,21:21,22:22,35:35,51:51,66:66,70:70,94:94}],267:[function(e,t,n){"use strict" +var r=e(21),i=e(125) +e(22)("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"WeakSet"),e,!0)}},r,!1,!0)},{125:125,21:21,22:22}],268:[function(e,t,n){"use strict" +var r=e(33),i=e(38),o=e(119),s=e(118),a=e(3),u=e(15) +r(r.P,"Array",{flatMap:function(e){var t,n,r=o(this) +return a(e),t=s(r.length),n=u(r,0),i(n,r,r,t,0,1,e,arguments[1]),n}}),e(5)("flatMap")},{118:118,119:119,15:15,3:3,33:33,38:38,5:5}],269:[function(e,t,n){"use strict" +var r=e(33),i=e(38),o=e(119),s=e(118),a=e(116),u=e(15) +r(r.P,"Array",{flatten:function(){var e=arguments[0],t=o(this),n=s(t.length),r=u(t,0) +return i(r,t,t,n,0,void 0===e?1:a(e)),r}}),e(5)("flatten")},{116:116,118:118,119:119,15:15,33:33,38:38,5:5}],270:[function(e,t,n){"use strict" +var r=e(33),i=e(11)(!0) +r(r.P,"Array",{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),e(5)("includes")},{11:11,33:33,5:5}],271:[function(e,t,n){var r=e(33),i=e(68)(),o=e(40).process,s="process"==e(18)(o) +r(r.G,{asap:function(e){var t=s&&o.domain +i(t?t.bind(e):e)}})},{18:18,33:33,40:40,68:68}],272:[function(e,t,n){var r=e(33),i=e(18) +r(r.S,"Error",{isError:function(e){return"Error"===i(e)}})},{18:18,33:33}],273:[function(e,t,n){var r=e(33) +r(r.G,{global:e(40)})},{33:33,40:40}],274:[function(e,t,n){e(97)("Map")},{97:97}],275:[function(e,t,n){e(98)("Map")},{98:98}],276:[function(e,t,n){var r=e(33) +r(r.P+r.R,"Map",{toJSON:e(20)("Map")})},{20:20,33:33}],277:[function(e,t,n){var r=e(33) +r(r.S,"Math",{clamp:function(e,t,n){return Math.min(n,Math.max(t,e))}})},{33:33}],278:[function(e,t,n){var r=e(33) +r(r.S,"Math",{DEG_PER_RAD:Math.PI/180})},{33:33}],279:[function(e,t,n){var r=e(33),i=180/Math.PI +r(r.S,"Math",{degrees:function(e){return e*i}})},{33:33}],280:[function(e,t,n){var r=e(33),i=e(64),o=e(62) +r(r.S,"Math",{fscale:function(e,t,n,r,s){return o(i(e,t,n,r,s))}})},{33:33,62:62,64:64}],281:[function(e,t,n){var r=e(33) +r(r.S,"Math",{iaddh:function(e,t,n,r){var i=e>>>0,o=t>>>0,s=n>>>0 +return o+(r>>>0)+((i&s|(i|s)&~(i+s>>>0))>>>31)|0}})},{33:33}],282:[function(e,t,n){var r=e(33) +r(r.S,"Math",{imulh:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r,s=n>>16,a=r>>16,u=(s*o>>>0)+(i*o>>>16) +return s*a+(u>>16)+((i*a>>>0)+(65535&u)>>16)}})},{33:33}],283:[function(e,t,n){var r=e(33) +r(r.S,"Math",{isubh:function(e,t,n,r){var i=e>>>0,o=t>>>0,s=n>>>0 +return o-(r>>>0)-((~i&s|~(i^s)&i-s>>>0)>>>31)|0}})},{33:33}],284:[function(e,t,n){var r=e(33) +r(r.S,"Math",{RAD_PER_DEG:180/Math.PI})},{33:33}],285:[function(e,t,n){var r=e(33),i=Math.PI/180 +r(r.S,"Math",{radians:function(e){return e*i}})},{33:33}],286:[function(e,t,n){var r=e(33) +r(r.S,"Math",{scale:e(64)})},{33:33,64:64}],287:[function(e,t,n){var r=e(33) +r(r.S,"Math",{signbit:function(e){return(e=+e)!=e?e:0==e?1/e==1/0:e>0}})},{33:33}],288:[function(e,t,n){var r=e(33) +r(r.S,"Math",{umulh:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r,s=n>>>16,a=r>>>16,u=(s*o>>>0)+(i*o>>>16) +return s*a+(u>>>16)+((i*a>>>0)+(65535&u)>>>16)}})},{33:33}],289:[function(e,t,n){"use strict" +var r=e(33),i=e(119),o=e(3),s=e(72) +e(29)&&r(r.P+e(74),"Object",{__defineGetter__:function(e,t){s.f(i(this),e,{get:o(t),enumerable:!0,configurable:!0})}})},{119:119,29:29,3:3,33:33,72:72,74:74}],290:[function(e,t,n){"use strict" +var r=e(33),i=e(119),o=e(3),s=e(72) +e(29)&&r(r.P+e(74),"Object",{__defineSetter__:function(e,t){s.f(i(this),e,{set:o(t),enumerable:!0,configurable:!0})}})},{119:119,29:29,3:3,33:33,72:72,74:74}],291:[function(e,t,n){var r=e(33),i=e(84)(!0) +r(r.S,"Object",{entries:function(e){return i(e)}})},{33:33,84:84}],292:[function(e,t,n){var r=e(33),i=e(85),o=e(117),s=e(75),a=e(24) +r(r.S,"Object",{getOwnPropertyDescriptors:function(e){for(var t,n,r=o(e),u=s.f,c=i(r),l={},h=0;c.length>h;)void 0!==(n=u(r,t=c[h++]))&&a(l,t,n) +return l}})},{117:117,24:24,33:33,75:75,85:85}],293:[function(e,t,n){"use strict" +var r=e(33),i=e(119),o=e(120),s=e(79),a=e(75).f +e(29)&&r(r.P+e(74),"Object",{__lookupGetter__:function(e){var t,n=i(this),r=o(e,!0) +do{if(t=a(n,r))return t.get}while(n=s(n))}})},{119:119,120:120,29:29,33:33,74:74,75:75,79:79}],294:[function(e,t,n){"use strict" +var r=e(33),i=e(119),o=e(120),s=e(79),a=e(75).f +e(29)&&r(r.P+e(74),"Object",{__lookupSetter__:function(e){var t,n=i(this),r=o(e,!0) +do{if(t=a(n,r))return t.set}while(n=s(n))}})},{119:119,120:120,29:29,33:33,74:74,75:75,79:79}],295:[function(e,t,n){var r=e(33),i=e(84)(!1) +r(r.S,"Object",{values:function(e){return i(e)}})},{33:33,84:84}],296:[function(e,t,n){"use strict" +var r=e(33),i=e(40),o=e(23),s=e(68)(),a=e(128)("observable"),u=e(3),c=e(7),l=e(6),h=e(93),d=e(42),p=e(39),f=p.RETURN,g=function(e){return null==e?void 0:u(e)},m=function(e){var t=e._c +t&&(e._c=void 0,t())},v=function(e){return void 0===e._o},y=function(e){v(e)||(e._o=void 0,m(e))},b=function(e,t){c(e),this._c=void 0,this._o=e,e=new C(this) +try{var n=t(e),r=n +null!=n&&("function"==typeof n.unsubscribe?n=function(){r.unsubscribe()}:u(n),this._c=n)}catch(t){return void e.error(t)}v(this)&&m(this)} +b.prototype=h({},{unsubscribe:function(){y(this)}}) +var C=function(e){this._s=e} +C.prototype=h({},{next:function(e){var t=this._s +if(!v(t)){var n=t._o +try{var r=g(n.next) +if(r)return r.call(n,e)}catch(e){try{y(t)}finally{throw e}}}},error:function(e){var t=this._s +if(v(t))throw e +var n=t._o +t._o=void 0 +try{var r=g(n.error) +if(!r)throw e +e=r.call(n,e)}catch(e){try{m(t)}finally{throw e}}return m(t),e},complete:function(e){var t=this._s +if(!v(t)){var n=t._o +t._o=void 0 +try{var r=g(n.complete) +e=r?r.call(n,e):void 0}catch(e){try{m(t)}finally{throw e}}return m(t),e}}}) +var A=function(e){l(this,A,"Observable","_f")._f=u(e)} +h(A.prototype,{subscribe:function(e){return new b(e,this._f)},forEach:function(e){var t=this +return new(o.Promise||i.Promise)(function(n,r){u(e) +var i=t.subscribe({next:function(t){try{return e(t)}catch(e){r(e),i.unsubscribe()}},error:r,complete:n})})}}),h(A,{from:function(e){var t="function"==typeof this?this:A,n=g(c(e)[a]) +if(n){var r=c(n.call(e)) +return r.constructor===t?r:new t(function(e){return r.subscribe(e)})}return new t(function(t){var n=!1 +return s(function(){if(!n){try{if(p(e,!1,function(e){if(t.next(e),n)return f})===f)return}catch(e){if(n)throw e +return void t.error(e)}t.complete()}}),function(){n=!0}})},of:function(){for(var e=0,t=arguments.length,n=Array(t);e<t;)n[e]=arguments[e++] +return new("function"==typeof this?this:A)(function(e){var t=!1 +return s(function(){if(!t){for(var r=0;r<n.length;++r)if(e.next(n[r]),t)return +e.complete()}}),function(){t=!0}})}}),d(A.prototype,a,function(){return this}),r(r.G,{Observable:A}),e(100)("Observable")},{100:100,128:128,23:23,3:3,33:33,39:39,40:40,42:42,6:6,68:68,7:7,93:93}],297:[function(e,t,n){"use strict" +var r=e(33),i=e(23),o=e(40),s=e(104),a=e(91) +r(r.P+r.R,"Promise",{finally:function(e){var t=s(this,i.Promise||o.Promise),n="function"==typeof e +return this.then(n?function(n){return a(t,e()).then(function(){return n})}:e,n?function(n){return a(t,e()).then(function(){throw n})}:e)}})},{104:104,23:23,33:33,40:40,91:91}],298:[function(e,t,n){"use strict" +var r=e(33),i=e(69),o=e(90) +r(r.S,"Promise",{try:function(e){var t=i.f(this),n=o(e) +return(n.e?t.reject:t.resolve)(n.v),t.promise}})},{33:33,69:69,90:90}],299:[function(e,t,n){var r=e(67),i=e(7),o=r.key,s=r.set +r.exp({defineMetadata:function(e,t,n,r){s(e,t,i(n),o(r))}})},{67:67,7:7}],300:[function(e,t,n){var r=e(67),i=e(7),o=r.key,s=r.map,a=r.store +r.exp({deleteMetadata:function(e,t){var n=arguments.length<3?void 0:o(arguments[2]),r=s(i(t),n,!1) +if(void 0===r||!r.delete(e))return!1 +if(r.size)return!0 +var u=a.get(t) +return u.delete(n),!!u.size||a.delete(t)}})},{67:67,7:7}],301:[function(e,t,n){var r=e(231),i=e(10),o=e(67),s=e(7),a=e(79),u=o.keys,c=o.key,l=function(e,t){var n=u(e,t),o=a(e) +if(null===o)return n +var s=l(o,t) +return s.length?n.length?i(new r(n.concat(s))):s:n} +o.exp({getMetadataKeys:function(e){return l(s(e),arguments.length<2?void 0:c(arguments[1]))}})},{10:10,231:231,67:67,7:7,79:79}],302:[function(e,t,n){var r=e(67),i=e(7),o=e(79),s=r.has,a=r.get,u=r.key,c=function(e,t,n){if(s(e,t,n))return a(e,t,n) +var r=o(t) +return null!==r?c(e,r,n):void 0} +r.exp({getMetadata:function(e,t){return c(e,i(t),arguments.length<3?void 0:u(arguments[2]))}})},{67:67,7:7,79:79}],303:[function(e,t,n){var r=e(67),i=e(7),o=r.keys,s=r.key +r.exp({getOwnMetadataKeys:function(e){return o(i(e),arguments.length<2?void 0:s(arguments[1]))}})},{67:67,7:7}],304:[function(e,t,n){var r=e(67),i=e(7),o=r.get,s=r.key +r.exp({getOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},{67:67,7:7}],305:[function(e,t,n){var r=e(67),i=e(7),o=e(79),s=r.has,a=r.key,u=function(e,t,n){if(s(e,t,n))return!0 +var r=o(t) +return null!==r&&u(e,r,n)} +r.exp({hasMetadata:function(e,t){return u(e,i(t),arguments.length<3?void 0:a(arguments[2]))}})},{67:67,7:7,79:79}],306:[function(e,t,n){var r=e(67),i=e(7),o=r.has,s=r.key +r.exp({hasOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},{67:67,7:7}],307:[function(e,t,n){var r=e(67),i=e(7),o=e(3),s=r.key,a=r.set +r.exp({metadata:function(e,t){return function(n,r){a(e,t,(void 0!==r?i:o)(n),s(r))}}})},{3:3,67:67,7:7}],308:[function(e,t,n){e(97)("Set")},{97:97}],309:[function(e,t,n){e(98)("Set")},{98:98}],310:[function(e,t,n){var r=e(33) +r(r.P+r.R,"Set",{toJSON:e(20)("Set")})},{20:20,33:33}],311:[function(e,t,n){"use strict" +var r=e(33),i=e(106)(!0) +r(r.P,"String",{at:function(e){return i(this,e)}})},{106:106,33:33}],312:[function(e,t,n){"use strict" +var r=e(33),i=e(28),o=e(118),s=e(52),a=e(37),u=RegExp.prototype,c=function(e,t){this._r=e,this._s=t} +e(54)(c,"RegExp String",function(){var e=this._r.exec(this._s) +return{value:e,done:null===e}}),r(r.P,"String",{matchAll:function(e){if(i(this),!s(e))throw TypeError(e+" is not a regexp!") +var t=String(this),n="flags"in u?String(e.flags):a.call(e),r=new RegExp(e.source,~n.indexOf("g")?n:"g"+n) +return r.lastIndex=o(e.lastIndex),new c(r,t)}})},{118:118,28:28,33:33,37:37,52:52,54:54}],313:[function(e,t,n){"use strict" +var r=e(33),i=e(109) +r(r.P,"String",{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!1)}})},{109:109,33:33}],314:[function(e,t,n){"use strict" +var r=e(33),i=e(109) +r(r.P,"String",{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!0)}})},{109:109,33:33}],315:[function(e,t,n){"use strict" +e(111)("trimLeft",function(e){return function(){return e(this,1)}},"trimStart")},{111:111}],316:[function(e,t,n){"use strict" +e(111)("trimRight",function(e){return function(){return e(this,2)}},"trimEnd")},{111:111}],317:[function(e,t,n){e(126)("asyncIterator")},{126:126}],318:[function(e,t,n){e(126)("observable")},{126:126}],319:[function(e,t,n){var r=e(33) +r(r.S,"System",{global:e(40)})},{33:33,40:40}],320:[function(e,t,n){e(97)("WeakMap")},{97:97}],321:[function(e,t,n){e(98)("WeakMap")},{98:98}],322:[function(e,t,n){e(97)("WeakSet")},{97:97}],323:[function(e,t,n){e(98)("WeakSet")},{98:98}],324:[function(e,t,n){for(var r=e(141),i=e(81),o=e(94),s=e(40),a=e(42),u=e(58),c=e(128),l=c("iterator"),h=c("toStringTag"),d=u.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=i(p),g=0;g<f.length;g++){var m,v=f[g],y=p[v],b=s[v],C=b&&b.prototype +if(C&&(C[l]||a(C,l,d),C[h]||a(C,h,v),u[v]=d,y))for(m in r)C[m]||o(C,m,r[m],!0)}},{128:128,141:141,40:40,42:42,58:58,81:81,94:94}],325:[function(e,t,n){var r=e(33),i=e(113) +r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},{113:113,33:33}],326:[function(e,t,n){var r=e(40),i=e(33),o=e(46),s=e(88),a=r.navigator,u=!!a&&/MSIE .\./.test(a.userAgent),c=function(e){return u?function(t,n){return e(o(s,[].slice.call(arguments,2),"function"==typeof t?t:Function(t)),n)}:e} +i(i.G+i.B+i.F*u,{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},{33:33,40:40,46:46,88:88}],327:[function(e,t,n){e(254),e(191),e(193),e(192),e(195),e(197),e(202),e(196),e(194),e(204),e(203),e(199),e(200),e(198),e(190),e(201),e(205),e(206),e(157),e(159),e(158),e(208),e(207),e(178),e(188),e(189),e(179),e(180),e(181),e(182) +e(183),e(184),e(185),e(186),e(187),e(161),e(162),e(163),e(164),e(165),e(166),e(167),e(168),e(169),e(170),e(171),e(172),e(173),e(174),e(175),e(176),e(177),e(241),e(246),e(253),e(244),e(236),e(237),e(242),e(247) +e(249),e(232),e(233),e(234),e(235),e(238),e(239),e(240),e(243),e(245),e(248),e(250),e(251),e(252),e(152),e(154),e(153),e(156),e(155),e(140),e(138),e(145),e(142),e(148),e(150),e(137),e(144),e(134),e(149),e(132) +e(147),e(146),e(139),e(143),e(131),e(133),e(136),e(135),e(151),e(141),e(224),e(230),e(225),e(226),e(227),e(228),e(229),e(209),e(160),e(231),e(266),e(267),e(255),e(256),e(261),e(264),e(265),e(259),e(262),e(260) +e(263),e(257),e(258),e(210),e(211),e(212),e(213),e(214),e(217),e(215),e(216),e(218),e(219),e(220),e(221),e(223),e(222),e(270),e(268),e(269),e(311),e(314),e(313),e(315),e(316),e(312),e(317),e(318),e(292),e(295) +e(291),e(289),e(290),e(293),e(294),e(276),e(310),e(275),e(309),e(321),e(323),e(274),e(308),e(320),e(322),e(273),e(319),e(272),e(277),e(278),e(279),e(280),e(281),e(283),e(282),e(284),e(285),e(286),e(288),e(287) +e(297),e(298),e(299),e(300),e(302),e(301),e(304),e(303),e(305),e(306),e(307),e(271),e(296),e(326),e(325),e(324),t.exports=e(23)},{131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,23:23,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,307:307,308:308,309:309,310:310,311:311,312:312,313:313,314:314,315:315,316:316,317:317,318:318,319:319,320:320,321:321,322:322,323:323,324:324,325:325,326:326}],328:[function(e,t,n){(function(e){!function(e){"use strict" +function n(e,t,n,r){var o=t&&t.prototype instanceof i?t:i,s=Object.create(o.prototype),a=new p(r||[]) +return s._invoke=c(e,n,a),s}function r(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function i(){}function o(){}function s(){}function a(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(t){function n(e,i,o,s){var a=r(t[e],t,i) +if("throw"!==a.type){var u=a.arg,c=u.value +return c&&"object"==typeof c&&y.call(c,"__await")?Promise.resolve(c.__await).then(function(e){n("next",e,o,s)},function(e){n("throw",e,o,s)}):Promise.resolve(c).then(function(e){u.value=e,o(u)},s)}s(a.arg)}function i(e,t){function r(){return new Promise(function(r,i){n(e,t,r,i)})}return o=o?o.then(r,r):r()}"object"==typeof e.process&&e.process.domain&&(n=e.process.domain.bind(n)) +var o +this._invoke=i}function c(e,t,n){var i=x +return function(o,s){if(i===j)throw new Error("Generator is already running") +if(i===E){if("throw"===o)throw s +return g()}for(n.method=o,n.arg=s;;){var a=n.delegate +if(a){var u=l(a,n) +if(u){if(u===S)continue +return u}}if("next"===n.method)n.sent=n._sent=n.arg +else if("throw"===n.method){if(i===x)throw i=E,n.arg +n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg) +i=j +var c=r(e,t,n) +if("normal"===c.type){if(i=n.done?E:k,c.arg===S)continue +return{value:c.arg,done:n.done}}"throw"===c.type&&(i=E,n.method="throw",n.arg=c.arg)}}}function l(e,t){var n=e.iterator[t.method] +if(n===m){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=m,l(e,t),"throw"===t.method))return S +t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return S}var i=r(n,e.iterator,t.arg) +if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,S +var o=i.arg +return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=m),t.delegate=null,S):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,S)}function h(e){var t={tryLoc:e[0]} +1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function d(e){var t=e.completion||{} +t.type="normal",delete t.arg,e.completion=t}function p(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(h,this),this.reset(!0)}function f(e){if(e){var t=e[C] +if(t)return t.call(e) +if("function"==typeof e.next)return e +if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(y.call(e,n))return t.value=e[n],t.done=!1,t +return t.value=m,t.done=!0,t} +return r.next=r}}return{next:g}}function g(){return{value:m,done:!0}}var m,v=Object.prototype,y=v.hasOwnProperty,b="function"==typeof Symbol?Symbol:{},C=b.iterator||"@@iterator",A=b.asyncIterator||"@@asyncIterator",_=b.toStringTag||"@@toStringTag",I="object"==typeof t,w=e.regeneratorRuntime +if(w)return void(I&&(t.exports=w)) +w=e.regeneratorRuntime=I?t.exports:{},w.wrap=n +var x="suspendedStart",k="suspendedYield",j="executing",E="completed",S={},T={} +T[C]=function(){return this} +var P=Object.getPrototypeOf,O=P&&P(P(f([]))) +O&&O!==v&&y.call(O,C)&&(T=O) +var R=s.prototype=i.prototype=Object.create(T) +o.prototype=R.constructor=s,s.constructor=o,s[_]=o.displayName="GeneratorFunction",w.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor +return!!t&&(t===o||"GeneratorFunction"===(t.displayName||t.name))},w.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,_ in e||(e[_]="GeneratorFunction")),e.prototype=Object.create(R),e},w.awrap=function(e){return{__await:e}},a(u.prototype),u.prototype[A]=function(){return this},w.AsyncIterator=u,w.async=function(e,t,r,i){var o=new u(n(e,t,r,i)) +return w.isGeneratorFunction(t)?o:o.next().then(function(e){return e.done?e.value:o.next()})},a(R),R[_]="Generator",R[C]=function(){return this},R.toString=function(){return"[object Generator]"},w.keys=function(e){var t=[] +for(var n in e)t.push(n) +return t.reverse(),function n(){for(;t.length;){var r=t.pop() +if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},w.values=f,p.prototype={constructor:p,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=m,this.done=!1,this.delegate=null,this.method="next",this.arg=m,this.tryEntries.forEach(d),!e)for(var t in this)"t"===t.charAt(0)&&y.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=m)},stop:function(){this.done=!0 +var e=this.tryEntries[0],t=e.completion +if("throw"===t.type)throw t.arg +return this.rval},dispatchException:function(e){function t(t,r){return o.type="throw",o.arg=e,n.next=t,r&&(n.method="next",n.arg=m),!!r}if(this.done)throw e +for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],o=i.completion +if("root"===i.tryLoc)return t("end") +if(i.tryLoc<=this.prev){var s=y.call(i,"catchLoc"),a=y.call(i,"finallyLoc") +if(s&&a){if(this.prev<i.catchLoc)return t(i.catchLoc,!0) +if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally") +if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n] +if(r.tryLoc<=this.prev&&y.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r +break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null) +var o=i?i.completion:{} +return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,S):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg +return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),S},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t] +if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),d(n),S}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t] +if(n.tryLoc===e){var r=n.completion +if("throw"===r.type){var i=r.arg +d(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:f(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=m),S}}}("object"==typeof e?e:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]),function(e,t){"use strict" +"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 window?window:this,function(e,t){"use strict" +function n(e,t,n){t=t||se +var r,i=t.createElement("script") +if(i.text=e,n)for(r in Ce)n[r]&&(i[r]=n[r]) +t.head.appendChild(i).parentNode.removeChild(i)}function r(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?de[pe.call(e)]||"object":typeof e}function i(e){var t=!!e&&"length"in e&&e.length,n=r(e) +return!ye(e)&&!be(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function o(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function s(e,t,n){return ye(t)?Ae.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?Ae.grep(e,function(e){return e===t!==n}):"string"!=typeof t?Ae.grep(e,function(e){return he.call(t,e)>-1!==n}):Ae.filter(t,e,n)}function a(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function u(e){var t={} +return Ae.each(e.match(Oe)||[],function(e,n){t[n]=!0}),t}function c(e){return e}function l(e){throw e}function h(e,t,n,r){var i +try{e&&ye(i=e.promise)?i.call(e).done(t).fail(n):e&&ye(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}function d(){se.removeEventListener("DOMContentLoaded",d),e.removeEventListener("load",d),Ae.ready()}function p(e,t){return t.toUpperCase()}function f(e){return e.replace(Le,"ms-").replace(De,p)}function g(){this.expando=Ae.expando+g.uid++}function m(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:He.test(e)?JSON.parse(e):e)}function v(e,t,n){var r +if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Ue,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=m(n)}catch(e){}Be.set(e,t,n)}else n=void 0 +return n}function y(e,t,n,r){var i,o,s=20,a=r?function(){return r.cur()}:function(){return Ae.css(e,t,"")},u=a(),c=n&&n[3]||(Ae.cssNumber[t]?"":"px"),l=(Ae.cssNumber[t]||"px"!==c&&+u)&&Ve.exec(Ae.css(e,t)) +if(l&&l[3]!==c){for(u/=2,c=c||l[3],l=+u||1;s--;)Ae.style(e,t,l+c),(1-o)*(1-(o=a()/u||.5))<=0&&(s=0),l/=o +l*=2,Ae.style(e,t,l+c),n=n||[]}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function b(e){var t,n=e.ownerDocument,r=e.nodeName,i=Ke[r] +return i||(t=n.body.appendChild(n.createElement(r)),i=Ae.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),Ke[r]=i,i)}function C(e,t){for(var n,r,i=[],o=0,s=e.length;o<s;o++)r=e[o],r.style&&(n=r.style.display,t?("none"===n&&(i[o]=Fe.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&Ge(r)&&(i[o]=b(r))):"none"!==n&&(i[o]="none",Fe.set(r,"display",n))) +for(o=0;o<s;o++)null!=i[o]&&(e[o].style.display=i[o]) +return e}function A(e,t){var n +return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&o(e,t)?Ae.merge([e],n):n}function _(e,t){for(var n=0,r=e.length;n<r;n++)Fe.set(e[n],"globalEval",!t||Fe.get(t[n],"globalEval"))}function I(e,t,n,i,o){for(var s,a,u,c,l,h,d=t.createDocumentFragment(),p=[],f=0,g=e.length;f<g;f++)if((s=e[f])||0===s)if("object"===r(s))Ae.merge(p,s.nodeType?[s]:s) +else if($e.test(s)){for(a=a||d.appendChild(t.createElement("div")),u=(Ze.exec(s)||["",""])[1].toLowerCase(),c=Je[u]||Je._default,a.innerHTML=c[1]+Ae.htmlPrefilter(s)+c[2],h=c[0];h--;)a=a.lastChild +Ae.merge(p,a.childNodes),a=d.firstChild,a.textContent=""}else p.push(t.createTextNode(s)) +for(d.textContent="",f=0;s=p[f++];)if(i&&Ae.inArray(s,i)>-1)o&&o.push(s) +else if(l=Ae.contains(s.ownerDocument,s),a=A(d.appendChild(s),"script"),l&&_(a),n)for(h=0;s=a[h++];)Xe.test(s.type||"")&&n.push(s) +return d}function w(){return!0}function x(){return!1}function k(){try{return se.activeElement}catch(e){}}function j(e,t,n,r,i,o){var s,a +if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0) +for(a in t)j(e,a,n,r,t[a],o) +return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=x +else if(!i)return e +return 1===o&&(s=i,i=function(e){return Ae().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Ae.guid++)),e.each(function(){Ae.event.add(this,t,i,r,n)})}function E(e,t){return o(e,"table")&&o(11!==t.nodeType?t:t.firstChild,"tr")?Ae(e).children("tbody")[0]||e:e}function S(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function T(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function P(e,t){var n,r,i,o,s,a,u,c +if(1===t.nodeType){if(Fe.hasData(e)&&(o=Fe.access(e),s=Fe.set(t,o),c=o.events)){delete s.handle,s.events={} +for(i in c)for(n=0,r=c[i].length;n<r;n++)Ae.event.add(t,i,c[i][n])}Be.hasData(e)&&(a=Be.access(e),u=Ae.extend({},a),Be.set(t,u))}}function O(e,t){var n=t.nodeName.toLowerCase() +"input"===n&&Qe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function R(e,t,r,i){t=ce.apply([],t) +var o,s,a,u,c,l,h=0,d=e.length,p=d-1,f=t[0],g=ye(f) +if(g||d>1&&"string"==typeof f&&!ve.checkClone&&st.test(f))return e.each(function(n){var o=e.eq(n) +g&&(t[0]=f.call(this,n,o.html())),R(o,t,r,i)}) +if(d&&(o=I(t,e[0].ownerDocument,!1,e,i),s=o.firstChild,1===o.childNodes.length&&(o=s),s||i)){for(a=Ae.map(A(o,"script"),S),u=a.length;h<d;h++)c=o,h!==p&&(c=Ae.clone(c,!0,!0),u&&Ae.merge(a,A(c,"script"))),r.call(e[h],c,h) +if(u)for(l=a[a.length-1].ownerDocument,Ae.map(a,T),h=0;h<u;h++)c=a[h],Xe.test(c.type||"")&&!Fe.access(c,"globalEval")&&Ae.contains(l,c)&&(c.src&&"module"!==(c.type||"").toLowerCase()?Ae._evalUrl&&Ae._evalUrl(c.src):n(c.textContent.replace(at,""),l,c))}return e}function N(e,t,n){for(var r,i=t?Ae.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||Ae.cleanData(A(r)),r.parentNode&&(n&&Ae.contains(r.ownerDocument,r)&&_(A(r,"script")),r.parentNode.removeChild(r)) +return e}function M(e,t,n){var r,i,o,s,a=e.style +return n=n||ct(e),n&&(s=n.getPropertyValue(t)||n[t],""!==s||Ae.contains(e.ownerDocument,e)||(s=Ae.style(e,t)),!ve.pixelBoxStyles()&&ut.test(s)&<.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o)),void 0!==s?s+"":s}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function D(e){if(e in mt)return e +for(var t=e[0].toUpperCase()+e.slice(1),n=gt.length;n--;)if((e=gt[n]+t)in mt)return e}function z(e){var t=Ae.cssProps[e] +return t||(t=Ae.cssProps[e]=D(e)||e),t}function F(e,t,n){var r=Ve.exec(t) +return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function B(e,t,n,r,i,o){var s="width"===t?1:0,a=0,u=0 +if(n===(r?"border":"content"))return 0 +for(;s<4;s+=2)"margin"===n&&(u+=Ae.css(e,n+We[s],!0,i)),r?("content"===n&&(u-=Ae.css(e,"padding"+We[s],!0,i)),"margin"!==n&&(u-=Ae.css(e,"border"+We[s]+"Width",!0,i))):(u+=Ae.css(e,"padding"+We[s],!0,i),"padding"!==n?u+=Ae.css(e,"border"+We[s]+"Width",!0,i):a+=Ae.css(e,"border"+We[s]+"Width",!0,i)) +return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-a-.5))),u}function H(e,t,n){var r=ct(e),i=M(e,t,r),o="border-box"===Ae.css(e,"boxSizing",!1,r),s=o +if(ut.test(i)){if(!n)return i +i="auto"}return s=s&&(ve.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===Ae.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],s=!0),(i=parseFloat(i)||0)+B(e,t,n||(o?"border":"content"),s,r,i)+"px"}function U(e,t,n,r,i){return new U.prototype.init(e,t,n,r,i)}function q(){yt&&(!1===se.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(q):e.setTimeout(q,Ae.fx.interval),Ae.fx.tick())}function V(){return e.setTimeout(function(){vt=void 0}),vt=Date.now()}function W(e,t){var n,r=0,i={height:e} +for(t=t?1:0;r<4;r+=2-t)n=We[r],i["margin"+n]=i["padding"+n]=e +return t&&(i.opacity=i.width=e),i}function G(e,t,n){for(var r,i=(Q.tweeners[t]||[]).concat(Q.tweeners["*"]),o=0,s=i.length;o<s;o++)if(r=i[o].call(n,t,e))return r}function Y(e,t,n){var r,i,o,s,a,u,c,l,h="width"in t||"height"in t,d=this,p={},f=e.style,g=e.nodeType&&Ge(e),m=Fe.get(e,"fxshow") +n.queue||(s=Ae._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,a=s.empty.fire,s.empty.fire=function(){s.unqueued||a()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,Ae.queue(e,"fx").length||s.empty.fire()})})) +for(r in t)if(i=t[r],bt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue +g=!0}p[r]=m&&m[r]||Ae.style(e,r)}if((u=!Ae.isEmptyObject(t))||!Ae.isEmptyObject(p)){h&&1===e.nodeType&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],c=m&&m.display,null==c&&(c=Fe.get(e,"display")),l=Ae.css(e,"display"),"none"===l&&(c?l=c:(C([e],!0),c=e.style.display||c,l=Ae.css(e,"display"),C([e]))),("inline"===l||"inline-block"===l&&null!=c)&&"none"===Ae.css(e,"float")&&(u||(d.done(function(){f.display=c}),null==c&&(l=f.display,c="none"===l?"":l)),f.display="inline-block")),n.overflow&&(f.overflow="hidden",d.always(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]})),u=!1 +for(r in p)u||(m?"hidden"in m&&(g=m.hidden):m=Fe.access(e,"fxshow",{display:c}),o&&(m.hidden=!g),g&&C([e],!0),d.done(function(){g||C([e]),Fe.remove(e,"fxshow") +for(r in p)Ae.style(e,r,p[r])})),u=G(g?m[r]:0,r,d),r in m||(m[r]=u.start,g&&(u.end=u.start,u.start=0))}}function K(e,t){var n,r,i,o,s +for(n in e)if(r=f(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(s=Ae.cssHooks[r])&&"expand"in s){o=s.expand(o),delete e[r] +for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function Q(e,t,n){var r,i,o=0,s=Q.prefilters.length,a=Ae.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1 +for(var t=vt||V(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,s=0,u=c.tweens.length;s<u;s++)c.tweens[s].run(o) +return a.notifyWith(e,[c,o,n]),o<1&&u?n:(u||a.notifyWith(e,[c,1,0]),a.resolveWith(e,[c]),!1)},c=a.promise({elem:e,props:Ae.extend({},t),opts:Ae.extend(!0,{specialEasing:{},easing:Ae.easing._default},n),originalProperties:t,originalOptions:n,startTime:vt||V(),duration:n.duration,tweens:[],createTween:function(t,n){var r=Ae.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;n<r;n++)c.tweens[n].run(1) +return t?(a.notifyWith(e,[c,1,0]),a.resolveWith(e,[c,t])):a.rejectWith(e,[c,t]),this}}),l=c.props +for(K(l,c.opts.specialEasing);o<s;o++)if(r=Q.prefilters[o].call(c,e,l,c.opts))return ye(r.stop)&&(Ae._queueHooks(c.elem,c.opts.queue).stop=r.stop.bind(r)),r +return Ae.map(l,G,c),ye(c.opts.start)&&c.opts.start.call(e,c),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always),Ae.fx.timer(Ae.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c}function Z(e){return(e.match(Oe)||[]).join(" ")}function X(e){return e.getAttribute&&e.getAttribute("class")||""}function J(e){return Array.isArray(e)?e:"string"==typeof e?e.match(Oe)||[]:[]}function $(e,t,n,i){var o +if(Array.isArray(t))Ae.each(t,function(t,r){n||Pt.test(e)?i(e,r):$(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)}) +else if(n||"object"!==r(t))i(e,t) +else for(o in t)$(e+"["+o+"]",t[o],n,i)}function ee(e){return function(t,n){"string"!=typeof t&&(n=t,t="*") +var r,i=0,o=t.toLowerCase().match(Oe)||[] +if(ye(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function te(e,t,n,r){function i(a){var u +return o[a]=!0,Ae.each(e[a]||[],function(e,a){var c=a(t,n,r) +return"string"!=typeof c||s||o[c]?s?!(u=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),u}var o={},s=e===qt +return i(t.dataTypes[0])||!o["*"]&&i("*")}function ne(e,t){var n,r,i=Ae.ajaxSettings.flatOptions||{} +for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]) +return r&&Ae.extend(!0,e,r),e}function re(e,t,n){for(var r,i,o,s,a=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type")) +if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i) +break}if(u[0]in n)o=u[0] +else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i +break}s||(s=i)}o=o||s}if(o)return o!==u[0]&&u.unshift(o),n[o]}function ie(e,t,n,r){var i,o,s,a,u,c={},l=e.dataTypes.slice() +if(l[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s] +for(o=l.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=l.shift())if("*"===o)o=u +else if("*"!==u&&u!==o){if(!(s=c[u+" "+o]||c["* "+o]))for(i in c)if(a=i.split(" "),a[1]===o&&(s=c[u+" "+a[0]]||c["* "+a[0]])){!0===s?s=c[i]:!0!==c[i]&&(o=a[0],l.unshift(a[1])) +break}if(!0!==s)if(s&&e.throws)t=s(t) +else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}var oe=[],se=e.document,ae=Object.getPrototypeOf,ue=oe.slice,ce=oe.concat,le=oe.push,he=oe.indexOf,de={},pe=de.toString,fe=de.hasOwnProperty,ge=fe.toString,me=ge.call(Object),ve={},ye=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},be=function(e){return null!=e&&e===e.window},Ce={type:!0,src:!0,noModule:!0},Ae=function(e,t){return new Ae.fn.init(e,t)},_e=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g +Ae.fn=Ae.prototype={jquery:"3.3.1",constructor:Ae,length:0,toArray:function(){return ue.call(this)},get:function(e){return null==e?ue.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=Ae.merge(this.constructor(),e) +return t.prevObject=this,t},each:function(e){return Ae.each(this,e)},map:function(e){return this.pushStack(Ae.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(ue.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0) +return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:le,sort:oe.sort,splice:oe.splice},Ae.extend=Ae.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,c=!1 +for("boolean"==typeof s&&(c=s,s=arguments[a]||{},a++),"object"==typeof s||ye(s)||(s={}),a===u&&(s=this,a--);a<u;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(c&&r&&(Ae.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&Ae.isPlainObject(n)?n:{},s[t]=Ae.extend(c,o,r)):void 0!==r&&(s[t]=r)) +return s},Ae.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n +return!(!e||"[object Object]"!==pe.call(e))&&(!(t=ae(e))||"function"==typeof(n=fe.call(t,"constructor")&&t.constructor)&&ge.call(n)===me)},isEmptyObject:function(e){var t +for(t in e)return!1 +return!0},globalEval:function(e){n(e)},each:function(e,t){var n,r=0 +if(i(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break +return e},trim:function(e){return null==e?"":(e+"").replace(_e,"")},makeArray:function(e,t){var n=t||[] +return null!=e&&(i(Object(e))?Ae.merge(n,"string"==typeof e?[e]:e):le.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:he.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r] +return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,s=!n;i<o;i++)!t(e[i],i)!==s&&r.push(e[i]) +return r},map:function(e,t,n){var r,o,s=0,a=[] +if(i(e))for(r=e.length;s<r;s++)null!=(o=t(e[s],s,n))&&a.push(o) +else for(s in e)null!=(o=t(e[s],s,n))&&a.push(o) +return ce.apply([],a)},guid:1,support:ve}),"function"==typeof Symbol&&(Ae.fn[Symbol.iterator]=oe[Symbol.iterator]),Ae.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){de["[object "+t+"]"]=t.toLowerCase()}) +var Ie=function(e){function t(e,t,n,r){var i,o,s,a,u,l,d,p=t&&t.ownerDocument,f=t?t.nodeType:9 +if(n=n||[],"string"!=typeof e||!e||1!==f&&9!==f&&11!==f)return n +if(!r&&((t?t.ownerDocument||t:F)!==P&&T(t),t=t||P,R)){if(11!==f&&(u=ge.exec(e)))if(i=u[1]){if(9===f){if(!(s=t.getElementById(i)))return n +if(s.id===i)return n.push(s),n}else if(p&&(s=p.getElementById(i))&&D(t,s)&&s.id===i)return n.push(s),n}else{if(u[2])return Z.apply(n,t.getElementsByTagName(e)),n +if((i=u[3])&&C.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(i)),n}if(C.qsa&&!V[e+" "]&&(!N||!N.test(e))){if(1!==f)p=t,d=e +else if("object"!==t.nodeName.toLowerCase()){for((a=t.getAttribute("id"))?a=a.replace(be,Ce):t.setAttribute("id",a=z),l=w(e),o=l.length;o--;)l[o]="#"+a+" "+h(l[o]) +d=l.join(","),p=me.test(e)&&c(t.parentNode)||t}if(d)try{return Z.apply(n,p.querySelectorAll(d)),n}catch(e){}finally{a===z&&t.removeAttribute("id")}}}return k(e.replace(oe,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>A.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[] +return e}function r(e){return e[z]=!0,e}function i(e){var t=P.createElement("fieldset") +try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)A.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex +if(r)return r +if(n)for(;n=n.nextSibling;)if(n===t)return-1 +return e?1:-1}function a(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&_e(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&void 0!==e.getElementsByTagName&&e}function l(){}function h(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value +return r}function d(e,t,n){var r=t.dir,i=t.next,o=i||r,s=n&&"parentNode"===o,a=H++ +return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||s)return e(t,n,i) +return!1}:function(t,n,u){var c,l,h,d=[B,a] +if(u){for(;t=t[r];)if((1===t.nodeType||s)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||s)if(h=t[z]||(t[z]={}),l=h[t.uniqueID]||(h[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t +else{if((c=l[o])&&c[0]===B&&c[1]===a)return d[2]=c[2] +if(l[o]=d,d[2]=e(t,n,u))return!0}return!1}}function p(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 f(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r) +return r}function g(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,c=null!=t;a<u;a++)(o=e[a])&&(n&&!n(o,r,i)||(s.push(o),c&&t.push(a))) +return s}function m(e,t,n,i,o,s){return i&&!i[z]&&(i=m(i)),o&&!o[z]&&(o=m(o,s)),r(function(r,s,a,u){var c,l,h,d=[],p=[],m=s.length,v=r||f(t||"*",a.nodeType?[a]:a,[]),y=!e||!r&&t?v:g(v,d,e,a,u),b=n?o||(r?e:m||i)?[]:s:y +if(n&&n(y,b,a,u),i)for(c=g(b,p),i(c,[],a,u),l=c.length;l--;)(h=c[l])&&(b[p[l]]=!(y[p[l]]=h)) +if(r){if(o||e){if(o){for(c=[],l=b.length;l--;)(h=b[l])&&c.push(y[l]=h) +o(null,b=[],c,u)}for(l=b.length;l--;)(h=b[l])&&(c=o?J(r,h):d[l])>-1&&(r[c]=!(s[c]=h))}}else b=g(b===s?b.splice(m,b.length):b),o?o(null,s,b,u):Z.apply(s,b)})}function v(e){for(var t,n,r,i=e.length,o=A.relative[e[0].type],s=o||A.relative[" "],a=o?1:0,u=d(function(e){return e===t},s,!0),c=d(function(e){return J(t,e)>-1},s,!0),l=[function(e,n,r){var i=!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):c(e,n,r)) +return t=null,i}];a<i;a++)if(n=A.relative[e[a].type])l=[d(p(l),n)] +else{if(n=A.filter[e[a].type].apply(null,e[a].matches),n[z]){for(r=++a;r<i&&!A.relative[e[r].type];r++);return m(a>1&&p(l),a>1&&h(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(oe,"$1"),n,a<r&&v(e.slice(a,r)),r<i&&v(e=e.slice(r)),r<i&&h(e))}l.push(n)}return p(l)}function y(e,n){var i=n.length>0,o=e.length>0,s=function(r,s,a,u,c){var l,h,d,p=0,f="0",m=r&&[],v=[],y=j,b=r||o&&A.find.TAG("*",c),C=B+=null==y?1:Math.random()||.1,_=b.length +for(c&&(j=s===P||s||c);f!==_&&null!=(l=b[f]);f++){if(o&&l){for(h=0,s||l.ownerDocument===P||(T(l),a=!R);d=e[h++];)if(d(l,s||P,a)){u.push(l) +break}c&&(B=C)}i&&((l=!d&&l)&&p--,r&&m.push(l))}if(p+=f,i&&f!==p){for(h=0;d=n[h++];)d(m,v,s,a) +if(r){if(p>0)for(;f--;)m[f]||v[f]||(v[f]=K.call(u)) +v=g(v)}Z.apply(u,v),c&&!r&&v.length>0&&p+n.length>1&&t.uniqueSort(u)}return c&&(B=C,j=y),m} +return i?r(s):s}var b,C,A,_,I,w,x,k,j,E,S,T,P,O,R,N,M,L,D,z="sizzle"+1*new Date,F=e.document,B=0,H=0,U=n(),q=n(),V=n(),W=function(e,t){return e===t&&(S=!0),0},G={}.hasOwnProperty,Y=[],K=Y.pop,Q=Y.push,Z=Y.push,X=Y.slice,J=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n +return-1},$="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ee="[\\x20\\t\\r\\n\\f]",te="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",ne="\\["+ee+"*("+te+")(?:"+ee+"*([*^$|!~]?=)"+ee+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+te+"))|)"+ee+"*\\]",re=":("+te+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ne+")*)|.*)\\)|)",ie=new RegExp(ee+"+","g"),oe=new RegExp("^"+ee+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ee+"+$","g"),se=new RegExp("^"+ee+"*,"+ee+"*"),ae=new RegExp("^"+ee+"*([>+~]|"+ee+")"+ee+"*"),ue=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),ce=new RegExp(re),le=new RegExp("^"+te+"$"),he={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+re),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+$+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,pe=/^h\d$/i,fe=/^[^{]+\{\s*\[native \w/,ge=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,me=/[+~]/,ve=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var r="0x"+t-65536 +return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},be=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Ce=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ae=function(){T()},_e=d(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"}) +try{Z.apply(Y=X.call(F.childNodes),F.childNodes),Y[F.childNodes.length].nodeType}catch(e){Z={apply:Y.length?function(e,t){Q.apply(e,X.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}C=t.support={},I=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement +return!!t&&"HTML"!==t.nodeName},T=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:F +return r!==P&&9===r.nodeType&&r.documentElement?(P=r,O=P.documentElement,R=!I(P),F!==P&&(n=P.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ae,!1):n.attachEvent&&n.attachEvent("onunload",Ae)),C.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),C.getElementsByTagName=i(function(e){return e.appendChild(P.createComment("")),!e.getElementsByTagName("*").length}),C.getElementsByClassName=fe.test(P.getElementsByClassName),C.getById=i(function(e){return O.appendChild(e).id=z,!P.getElementsByName||!P.getElementsByName(z).length}),C.getById?(A.filter.ID=function(e){var t=e.replace(ve,ye) +return function(e){return e.getAttribute("id")===t}},A.find.ID=function(e,t){if(void 0!==t.getElementById&&R){var n=t.getElementById(e) +return n?[n]:[]}}):(A.filter.ID=function(e){var t=e.replace(ve,ye) +return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id") +return n&&n.value===t}},A.find.ID=function(e,t){if(void 0!==t.getElementById&&R){var n,r,i,o=t.getElementById(e) +if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o] +for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),A.find.TAG=C.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):C.qsa?t.querySelectorAll(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},A.find.CLASS=C.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&R)return t.getElementsByClassName(e)},M=[],N=[],(C.qsa=fe.test(P.querySelectorAll))&&(i(function(e){O.appendChild(e).innerHTML="<a id='"+z+"'></a><select id='"+z+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||N.push("\\["+ee+"*(?:value|"+$+")"),e.querySelectorAll("[id~="+z+"-]").length||N.push("~="),e.querySelectorAll(":checked").length||N.push(":checked"),e.querySelectorAll("a#"+z+"+*").length||N.push(".#.+[+~]")}),i(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>" +var t=P.createElement("input") +t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&N.push("name"+ee+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&N.push(":enabled",":disabled"),O.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&N.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),N.push(",.*:")})),(C.matchesSelector=fe.test(L=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&i(function(e){C.disconnectedMatch=L.call(e,"*"),L.call(e,"[s!='']:x"),M.push("!=",re)}),N=N.length&&new RegExp(N.join("|")),M=M.length&&new RegExp(M.join("|")),t=fe.test(O.compareDocumentPosition),D=t||fe.test(O.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},W=t?function(e,t){if(e===t)return S=!0,0 +var n=!e.compareDocumentPosition-!t.compareDocumentPosition +return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!C.sortDetached&&t.compareDocumentPosition(e)===n?e===P||e.ownerDocument===F&&D(F,e)?-1:t===P||t.ownerDocument===F&&D(F,t)?1:E?J(E,e)-J(E,t):0:4&n?-1:1)}:function(e,t){if(e===t)return S=!0,0 +var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t] +if(!i||!o)return e===P?-1:t===P?1:i?-1:o?1:E?J(E,e)-J(E,t):0 +if(i===o)return s(e,t) +for(n=e;n=n.parentNode;)a.unshift(n) +for(n=t;n=n.parentNode;)u.unshift(n) +for(;a[r]===u[r];)r++ +return r?s(a[r],u[r]):a[r]===F?-1:u[r]===F?1:0},P):P},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==P&&T(e),n=n.replace(ue,"='$1']"),C.matchesSelector&&R&&!V[n+" "]&&(!M||!M.test(n))&&(!N||!N.test(n)))try{var r=L.call(e,n) +if(r||C.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,P,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==P&&T(e),D(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==P&&T(e) +var n=A.attrHandle[t.toLowerCase()],r=n&&G.call(A.attrHandle,t.toLowerCase())?n(e,t,!R):void 0 +return void 0!==r?r:C.attributes||!R?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(be,Ce)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0 +if(S=!C.detectDuplicates,E=!C.sortStable&&e.slice(0),e.sort(W),S){for(;t=e[i++];)t===e[i]&&(r=n.push(i)) +for(;r--;)e.splice(n[r],1)}return E=null,e},_=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+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t) +return n},A=t.selectors={cacheLength:50,createPseudo:r,match:he,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(ve,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(ve,ye),"~="===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[6]&&e[2] +return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ce.test(n)&&(t=w(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(ve,ye).toLowerCase() +return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "] +return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&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.replace(ie," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t +return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,h,d,p,f,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,b=!1 +if(m){if(o){for(;g;){for(d=t;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1 +f=g="only"===e&&!f&&"nextSibling"}return!0}if(f=[s?m.firstChild:m.lastChild],s&&y){for(d=m,h=d[z]||(d[z]={}),l=h[d.uniqueID]||(h[d.uniqueID]={}),c=l[e]||[],p=c[0]===B&&c[1],b=p&&c[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(b=p=0)||f.pop();)if(1===d.nodeType&&++b&&d===t){l[e]=[B,p,b] +break}}else if(y&&(d=t,h=d[z]||(d[z]={}),l=h[d.uniqueID]||(h[d.uniqueID]={}),c=l[e]||[],p=c[0]===B&&c[1],b=p),!1===b)for(;(d=++p&&d&&d[g]||(b=p=0)||f.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++b||(y&&(h=d[z]||(d[z]={}),l=h[d.uniqueID]||(h[d.uniqueID]={}),l[e]=[B,b]),d!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,n){var i,o=A.pseudos[e]||A.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e) +return o[z]?o(n):o.length>1?(i=[e,e,"",n],A.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=J(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=x(e.replace(oe,"$1")) +return i[z]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(ve,ye),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(e){return le.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(ve,ye).toLowerCase(),function(t){var n +do{if(n=R?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===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===O},focus:function(e){return e===P.activeElement&&(!P.hasFocus||P.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:a(!1),disabled:a(!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,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1 +return!0},parent:function(e){return!A.pseudos.empty(e)},header:function(e){return pe.test(e.nodeName)},input:function(e){return de.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:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n<t;n+=2)e.push(n) +return e}),odd:u(function(e,t){for(var n=1;n<t;n+=2)e.push(n) +return e}),lt:u(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r) +return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r) +return e})}},A.pseudos.nth=A.pseudos.eq +for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})A.pseudos[b]=function(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}(b) +for(b in{submit:!0,reset:!0})A.pseudos[b]=function(e){return function(t){var n=t.nodeName.toLowerCase() +return("input"===n||"button"===n)&&t.type===e}}(b) +return l.prototype=A.filters=A.pseudos,A.setFilters=new l,w=t.tokenize=function(e,n){var r,i,o,s,a,u,c,l=q[e+" "] +if(l)return n?0:l.slice(0) +for(a=e,u=[],c=A.preFilter;a;){r&&!(i=se.exec(a))||(i&&(a=a.slice(i[0].length)||a),u.push(o=[])),r=!1,(i=ae.exec(a))&&(r=i.shift(),o.push({value:r,type:i[0].replace(oe," ")}),a=a.slice(r.length)) +for(s in A.filter)!(i=he[s].exec(a))||c[s]&&!(i=c[s](i))||(r=i.shift(),o.push({value:r,type:s,matches:i}),a=a.slice(r.length)) +if(!r)break}return n?a.length:a?t.error(e):q(e,u).slice(0)},x=t.compile=function(e,t){var n,r=[],i=[],o=V[e+" "] +if(!o){for(t||(t=w(e)),n=t.length;n--;)o=v(t[n]),o[z]?r.push(o):i.push(o) +o=V(e,y(i,r)),o.selector=e}return o},k=t.select=function(e,t,n,r){var i,o,s,a,u,l="function"==typeof e&&e,d=!r&&w(e=l.selector||e) +if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(s=o[0]).type&&9===t.nodeType&&R&&A.relative[o[1].type]){if(!(t=(A.find.ID(s.matches[0].replace(ve,ye),t)||[])[0]))return n +l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(s=o[i],!A.relative[a=s.type]);)if((u=A.find[a])&&(r=u(s.matches[0].replace(ve,ye),me.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&h(o)))return Z.apply(n,r),n +break}}return(l||x(e,d))(r,t,!R,n,!t||me.test(e)&&c(t.parentNode)||t),n},C.sortStable=z.split("").sort(W).join("")===z,C.detectDuplicates=!!S,T(),C.sortDetached=i(function(e){return 1&e.compareDocumentPosition(P.createElement("fieldset"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),C.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o($,function(e,t,n){var r +if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e) +Ae.find=Ie,Ae.expr=Ie.selectors,Ae.expr[":"]=Ae.expr.pseudos,Ae.uniqueSort=Ae.unique=Ie.uniqueSort,Ae.text=Ie.getText,Ae.isXMLDoc=Ie.isXML,Ae.contains=Ie.contains,Ae.escapeSelector=Ie.escape +var we=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&Ae(e).is(n))break +r.push(e)}return r},xe=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e) +return n},ke=Ae.expr.match.needsContext,je=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i +Ae.filter=function(e,t,n){var r=t[0] +return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?Ae.find.matchesSelector(r,e)?[r]:[]:Ae.find.matches(e,Ae.grep(t,function(e){return 1===e.nodeType}))},Ae.fn.extend({find:function(e){var t,n,r=this.length,i=this +if("string"!=typeof e)return this.pushStack(Ae(e).filter(function(){for(t=0;t<r;t++)if(Ae.contains(i[t],this))return!0})) +for(n=this.pushStack([]),t=0;t<r;t++)Ae.find(e,i[t],n) +return r>1?Ae.uniqueSort(n):n},filter:function(e){return this.pushStack(s(this,e||[],!1))},not:function(e){return this.pushStack(s(this,e||[],!0))},is:function(e){return!!s(this,"string"==typeof e&&ke.test(e)?Ae(e):e||[],!1).length}}) +var Ee,Se=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(Ae.fn.init=function(e,t,n){var r,i +if(!e)return this +if(n=n||Ee,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Se.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e) +if(r[1]){if(t=t instanceof Ae?t[0]:t,Ae.merge(this,Ae.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:se,!0)),je.test(r[1])&&Ae.isPlainObject(t))for(r in t)ye(this[r])?this[r](t[r]):this.attr(r,t[r]) +return this}return i=se.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):ye(e)?void 0!==n.ready?n.ready(e):e(Ae):Ae.makeArray(e,this)}).prototype=Ae.fn,Ee=Ae(se) +var Te=/^(?:parents|prev(?:Until|All))/,Pe={children:!0,contents:!0,next:!0,prev:!0} +Ae.fn.extend({has:function(e){var t=Ae(e,this),n=t.length +return this.filter(function(){for(var e=0;e<n;e++)if(Ae.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],s="string"!=typeof e&&Ae(e) +if(!ke.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&Ae.find.matchesSelector(n,e))){o.push(n) +break}return this.pushStack(o.length>1?Ae.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?he.call(Ae(e),this[0]):he.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(Ae.uniqueSort(Ae.merge(this.get(),Ae(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Ae.each({parent:function(e){var t=e.parentNode +return t&&11!==t.nodeType?t:null},parents:function(e){return we(e,"parentNode")},parentsUntil:function(e,t,n){return we(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return we(e,"nextSibling")},prevAll:function(e){return we(e,"previousSibling")},nextUntil:function(e,t,n){return we(e,"nextSibling",n)},prevUntil:function(e,t,n){return we(e,"previousSibling",n)},siblings:function(e){return xe((e.parentNode||{}).firstChild,e)},children:function(e){return xe(e.firstChild)},contents:function(e){return o(e,"iframe")?e.contentDocument:(o(e,"template")&&(e=e.content||e),Ae.merge([],e.childNodes))}},function(e,t){Ae.fn[e]=function(n,r){var i=Ae.map(this,t,n) +return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=Ae.filter(r,i)),this.length>1&&(Pe[e]||Ae.uniqueSort(i),Te.test(e)&&i.reverse()),this.pushStack(i)}}) +var Oe=/[^\x20\t\r\n\f]+/g +Ae.Callbacks=function(e){e="string"==typeof e?u(e):Ae.extend({},e) +var t,n,i,o,s=[],a=[],c=-1,l=function(){for(o=o||e.once,i=t=!0;a.length;c=-1)for(n=a.shift();++c<s.length;)!1===s[c].apply(n[0],n[1])&&e.stopOnFalse&&(c=s.length,n=!1) +e.memory||(n=!1),t=!1,o&&(s=n?[]:"")},h={add:function(){return s&&(n&&!t&&(c=s.length-1,a.push(n)),function t(n){Ae.each(n,function(n,i){ye(i)?e.unique&&h.has(i)||s.push(i):i&&i.length&&"string"!==r(i)&&t(i)})}(arguments),n&&!t&&l()),this},remove:function(){return Ae.each(arguments,function(e,t){for(var n;(n=Ae.inArray(t,s,n))>-1;)s.splice(n,1),n<=c&&c--}),this},has:function(e){return e?Ae.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return o=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return o=a=[],n||t||(s=n=""),this},locked:function(){return!!o},fireWith:function(e,n){return o||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!i}} +return h},Ae.extend({Deferred:function(t){var n=[["notify","progress",Ae.Callbacks("memory"),Ae.Callbacks("memory"),2],["resolve","done",Ae.Callbacks("once memory"),Ae.Callbacks("once memory"),0,"resolved"],["reject","fail",Ae.Callbacks("once memory"),Ae.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments +return Ae.Deferred(function(t){Ae.each(n,function(n,r){var i=ye(e[r[4]])&&e[r[4]] +o[r[1]](function(){var e=i&&i.apply(this,arguments) +e&&ye(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function o(t,n,r,i){return function(){var a=this,u=arguments,h=function(){var e,h +if(!(t<s)){if((e=r.apply(a,u))===n.promise())throw new TypeError("Thenable self-resolution") +h=e&&("object"==typeof e||"function"==typeof e)&&e.then,ye(h)?i?h.call(e,o(s,n,c,i),o(s,n,l,i)):(s++,h.call(e,o(s,n,c,i),o(s,n,l,i),o(s,n,c,n.notifyWith))):(r!==c&&(a=void 0,u=[e]),(i||n.resolveWith)(a,u))}},d=i?h:function(){try{h()}catch(e){Ae.Deferred.exceptionHook&&Ae.Deferred.exceptionHook(e,d.stackTrace),t+1>=s&&(r!==l&&(a=void 0,u=[e]),n.rejectWith(a,u))}} +t?d():(Ae.Deferred.getStackHook&&(d.stackTrace=Ae.Deferred.getStackHook()),e.setTimeout(d))}}var s=0 +return Ae.Deferred(function(e){n[0][3].add(o(0,e,ye(i)?i:c,e.notifyWith)),n[1][3].add(o(0,e,ye(t)?t:c)),n[2][3].add(o(0,e,ye(r)?r:l))}).promise()},promise:function(e){return null!=e?Ae.extend(e,i):i}},o={} +return Ae.each(n,function(e,t){var s=t[2],a=t[5] +i[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),s.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=ue.call(arguments),o=Ae.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?ue.call(arguments):n,--t||o.resolveWith(r,i)}} +if(t<=1&&(h(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||ye(i[n]&&i[n].then)))return o.then() +for(;n--;)h(i[n],s(n),o.reject) +return o.promise()}}) +var Re=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/ +Ae.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&Re.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},Ae.readyException=function(t){e.setTimeout(function(){throw t})} +var Ne=Ae.Deferred() +Ae.fn.ready=function(e){return Ne.then(e).catch(function(e){Ae.readyException(e)}),this},Ae.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--Ae.readyWait:Ae.isReady)||(Ae.isReady=!0,!0!==e&&--Ae.readyWait>0||Ne.resolveWith(se,[Ae]))}}),Ae.ready.then=Ne.then,"complete"===se.readyState||"loading"!==se.readyState&&!se.documentElement.doScroll?e.setTimeout(Ae.ready):(se.addEventListener("DOMContentLoaded",d),e.addEventListener("load",d)) +var Me=function(e,t,n,i,o,s,a){var u=0,c=e.length,l=null==n +if("object"===r(n)){o=!0 +for(u in n)Me(e,t,u,n[u],!0,s,a)}else if(void 0!==i&&(o=!0,ye(i)||(a=!0),l&&(a?(t.call(e,i),t=null):(l=t,t=function(e,t,n){return l.call(Ae(e),n)})),t))for(;u<c;u++)t(e[u],n,a?i:i.call(e[u],u,t(e[u],n))) +return o?e:l?t.call(e):c?t(e[0],n):s},Le=/^-ms-/,De=/-([a-z])/g,ze=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType} +g.uid=1,g.prototype={cache:function(e){var t=e[this.expando] +return t||(t={},ze(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e) +if("string"==typeof t)i[f(t)]=n +else for(r in t)i[f(r)]=t[r] +return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][f(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando] +if(void 0!==r){if(void 0!==t){Array.isArray(t)?t=t.map(f):(t=f(t),t=t in r?[t]:t.match(Oe)||[]),n=t.length +for(;n--;)delete r[t[n]]}(void 0===t||Ae.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando] +return void 0!==t&&!Ae.isEmptyObject(t)}} +var Fe=new g,Be=new g,He=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ue=/[A-Z]/g +Ae.extend({hasData:function(e){return Be.hasData(e)||Fe.hasData(e)},data:function(e,t,n){return Be.access(e,t,n)},removeData:function(e,t){Be.remove(e,t)},_data:function(e,t,n){return Fe.access(e,t,n)},_removeData:function(e,t){Fe.remove(e,t)}}),Ae.fn.extend({data:function(e,t){var n,r,i,o=this[0],s=o&&o.attributes +if(void 0===e){if(this.length&&(i=Be.get(o),1===o.nodeType&&!Fe.get(o,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(r=s[n].name,0===r.indexOf("data-")&&(r=f(r.slice(5)),v(o,r,i[r]))) +Fe.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){Be.set(this,e)}):Me(this,function(t){var n +if(o&&void 0===t){if(void 0!==(n=Be.get(o,e)))return n +if(void 0!==(n=v(o,e)))return n}else this.each(function(){Be.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Be.remove(this,e)})}}),Ae.extend({queue:function(e,t,n){var r +if(e)return t=(t||"fx")+"queue",r=Fe.get(e,t),n&&(!r||Array.isArray(n)?r=Fe.access(e,t,Ae.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx" +var n=Ae.queue(e,t),r=n.length,i=n.shift(),o=Ae._queueHooks(e,t),s=function(){Ae.dequeue(e,t)} +"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks" +return Fe.get(e,n)||Fe.access(e,n,{empty:Ae.Callbacks("once memory").add(function(){Fe.remove(e,[t+"queue",n])})})}}),Ae.fn.extend({queue:function(e,t){var n=2 +return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?Ae.queue(this[0],e):void 0===t?this:this.each(function(){var n=Ae.queue(this,e,t) +Ae._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&Ae.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Ae.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=Ae.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])} +for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(n=Fe.get(o[s],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(a)) +return a(),i.promise(t)}}) +var qe=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Ve=new RegExp("^(?:([+-])=|)("+qe+")([a-z%]*)$","i"),We=["Top","Right","Bottom","Left"],Ge=function(e,t){return e=t||e,"none"===e.style.display||""===e.style.display&&Ae.contains(e.ownerDocument,e)&&"none"===Ae.css(e,"display")},Ye=function(e,t,n,r){var i,o,s={} +for(o in t)s[o]=e.style[o],e.style[o]=t[o] +i=n.apply(e,r||[]) +for(o in t)e.style[o]=s[o] +return i},Ke={} +Ae.fn.extend({show:function(){return C(this,!0)},hide:function(){return C(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ge(this)?Ae(this).show():Ae(this).hide()})}}) +var Qe=/^(?:checkbox|radio)$/i,Ze=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Xe=/^$|^module$|\/(?:java|ecma)script/i,Je={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,"",""]} +Je.optgroup=Je.option,Je.tbody=Je.tfoot=Je.colgroup=Je.caption=Je.thead,Je.th=Je.td +var $e=/<|&#?\w+;/;(function(){var e=se.createDocumentFragment(),t=e.appendChild(se.createElement("div")),n=se.createElement("input") +n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),ve.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",ve.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue})() +var et=se.documentElement,tt=/^key/,nt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rt=/^([^.]*)(?:\.(.+)|)/ +Ae.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,c,l,h,d,p,f,g,m=Fe.get(e) +if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&Ae.find.matchesSelector(et,i),n.guid||(n.guid=Ae.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return void 0!==Ae&&Ae.event.triggered!==t.type?Ae.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Oe)||[""],c=t.length;c--;)a=rt.exec(t[c])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p&&(h=Ae.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,h=Ae.event.special[p]||{},l=Ae.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&Ae.expr.match.needsContext.test(i),namespace:f.join(".")},o),(d=u[p])||(d=u[p]=[],d.delegateCount=0,h.setup&&!1!==h.setup.call(e,r,f,s)||e.addEventListener&&e.addEventListener(p,s)),h.add&&(h.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),Ae.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,c,l,h,d,p,f,g,m=Fe.hasData(e)&&Fe.get(e) +if(m&&(u=m.events)){for(t=(t||"").match(Oe)||[""],c=t.length;c--;)if(a=rt.exec(t[c])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p){for(h=Ae.event.special[p]||{},p=(r?h.delegateType:h.bindType)||p,d=u[p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)l=d[o],!i&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(d.splice(o,1),l.selector&&d.delegateCount--,h.remove&&h.remove.call(e,l)) +s&&!d.length&&(h.teardown&&!1!==h.teardown.call(e,f,m.handle)||Ae.removeEvent(e,p,m.handle),delete u[p])}else for(p in u)Ae.event.remove(e,p+t[c],n,r,!0) +Ae.isEmptyObject(u)&&Fe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=Ae.event.fix(e),u=new Array(arguments.length),c=(Fe.get(this,"events")||{})[a.type]||[],l=Ae.event.special[a.type]||{} +for(u[0]=a,t=1;t<arguments.length;t++)u[t]=arguments[t] +if(a.delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,a)){for(s=Ae.event.handlers.call(this,a,c),t=0;(i=s[t++])&&!a.isPropagationStopped();)for(a.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!a.isImmediatePropagationStopped();)a.rnamespace&&!a.rnamespace.test(o.namespace)||(a.handleObj=o,a.data=o.data,void 0!==(r=((Ae.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(a.result=r)&&(a.preventDefault(),a.stopPropagation())) +return l.postDispatch&&l.postDispatch.call(this,a),a.result}},handlers:function(e,t){var n,r,i,o,s,a=[],u=t.delegateCount,c=e.target +if(u&&c.nodeType&&!("click"===e.type&&e.button>=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],s={},n=0;n<u;n++)r=t[n],i=r.selector+" ",void 0===s[i]&&(s[i]=r.needsContext?Ae(i,this).index(c)>-1:Ae.find(i,this,null,[c]).length),s[i]&&o.push(r) +o.length&&a.push({elem:c,handlers:o})}return c=this,u<t.length&&a.push({elem:c,handlers:t.slice(u)}),a},addProp:function(e,t){Object.defineProperty(Ae.Event.prototype,e,{enumerable:!0,configurable:!0,get:ye(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[Ae.expando]?e:new Ae.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==k()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===k()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&o(this,"input"))return this.click(),!1},_default:function(e){return o(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},Ae.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},Ae.Event=function(e,t){if(!(this instanceof Ae.Event))return new Ae.Event(e,t) +e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?w:x,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&Ae.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[Ae.expando]=!0},Ae.Event.prototype={constructor:Ae.Event,isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x,isSimulated:!1,preventDefault:function(){var e=this.originalEvent +this.isDefaultPrevented=w,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent +this.isPropagationStopped=w,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent +this.isImmediatePropagationStopped=w,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},Ae.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button +return null==e.which&&tt.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&nt.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},Ae.event.addProp),Ae.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){Ae.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj +return i&&(i===r||Ae.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),Ae.fn.extend({on:function(e,t,n,r){return j(this,e,t,n,r)},one:function(e,t,n,r){return j(this,e,t,n,r,1)},off:function(e,t,n){var r,i +if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,Ae(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!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=x),this.each(function(){Ae.event.remove(this,e,n,t)})}}) +var it=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ot=/<script|<style|<link/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g +Ae.extend({htmlPrefilter:function(e){return e.replace(it,"<$1></$2>")},clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=Ae.contains(e.ownerDocument,e) +if(!(ve.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Ae.isXMLDoc(e)))for(s=A(a),o=A(e),r=0,i=o.length;r<i;r++)O(o[r],s[r]) +if(t)if(n)for(o=o||A(e),s=s||A(a),r=0,i=o.length;r<i;r++)P(o[r],s[r]) +else P(e,a) +return s=A(a,"script"),s.length>0&&_(s,!u&&A(e,"script")),a},cleanData:function(e){for(var t,n,r,i=Ae.event.special,o=0;void 0!==(n=e[o]);o++)if(ze(n)){if(t=n[Fe.expando]){if(t.events)for(r in t.events)i[r]?Ae.event.remove(n,r):Ae.removeEvent(n,r,t.handle) +n[Fe.expando]=void 0}n[Be.expando]&&(n[Be.expando]=void 0)}}}),Ae.fn.extend({detach:function(e){return N(this,e,!0)},remove:function(e){return N(this,e)},text:function(e){return Me(this,function(e){return void 0===e?Ae.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 R(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){E(this,e).appendChild(e)}})},prepend:function(){return R(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e) +t.insertBefore(e,t.firstChild)}})},before:function(){return R(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return R(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(Ae.cleanData(A(e,!1)),e.textContent="") +return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return Ae.clone(this,e,t)})},html:function(e){return Me(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&&!ot.test(e)&&!Je[(Ze.exec(e)||["",""])[1].toLowerCase()]){e=Ae.htmlPrefilter(e) +try{for(;n<r;n++)t=this[n]||{},1===t.nodeType&&(Ae.cleanData(A(t,!1)),t.innerHTML=e) +t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[] +return R(this,arguments,function(t){var n=this.parentNode +Ae.inArray(this,e)<0&&(Ae.cleanData(A(this)),n&&n.replaceChild(t,this))},e)}}),Ae.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Ae.fn[e]=function(e){for(var n,r=[],i=Ae(e),o=i.length-1,s=0;s<=o;s++)n=s===o?this:this.clone(!0),Ae(i[s])[t](n),le.apply(r,n.get()) +return this.pushStack(r)}}) +var ut=new RegExp("^("+qe+")(?!px)[a-z%]+$","i"),ct=function(t){var n=t.ownerDocument.defaultView +return n&&n.opener||(n=e),n.getComputedStyle(t)},lt=new RegExp(We.join("|"),"i");(function(){function t(){if(c){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",et.appendChild(u).appendChild(c) +var t=e.getComputedStyle(c) +r="1%"!==t.top,a=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),i=36===n(t.width),c.style.position="absolute",o=36===c.offsetWidth||"absolute",et.removeChild(u),c=null}}function n(e){return Math.round(parseFloat(e))}var r,i,o,s,a,u=se.createElement("div"),c=se.createElement("div") +c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",ve.clearCloneStyle="content-box"===c.style.backgroundClip,Ae.extend(ve,{boxSizingReliable:function(){return t(),i},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),r},reliableMarginLeft:function(){return t(),a},scrollboxSize:function(){return t(),o}}))})() +var ht=/^(none|table(?!-c[ea]).+)/,dt=/^--/,pt={position:"absolute",visibility:"hidden",display:"block"},ft={letterSpacing:"0",fontWeight:"400"},gt=["Webkit","Moz","ms"],mt=se.createElement("div").style +Ae.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=M(e,"opacity") +return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=f(t),u=dt.test(t),c=e.style +if(u||(t=z(a)),s=Ae.cssHooks[t]||Ae.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(i=s.get(e,!1,r))?i:c[t] +o=typeof n,"string"===o&&(i=Ve.exec(n))&&i[1]&&(n=y(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(Ae.cssNumber[a]?"":"px")),ve.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(u?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,s,a=f(t) +return dt.test(t)||(t=z(a)),s=Ae.cssHooks[t]||Ae.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=M(e,t,r)),"normal"===i&&t in ft&&(i=ft[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),Ae.each(["height","width"],function(e,t){Ae.cssHooks[t]={get:function(e,n,r){if(n)return!ht.test(Ae.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?H(e,t,r):Ye(e,pt,function(){return H(e,t,r)})},set:function(e,n,r){var i,o=ct(e),s="border-box"===Ae.css(e,"boxSizing",!1,o),a=r&&B(e,t,r,s,o) +return s&&ve.scrollboxSize()===o.position&&(a-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-B(e,t,"border",!1,o)-.5)),a&&(i=Ve.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=Ae.css(e,t)),F(e,n,a)}}}),Ae.cssHooks.marginLeft=L(ve.reliableMarginLeft,function(e,t){if(t)return(parseFloat(M(e,"marginLeft"))||e.getBoundingClientRect().left-Ye(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),Ae.each({margin:"",padding:"",border:"Width"},function(e,t){Ae.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+We[r]+t]=o[r]||o[r-2]||o[0] +return i}},"margin"!==e&&(Ae.cssHooks[e+t].set=F)}),Ae.fn.extend({css:function(e,t){return Me(this,function(e,t,n){var r,i,o={},s=0 +if(Array.isArray(t)){for(r=ct(e),i=t.length;s<i;s++)o[t[s]]=Ae.css(e,t[s],!1,r) +return o}return void 0!==n?Ae.style(e,t,n):Ae.css(e,t)},e,t,arguments.length>1)}}),Ae.Tween=U,U.prototype={constructor:U,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||Ae.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Ae.cssNumber[n]?"":"px")},cur:function(){var e=U.propHooks[this.prop] +return e&&e.get?e.get(this):U.propHooks._default.get(this)},run:function(e){var t,n=U.propHooks[this.prop] +return this.options.duration?this.pos=t=Ae.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=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):U.propHooks._default.set(this),this}},U.prototype.init.prototype=U.prototype,U.propHooks={_default:{get:function(e){var t +return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=Ae.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){Ae.fx.step[e.prop]?Ae.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[Ae.cssProps[e.prop]]&&!Ae.cssHooks[e.prop]?e.elem[e.prop]=e.now:Ae.style(e.elem,e.prop,e.now+e.unit)}}},U.propHooks.scrollTop=U.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Ae.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},Ae.fx=U.prototype.init,Ae.fx.step={} +var vt,yt,bt=/^(?:toggle|show|hide)$/,Ct=/queueHooks$/ +Ae.Animation=Ae.extend(Q,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t) +return y(n.elem,e,Ve.exec(t),n),n}]},tweener:function(e,t){ye(e)?(t=e,e=["*"]):e=e.match(Oe) +for(var n,r=0,i=e.length;r<i;r++)n=e[r],Q.tweeners[n]=Q.tweeners[n]||[],Q.tweeners[n].unshift(t)},prefilters:[Y],prefilter:function(e,t){t?Q.prefilters.unshift(e):Q.prefilters.push(e)}}),Ae.speed=function(e,t,n){var r=e&&"object"==typeof e?Ae.extend({},e):{complete:n||!n&&t||ye(e)&&e,duration:e,easing:n&&t||t&&!ye(t)&&t} +return Ae.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in Ae.fx.speeds?r.duration=Ae.fx.speeds[r.duration]:r.duration=Ae.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){ye(r.old)&&r.old.call(this),r.queue&&Ae.dequeue(this,r.queue)},r},Ae.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ge).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=Ae.isEmptyObject(e),o=Ae.speed(t,n,r),s=function(){var t=Q(this,Ae.extend({},e),o);(i||Fe.get(this,"finish"))&&t.stop(!0)} +return s.finish=s,i||!1===o.queue?this.each(s):this.queue(o.queue,s)},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&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=Ae.timers,s=Fe.get(this) +if(i)s[i]&&s[i].stop&&r(s[i]) +else for(i in s)s[i]&&s[i].stop&&Ct.test(i)&&r(s[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||Ae.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=Fe.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=Ae.timers,s=r?r.length:0 +for(n.finish=!0,Ae.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;t<s;t++)r[t]&&r[t].finish&&r[t].finish.call(this) +delete n.finish})}}),Ae.each(["toggle","show","hide"],function(e,t){var n=Ae.fn[t] +Ae.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(W(t,!0),e,r,i)}}),Ae.each({slideDown:W("show"),slideUp:W("hide"),slideToggle:W("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){Ae.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),Ae.timers=[],Ae.fx.tick=function(){var e,t=0,n=Ae.timers +for(vt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1) +n.length||Ae.fx.stop(),vt=void 0},Ae.fx.timer=function(e){Ae.timers.push(e),Ae.fx.start()},Ae.fx.interval=13,Ae.fx.start=function(){yt||(yt=!0,q())},Ae.fx.stop=function(){yt=null},Ae.fx.speeds={slow:600,fast:200,_default:400},Ae.fn.delay=function(t,n){return t=Ae.fx?Ae.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t) +r.stop=function(){e.clearTimeout(i)}})},function(){var e=se.createElement("input"),t=se.createElement("select"),n=t.appendChild(se.createElement("option")) +e.type="checkbox",ve.checkOn=""!==e.value,ve.optSelected=n.selected,e=se.createElement("input"),e.value="t",e.type="radio",ve.radioValue="t"===e.value}() +var At,_t=Ae.expr.attrHandle +Ae.fn.extend({attr:function(e,t){return Me(this,Ae.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){Ae.removeAttr(this,e)})}}),Ae.extend({attr:function(e,t,n){var r,i,o=e.nodeType +if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?Ae.prop(e,t,n):(1===o&&Ae.isXMLDoc(e)||(i=Ae.attrHooks[t.toLowerCase()]||(Ae.expr.match.bool.test(t)?At:void 0)),void 0!==n?null===n?void Ae.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=Ae.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!ve.radioValue&&"radio"===t&&o(e,"input")){var n=e.value +return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Oe) +if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),At={set:function(e,t,n){return!1===t?Ae.removeAttr(e,n):e.setAttribute(n,n),n}},Ae.each(Ae.expr.match.bool.source.match(/\w+/g),function(e,t){var n=_t[t]||Ae.find.attr +_t[t]=function(e,t,r){var i,o,s=t.toLowerCase() +return r||(o=_t[s],_t[s]=i,i=null!=n(e,t,r)?s:null,_t[s]=o),i}}) +var It=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i +Ae.fn.extend({prop:function(e,t){return Me(this,Ae.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[Ae.propFix[e]||e]})}}),Ae.extend({prop:function(e,t,n){var r,i,o=e.nodeType +if(3!==o&&8!==o&&2!==o)return 1===o&&Ae.isXMLDoc(e)||(t=Ae.propFix[t]||t,i=Ae.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]},propHooks:{tabIndex:{get:function(e){var t=Ae.find.attr(e,"tabindex") +return t?parseInt(t,10):It.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ve.optSelected||(Ae.propHooks.selected={get:function(e){var t=e.parentNode +return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode +t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),Ae.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Ae.propFix[this.toLowerCase()]=this}),Ae.fn.extend({addClass:function(e){var t,n,r,i,o,s,a,u=0 +if(ye(e))return this.each(function(t){Ae(this).addClass(e.call(this,t,X(this)))}) +if(t=J(e),t.length)for(;n=this[u++];)if(i=X(n),r=1===n.nodeType&&" "+Z(i)+" "){for(s=0;o=t[s++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ") +a=Z(r),i!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,i,o,s,a,u=0 +if(ye(e))return this.each(function(t){Ae(this).removeClass(e.call(this,t,X(this)))}) +if(!arguments.length)return this.attr("class","") +if(t=J(e),t.length)for(;n=this[u++];)if(i=X(n),r=1===n.nodeType&&" "+Z(i)+" "){for(s=0;o=t[s++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ") +a=Z(r),i!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e) +return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):ye(e)?this.each(function(n){Ae(this).toggleClass(e.call(this,n,X(this),t),t)}):this.each(function(){var t,i,o,s +if(r)for(i=0,o=Ae(this),s=J(e);t=s[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t) +else void 0!==e&&"boolean"!==n||(t=X(this),t&&Fe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Fe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0 +for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+Z(X(n))+" ").indexOf(t)>-1)return!0 +return!1}}) +var xt=/\r/g +Ae.fn.extend({val:function(e){var t,n,r,i=this[0] +{if(arguments.length)return r=ye(e),this.each(function(n){var i +1===this.nodeType&&(i=r?e.call(this,n,Ae(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=Ae.map(i,function(e){return null==e?"":e+""})),(t=Ae.valHooks[this.type]||Ae.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}) +if(i)return(t=Ae.valHooks[i.type]||Ae.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(xt,""):null==n?"":n)}}}),Ae.extend({valHooks:{option:{get:function(e){var t=Ae.find.attr(e,"value") +return null!=t?t:Z(Ae.text(e))}},select:{get:function(e){var t,n,r,i=e.options,s=e.selectedIndex,a="select-one"===e.type,u=a?null:[],c=a?s+1:i.length +for(r=s<0?c:a?s:0;r<c;r++)if(n=i[r],(n.selected||r===s)&&!n.disabled&&(!n.parentNode.disabled||!o(n.parentNode,"optgroup"))){if(t=Ae(n).val(),a)return t +u.push(t)}return u},set:function(e,t){for(var n,r,i=e.options,o=Ae.makeArray(t),s=i.length;s--;)r=i[s],(r.selected=Ae.inArray(Ae.valHooks.option.get(r),o)>-1)&&(n=!0) +return n||(e.selectedIndex=-1),o}}}}),Ae.each(["radio","checkbox"],function(){Ae.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=Ae.inArray(Ae(e).val(),t)>-1}},ve.checkOn||(Ae.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),ve.focusin="onfocusin"in e +var kt=/^(?:focusinfocus|focusoutblur)$/,jt=function(e){e.stopPropagation()} +Ae.extend(Ae.event,{trigger:function(t,n,r,i){var o,s,a,u,c,l,h,d,p=[r||se],f=fe.call(t,"type")?t.type:t,g=fe.call(t,"namespace")?t.namespace.split("."):[] +if(s=d=a=r=r||se,3!==r.nodeType&&8!==r.nodeType&&!kt.test(f+Ae.event.triggered)&&(f.indexOf(".")>-1&&(g=f.split("."),f=g.shift(),g.sort()),c=f.indexOf(":")<0&&"on"+f,t=t[Ae.expando]?t:new Ae.Event(f,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:Ae.makeArray(n,[t]),h=Ae.event.special[f]||{},i||!h.trigger||!1!==h.trigger.apply(r,n))){if(!i&&!h.noBubble&&!be(r)){for(u=h.delegateType||f,kt.test(u+f)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s +a===(r.ownerDocument||se)&&p.push(a.defaultView||a.parentWindow||e)}for(o=0;(s=p[o++])&&!t.isPropagationStopped();)d=s,t.type=o>1?u:h.bindType||f,l=(Fe.get(s,"events")||{})[t.type]&&Fe.get(s,"handle"),l&&l.apply(s,n),(l=c&&s[c])&&l.apply&&ze(s)&&(t.result=l.apply(s,n),!1===t.result&&t.preventDefault()) +return t.type=f,i||t.isDefaultPrevented()||h._default&&!1!==h._default.apply(p.pop(),n)||!ze(r)||c&&ye(r[f])&&!be(r)&&(a=r[c],a&&(r[c]=null),Ae.event.triggered=f,t.isPropagationStopped()&&d.addEventListener(f,jt),r[f](),t.isPropagationStopped()&&d.removeEventListener(f,jt),Ae.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=Ae.extend(new Ae.Event,n,{type:e,isSimulated:!0}) +Ae.event.trigger(r,null,t)}}),Ae.fn.extend({trigger:function(e,t){return this.each(function(){Ae.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0] +if(n)return Ae.event.trigger(e,t,n,!0)}}),ve.focusin||Ae.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){Ae.event.simulate(t,e.target,Ae.event.fix(e))} +Ae.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Fe.access(r,t) +i||r.addEventListener(e,n,!0),Fe.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Fe.access(r,t)-1 +i?Fe.access(r,t,i):(r.removeEventListener(e,n,!0),Fe.remove(r,t))}}}) +var Et=e.location,St=Date.now(),Tt=/\?/ +Ae.parseXML=function(t){var n +if(!t||"string"!=typeof t)return null +try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||Ae.error("Invalid XML: "+t),n} +var Pt=/\[\]$/,Ot=/\r?\n/g,Rt=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i +Ae.param=function(e,t){var n,r=[],i=function(e,t){var n=ye(t)?t():t +r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)} +if(Array.isArray(e)||e.jquery&&!Ae.isPlainObject(e))Ae.each(e,function(){i(this.name,this.value)}) +else for(n in e)$(n,e[n],t,i) +return r.join("&")},Ae.fn.extend({serialize:function(){return Ae.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=Ae.prop(this,"elements") +return e?Ae.makeArray(e):this}).filter(function(){var e=this.type +return this.name&&!Ae(this).is(":disabled")&&Nt.test(this.nodeName)&&!Rt.test(e)&&(this.checked||!Qe.test(e))}).map(function(e,t){var n=Ae(this).val() +return null==n?null:Array.isArray(n)?Ae.map(n,function(e){return{name:t.name,value:e.replace(Ot,"\r\n")}}):{name:t.name,value:n.replace(Ot,"\r\n")}}).get()}}) +var Mt=/%20/g,Lt=/#.*$/,Dt=/([?&])_=[^&]*/,zt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Bt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ut={},qt={},Vt="*/".concat("*"),Wt=se.createElement("a") +Wt.href=Et.href,Ae.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:Ft.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":Ae.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?ne(ne(e,Ae.ajaxSettings),t):ne(Ae.ajaxSettings,e)},ajaxPrefilter:ee(Ut),ajaxTransport:ee(qt),ajax:function(t,n){function r(t,n,r,a){var c,d,p,C,A,_=n +l||(l=!0,u&&e.clearTimeout(u),i=void 0,s=a||"",I.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(C=re(f,I,r)),C=ie(f,C,I,c),c?(f.ifModified&&(A=I.getResponseHeader("Last-Modified"),A&&(Ae.lastModified[o]=A),(A=I.getResponseHeader("etag"))&&(Ae.etag[o]=A)),204===t||"HEAD"===f.type?_="nocontent":304===t?_="notmodified":(_=C.state,d=C.data,p=C.error,c=!p)):(p=_,!t&&_||(_="error",t<0&&(t=0))),I.status=t,I.statusText=(n||_)+"",c?v.resolveWith(g,[d,_,I]):v.rejectWith(g,[I,_,p]),I.statusCode(b),b=void 0,h&&m.trigger(c?"ajaxSuccess":"ajaxError",[I,f,c?d:p]),y.fireWith(g,[I,_]),h&&(m.trigger("ajaxComplete",[I,f]),--Ae.active||Ae.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{} +var i,o,s,a,u,c,l,h,d,p,f=Ae.ajaxSetup({},n),g=f.context||f,m=f.context&&(g.nodeType||g.jquery)?Ae(g):Ae.event,v=Ae.Deferred(),y=Ae.Callbacks("once memory"),b=f.statusCode||{},C={},A={},_="canceled",I={readyState:0,getResponseHeader:function(e){var t +if(l){if(!a)for(a={};t=zt.exec(s);)a[t[1].toLowerCase()]=t[2] +t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=A[e.toLowerCase()]=A[e.toLowerCase()]||e,C[e]=t),this},overrideMimeType:function(e){return null==l&&(f.mimeType=e),this},statusCode:function(e){var t +if(e)if(l)I.always(e[I.status]) +else for(t in e)b[t]=[b[t],e[t]] +return this},abort:function(e){var t=e||_ +return i&&i.abort(t),r(0,t),this}} +if(v.promise(I),f.url=((t||f.url||Et.href)+"").replace(Ht,Et.protocol+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(Oe)||[""],null==f.crossDomain){c=se.createElement("a") +try{c.href=f.url,c.href=c.href,f.crossDomain=Wt.protocol+"//"+Wt.host!=c.protocol+"//"+c.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=Ae.param(f.data,f.traditional)),te(Ut,f,n,I),l)return I +h=Ae.event&&f.global,h&&0==Ae.active++&&Ae.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Bt.test(f.type),o=f.url.replace(Lt,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(Mt,"+")):(p=f.url.slice(o.length),f.data&&(f.processData||"string"==typeof f.data)&&(o+=(Tt.test(o)?"&":"?")+f.data,delete f.data),!1===f.cache&&(o=o.replace(Dt,"$1"),p=(Tt.test(o)?"&":"?")+"_="+St+++p),f.url=o+p),f.ifModified&&(Ae.lastModified[o]&&I.setRequestHeader("If-Modified-Since",Ae.lastModified[o]),Ae.etag[o]&&I.setRequestHeader("If-None-Match",Ae.etag[o])),(f.data&&f.hasContent&&!1!==f.contentType||n.contentType)&&I.setRequestHeader("Content-Type",f.contentType),I.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Vt+"; q=0.01":""):f.accepts["*"]) +for(d in f.headers)I.setRequestHeader(d,f.headers[d]) +if(f.beforeSend&&(!1===f.beforeSend.call(g,I,f)||l))return I.abort() +if(_="abort",y.add(f.complete),I.done(f.success),I.fail(f.error),i=te(qt,f,n,I)){if(I.readyState=1,h&&m.trigger("ajaxSend",[I,f]),l)return I +f.async&&f.timeout>0&&(u=e.setTimeout(function(){I.abort("timeout")},f.timeout)) +try{l=!1,i.send(C,r)}catch(e){if(l)throw e +r(-1,e)}}else r(-1,"No Transport") +return I},getJSON:function(e,t,n){return Ae.get(e,t,n,"json")},getScript:function(e,t){return Ae.get(e,void 0,t,"script")}}),Ae.each(["get","post"],function(e,t){Ae[t]=function(e,n,r,i){return ye(n)&&(i=i||r,r=n,n=void 0),Ae.ajax(Ae.extend({url:e,type:t,dataType:i,data:n,success:r},Ae.isPlainObject(e)&&e))}}),Ae._evalUrl=function(e){return Ae.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},Ae.fn.extend({wrapAll:function(e){var t +return this[0]&&(ye(e)&&(e=e.call(this[0])),t=Ae(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 ye(e)?this.each(function(t){Ae(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Ae(this),n=t.contents() +n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ye(e) +return this.each(function(n){Ae(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){Ae(this).replaceWith(this.childNodes)}),this}}),Ae.expr.pseudos.hidden=function(e){return!Ae.expr.pseudos.visible(e)},Ae.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},Ae.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}} +var Gt={0:200,1223:204},Yt=Ae.ajaxSettings.xhr() +ve.cors=!!Yt&&"withCredentials"in Yt,ve.ajax=Yt=!!Yt,Ae.ajaxTransport(function(t){var n,r +if(ve.cors||Yt&&!t.crossDomain)return{send:function(i,o){var s,a=t.xhr() +if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s] +t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest") +for(s in i)a.setRequestHeader(s,i[s]) +n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Gt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=a.ontimeout=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort") +try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),Ae.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),Ae.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return Ae.globalEval(e),e}}}),Ae.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),Ae.ajaxTransport("script",function(e){if(e.crossDomain){var t,n +return{send:function(r,i){t=Ae("<script>").prop({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)}),se.head.appendChild(t[0])},abort:function(){n&&n()}}}}) +var Kt=[],Qt=/(=)\?(?=&|$)|\?\?/ +Ae.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||Ae.expando+"_"+St++ +return this[e]=!0,e}}),Ae.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,s,a=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data") +if(a||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=ye(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(Tt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||Ae.error(i+" was not called"),s[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){s=arguments},r.always(function(){void 0===o?Ae(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Kt.push(i)),s&&ye(o)&&o(s[0]),s=o=void 0}),"script"}),ve.createHTMLDocument=function(){var e=se.implementation.createHTMLDocument("").body +return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),Ae.parseHTML=function(e,t,n){if("string"!=typeof e)return[] +"boolean"==typeof t&&(n=t,t=!1) +var r,i,o +return t||(ve.createHTMLDocument?(t=se.implementation.createHTMLDocument(""),r=t.createElement("base"),r.href=se.location.href,t.head.appendChild(r)):t=se),i=je.exec(e),o=!n&&[],i?[t.createElement(i[1])]:(i=I([e],t,o),o&&o.length&&Ae(o).remove(),Ae.merge([],i.childNodes))},Ae.fn.load=function(e,t,n){var r,i,o,s=this,a=e.indexOf(" ") +return a>-1&&(r=Z(e.slice(a)),e=e.slice(0,a)),ye(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),s.length>0&&Ae.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?Ae("<div>").append(Ae.parseHTML(e)).find(r):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},Ae.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){Ae.fn[t]=function(e){return this.on(t,e)}}),Ae.expr.pseudos.animated=function(e){return Ae.grep(Ae.timers,function(t){return e===t.elem}).length},Ae.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,c,l=Ae.css(e,"position"),h=Ae(e),d={} +"static"===l&&(e.style.position="relative"),a=h.offset(),o=Ae.css(e,"top"),u=Ae.css(e,"left"),c=("absolute"===l||"fixed"===l)&&(o+u).indexOf("auto")>-1,c?(r=h.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),ye(t)&&(t=t.call(e,n,Ae.extend({},a))),null!=t.top&&(d.top=t.top-a.top+s),null!=t.left&&(d.left=t.left-a.left+i),"using"in t?t.using.call(e,d):h.css(d)}},Ae.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){Ae.offset.setOffset(this,e,t)}) +var t,n,r=this[0] +if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0} +if("fixed"===Ae.css(r,"position"))t=r.getBoundingClientRect() +else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===Ae.css(e,"position");)e=e.parentNode +e&&e!==r&&1===e.nodeType&&(i=Ae(e).offset(),i.top+=Ae.css(e,"borderTopWidth",!0),i.left+=Ae.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-Ae.css(r,"marginTop",!0),left:t.left-i.left-Ae.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===Ae.css(e,"position");)e=e.offsetParent +return e||et})}}),Ae.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t +Ae.fn[e]=function(r){return Me(this,function(e,r,i){var o +if(be(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r] +o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),Ae.each(["top","left"],function(e,t){Ae.cssHooks[t]=L(ve.pixelPosition,function(e,n){if(n)return n=M(e,t),ut.test(n)?Ae(e).position()[t]+"px":n})}),Ae.each({Height:"height",Width:"width"},function(e,t){Ae.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){Ae.fn[r]=function(i,o){var s=arguments.length&&(n||"boolean"!=typeof i),a=n||(!0===i||!0===o?"margin":"border") +return Me(this,function(t,n,i){var o +return be(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?Ae.css(t,n,a):Ae.style(t,n,i,a)},t,s?i:void 0,s)}})}),Ae.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){Ae.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),Ae.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),Ae.fn.extend({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)}}),Ae.proxy=function(e,t){var n,r,i +if("string"==typeof t&&(n=e[t],t=e,e=n),ye(e))return r=ue.call(arguments,2),i=function(){return e.apply(t||this,r.concat(ue.call(arguments)))},i.guid=e.guid=e.guid||Ae.guid++,i},Ae.holdReady=function(e){e?Ae.readyWait++:Ae.ready(!0)},Ae.isArray=Array.isArray,Ae.parseJSON=JSON.parse,Ae.nodeName=o,Ae.isFunction=ye,Ae.isWindow=be,Ae.camelCase=f,Ae.type=r,Ae.now=Date.now,Ae.isNumeric=function(e){var t=Ae.type(e) +return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return Ae}) +var Zt=e.jQuery,Xt=e.$ +return Ae.noConflict=function(t){return e.$===Ae&&(e.$=Xt),t&&e.jQuery===Ae&&(e.jQuery=Zt),Ae},t||(e.jQuery=e.$=Ae),Ae}),function(){var e,t,n +mainContext=this,function(){function r(e,t){throw t?new Error("Could not find module "+e+" required by: "+t):new Error("Could not find module "+e)}function i(e,n){var a=e,u=o[a] +u||(a+="/index",u=o[a]) +var c=s[a] +if(void 0!==c)return c +c=s[a]={},u||r(e,n) +for(var l=u.deps,h=u.callback,d=new Array(l.length),p=0;p<l.length;p++)"exports"===l[p]?d[p]=c:"require"===l[p]?d[p]=t:d[p]=i(l[p],a) +return h.apply(this,d),c}if("undefined"==typeof window&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)||(n=this.Ember=this.Ember||{}),void 0===n&&(n={}),void 0===n.__loader){var o={},s={} +e=function(e,t,n){var r={} +n?(r.deps=t,r.callback=n):(r.deps=[],r.callback=t),o[e]=r},t=function(e){return i(e,null)},t.default=t,t.has=function(e){return!!o[e]||!!o[e+"/index"]},t._eak_seen=o,n.__loader={define:e,require:t,registry:o}}else e=n.__loader.define,t=n.__loader.require}(),e("@glimmer/encoder",["exports"],function(e){"use strict" +e.InstructionEncoder=void 0 +var t=function(){function e(e){this.buffer=e,this.typePos=0,this.size=0}return e.prototype.encode=function(e,t){var n,r +if(e>255)throw new Error("Opcode type over 8-bits. Got "+e+".") +for(this.buffer.push(e|t|arguments.length-2<<8),this.typePos=this.buffer.length-1,n=2;n<arguments.length;n++){if("number"==typeof(r=arguments[n])&&r>65535)throw new Error("Operand over 16-bits. Got "+r+".") +this.buffer.push(r)}this.size=this.buffer.length},e.prototype.patch=function(e,t){if(-1!==this.buffer[e+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.") +this.buffer[e+1]=t},e.prototype.patchWith=function(e,t,n){if(-1!==this.buffer[e+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.") +this.buffer[e+1]=t,this.buffer[e+2]=n},e}() +e.InstructionEncoder=t}),e("@glimmer/low-level",["exports"],function(e){"use strict" +function t(e){switch(7&e){case 0:return e>>3 +case 4:return-(e>>3) +default:throw new Error("unreachable")}}function n(e){return e<0?Math.abs(e)<<3|4:e<<3|0}e.Stack=e.Storage=void 0 +var r=function(){function e(){this.array=[],this.next=0}return e.prototype.add=function(e){var t,n=this.next,r=this.array +return n===r.length?this.next++:(t=r[n],this.next=t),this.array[n]=e,n},e.prototype.deref=function(e){return this.array[e]},e.prototype.drop=function(e){this.array[e]=this.next,this.next=e},e}(),i=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[] +this.vec=e}return e.prototype.clone=function(){return new e(this.vec.slice())},e.prototype.sliceFrom=function(t){return new e(this.vec.slice(t))},e.prototype.slice=function(t,n){return new e(this.vec.slice(t,n))},e.prototype.copy=function(e,t){this.vec[t]=this.vec[e]},e.prototype.writeRaw=function(e,t){this.vec[e]=t},e.prototype.writeSmi=function(e,t){this.vec[e]=n(t)},e.prototype.getRaw=function(e){return this.vec[e]},e.prototype.getSmi=function(e){return t(this.vec[e])},e.prototype.reset=function(){this.vec.length=0},e.prototype.len=function(){return this.vec.length},e}() +e.Storage=r,e.Stack=i}),e("@glimmer/node",["exports","ember-babel","@glimmer/runtime"],function(e,t,n){"use strict" +function r(e){var t=e.element,n=e.nextSibling +return null===n?t.lastChild:n.previousSibling}e.serializeBuilder=e.NodeDOMTreeConstruction=void 0 +var i=function(e){function r(n){return(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(r,e),r.prototype.setupUselessElement=function(){},r.prototype.insertHTMLBefore=function(e,t,r){var i=t?t.previousSibling:e.lastChild,o=this.document.createRawHTMLSection(r) +e.insertBefore(o,t) +var s=i?i.nextSibling:e.firstChild,a=t?t.previousSibling:e.lastChild +return new n.ConcreteBounds(e,s,a)},r.prototype.createElement=function(e){return this.document.createElement(e)},r.prototype.setAttribute=function(e,t,n){e.setAttribute(t,n)},r}(n.DOMTreeConstruction),o=function(e){function i(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments)) +return n.serializeBlockDepth=0,n}return(0,t.inherits)(i,e),i.prototype.__openBlock=function(){var t=this.serializeBlockDepth++ +this.__appendComment("%+b:"+t+"%"),e.prototype.__openBlock.call(this)},i.prototype.__closeBlock=function(){e.prototype.__closeBlock.call(this),this.__appendComment("%-b:"+--this.serializeBlockDepth+"%")},i.prototype.__appendHTML=function(t){var r,i=this.__appendComment("%glmr%") +"TABLE"===this.element.tagName&&(r=t.indexOf("<"))>-1&&"tr"===t.slice(r+1,r+3)&&(t="<tbody>"+t+"</tbody>"),""===t?this.__appendComment("% %"):e.prototype.__appendHTML.call(this,t) +var o=this.__appendComment("%glmr%") +return new n.ConcreteBounds(this.element,i,o)},i.prototype.__appendText=function(t){var n=r(this) +return""===t?this.__appendComment("% %"):(n&&3===n.nodeType&&this.__appendComment("%|%"),e.prototype.__appendText.call(this,t))},i.prototype.closeElement=function(){!0===this.element.needsExtraClose&&(this.element.needsExtraClose=!1,e.prototype.closeElement.call(this)),e.prototype.closeElement.call(this)},i.prototype.openElement=function(t){return"tr"===t&&"TBODY"!==this.element.tagName&&(this.openElement("tbody"),this.constructing.needsExtraClose=!0,this.flushElement()),e.prototype.openElement.call(this,t)},i.prototype.pushRemoteElement=function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=this.dom,o=i.createElement("script") +o.setAttribute("glmr",n),i.insertBefore(t,o,r),e.prototype.pushRemoteElement.call(this,t,n,r)},i}(n.NewElementBuilder) +e.NodeDOMTreeConstruction=i,e.serializeBuilder=function(e,t){return o.forInitialRender(e,t)}}),e("@glimmer/opcode-compiler",["exports","ember-utils","ember-babel","@glimmer/util","@glimmer/vm","@glimmer/wire-format","@glimmer/encoder","@glimmer/program"],function(e,t,n,r,i,o,s,a){"use strict" +function u(){if(b)return b +var e=b=new y +e.add(m.Text,function(e,t){t.text(e[1])}),e.add(m.Comment,function(e,t){t.comment(e[1])}),e.add(m.CloseElement,function(e,t){t.closeElement()}),e.add(m.FlushElement,function(e,t){t.flushElement()}),e.add(m.Modifier,function(e,t){var n=t.referrer,r=e[1],i=e[2],o=e[3],s=t.compiler.resolveModifier(r,n) +if(null===s)throw new Error("Compile Error "+r+" is not a modifier: Helpers may not be used in the element form.") +t.modifier(s,i,o)}),e.add(m.StaticAttr,function(e,t){var n=e[1],r=e[2],i=e[3] +t.staticAttr(n,i,r)}),e.add(m.DynamicAttr,function(e,t){c(e,!1,t)}),e.add(m.TrustingAttr,function(e,t){c(e,!0,t)}),e.add(m.OpenElement,function(e,t){t.openPrimitiveElement(e[1])}),e.add(m.OpenSplattedElement,function(e,t){t.setComponentAttrs(!0),t.putComponentOperations(),t.openPrimitiveElement(e[1])}),e.add(m.Component,function(e,t){var n,i,o,s=e[1],a=e[2],u=e[3],c=e[4],l=t.referrer,h=t.compiler.resolveLayoutForTag(s,l),d=h.handle,p=h.capabilities,f=h.compilable +if(null===d||null===p)throw new Error("Compile Error: Cannot find component "+s) +n=[[m.ClientSideStatement,g.SetComponentAttrs,!0]].concat(a,[[m.ClientSideStatement,g.SetComponentAttrs,!1]]),i=t.inlineBlock({statements:n,parameters:r.EMPTY_ARRAY}),o=t.template(c),f?(t.pushComponentDefinition(d),t.invokeStaticComponent(p,f,i,null,u,!1,o&&o)):(t.pushComponentDefinition(d),t.invokeComponent(p,i,null,u,!1,o&&o))}),e.add(m.Partial,function(e,t){var n=e[1],r=e[2],i=t.referrer +t.replayableIf({args:function(){return t.expr(n),t.dup(),2},ifTrue:function(){t.invokePartial(i,t.evalSymbols(),r),t.popScope(),t.popFrame()}})}),e.add(m.Yield,function(e,t){var n=e[1],r=e[2] +t.yield(n,r)}),e.add(m.AttrSplat,function(e,t){var n=e[1] +t.yield(n,[]),t.didCreateElement(i.Register.s0),t.setComponentAttrs(!1)}),e.add(m.Debugger,function(e,t){var n=e[1] +t.debugger(t.evalSymbols(),n)}),e.add(m.ClientSideStatement,function(e,n){t.compile(e,n)}),e.add(m.Append,function(e,t){var n=e[1],r=e[2] +!0!==(t.compileInline(e)||n)&&t.guardedAppend(n,r)}),e.add(m.Block,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=t.template(o),u=t.template(s) +t.compileBlock(n,r,i,a&&a,u&&u)}) +var t=new y(1) +return t.add(g.OpenComponentElement,function(e,t){t.putComponentOperations(),t.openPrimitiveElement(e[2])}),t.add(g.DidCreateElement,function(e,t){t.didCreateElement(i.Register.s0)}),t.add(g.SetComponentAttrs,function(e,t){t.setComponentAttrs(e[2])}),t.add(g.Debugger,function(){}),t.add(g.DidRenderLayout,function(e,t){t.didRenderLayout(i.Register.s0)}),e}function c(e,t,n){var r=e[1],i=e[2],o=e[3] +n.expr(i),o?n.dynamicAttr(r,o,t):n.dynamicAttr(r,null,t)}function l(){if(C)return C +var e=C=new y +return e.add(m.Unknown,function(e,t){var n=t.compiler,r=t.referrer,i=t.containingLayout.asPartial,o=e[1],s=n.resolveHelper(o,r) +null!==s?t.helper(s,null,null):i?t.resolveMaybeLocal(o):(t.getVariable(0),t.getProperty(o))}),e.add(m.Concat,function(e,t){var n,r=e[1] +for(n=0;n<r.length;n++)t.expr(r[n]) +t.concat(r.length)}),e.add(m.Helper,function(e,t){var n,r,i=t.compiler,o=t.referrer,s=e[1],a=e[2],u=e[3] +if("component"===s)return n=a[0],r=a.slice(1),void t.curryComponent(n,r,u,!0) +var c=i.resolveHelper(s,o) +if(null===c)throw new Error("Compile Error: "+s+" is not a helper") +t.helper(c,a,u)}),e.add(m.Get,function(e,t){var n,r=e[1],i=e[2] +for(t.getVariable(r),n=0;n<i.length;n++)t.getProperty(i[n])}),e.add(m.MaybeLocal,function(e,t){var n,r,i=e[1] +for(t.containingLayout.asPartial?(n=i[0],i=i.slice(1),t.resolveMaybeLocal(n)):t.getVariable(0),r=0;r<i.length;r++)t.getProperty(i[r])}),e.add(m.Undefined,function(e,t){return t.pushPrimitiveReference(void 0)}),e.add(m.HasBlock,function(e,t){t.hasBlock(e[1])}),e.add(m.HasBlockParams,function(e,t){t.hasBlockParams(e[1])}),e}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new _ +return e.add("if",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #if requires a single argument") +i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){i.invokeStaticBlock(n)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add("unless",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #unless requires a single argument") +i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){r&&i.invokeStaticBlock(r)},ifFalse:function(){i.invokeStaticBlock(n)}})}),e.add("with",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #with requires a single argument") +i.replayableIf({args:function(){return i.expr(e[0]),i.dup(),i.toBoolean(),2},ifTrue:function(){i.invokeStaticBlock(n,1)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add("each",function(e,t,n,r,o){o.replayable({args:function(){return t&&"key"===t[0][0]?o.expr(t[1][0]):o.pushPrimitiveReference(null),o.expr(e[0]),2},body:function(){o.putIterator(),o.jumpUnless("ELSE"),o.pushFrame(),o.dup(i.Register.fp,1),o.returnTo("ITER"),o.enterList("BODY"),o.label("ITER"),o.iterate("BREAK"),o.label("BODY"),o.invokeStaticBlock(n,2),o.pop(2),o.jump("FINALLY"),o.label("BREAK"),o.exitList(),o.popFrame(),o.jump("FINALLY"),o.label("ELSE"),r&&o.invokeStaticBlock(r)}})}),e.add("in-element",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #in-element requires a single argument") +i.replayableIf({args:function(){var n,r,o=t[0],s=t[1] +for(n=0;n<o.length;n++){if("nextSibling"!==(r=o[n])&&"guid"!==r)throw new Error("SYNTAX ERROR: #in-element does not take a `"+o[0]+"` option") +i.expr(s[n])}return i.expr(e[0]),i.dup(),4},ifTrue:function(){i.pushRemoteElement(),i.invokeStaticBlock(n),i.popRemoteElement()}})}),e.add("-with-dynamic-vars",function(e,t,n,r,i){var o,s +t?(o=t[0],s=t[1],i.compileParams(s),i.pushDynamicScope(),i.bindDynamicScope(o),i.invokeStaticBlock(n),i.popDynamicScope()):i.invokeStaticBlock(n)}),e.add("component",function(e,t,n,r,i){var o=e[0] +if("string"!=typeof o||!i.staticComponentHelper(e[0],t,n)){var s=e[0],a=e.slice(1) +i.dynamicComponent(s,a,t,!0,n,r)}}),t.add("component",function(e,t,n,r){var i=t&&t[0] +if("string"==typeof i&&r.staticComponentHelper(i,n,null))return!0 +var o=t[0],s=t.slice(1) +return r.dynamicComponent(o,s,n,!0,null,null),!0}),{blocks:e,inlines:t}}function d(e,t){var n,r=u() +for(n=0;n<e.length;n++)r.compile(e[n],t) +return t.commit()}function p(e,t){return new w(t,{block:{statements:e.block.statements,parameters:r.EMPTY_ARRAY},containingLayout:e})}function f(e){var t=e.id,n=e.meta,i=e.block,o=void 0,s=t||"client-"+L++ +return{id:s,meta:n,create:function(e,t){var a=t?(0,r.assign)({},t,n):n +return o||(o=JSON.parse(i)),new D(e,{id:s,block:o,referrer:a})}}}e.AbstractCompiler=e.compile=e.LazyCompiler=e.PLACEHOLDER_HANDLE=e.WrappedBuilder=e.logOpcode=e.debugSlice=e.debug=e.templateFactory=e.PartialDefinition=e.StdOpcodeBuilder=e.OpcodeBuilder=e.EagerOpcodeBuilder=e.LazyOpcodeBuilder=e.CompilableProgram=e.CompilableBlock=e.Macros=e.ATTRS_BLOCK=void 0 +var g;(function(e){e[e.OpenComponentElement=0]="OpenComponentElement",e[e.DidCreateElement=1]="DidCreateElement",e[e.SetComponentAttrs=2]="SetComponentAttrs",e[e.DidRenderLayout=3]="DidRenderLayout",e[e.Debugger=4]="Debugger"})(g||(g={})) +var m=o.Ops,v="&attrs",y=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0 +this.offset=e,this.names=(0,r.dict)(),this.funcs=[]}return e.prototype.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},e.prototype.compile=function(e,t){var n=e[this.offset],r=this.names[n];(0,this.funcs[r])(e,t)},e}(),b=void 0,C=void 0,A=function(){function e(){this.names=(0,r.dict)(),this.funcs=[]}return e.prototype.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},e.prototype.addMissing=function(e){this.missing=e},e.prototype.compile=function(e,t,n,r,i,o){var s=this.names[e] +void 0===s?(0,this.missing)(e,t,n,r,i,o):(0,this.funcs[s])(t,n,r,i,o)},e}(),_=function(){function e(){this.names=(0,r.dict)(),this.funcs=[]}return e.prototype.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},e.prototype.addMissing=function(e){this.missing=e},e.prototype.compile=function(e,t){var n,r,i,o,s=e[1] +if(!Array.isArray(s))return["expr",s] +var a=void 0,u=void 0,c=void 0 +if(s[0]===m.Helper)a=s[1],u=s[2],c=s[3] +else{if(s[0]!==m.Unknown)return["expr",s] +a=s[1],u=c=null}var l=this.names[a] +return void 0===l&&this.missing?(n=this.missing,r=n(a,u,c,t),!1===r?["expr",s]:r):void 0!==l?(i=this.funcs[l],o=i(a,u,c,t),!1===o?["expr",s]:o):["expr",s]},e}(),I=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled +this.compiled=-1 +var e=this.layout.block.statements +return this.compiled=this.compiler.add(e,this.layout)},(0,n.createClass)(e,[{key:"symbolTable",get:function(){return this.layout.block}}]),e}(),w=function(){function e(e,t){this.compiler=e,this.parsed=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled +this.compiled=-1 +var e=this.parsed,t=e.block.statements,n=e.containingLayout +return this.compiled=this.compiler.add(t,n)},(0,n.createClass)(e,[{key:"symbolTable",get:function(){return this.parsed.block}}]),e}(),x=function(){function e(e,t,n){this.main=e,this.trustingGuardedAppend=t,this.cautiousGuardedAppend=n}return e.compile=function(t){return new e(this.std(t,function(e){return e.main()}),this.std(t,function(e){return e.stdAppend(!0)}),this.std(t,function(e){return e.stdAppend(!1)}))},e.std=function(e,t){return T.build(e,t)},e.prototype.getAppend=function(e){return e?this.trustingGuardedAppend:this.cautiousGuardedAppend},e}(),k=function(){function e(e,t,n){this.macros=e,this.program=t,this.resolver=n,this.initialize()}return e.prototype.initialize=function(){this.stdLib=x.compile(this)},e.prototype.compileInline=function(e,t){return this.macros.inlines.compile(e,t)},e.prototype.compileBlock=function(e,t,n,r,i,o){this.macros.blocks.compile(e,t,n,r,i,o)},e.prototype.add=function(e,t){return d(e,this.builderFor(t))},e.prototype.commit=function(e,t){var n,r,i=this.program.heap,o=i.malloc() +for(n=0;n<t.length;n++)r=t[n],"function"==typeof r?i.pushPlaceholder(r):i.push(r) +return i.finishMalloc(o,e),o},e.prototype.resolveLayoutForTag=function(e,t){var n=this.resolver,r=n.lookupComponentDefinition(e,t) +return null===r?{handle:null,capabilities:null,compilable:null}:this.resolveLayoutForHandle(r)},e.prototype.resolveLayoutForHandle=function(e){var t=this.resolver,n=t.getCapabilities(e),r=null +return n.dynamicLayout||(r=t.getLayout(e)),{handle:e,capabilities:n,compilable:r}},e.prototype.resolveModifier=function(e,t){return this.resolver.lookupModifier(e,t)},e.prototype.resolveHelper=function(e,t){return this.resolver.lookupHelper(e,t)},(0,n.createClass)(e,[{key:"constants",get:function(){return this.program.constants}}]),e}(),j=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null +var n=t.block +this.symbolTable={hasEval:n.hasEval,symbols:n.symbols.concat([v])}}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled +var e=this.compiler,t=this.layout,n=e.builderFor(t) +n.startLabels(),n.fetch(i.Register.s1),n.getComponentTagName(i.Register.s0),n.primitiveReference(),n.dup(),n.load(i.Register.s1),n.jumpUnless("BODY"),n.fetch(i.Register.s1),n.putComponentOperations(),n.openDynamicElement(),n.didCreateElement(i.Register.s0),n.flushElement(),n.label("BODY"),n.invokeStaticBlock(p(t,e)),n.fetch(i.Register.s1),n.jumpUnless("END"),n.closeElement(),n.label("END"),n.load(i.Register.s1),n.stopLabels() +var r=n.commit() +return this.compiled=r},e}(),E=function(){function e(e){this.builder=e}return e.prototype.static=function(e,t){var n,r,i,o=t[0],s=t[1],a=t[2],u=t[3],c=this.builder +null!==e&&(n=c.compiler.resolveLayoutForHandle(e),r=n.capabilities,i=n.compilable,i?(c.pushComponentDefinition(e),c.invokeStaticComponent(r,i,null,o,s,!1,a,u)):(c.pushComponentDefinition(e),c.invokeComponent(r,null,o,s,!1,a,u)))},e}(),S=function(){function e(){this.labels=(0,r.dict)(),this.targets=[]}return e.prototype.label=function(e,t){this.labels[e]=t},e.prototype.target=function(e,t){this.targets.push({at:e,target:t})},e.prototype.patch=function(e){var t,n,r,i,o,s=this.targets,a=this.labels +for(t=0;t<s.length;t++)n=s[t],r=n.at,i=n.target,o=a[i]-r,e.patch(r,o)},e}(),T=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0 +this.size=t,this.encoder=new s.InstructionEncoder([]),this.labelsStack=new r.Stack,this.compiler=e}return e.build=function(t,n){var r=new e(t) +return n(r),r.commit()},e.prototype.push=function(e){switch(arguments.length){case 1:return this.encoder.encode(e,0) +case 2:return this.encoder.encode(e,0,arguments[1]) +case 3:return this.encoder.encode(e,0,arguments[1],arguments[2]) +default:return this.encoder.encode(e,0,arguments[1],arguments[2],arguments[3])}},e.prototype.pushMachine=function(e){switch(arguments.length){case 1:return this.encoder.encode(e,1024) +case 2:return this.encoder.encode(e,1024,arguments[1]) +case 3:return this.encoder.encode(e,1024,arguments[1],arguments[2]) +default:return this.encoder.encode(e,1024,arguments[1],arguments[2],arguments[3])}},e.prototype.commit=function(){return this.pushMachine(24),this.compiler.commit(this.size,this.encoder.buffer)},e.prototype.reserve=function(e){this.encoder.encode(e,0,-1)},e.prototype.reserveWithOperand=function(e,t){this.encoder.encode(e,0,-1,t)},e.prototype.reserveMachine=function(e){this.encoder.encode(e,1024,-1)},e.prototype.main=function(){this.push(68,i.Register.s0),this.invokePreparedComponent(!1,!1,!0)},e.prototype.appendHTML=function(){this.push(28)},e.prototype.appendSafeHTML=function(){this.push(29)},e.prototype.appendDocumentFragment=function(){this.push(30)},e.prototype.appendNode=function(){this.push(31)},e.prototype.appendText=function(){this.push(32)},e.prototype.beginComponentTransaction=function(){this.push(91)},e.prototype.commitComponentTransaction=function(){this.push(92)},e.prototype.pushDynamicScope=function(){this.push(44)},e.prototype.popDynamicScope=function(){this.push(45)},e.prototype.pushRemoteElement=function(){this.push(41)},e.prototype.popRemoteElement=function(){this.push(42)},e.prototype.pushRootScope=function(e,t){this.push(20,e,t?1:0)},e.prototype.pushVirtualRootScope=function(e){this.push(21,e)},e.prototype.pushChildScope=function(){this.push(22)},e.prototype.popScope=function(){this.push(23)},e.prototype.prepareArgs=function(e){this.push(79,e)},e.prototype.createComponent=function(e,t){this.push(81,0|t,e)},e.prototype.registerComponentDestructor=function(e){this.push(82,e)},e.prototype.putComponentOperations=function(){this.push(83)},e.prototype.getComponentSelf=function(e){this.push(84,e)},e.prototype.getComponentTagName=function(e){this.push(85,e)},e.prototype.getComponentLayout=function(e){this.push(86,e)},e.prototype.setupForEval=function(e){this.push(87,e)},e.prototype.invokeComponentLayout=function(e){this.push(90,e)},e.prototype.didCreateElement=function(e){this.push(93,e)},e.prototype.didRenderLayout=function(e){this.push(94,e)},e.prototype.pushFrame=function(){this.pushMachine(57)},e.prototype.popFrame=function(){this.pushMachine(58)},e.prototype.pushSmallFrame=function(){this.pushMachine(59)},e.prototype.popSmallFrame=function(){this.pushMachine(60)},e.prototype.invokeVirtual=function(){this.pushMachine(49)},e.prototype.invokeYield=function(){this.push(51)},e.prototype.toBoolean=function(){this.push(63)},e.prototype.invokePreparedComponent=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null +this.beginComponentTransaction(),this.pushDynamicScope(),this.createComponent(i.Register.s0,e),r&&r(),this.registerComponentDestructor(i.Register.s0),this.getComponentSelf(i.Register.s0),this.pushVirtualRootScope(i.Register.s0),this.setVariable(0),this.setupForEval(i.Register.s0),n&&this.setNamedVariables(i.Register.s0),t&&this.setBlocks(i.Register.s0),this.pop(),this.invokeComponentLayout(i.Register.s0),this.didRenderLayout(i.Register.s0),this.popFrame(),this.popScope(),this.popDynamicScope(),this.commitComponentTransaction()},e.prototype.compileInline=function(e){return this.compiler.compileInline(e,this)},e.prototype.compileBlock=function(e,t,n,r,i){this.compiler.compileBlock(e,t,n,r,i,this)},e.prototype.label=function(e){this.labels.label(e,this.nextPos)},e.prototype.startLabels=function(){this.labelsStack.push(new S)},e.prototype.stopLabels=function(){this.labelsStack.pop().patch(this.encoder)},e.prototype.pushCurriedComponent=function(){this.push(74)},e.prototype.pushDynamicComponentInstance=function(){this.push(73)},e.prototype.openDynamicElement=function(){this.push(34)},e.prototype.flushElement=function(){this.push(38)},e.prototype.closeElement=function(){this.push(39)},e.prototype.putIterator=function(){this.push(66)},e.prototype.enterList=function(e){this.reserve(64),this.labels.target(this.pos,e)},e.prototype.exitList=function(){this.push(65)},e.prototype.iterate=function(e){this.reserve(67),this.labels.target(this.pos,e)},e.prototype.setNamedVariables=function(e){this.push(2,e)},e.prototype.setBlocks=function(e){this.push(3,e)},e.prototype.setVariable=function(e){this.push(4,e)},e.prototype.setBlock=function(e){this.push(5,e)},e.prototype.getVariable=function(e){this.push(6,e)},e.prototype.getBlock=function(e){this.push(8,e)},e.prototype.hasBlock=function(e){this.push(9,e)},e.prototype.concat=function(e){this.push(11,e)},e.prototype.load=function(e){this.push(18,e)},e.prototype.fetch=function(e){this.push(19,e)},e.prototype.dup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i.Register.sp,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0 +return this.push(16,e,t)},e.prototype.pop=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1 +return this.push(17,e)},e.prototype.returnTo=function(e){this.reserveMachine(25),this.labels.target(this.pos,e)},e.prototype.primitiveReference=function(){this.push(14)},e.prototype.reifyU32=function(){this.push(15)},e.prototype.enter=function(e){this.push(61,e)},e.prototype.exit=function(){this.push(62)},e.prototype.return=function(){this.pushMachine(24)},e.prototype.jump=function(e){this.reserveMachine(52),this.labels.target(this.pos,e)},e.prototype.jumpIf=function(e){this.reserve(53),this.labels.target(this.pos,e)},e.prototype.jumpUnless=function(e){this.reserve(54),this.labels.target(this.pos,e)},e.prototype.jumpEq=function(e,t){this.reserveWithOperand(55,e),this.labels.target(this.pos,t)},e.prototype.assertSame=function(){this.push(56)},e.prototype.pushEmptyArgs=function(){this.push(77)},e.prototype.switch=function(e,t){function n(e,t){s.push({match:e,callback:t,label:"CLAUSE"+a++})}var r,i,o=this,s=[],a=0 +for(t(n),this.enter(2),this.assertSame(),this.reifyU32(),this.startLabels(),s.slice(0,-1).forEach(function(e){return o.jumpEq(e.match,e.label)}),r=s.length-1;r>=0;r--)i=s[r],this.label(i.label),this.pop(2),i.callback(),0!==r&&this.jump("END") +this.label("END"),this.stopLabels(),this.exit()},e.prototype.stdAppend=function(e){var t=this +this.switch(this.contentType(),function(n){n(1,function(){e?(t.assertSame(),t.appendHTML()):t.appendText()}),n(0,function(){t.pushCurriedComponent(),t.pushDynamicComponentInstance(),t.invokeBareComponent()}),n(3,function(){t.assertSame(),t.appendSafeHTML()}),n(4,function(){t.assertSame(),t.appendDocumentFragment()}),n(5,function(){t.assertSame(),t.appendNode()})})},e.prototype.populateLayout=function(e){this.push(89,e)},e.prototype.invokeBareComponent=function(){var e=this +this.fetch(i.Register.s0),this.dup(i.Register.sp,1),this.load(i.Register.s0),this.pushFrame(),this.pushEmptyArgs(),this.prepareArgs(i.Register.s0),this.invokePreparedComponent(!1,!1,!0,function(){e.getComponentLayout(i.Register.s0),e.populateLayout(i.Register.s0)}),this.load(i.Register.s0)},e.prototype.isComponent=function(){this.push(69)},e.prototype.contentType=function(){this.push(70)},e.prototype.pushBlockScope=function(){this.push(47)},(0,n.createClass)(e,[{key:"pos",get:function(){return this.encoder.typePos}},{key:"nextPos",get:function(){return this.encoder.size}},{key:"labels",get:function(){return this.labelsStack.current}}]),e}(),P=function(e){function t(t,r){var i=(0,n.possibleConstructorReturn)(this,e.call(this,t,r?r.block.symbols.length:0)) +return i.containingLayout=r,i.component=new E(i),i.expressionCompiler=l(),i.isComponentAttrs=!1,i.constants=t.constants,i.stdLib=t.stdLib,i}return(0,n.inherits)(t,e),t.prototype.setComponentAttrs=function(e){this.isComponentAttrs=e},t.prototype.expr=function(e){Array.isArray(e)?this.expressionCompiler.compile(e,this):this.pushPrimitiveReference(e)},t.prototype.pushArgs=function(e,t){var n=this.constants.stringArray(e) +this.push(76,n,t)},t.prototype.pushYieldableBlock=function(e){this.pushSymbolTable(e&&e.symbolTable),this.pushBlockScope(),this.pushBlock(e)},t.prototype.curryComponent=function(e,t,n,r){var o=this.containingLayout.referrer +this.pushFrame(),this.compileArgs(t,n,null,r),this.push(80),this.expr(e),this.push(71,this.constants.serializable(o)),this.popFrame(),this.fetch(i.Register.v0)},t.prototype.pushSymbolTable=function(e){var t +e?(t=this.constants.serializable(e),this.push(48,t)):this.primitive(null)},t.prototype.invokeComponent=function(e,t,n,r,o,s){var a=this,u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,c=arguments[7] +this.fetch(i.Register.s0),this.dup(i.Register.sp,1),this.load(i.Register.s0),this.pushFrame() +var l=!0===e||e.prepareArgs||!(!r||0===r[0].length) +this.compileArgs(n,r,{main:s,else:u,attrs:t},o),this.prepareArgs(i.Register.s0),this.invokePreparedComponent(null!==s,!!(s||u||t),l,function(){c?(a.pushSymbolTable(c.symbolTable),a.pushLayout(c),a.resolveLayout()):a.getComponentLayout(i.Register.s0),a.populateLayout(i.Register.s0)}),this.load(i.Register.s0)},t.prototype.invokeStaticComponent=function(e,t,n,o,s,a,u){var c,l,h,d,p,f,g,m,y,b,C,A=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,_=t.symbolTable +if(_.hasEval||e.prepareArgs)return void this.invokeComponent(e,n,o,s,a,u,A,t) +this.fetch(i.Register.s0),this.dup(i.Register.sp,1),this.load(i.Register.s0) +var I=_.symbols +e.createArgs&&(this.pushFrame(),this.compileArgs(null,s,null,a)),this.beginComponentTransaction(),e.dynamicScope&&this.pushDynamicScope(),e.createInstance&&this.createComponent(i.Register.s0,null!==u),e.createArgs&&this.popFrame(),this.pushFrame(),this.registerComponentDestructor(i.Register.s0) +var w=[] +for(this.getComponentSelf(i.Register.s0),w.push({symbol:0,isBlock:!1}),c=0;c<I.length;c++)switch(l=I[c],l.charAt(0)){case"&":if(h=null,"&default"===l)h=u +else if("&inverse"===l)h=A +else{if(l!==v)throw(0,r.unreachable)() +h=n}h?(this.pushYieldableBlock(h),w.push({symbol:c+1,isBlock:!0})):(this.pushYieldableBlock(null),w.push({symbol:c+1,isBlock:!0})) +break +case"@":if(!s)break +d=s[0],p=s[1],f=l,a&&(f=l.slice(1)),g=d.indexOf(f),-1!==g&&(this.expr(p[g]),w.push({symbol:c+1,isBlock:!1}))}for(this.pushRootScope(I.length+1,!!(u||A||n)),m=w.length-1;m>=0;m--)y=w[m],b=y.symbol,C=y.isBlock,C?this.setBlock(b):this.setVariable(b) +this.invokeStatic(t),e.createInstance&&this.didRenderLayout(i.Register.s0),this.popFrame(),this.popScope(),e.dynamicScope&&this.popDynamicScope(),this.commitComponentTransaction(),this.load(i.Register.s0)},t.prototype.dynamicComponent=function(e,t,n,r,i){var o=this,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null +this.replayable({args:function(){return o.expr(e),o.dup(),2},body:function(){o.jumpUnless("ELSE"),o.resolveDynamicComponent(o.containingLayout.referrer),o.pushDynamicComponentInstance(),o.invokeComponent(!0,null,t,n,r,i,s),o.label("ELSE")}})},t.prototype.yield=function(e,t){this.compileArgs(t,null,null,!1),this.getBlock(e),this.resolveBlock(),this.invokeYield(),this.popScope(),this.popFrame()},t.prototype.guardedAppend=function(e,t){this.pushFrame(),this.expr(e),this.pushMachine(50,this.stdLib.getAppend(t)),this.popFrame()},t.prototype.invokeStaticBlock=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.symbolTable.parameters,o=r.length,s=Math.min(n,o) +if(this.pushFrame(),s)for(this.pushChildScope(),t=0;t<s;t++)this.dup(i.Register.fp,n-t),this.setVariable(r[t]) +this.pushBlock(e),this.resolveBlock(),this.invokeVirtual(),s&&this.popScope(),this.popFrame()},t.prototype.string=function(e){return this.constants.string(e)},t.prototype.names=function(e){var t,n,r=[] +for(t=0;t<e.length;t++)n=e[t],r[t]=this.constants.string(n) +return this.constants.array(r)},t.prototype.symbols=function(e){return this.constants.array(e)},t.prototype.primitive=function(e){var t=0,n=void 0 +switch(typeof e){case"number":e%1==0?e>-1?n=e:(n=this.constants.number(e),t=4):(n=this.constants.number(e),t=1) +break +case"string":n=this.string(e),t=2 +break +case"boolean":n=0|e,t=3 +break +case"object":n=2,t=3 +break +case"undefined":n=3,t=3 +break +default:throw new Error("Invalid primitive passed to pushPrimitive")}var r=this.sizeImmediate(n<<3|t,n) +this.push(13,r)},t.prototype.sizeImmediate=function(e,t){return e>=65535||e<0?this.constants.number(t)<<3|5:e},t.prototype.pushPrimitiveReference=function(e){this.primitive(e),this.primitiveReference()},t.prototype.pushComponentDefinition=function(e){this.push(72,this.constants.handle(e))},t.prototype.resolveDynamicComponent=function(e){this.push(75,this.constants.serializable(e))},t.prototype.staticComponentHelper=function(e,t,n){var r,i=this.compiler.resolveLayoutForTag(e,this.referrer),o=i.handle,s=i.capabilities,a=i.compilable +if(null!==o&&null!==s&&a){if(t)for(r=0;r<t.length;r+=2)t[r][0]="@"+t[r][0] +return this.pushComponentDefinition(o),this.invokeStaticComponent(s,a,null,null,t,!1,n&&n),!0}return!1},t.prototype.invokePartial=function(e,t,n){var r=this.constants.serializable(e),i=this.constants.stringArray(t),o=this.constants.array(n) +this.push(95,r,i,o)},t.prototype.resolveMaybeLocal=function(e){this.push(96,this.string(e))},t.prototype.debugger=function(e,t){this.push(97,this.constants.stringArray(e),this.constants.array(t))},t.prototype.text=function(e){this.push(26,this.constants.string(e))},t.prototype.openPrimitiveElement=function(e){this.push(33,this.constants.string(e))},t.prototype.modifier=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(40,this.constants.handle(e)),this.popFrame()},t.prototype.comment=function(e){var t=this.constants.string(e) +this.push(27,t)},t.prototype.dynamicAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0 +this.isComponentAttrs?this.push(37,r,!0===n?1:0,i):this.push(36,r,!0===n?1:0,i)},t.prototype.staticAttr=function(e,t,n){var r,i=this.constants.string(e),o=t?this.constants.string(t):0 +this.isComponentAttrs?(this.pushPrimitiveReference(n),this.push(37,i,1,o)):(r=this.constants.string(n),this.push(35,i,r,o))},t.prototype.hasBlockParams=function(e){this.getBlock(e),this.resolveBlock(),this.push(10)},t.prototype.getProperty=function(e){this.push(7,this.string(e))},t.prototype.helper=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(1,this.constants.handle(e)),this.popFrame(),this.fetch(i.Register.v0)},t.prototype.bindDynamicScope=function(e){this.push(43,this.names(e))},t.prototype.replayable=function(e){var t=e.args,n=e.body +this.startLabels(),this.pushFrame(),this.returnTo("ENDINITIAL") +var r=t() +this.enter(r),n(),this.label("FINALLY"),this.exit(),this.return(),this.label("ENDINITIAL"),this.popFrame(),this.stopLabels()},t.prototype.replayableIf=function(e){var t=this,n=e.args,r=e.ifTrue,i=e.ifFalse +this.replayable({args:n,body:function(){t.jumpUnless("ELSE"),r(),t.jump("FINALLY"),t.label("ELSE"),i&&i()}})},t.prototype.inlineBlock=function(e){return new w(this.compiler,{block:e,containingLayout:this.containingLayout})},t.prototype.evalSymbols=function(){var e=this.containingLayout.block +return e.hasEval?e.symbols:null},t.prototype.compileParams=function(e){var t +if(!e)return 0 +for(t=0;t<e.length;t++)this.expr(e[t]) +return e.length},t.prototype.compileArgs=function(e,t,n,i){n&&(this.pushYieldableBlock(n.main),this.pushYieldableBlock(n.else),this.pushYieldableBlock(n.attrs)) +var o,s,a=this.compileParams(e),u=a<<4 +i&&(u|=8),n&&(u|=7) +var c=r.EMPTY_ARRAY +if(t)for(c=t[0],o=t[1],s=0;s<o.length;s++)this.expr(o[s]) +this.pushArgs(c,u)},t.prototype.template=function(e){return e?this.inlineBlock(e):null},(0,n.createClass)(t,[{key:"referrer",get:function(){return this.containingLayout&&this.containingLayout.referrer}}]),t}(T),O=function(e){function t(){return(0,n.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,n.inherits)(t,e),t.prototype.pushBlock=function(e){e?this.pushOther(e):this.primitive(null)},t.prototype.resolveBlock=function(){this.push(46)},t.prototype.pushLayout=function(e){e?this.pushOther(e):this.primitive(null)},t.prototype.resolveLayout=function(){this.push(46)},t.prototype.invokeStatic=function(e){this.pushOther(e),this.push(46),this.pushMachine(49)},t.prototype.pushOther=function(e){this.push(12,this.other(e))},t.prototype.other=function(e){return this.constants.other(e)},t}(P),R=function(e){function t(){return(0,n.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,n.inherits)(t,e),t.prototype.pushBlock=function(e){var t=e?e.compile():null +this.primitive(t)},t.prototype.resolveBlock=function(){},t.prototype.pushLayout=function(e){e?this.primitive(e.compile()):this.primitive(null)},t.prototype.resolveLayout=function(){},t.prototype.invokeStatic=function(e){var t=e.compile();-1===t?this.pushMachine(50,function(){return e.compile()}):this.pushMachine(50,t)},t}(P),N=function(e){function t(t,r,i){var o=new a.LazyConstants(r),s=new a.Program(o) +return(0,n.possibleConstructorReturn)(this,e.call(this,i,s,t))}return(0,n.inherits)(t,e),t.prototype.builderFor=function(e){return new O(this,e)},t}(k),M=function(){function e(e,t){this.name=e,this.template=t}return e.prototype.getPartial=function(){var e=this.template.asPartial(),t=e.compile() +return{symbolTable:e.symbolTable,handle:t}},e}(),L=0,D=function(){function e(e,t){this.compiler=e,this.parsedLayout=t,this.layout=null,this.partial=null,this.wrappedLayout=null +var n=t.block +this.symbols=n.symbols,this.hasEval=n.hasEval,this.referrer=t.referrer,this.id=t.id||"client-"+L++}return e.prototype.asLayout=function(){return this.layout?this.layout:this.layout=new I(this.compiler,(0,t.assign)({},this.parsedLayout,{asPartial:!1}))},e.prototype.asPartial=function(){return this.partial?this.partial:this.layout=new I(this.compiler,(0,t.assign)({},this.parsedLayout,{asPartial:!0}))},e.prototype.asWrappedLayout=function(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new j(this.compiler,(0,t.assign)({},this.parsedLayout,{asPartial:!1}))},e}() +e.ATTRS_BLOCK=v,e.Macros=function(){var e=h(),t=e.blocks,n=e.inlines +this.blocks=t,this.inlines=n},e.CompilableBlock=w,e.CompilableProgram=I,e.LazyOpcodeBuilder=O,e.EagerOpcodeBuilder=R,e.OpcodeBuilder=P,e.StdOpcodeBuilder=T,e.PartialDefinition=M,e.templateFactory=f,e.debug=function(e,t,n){for(i=arguments.length,o=Array(i>3?i-3:0),s=3;s<i;s++)o[s-3]=arguments[s] +var i,o,s +throw(0,r.unreachable)("Missing Opcode Metadata for "+n)},e.debugSlice=function(){},e.logOpcode=function(e,t){var n,r=e +return t&&(n=Object.keys(t).map(function(e){return" "+e+"="+void t[e]}).join(""),r+=n),"("+r+")"},e.WrappedBuilder=j,e.PLACEHOLDER_HANDLE=-1,e.LazyCompiler=N,e.compile=d,e.AbstractCompiler=k}),e("@glimmer/program",["exports","ember-babel","@glimmer/util"],function(e,t){"use strict" +function n(e,t,n){return e|t<<16|n<<30}function r(e,t){return e|t<<30}function i(e,t,n){if(void 0!==e.slice)return e.slice(t,n) +for(var r=new Uint16Array(n);t<n;t++)r[t]=e[t] +return r}e.Opcode=e.Program=e.RuntimeProgram=e.WriteOnlyProgram=e.Heap=e.LazyConstants=e.Constants=e.RuntimeConstants=e.WriteOnlyConstants=e.WELL_KNOWN_EMPTY_ARRAY_POSITION=void 0 +var o={},s=Object.freeze([]),a=function(){function e(){this.strings=[],this.arrays=[s],this.tables=[],this.handles=[],this.resolved=[],this.numbers=[]}return e.prototype.string=function(e){var t=this.strings.indexOf(e) +return t>-1?t:this.strings.push(e)-1},e.prototype.stringArray=function(e){var t,n=new Array(e.length) +for(t=0;t<e.length;t++)n[t]=this.string(e[t]) +return this.array(n)},e.prototype.array=function(e){if(0===e.length)return 0 +var t=this.arrays.indexOf(e) +return t>-1?t:this.arrays.push(e)-1},e.prototype.handle=function(e){var t=this.handles.indexOf(e) +return t>-1?t:(this.resolved.push(o),this.handles.push(e)-1)},e.prototype.serializable=function(e){var t=JSON.stringify(e),n=this.strings.indexOf(t) +return n>-1?n:this.strings.push(t)-1},e.prototype.number=function(e){var t=this.numbers.indexOf(e) +return t>-1?t:this.numbers.push(e)-1},e.prototype.toPool=function(){return{strings:this.strings,arrays:this.arrays,handles:this.handles,numbers:this.numbers}},e}(),u=function(){function e(e,t){this.resolver=e,this.strings=t.strings,this.arrays=t.arrays,this.handles=t.handles,this.resolved=this.handles.map(function(){return o}),this.numbers=t.numbers}return e.prototype.getString=function(e){return this.strings[e]},e.prototype.getNumber=function(e){return this.numbers[e]},e.prototype.getStringArray=function(e){var t,n,r=this.getArray(e),i=new Array(r.length) +for(t=0;t<r.length;t++)n=r[t],i[t]=this.getString(n) +return i},e.prototype.getArray=function(e){return this.arrays[e]},e.prototype.resolveHandle=function(e){var t,n=this.resolved[e] +return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},e.prototype.getSerializable=function(e){return JSON.parse(this.strings[e])},e}(),c=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.resolver=n,r&&(i.strings=r.strings,i.arrays=r.arrays,i.handles=r.handles,i.resolved=i.handles.map(function(){return o}),i.numbers=r.numbers),i}return(0,t.inherits)(n,e),n.prototype.getNumber=function(e){return this.numbers[e]},n.prototype.getString=function(e){return this.strings[e]},n.prototype.getStringArray=function(e){var t,n,r=this.getArray(e),i=new Array(r.length) +for(t=0;t<r.length;t++)n=r[t],i[t]=this.getString(n) +return i},n.prototype.getArray=function(e){return this.arrays[e]},n.prototype.resolveHandle=function(e){var t,n=this.resolved[e] +return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},n.prototype.getSerializable=function(e){return JSON.parse(this.strings[e])},n}(a),l=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments)) +return n.others=[],n.serializables=[],n}return(0,t.inherits)(n,e),n.prototype.serializable=function(e){var t=this.serializables.indexOf(e) +return t>-1?t:this.serializables.push(e)-1},n.prototype.getSerializable=function(e){return this.serializables[e]},n.prototype.getOther=function(e){return this.others[e-1]},n.prototype.other=function(e){return this.others.push(e)},n}(c),h=function(){function e(e){this.heap=e,this.offset=0}return(0,t.createClass)(e,[{key:"size",get:function(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}},{key:"isMachine",get:function(){return 1024&this.heap.getbyaddr(this.offset)}},{key:"type",get:function(){return 255&this.heap.getbyaddr(this.offset)}},{key:"op1",get:function(){return this.heap.getbyaddr(this.offset+1)}},{key:"op2",get:function(){return this.heap.getbyaddr(this.offset+2)}},{key:"op3",get:function(){return this.heap.getbyaddr(this.offset+3)}}]),e}(),d=1048576,p=function(){function e(e){var t,n,r +this.placeholders=[],this.offset=0,this.handle=0,this.capacity=d,e?(t=e.buffer,n=e.table,r=e.handle,this.heap=new Uint16Array(t),this.table=n,this.offset=this.heap.length,this.handle=r,this.capacity=0):(this.heap=new Uint16Array(d),this.table=[])}return e.prototype.push=function(e){this.sizeCheck(),this.heap[this.offset++]=e},e.prototype.sizeCheck=function(){var e +0===this.capacity&&(e=i(this.heap,0,this.offset),this.heap=new Uint16Array(e.length+d),this.heap.set(e,0),this.capacity=d),this.capacity--},e.prototype.getbyaddr=function(e){return this.heap[e]},e.prototype.setbyaddr=function(e,t){this.heap[e]=t},e.prototype.malloc=function(){this.table.push(this.offset,0) +var e=this.handle +return this.handle+=2,e},e.prototype.finishMalloc=function(e,t){var r=this.table[e],i=this.offset,o=n(i-r,t,0) +this.table[e+1]=o},e.prototype.size=function(){return this.offset},e.prototype.getaddr=function(e){return this.table[e]},e.prototype.gethandle=function(e){this.table.push(e,n(0,0,3)) +var t=this.handle +return this.handle+=2,t},e.prototype.sizeof=function(){return-1},e.prototype.scopesizeof=function(e){return(1073676288&this.table[e+1])>>16},e.prototype.free=function(e){var t=this.table[e+1] +this.table[e+1]=r(t,1)},e.prototype.compact=function(){var e,t,n,i,o,s,a=0,u=this.table,c=this.table.length,l=this.heap +for(e=0;e<c;e+=2)if(t=u[e],n=u[e+1],i=65535&n,2!==(o=-1&n))if(1===o)u[e+1]=r(n,2),a+=i +else if(0===o){for(s=t;s<=e+i;s++)l[s-a]=l[s] +u[e]=t-a}else 3===o&&(u[e]=t-a) +this.offset=this.offset-a},e.prototype.pushPlaceholder=function(e){this.sizeCheck() +var t=this.offset++ +this.heap[t]=65535,this.placeholders.push([t,e])},e.prototype.patchPlaceholders=function(){var e,t,n,r,i=this.placeholders +for(e=0;e<i.length;e++)t=i[e],n=t[0],r=t[1],this.setbyaddr(n,r())},e.prototype.capture=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.offset +this.patchPlaceholders() +var t=i(this.heap,0,e).buffer +return{handle:this.handle,table:this.table,buffer:t}},e}(),f=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new a,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new p +this.constants=e,this.heap=t,this._opcode=new h(this.heap)}return e.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},e}(),g=function(){function e(e,t){this.constants=e,this.heap=t,this._opcode=new h(this.heap)}return e.hydrate=function(t,n,r){var i=new p(t) +return new e(new u(r,n),i)},e.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},e}(),m=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n}(f) +e.WELL_KNOWN_EMPTY_ARRAY_POSITION=0,e.WriteOnlyConstants=a,e.RuntimeConstants=u,e.Constants=c,e.LazyConstants=l,e.Heap=p,e.WriteOnlyProgram=f,e.RuntimeProgram=g,e.Program=m,e.Opcode=h}),e("@glimmer/reference",["exports","ember-babel","@glimmer/util"],function(e,t,n){"use strict" +function r(e){var t=u.length +u.push(function(e){return e.value()}),c.push(function(e,t){return e.validate(t)}),e.id=t}function i(){f++}function o(e){switch(e.length){case 0:return h +case 1:return e[0] +case 2:return v.create(e[0],e[1]) +default:return y.create(e)}}e.isModified=e.ReferenceCache=e.map=e.CachedReference=e.UpdatableTag=e.CachedTag=e.combine=e.combineSlice=e.combineTagged=e.DirtyableTag=e.bump=e.isConstTag=e.isConst=e.CURRENT_TAG=e.VOLATILE_TAG=e.CONSTANT_TAG=e.TagWrapper=e.RevisionTag=e.VOLATILE=e.INITIAL=e.CONSTANT=e.IteratorSynchronizer=e.ReferenceIterator=e.IterationArtifacts=e.ListItem=e.ConstReference=void 0 +var s=1,a=function(){function e(){}return e.prototype.validate=function(e){return this.value()===e},e}() +a.id=0 +var u=[],c=[],l=function(){function e(e,t){this.type=e,this.inner=t}return e.prototype.value=function(){return(0,u[this.type])(this.inner)},e.prototype.validate=function(e){return(0,c[this.type])(this.inner,e)},e}() +u.push(function(){return 0}),c.push(function(e,t){return 0===t}) +var h=new l(0,null) +u.push(function(){return NaN}),c.push(function(e,t){return NaN===t}) +var d=new l(1,null) +u.push(function(){return f}),c.push(function(e,t){return t===f}) +var p=new l(2,null),f=s,g=function(e){function n(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=(0,t.possibleConstructorReturn)(this,e.call(this)) +return r.revision=n,r}return(0,t.inherits)(n,e),n.create=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f +return new l(this.id,new n(e))},n.prototype.value=function(){return this.revision},n.prototype.dirty=function(){this.revision=++f},n}(a) +r(g) +var m=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments)) +return n.lastChecked=null,n.lastValue=null,n}return(0,t.inherits)(n,e),n.prototype.value=function(){var e=this.lastChecked +this.lastValue +return e!==f&&(this.lastChecked=f,this.lastValue=this.compute()),this.lastValue},n.prototype.invalidate=function(){this.lastChecked=null},n}(a),v=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.first=n,i.second=r,i}return(0,t.inherits)(n,e),n.create=function(e,t){return new l(this.id,new n(e,t))},n.prototype.compute=function(){return Math.max(this.first.value(),this.second.value())},n}(m) +r(v) +var y=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this)) +return r.tags=n,r}return(0,t.inherits)(n,e),n.create=function(e){return new l(this.id,new n(e))},n.prototype.compute=function(){var e,t,n=this.tags,r=-1 +for(e=0;e<n.length;e++)t=n[e].value(),r=Math.max(t,r) +return r},n}(m) +r(y) +var b=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this)) +return r.tag=n,r.lastUpdated=s,r}return(0,t.inherits)(n,e),n.create=function(e){return new l(this.id,new n(e))},n.prototype.compute=function(){return Math.max(this.lastUpdated,this.tag.value())},n.prototype.update=function(e){e!==this.tag&&(this.tag=e,this.lastUpdated=f,this.invalidate())},n}(m) +r(b) +var C,A=function(){function e(){this.lastRevision=null,this.lastValue=null}return e.prototype.value=function(){var e=this.tag,t=this.lastRevision,n=this.lastValue +return null!==t&&e.validate(t)||(n=this.lastValue=this.compute(),this.lastRevision=e.value()),n},e.prototype.invalidate=function(){this.lastRevision=null},e}(),_=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.tag=n.tag,i.reference=n,i.mapper=r,i}return(0,t.inherits)(n,e),n.prototype.compute=function(){var e=this.reference +return(0,this.mapper)(e.value())},n}(A),I=function(){function e(e){this.lastValue=null,this.lastRevision=null,this.initialized=!1,this.tag=e.tag,this.reference=e}return e.prototype.peek=function(){return this.initialized?this.lastValue:this.initialize()},e.prototype.revalidate=function(){if(!this.initialized)return this.initialize() +var e=this.reference,t=this.lastRevision,n=e.tag +if(n.validate(t))return w +this.lastRevision=n.value() +var r=this.lastValue,i=e.value() +return i===r?w:(this.lastValue=i,i)},e.prototype.initialize=function(){var e=this.reference,t=this.lastValue=e.value() +return this.lastRevision=e.tag.value(),this.initialized=!0,t},e}(),w="adb3b78e-3d22-4e4b-877a-6317c2c5c145",x=function(){function e(e){this.inner=e,this.tag=h}return e.prototype.value=function(){return this.inner},e}(),k=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this,n.valueReferenceFor(r))) +return i.retained=!1,i.seen=!1,i.key=r.key,i.iterable=n,i.memo=n.memoReferenceFor(r),i}return(0,t.inherits)(n,e),n.prototype.update=function(e){this.retained=!0,this.iterable.updateValueReference(this.value,e),this.iterable.updateMemoReference(this.memo,e)},n.prototype.shouldRemove=function(){return!this.retained},n.prototype.reset=function(){this.retained=!1,this.seen=!1},n}(n.ListNode),j=function(){function e(e){this.iterator=null,this.map=(0,n.dict)(),this.list=new n.LinkedList,this.tag=e.tag,this.iterable=e}return e.prototype.isEmpty=function(){return(this.iterator=this.iterable.iterate()).isEmpty()},e.prototype.iterate=function(){var e=void 0 +return e=null===this.iterator?this.iterable.iterate():this.iterator,this.iterator=null,e},e.prototype.has=function(e){return!!this.map[e]},e.prototype.get=function(e){return this.map[e]},e.prototype.wasSeen=function(e){var t=this.map[e] +return void 0!==t&&t.seen},e.prototype.append=function(e){var t=this.map,n=this.list,r=this.iterable,i=t[e.key]=new k(r,e) +return n.append(i),i},e.prototype.insertBefore=function(e,t){var n=this.map,r=this.list,i=this.iterable,o=n[e.key]=new k(i,e) +return o.retained=!0,r.insertBefore(o,t),o},e.prototype.move=function(e,t){var n=this.list +e.retained=!0,n.remove(e),n.insertBefore(e,t)},e.prototype.remove=function(e){this.list.remove(e),delete this.map[e.key]},e.prototype.nextNode=function(e){return this.list.nextNode(e)},e.prototype.head=function(){return this.list.head()},e}(),E=function(){function e(e){this.iterator=null +var t=new j(e) +this.artifacts=t}return e.prototype.next=function(){var e=this.artifacts,t=this.iterator=this.iterator||e.iterate(),n=t.next() +return null===n?null:e.append(n)},e}();(function(e){e[e.Append=0]="Append",e[e.Prune=1]="Prune",e[e.Done=2]="Done"})(C||(C={})) +var S=function(){function e(e){var t=e.target,n=e.artifacts +this.target=t,this.artifacts=n,this.iterator=n.iterate(),this.current=n.head()}return e.prototype.sync=function(){for(var e=C.Append;;)switch(e){case C.Append:e=this.nextAppend() +break +case C.Prune:e=this.nextPrune() +break +case C.Done:return void this.nextDone()}},e.prototype.advanceToKey=function(e){for(var t=this.current,n=this.artifacts,r=t;null!==r&&r.key!==e;)r.seen=!0,r=n.nextNode(r) +null!==r&&(this.current=n.nextNode(r))},e.prototype.nextAppend=function(){var e=this.iterator,t=this.current,n=this.artifacts,r=e.next() +if(null===r)return this.startPrune() +var i=r.key +return null!==t&&t.key===i?this.nextRetain(r):n.has(i)?this.nextMove(r):this.nextInsert(r),C.Append},e.prototype.nextRetain=function(e){var t=this.artifacts,n=this.current +n=n,n.update(e),this.current=t.nextNode(n),this.target.retain(e.key,n.value,n.memo)},e.prototype.nextMove=function(e){var t=this.current,n=this.artifacts,r=this.target,i=e.key,o=n.get(e.key) +o.update(e),n.wasSeen(e.key)?(n.move(o,t),r.move(o.key,o.value,o.memo,t?t.key:null)):this.advanceToKey(i)},e.prototype.nextInsert=function(e){var t=this.artifacts,n=this.target,r=this.current,i=t.insertBefore(e,r) +n.insert(i.key,i.value,i.memo,r?r.key:null)},e.prototype.startPrune=function(){return this.current=this.artifacts.head(),C.Prune},e.prototype.nextPrune=function(){var e=this.artifacts,t=this.target,n=this.current +if(null===n)return C.Done +var r=n +return this.current=e.nextNode(r),r.shouldRemove()?(e.remove(r),t.delete(r.key)):r.reset(),C.Prune},e.prototype.nextDone=function(){this.target.done()},e}() +e.ConstReference=x,e.ListItem=k,e.IterationArtifacts=j,e.ReferenceIterator=E,e.IteratorSynchronizer=S,e.CONSTANT=0,e.INITIAL=s,e.VOLATILE=NaN,e.RevisionTag=a,e.TagWrapper=l,e.CONSTANT_TAG=h,e.VOLATILE_TAG=d,e.CURRENT_TAG=p,e.isConst=function(e){return e.tag===h},e.isConstTag=function(e){return e===h},e.bump=i,e.DirtyableTag=g,e.combineTagged=function(e){var t,n,r,i=[] +for(t=0,n=e.length;t<n;t++){if((r=e[t].tag)===d)return d +r!==h&&i.push(r)}return o(i)},e.combineSlice=function(e){for(var t,n=[],r=e.head();null!==r;){if((t=r.tag)===d)return d +t!==h&&n.push(t),r=e.nextNode(r)}return o(n)},e.combine=function(e){var t,n,r,i=[] +for(t=0,n=e.length;t<n;t++){if((r=e[t])===d)return d +r!==h&&i.push(r)}return o(i)},e.CachedTag=m,e.UpdatableTag=b,e.CachedReference=A,e.map=function(e,t){return new _(e,t)},e.ReferenceCache=I,e.isModified=function(e){return e!==w}}),e("@glimmer/runtime",["exports","ember-babel","@glimmer/util","@glimmer/reference","@glimmer/vm","@glimmer/low-level"],function(e,t,n,r,i,o){"use strict" +function s(e){return"function"!=typeof e.toString?"":String(e)}function a(e){return!(!e||!e[Ae])}function u(e){return e&&e[Ae]}function c(e){return h(e)?"":String(e)}function l(e){return g(e)||h(e)||"boolean"==typeof e||"number"==typeof e}function h(e){return null===e||void 0===e||"function"!=typeof e.toString}function d(e){return"object"==typeof e&&null!==e&&"function"==typeof e.toHTML}function p(e){return"object"==typeof e&&null!==e&&"number"==typeof e.nodeType}function f(e){return p(e)&&11===e.nodeType}function g(e){return"string"==typeof e}function m(e,t,n){return e.lookupComponentDefinition(t,n)}function v(e){return 0|(e.dynamicLayout?1:0)|(e.dynamicTag?2:0)|(e.prepareArgs?4:0)|(e.createArgs?8:0)|(e.attributeHook?16:0)|(e.elementHook?32:0)|(e.dynamicScope?64:0)|(e.createCaller?128:0)|(e.updateHook?256:0)|(e.createInstance?512:0)}function y(e,t){return!!(e&t)}function b(e,t,n){var r=e.definition=t.unwrap(n),i=r.manager,o=r.state +return e.manager=i,e.capabilities=v(i.getCapabilities(o)),r}function C(e){return!1===y(e,1)}function A(e){return!0===y(e,1)}function _(e,t,n,r,i){var o=n.table.symbols.indexOf(e),s=r.get(t);-1!==o&&i.scope().bindBlock(o+1,s),n.lookup&&(n.lookup[e]=s)}function I(e,t){console.info("Use `context`, and `get(<path>)` to debug this template."),t("this")}function w(e,t,n){return new He(e,t,n)}function x(e,t){return new Ue(e,t)}function k(e,t){for(var n,r=e.parentElement(),i=e.firstNode(),o=e.lastNode(),s=i;s;){if(n=s.nextSibling,r.insertBefore(s,t),s===o)return n +s=n}return null}function j(e){for(var t,n=e.parentElement(),r=e.firstNode(),i=e.lastNode(),o=r;o;){if(t=o.nextSibling,n.removeChild(o),o===i)return t +o=t}return null}function E(e,n,r){if(!e)return n +if(!T(e,r))return n +var i=e.createElement("div") +return function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.insertHTMLBefore=function(t,n,o){return null===o||""===o?e.prototype.insertHTMLBefore.call(this,t,n,o):t.namespaceURI!==r?e.prototype.insertHTMLBefore.call(this,t,n,o):S(t,i,o,n)},n}(n)}function S(e,t,n,r){t.innerHTML="<svg>"+n+"</svg>" +var i=R(t.firstChild,e,r),o=i[0],s=i[1] +return new He(e,o,s)}function T(e,t){var n=e.createElementNS(t,"svg") +try{n.insertAdjacentHTML("beforeend","<circle></circle>")}catch(e){}finally{return 1!==n.childNodes.length||"http://www.w3.org/2000/svg"!==n.firstChild.namespaceURI}}function P(e,n){return e&&O(e)?function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.uselessComment=n.createComment(""),r}return(0,t.inherits)(n,e),n.prototype.insertHTMLBefore=function(t,n,r){if(null===r)return e.prototype.insertHTMLBefore.call(this,t,n,r) +var i=!1,o=n?n.previousSibling:t.lastChild +o&&o instanceof Text&&(i=!0,t.insertBefore(this.uselessComment,n)) +var s=e.prototype.insertHTMLBefore.call(this,t,n,r) +return i&&t.removeChild(this.uselessComment),s},n}(n):n}function O(e){var t=e.createElement("div") +return t.innerHTML="first",t.insertAdjacentHTML("beforeend","second"),2!==t.childNodes.length}function R(e,t,n){for(var r=e.firstChild,i=null,o=r;o;)i=o,o=o.nextSibling,t.insertBefore(i,n) +return[r,i]}function N(e,t,n,r){var i=t,o=n,s=o?o.previousSibling:i.lastChild,a=void 0 +if(null===r||""===r)return new He(i,null,null) +null===o?(i.insertAdjacentHTML("beforeend",r),a=i.lastChild):o instanceof HTMLElement?(o.insertAdjacentHTML("beforebegin",r),a=o.previousSibling):(i.insertBefore(e,o),e.insertAdjacentHTML("beforebegin",r),a=e.previousSibling,i.removeChild(e)) +var u=s?s.nextSibling:i.firstChild +return new He(i,u,a)}function M(e,t){return-1!==e.indexOf(t)}function L(e,t){return(null===e||M(tt,e))&&M(rt,t)}function D(e,t){return null!==e&&(M(nt,e)&&M(it,t))}function z(e,t){return L(e,t)||D(e,t)}function F(e,t,n,r){var i,o=null +if(null===r||void 0===r)return r +if(d(r))return r.toHTML() +o=t?t.tagName.toUpperCase():null +var s=c(r) +return L(o,n)&&(i=e.protocolForURL(s),M(et,i))?"unsafe:"+s:D(o,n)?"unsafe:"+s:s}function B(e,t){var n,r=void 0,i=void 0 +return t in e?(i=t,r="prop"):(n=t.toLowerCase(),n in e?(r="prop",i=n):(r="attr",i=t)),"prop"!==r||"style"!==i.toLowerCase()&&!H(e.tagName,i)||(r="attr"),{normalized:i,type:r}}function H(e,t){var n=ot[e.toUpperCase()] +return n&&n[t.toLowerCase()]||!1}function U(e,t,n){var r=e.tagName,i=e.namespaceURI,o={element:e,name:t,namespace:n} +if(i===qe)return q(r,t,o) +var s=B(e,t),a=s.type,u=s.normalized +return"attr"===a?q(r,u,o):V(r,u,o)}function q(e,t,n){return z(e,t)?new lt(n):new at(n)}function V(e,t,n){return z(e,t)?new ct(t,n):G(e,t)?new ht(t,n):W(e,t)?new dt(t,n):new ut(t,n)}function W(e,t){return"OPTION"===e&&"selected"===t}function G(e,t){return("INPUT"===e||"TEXTAREA"===e)&&"value"===t}function Y(e){return!1===e||void 0===e||null===e||void 0===e.toString?null:!0===e?"":"function"==typeof e?null:String(e)}function K(e){if(null===e||void 0===e)return!0 +switch(typeof e){case"boolean":case"undefined":return!0 +case"number":return e%1==0&&!(Math.abs(e)>xt) +default:return!1}}function Q(e){return e<0?Math.abs(e)<<3|4:e<<3|0}function Z(e){switch(typeof e){case"number":return Q(e) +case"boolean":return e?11:3 +case"object":return 19 +case"undefined":return 27 +default:throw(0,n.unreachable)()}}function X(e){switch(7&e){case 0:return e>>3 +case 4:return-(e>>3) +default:throw(0,n.unreachable)()}}function J(e){switch(e){case 3:return!1 +case 11:return!0 +case 19:return null +case 27:return +default:return X(e)}}function $(e){return 3===e.nodeType}function ee(e){return 8===e.nodeType}function te(e){var t=e.nodeValue.match(/^%\+b:(\d+)%$/) +return t&&t[1]?Number(t[1]):null}function ne(e){var t=e.nodeValue.match(/^%\-b:(\d+)%$/) +return t&&t[1]?Number(t[1]):null}function re(e){return 1===e.nodeType}function ie(e){return 8===e.nodeType&&"%glmr%"===e.nodeValue}function oe(e){return 8===e.nodeType&&"%|%"===e.nodeValue}function se(e){return 8===e.nodeType&&"% %"===e.nodeValue}function ae(e,t){return e.namespaceURI===qe?e.tagName===t:e.tagName===t.toUpperCase()}function ue(e,t){var n,r +for(n=0;n<e.length;n++)if(r=e[n],r.name===t)return r}e.hasCapability=e.capabilityFlagsFrom=e.Cursor=e.ConcreteBounds=e.RehydrateBuilder=e.rehydrationBuilder=e.clientBuilder=e.NewElementBuilder=e.normalizeProperty=e.insertHTMLBefore=e.isWhitespace=e.DOMTreeConstruction=e.IDOMChanges=e.SVG_NAMESPACE=e.DOMChanges=e.curry=e.isCurriedComponentDefinition=e.CurriedComponentDefinition=e.MINIMAL_CAPABILITIES=e.DEFAULT_CAPABILITIES=e.DefaultEnvironment=e.Environment=e.Scope=e.EMPTY_ARGS=e.DynamicAttribute=e.SimpleDynamicAttribute=e.RenderResult=e.UpdatingVM=e.LowLevelVM=e.getDynamicVar=e.resetDebuggerCallback=e.setDebuggerCallback=e.ConditionalReference=e.PrimitiveReference=e.UNDEFINED_REFERENCE=e.NULL_REFERENCE=e.renderMain=void 0 +var ce=function(){function e(){this.evaluateOpcode=(0,n.fillNulls)(98).slice()}return e.prototype.add=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"syscall" +this.evaluateOpcode[e]={syscall:"syscall"===n,evaluate:t}},e.prototype.debugBefore=function(){return{sp:void 0,state:void 0}},e.prototype.debugAfter=function(e,t,n,r){r.sp,r.state},e.prototype.evaluate=function(e,t,n){var r=this.evaluateOpcode[n] +r.syscall?r.evaluate(e,t):r.evaluate(e.inner,t)},e}(),le=new ce,he=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments)) +return n.next=null,n.prev=null,n}return(0,t.inherits)(n,e),n}(function(){(0,n.initializeGuid)(this)}),de=function(e){function n(n){return(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n.create=function(e){return void 0===e?ge:null===e?me:!0===e?ve:!1===e?ye:"number"==typeof e?new fe(e):new pe(e)},n.prototype.get=function(){return ge},n}(r.ConstReference),pe=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments)) +return n.lengthReference=null,n}return(0,t.inherits)(n,e),n.prototype.get=function(t){var n +return"length"===t?(n=this.lengthReference,null===n&&(n=this.lengthReference=new fe(this.inner.length)),n):e.prototype.get.call(this,t)},n}(de),fe=function(e){function n(n){return(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n}(de),ge=new fe(void 0),me=new fe(null),ve=new fe(!0),ye=new fe(!1),be=function(){function e(e){this.inner=e,this.tag=e.tag}return e.prototype.value=function(){return this.toBool(this.inner.value())},e.prototype.toBool=function(e){return!!e},e}(),Ce=function(e){function n(n){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.parts=n,i.tag=(0,r.combineTagged)(n),i}return(0,t.inherits)(n,e),n.prototype.compute=function(){var e,t,n=new Array +for(e=0;e<this.parts.length;e++)null!==(t=this.parts[e].value())&&void 0!==t&&(n[e]=s(t)) +return n.length>0?n.join(""):null},n}(r.CachedReference) +le.add(1,function(e,t){var n=t.op1,r=e.stack,o=e.constants.resolveHandle(n),s=r.pop(),a=o(e,s) +e.loadValue(i.Register.v0,a)}),le.add(6,function(e,t){var n=t.op1,r=e.referenceForSymbol(n) +e.stack.push(r)}),le.add(4,function(e,t){var n=t.op1,r=e.stack.pop() +e.scope().bindSymbol(n,r)}),le.add(5,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=e.stack.pop(),s=o?[r,i,o]:null +e.scope().bindBlock(n,s)}),le.add(96,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.scope().getPartialMap(),o=i[r] +void 0===o&&(o=e.getSelf().get(r)),e.stack.push(o)}),le.add(20,function(e,t){var n=t.op1,r=t.op2 +e.pushRootScope(n,!!r)}),le.add(7,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.stack.pop() +e.stack.push(i.get(r))}),le.add(8,function(e,t){var n=t.op1,r=e.stack,i=e.scope().getBlock(n) +i?(r.push(i[2]),r.push(i[1]),r.push(i[0])):(r.push(null),r.push(null),r.push(null))}),le.add(9,function(e,t){var n=t.op1,r=!!e.scope().getBlock(n) +e.stack.push(r?ve:ye)}),le.add(10,function(e){e.stack.pop(),e.stack.pop() +var t=e.stack.pop(),n=t&&t.parameters.length +e.stack.push(n?ve:ye)}),le.add(11,function(e,t){var n,r,i=t.op1,o=new Array(i) +for(n=i;n>0;n--)r=n-1,o[r]=e.stack.pop() +e.stack.push(new Ce(o))}) +var Ae="CURRIED COMPONENT DEFINITION [id=6f00feb9-a0ef-4547-99ea-ac328f80acea]",_e=function(){function e(e,t){this.inner=e,this.args=t,this[Ae]=!0}return e.prototype.unwrap=function(e){e.realloc(this.offset) +for(var t,n,r,i=this;;){if(t=i,n=t.args,r=t.inner,n&&(e.positional.prepend(n.positional),e.named.merge(n.named)),!a(r))return r +i=r}},(0,t.createClass)(e,[{key:"offset",get:function(){var e=this.inner,t=this.args,n=t?t.positional.length:0 +return a(e)?n+e.offset:n}}]),e}(),Ie=function(e){function n(n,r,i){var o=(0,t.possibleConstructorReturn)(this,e.call(this)) +return o.node=n,o.reference=r,o.lastValue=i,o.type="dynamic-text",o.tag=r.tag,o.lastRevision=o.tag.value(),o}return(0,t.inherits)(n,e),n.prototype.evaluate=function(){var e=this.reference,t=this.tag +t.validate(this.lastRevision)||(this.lastRevision=t.value(),this.update(e.value()))},n.prototype.update=function(e){var t,n=this.lastValue +if(e!==n){var r=void 0 +r=h(e)?"":g(e)?e:String(e),r!==n&&(t=this.node,t.nodeValue=this.lastValue=r)}},n}(he),we=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.create=function(e){return new n(e)},n.prototype.toBool=function(e){return a(e)},n}(be),xe=function(){function e(e){this.inner=e,this.tag=e.tag}return e.prototype.value=function(){var e=this.inner.value() +return l(e)?1:u(e)?0:d(e)?3:f(e)?4:p(e)?5:1},e}() +le.add(28,function(e){var t=e.stack.pop(),n=t.value(),r=h(n)?"":String(n) +e.elements().appendDynamicHTML(r)}),le.add(29,function(e){var t=e.stack.pop(),n=t.value().toHTML(),r=h(n)?"":n +e.elements().appendDynamicHTML(r)}),le.add(32,function(e){var t=e.stack.pop(),n=t.value(),i=h(n)?"":String(n),o=e.elements().appendDynamicText(i);(0,r.isConst)(t)||e.updateWith(new Ie(o,t,i))}),le.add(30,function(e){var t=e.stack.pop(),n=t.value() +e.elements().appendDynamicFragment(n)}),le.add(31,function(e){var t=e.stack.pop(),n=t.value() +e.elements().appendDynamicNode(n)}),le.add(22,function(e){return e.pushChildScope()}),le.add(23,function(e){return e.popScope()}),le.add(44,function(e){return e.pushDynamicScope()}),le.add(45,function(e){return e.popDynamicScope()}),le.add(12,function(e,t){var n=t.op1 +e.stack.push(e.constants.getOther(n))}),le.add(13,function(e,t){var n=t.op1,r=e.stack,i=n>>3 +switch(7&n){case 0:r.push(i) +break +case 1:r.push(e.constants.getNumber(i)) +break +case 2:r.push(e.constants.getString(i)) +break +case 3:r.pushEncodedImmediate(n) +break +case 4:case 5:r.push(e.constants.getNumber(i))}}),le.add(14,function(e){var t=e.stack +t.push(de.create(t.pop()))}),le.add(15,function(e){var t=e.stack +t.push(t.peek().value())}),le.add(16,function(e,t){var n=t.op1,r=t.op2,i=e.fetchValue(n)-r +e.stack.dup(i)}),le.add(17,function(e,t){var n=t.op1 +e.stack.pop(n)}),le.add(18,function(e,t){var n=t.op1 +e.load(n)}),le.add(19,function(e,t){var n=t.op1 +e.fetch(n)}),le.add(43,function(e,t){var n=t.op1,r=e.constants.getArray(n) +e.bindDynamicScope(r)}),le.add(61,function(e,t){var n=t.op1 +e.enter(n)}),le.add(62,function(e){e.exit()}),le.add(48,function(e,t){var n=t.op1 +e.stack.push(e.constants.getSerializable(n))}),le.add(47,function(e){e.stack.push(e.scope())}),le.add(46,function(e){var t=e.stack,n=t.pop() +n?t.pushSmi(n.compile()):t.pushNull()}),le.add(51,function(e){var t,n,r,i=e.stack,o=i.pop(),s=i.pop(),a=i.pop(),u=i.pop() +if(null===a)return e.pushFrame(),void e.pushScope(s) +var c=s +if(t=a.parameters,(n=t.length)>0)for(c=c.child(),r=0;r<n;r++)c.bindSymbol(t[r],u.at(r)) +e.pushFrame(),e.pushScope(c),e.call(o)}),le.add(53,function(e,t){var n,i=t.op1,o=e.stack.pop();(0,r.isConst)(o)?o.value()&&e.goto(i):(n=new r.ReferenceCache(o),n.peek()&&e.goto(i),e.updateWith(new ke(n)))}),le.add(54,function(e,t){var n,i=t.op1,o=e.stack.pop();(0,r.isConst)(o)?o.value()||e.goto(i):(n=new r.ReferenceCache(o),n.peek()||e.goto(i),e.updateWith(new ke(n)))}),le.add(55,function(e,t){var n=t.op1,r=t.op2 +e.stack.peek()===r&&e.goto(n)}),le.add(56,function(e){var t=e.stack.peek();(0,r.isConst)(t)||e.updateWith(ke.initialize(new r.ReferenceCache(t)))}),le.add(63,function(e){var t=e.env,n=e.stack +n.push(t.toConditionalReference(n.pop()))}) +var ke=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this)) +return r.type="assert",r.tag=n.tag,r.cache=n,r}return(0,t.inherits)(n,e),n.initialize=function(e){var t=new n(e) +return e.peek(),t},n.prototype.evaluate=function(e){var t=this.cache;(0,r.isModified)(t.revalidate())&&e.throw()},n}(he),je=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.target=r,i.type="jump-if-not-modified",i.tag=n,i.lastRevision=n.value(),i}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.tag,n=this.target,r=this.lastRevision +!e.alwaysRevalidate&&t.validate(r)&&e.goto(n)},n.prototype.didModify=function(){this.lastRevision=this.tag.value()},n}(he),Ee=function(e){function n(n){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.target=n,i.type="did-modify",i.tag=r.CONSTANT_TAG,i}return(0,t.inherits)(n,e),n.prototype.evaluate=function(){this.target.didModify()},n}(he),Se=function(){function e(e){this.tag=r.CONSTANT_TAG,this.type="label",this.label=null,this.prev=null,this.next=null,(0,n.initializeGuid)(this),this.label=e}return e.prototype.evaluate=function(){},e.prototype.inspect=function(){return this.label+" ["+this._guid+"]"},e}() +le.add(26,function(e,t){var n=t.op1 +e.elements().appendText(e.constants.getString(n))}),le.add(27,function(e,t){var n=t.op1 +e.elements().appendComment(e.constants.getString(n))}),le.add(33,function(e,t){var n=t.op1 +e.elements().openElement(e.constants.getString(n))}),le.add(34,function(e){var t=e.stack.pop().value() +e.elements().openElement(t)}),le.add(41,function(e){var t,n,i=e.stack.pop(),o=e.stack.pop(),s=e.stack.pop(),a=void 0,u=void 0,c=s.value();(0,r.isConst)(i)?a=i.value():(t=new r.ReferenceCache(i),a=t.peek(),e.updateWith(new ke(t))),(0,r.isConst)(o)?u=o.value():(n=new r.ReferenceCache(o),u=n.peek(),e.updateWith(new ke(n))),e.elements().pushRemoteElement(a,c,u)}),le.add(42,function(e){e.elements().popRemoteElement()}),le.add(38,function(e){var t=e.fetchValue(i.Register.t0) +t&&(t.flush(e),e.loadValue(i.Register.t0,null)),e.elements().flushElement()}),le.add(39,function(e){e.elements().closeElement()}),le.add(40,function(e,t){var n=t.op1,i=e.constants.resolveHandle(n),o=e.stack,s=o.pop(),a=e.elements(),u=a.constructing,c=a.updateOperations,l=e.dynamicScope(),h=i.create(u,s,l,c) +e.env.scheduleInstallModifier(h,i) +var d=i.getDestructor(h) +d&&e.newDestroyable(d) +var p=i.getTag(h);(0,r.isConstTag)(p)||e.updateWith(new Te(p,i,h))}) +var Te=function(e){function n(n,r,i){var o=(0,t.possibleConstructorReturn)(this,e.call(this)) +return o.tag=n,o.manager=r,o.modifier=i,o.type="update-modifier",o.lastUpdated=n.value(),o}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.manager,n=this.modifier,r=this.tag,i=this.lastUpdated +r.validate(i)||(e.env.scheduleUpdateModifier(n,t),this.lastUpdated=r.value())},n}(he) +le.add(35,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),s=e.constants.getString(r),a=i?e.constants.getString(i):null +e.elements().setStaticAttribute(o,s,a)}),le.add(36,function(e,t){var n=t.op1,i=t.op2,o=t.op3,s=e.constants.getString(n),a=e.stack.pop(),u=a.value(),c=o?e.constants.getString(o):null,l=e.elements().setDynamicAttribute(s,u,!!i,c);(0,r.isConst)(a)||e.updateWith(new Pe(a,l))}) +var Pe=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this)) +return i.reference=n,i.attribute=r,i.type="patch-element",i.tag=n.tag,i.lastRevision=i.tag.value(),i}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.attribute,n=this.reference,r=this.tag +r.validate(this.lastRevision)||(this.lastRevision=r.value(),t.update(n.value(),e.env))},n}(he),Oe=function(){function e(e,t,n,r){this.inner=e,this.resolver=t,this.meta=n,this.args=r,this.tag=e.tag,this.lastValue=null,this.lastDefinition=null}return e.prototype.value=function(){var e,t,n=this.inner,r=this.lastValue,i=n.value() +if(i===r)return this.lastDefinition +var o=null +return a(i)?o=i:"string"==typeof i&&i&&(e=this.resolver,t=this.meta,o=m(e,i,t)),o=this.curry(o),this.lastValue=i,this.lastDefinition=o,o},e.prototype.get=function(){return ge},e.prototype.curry=function(e){var t=this.args +return!t&&a(e)?e:e?new _e(e,t):null},e}(),Re=function(){function e(e){this.list=e,this.tag=(0,r.combineTagged)(e),this.list=e}return e.prototype.value=function(){var e,t,n=[],r=this.list +for(t=0;t<r.length;t++)(e=c(r[t].value()))&&n.push(e) +return 0===n.length?null:n.join(" ")},e}() +le.add(69,function(e){var t=e.stack,n=t.pop() +t.push(we.create(n))}),le.add(70,function(e){var t=e.stack,n=t.peek() +t.push(new xe(n))}),le.add(71,function(e,t){var n=t.op1,r=e.stack,o=r.pop(),s=r.pop(),a=e.constants.getSerializable(n),u=e.constants.resolver +e.loadValue(i.Register.v0,new Oe(o,u,a,s))}),le.add(72,function(e,t){var n=t.op1,r=e.constants.resolveHandle(n),i=r.manager,o=v(i.getCapabilities(r.state)) +e.stack.push({definition:r,manager:i,capabilities:o,state:null,handle:null,table:null,lookup:null})}),le.add(75,function(e,t){var r,o,s=t.op1,u=e.stack,c=u.pop().value(),l=e.constants.getSerializable(s) +e.loadValue(i.Register.t1,null) +var h=void 0 +if("string"==typeof c)r=e.constants.resolver,o=m(r,c,l),h=o +else{if(!a(c))throw(0,n.unreachable)() +h=c}u.push(h)}),le.add(73,function(e){var t=e.stack,n=t.pop(),r=void 0,i=void 0 +a(n)?i=r=null:(i=n.manager,r=v(i.getCapabilities(n.state))),t.push({definition:n,capabilities:r,manager:i,state:null,handle:null,table:null})}),le.add(74,function(e,t){t.op1 +var r=e.stack,i=r.pop().value(),o=void 0 +if(!a(i))throw(0,n.unreachable)() +o=i,r.push(o)}),le.add(76,function(e,t){var n=t.op1,r=t.op2,i=e.stack,o=e.constants.getStringArray(n),s=[] +4&r&&s.push("main"),2&r&&s.push("else"),1&r&&s.push("attrs"),e.args.setup(i,o,s,r>>4,!!(8&r)),i.push(e.args)}),le.add(77,function(e){var t=e.stack +t.push(e.args.empty(t))}),le.add(80,function(e){var t=e.stack,n=t.pop(),r=n.capture() +t.push(r)}),le.add(79,function(e,t){var n,r,i,o,s,u,c,l=t.op1,h=e.stack,d=e.fetchValue(l),p=h.pop(),f=d.definition +a(f)&&(f=b(d,f,p)) +var g=f,m=g.manager,v=g.state +if(!0!==y(d.capabilities,4))return void h.push(p) +var C=p.blocks.values,A=p.blocks.names,_=m.prepareArgs(v,p) +if(_){for(p.clear(),n=0;n<C.length;n++)h.push(C[n]) +for(r=_.positional,i=_.named,o=r.length,s=0;s<o;s++)h.push(r[s]) +for(u=Object.keys(i),c=0;c<u.length;c++)h.push(i[u[c]]) +p.setup(h,u,A,o,!0)}h.push(p)}),le.add(81,function(e,t){var n=t.op1,i=t.op2,o=e.fetchValue(i),s=o.definition,a=o.manager,u=o.capabilities=v(a.getCapabilities(s.state)),c=null +y(u,64)&&(c=e.dynamicScope()) +var l=null +y(u,8)&&(l=e.stack.peek()) +var h=null +y(u,128)&&(h=e.getSelf()) +var d=a.create(e.env,s.state,l,c,h,!!(1&n)) +o.state=d +var p=a.getTag(d) +y(u,256)&&!(0,r.isConstTag)(p)&&e.updateWith(new Me(p,d,a,c))}),le.add(82,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,s=i.getDestructor(o) +s&&e.newDestroyable(s)}),le.add(91,function(e){e.beginCacheGroup(),e.elements().pushSimpleBlock()}),le.add(83,function(e){e.loadValue(i.Register.t0,new Ne)}),le.add(37,function(e,t){var n=t.op1,r=t.op2,o=t.op3,s=e.constants.getString(n),a=e.stack.pop(),u=o?e.constants.getString(o):null +e.fetchValue(i.Register.t0).setAttribute(s,a,!!r,u)}) +var Ne=function(){function e(){this.attributes=(0,n.dict)(),this.classes=[]}return e.prototype.setAttribute=function(e,t,n,r){"class"===e&&this.classes.push(t),this.attributes[e]={value:t,namespace:r,trusting:n}},e.prototype.flush=function(e){var t,n,i,o,s,a,u +for(var c in this.attributes){t=this.attributes[c] +var n=t.value,i=t.namespace,o=t.trusting +"class"===c&&(n=new Re(this.classes)),"type"!==c&&(s=e.elements().setDynamicAttribute(c,n.value(),o,i),(0,r.isConst)(n)||e.updateWith(new Pe(n,s)))}"type"in this.attributes&&(a=this.attributes.type,n=a.value,i=a.namespace,o=a.trusting,u=e.elements().setDynamicAttribute("type",n.value(),o,i),(0,r.isConst)(n)||e.updateWith(new Pe(n,u)))},e}() +le.add(93,function(e,t){var n=t.op1,r=e.fetchValue(n),o=r.definition,s=r.state,a=o.manager,u=e.fetchValue(i.Register.t0) +a.didCreateElement(s,e.elements().expectConstructing("DidCreateElementOpcode#evaluate"),u)}),le.add(84,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,s=i.manager +e.stack.push(s.getSelf(o))}),le.add(85,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,s=i.manager +e.stack.push(s.getTagName(o))}),le.add(86,function(e,t){var r=t.op1,i=e.fetchValue(r),o=i.manager,s=i.definition,a=e.constants.resolver,u=e.stack,c=i.state,l=i.capabilities,h=s.state,d=void 0 +if(C(l))d=o.getLayout(h,a) +else{if(!A(l))throw(0,n.unreachable)() +d=o.getDynamicLayout(c,a)}u.push(d.symbolTable),u.push(d.handle)}),le.add(68,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=r.manager,s=v(o.getCapabilities(r.state)),a={definition:r,manager:o,capabilities:s,state:null,handle:i.handle,table:i.symbolTable,lookup:null} +e.loadValue(n,a)}),le.add(89,function(e,t){var n=t.op1,r=e.stack,i=r.pop(),o=r.pop(),s=e.fetchValue(n) +s.handle=i,s.table=o}),le.add(21,function(e,t){var n=t.op1,r=e.fetchValue(n).table.symbols +e.pushRootScope(r.length+1,!0)}),le.add(87,function(e,t){var r,i=t.op1,o=e.fetchValue(i) +o.table.hasEval&&(r=o.lookup=(0,n.dict)(),e.scope().bindEvalScope(r))}),le.add(2,function(e,t){var n,r,i,o,s=t.op1,a=e.fetchValue(s),u=e.scope(),c=e.stack.peek(),l=c.named.atNames +for(n=l.length-1;n>=0;n--)r=l[n],i=a.table.symbols.indexOf(l[n]),o=c.named.get(r,!1),-1!==i&&u.bindSymbol(i+1,o),a.lookup&&(a.lookup[r]=o)}),le.add(3,function(e,t){var n=t.op1,r=e.fetchValue(n),i=e.stack.peek(),o=i.blocks +_("&attrs","attrs",r,o,e),_("&inverse","else",r,o,e),_("&default","main",r,o,e)}),le.add(90,function(e,t){var n=t.op1,r=e.fetchValue(n) +e.call(r.handle)}),le.add(94,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,s=e.elements().popBlock() +i.didRenderLayout(o,s),e.env.didCreate(o,i),e.updateWith(new Le(i,o,s))}),le.add(92,function(e){e.commitCacheGroup()}) +var Me=function(e){function n(n,r,i,o){var s=(0,t.possibleConstructorReturn)(this,e.call(this)) +return s.tag=n,s.component=r,s.manager=i,s.dynamicScope=o,s.type="update-component",s}return(0,t.inherits)(n,e),n.prototype.evaluate=function(){var e=this.component,t=this.manager,n=this.dynamicScope +t.update(e,n)},n}(he),Le=function(e){function n(n,i,o){var s=(0,t.possibleConstructorReturn)(this,e.call(this)) +return s.manager=n,s.component=i,s.bounds=o,s.type="did-update-layout",s.tag=r.CONSTANT_TAG,s}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.manager,n=this.component,r=this.bounds +t.didUpdateLayout(n,r),e.env.didUpdate(n,t)},n}(he),De=I,ze=function(){function e(e,t,r){var i,o,s,a +for(this.scope=e,this.locals=(0,n.dict)(),i=0;i<r.length;i++)o=r[i],s=t[o-1],a=e.getSymbol(o),this.locals[s]=a}return e.prototype.get=function(e){var t=this.scope,n=this.locals,r=e.split("."),i=e.split("."),o=i[0],s=i.slice(1),a=t.getEvalScope(),u=void 0 +return"this"===o?u=t.getSelf():n[o]?u=n[o]:0===o.indexOf("@")&&a[o]?u=a[o]:(u=this.scope.getSelf(),s=r),s.reduce(function(e,t){return e.get(t)},u)},e}() +le.add(97,function(e,t){var n=t.op1,r=t.op2,i=e.constants.getStringArray(n),o=e.constants.getArray(r),s=new ze(e.scope(),i,o) +De(e.getSelf().value(),function(e){return s.get(e).value()})}),le.add(95,function(e,t){var n,r,i,o,s,a,u,c,l,h,d,p,f,g=t.op1,m=t.op2,v=t.op3,y=e.constants,b=e.constants.resolver,C=e.stack,A=C.pop().value(),_=y.getSerializable(g),I=y.getStringArray(m),w=y.getArray(v),x=b.lookupPartial(A,_),k=b.resolve(x),j=k.getPartial(),E=j.symbolTable,S=j.handle +for(n=E.symbols,r=e.scope(),i=e.pushRootScope(n.length,!1),o=r.getEvalScope(),i.bindCallerScope(r.getCallerScope()),i.bindEvalScope(o),i.bindSelf(r.getSelf()),s=Object.create(r.getPartialMap()),a=0;a<w.length;a++)u=w[a],c=I[u-1],l=r.getSymbol(u),s[c]=l +if(o)for(h=0;h<n.length;h++)d=n[h],p=h+1,void 0!==(f=o[d])&&i.bind(p,f) +i.bindPartialMap(s),e.pushFrame(),e.call(S)}) +var Fe=function(){function e(e){this.tag=e.tag,this.artifacts=e}return e.prototype.value=function(){return!this.artifacts.isEmpty()},e}() +le.add(66,function(e){var t=e.stack,n=t.pop(),i=t.pop(),o=e.env.iterableFor(n,i.value()),s=new r.ReferenceIterator(o) +t.push(s),t.push(new Fe(s.artifacts))}),le.add(64,function(e,t){var n=t.op1 +e.enterList(n)}),le.add(65,function(e){e.exitList()}),le.add(67,function(e,t){var n,r=t.op1,i=e.stack,o=i.peek().next() +o?(n=e.iterate(o.memo,o.value),e.enterItem(o.key,n)):e.goto(r)}) +var Be=function(e,t){this.element=e,this.nextSibling=t},He=function(){function e(e,t,n){this.parentNode=e,this.first=t,this.last=n}return e.prototype.parentElement=function(){return this.parentNode},e.prototype.firstNode=function(){return this.first},e.prototype.lastNode=function(){return this.last},e}(),Ue=function(){function e(e,t){this.parentNode=e,this.node=t}return e.prototype.parentElement=function(){return this.parentNode},e.prototype.firstNode=function(){return this.node},e.prototype.lastNode=function(){return this.node},e}(),qe="http://www.w3.org/2000/svg",Ve={foreignObject:1,desc:1,title:1},We=Object.create(null);["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","main","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].forEach(function(e){return We[e]=1}) +var Ge,Ye=/[\t-\r \xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/,Ke="undefined"==typeof document?null:document,Qe=function(){function e(e){this.document=e,this.setupUselessElement()}return e.prototype.setupUselessElement=function(){this.uselessElement=this.document.createElement("div")},e.prototype.createElement=function(e,t){var n=void 0,r=void 0 +if(t?(n=t.namespaceURI===qe||"svg"===e,r=Ve[t.tagName]):(n="svg"===e,r=!1),n&&!r){if(We[e])throw new Error("Cannot create a "+e+" inside an SVG context") +return this.document.createElementNS(qe,e)}return this.document.createElement(e)},e.prototype.insertBefore=function(e,t,n){e.insertBefore(t,n)},e.prototype.insertHTMLBefore=function(e,t,n){return N(this.uselessElement,e,t,n)},e.prototype.createTextNode=function(e){return this.document.createTextNode(e)},e.prototype.createComment=function(e){return this.document.createComment(e)},e}();(function(e){var n=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.createElementNS=function(e,t){return this.document.createElementNS(e,t)},n.prototype.setAttribute=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null +r?e.setAttributeNS(r,t,n):e.setAttribute(t,n)},n}(Qe) +e.TreeConstruction=n +var r=n +r=P(Ke,r),r=E(Ke,r,qe),e.DOMTreeConstruction=r})(Ge||(Ge={})) +var Ze=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.document=n,r.namespace=null,r}return(0,t.inherits)(n,e),n.prototype.setAttribute=function(e,t,n){e.setAttribute(t,n)},n.prototype.removeAttribute=function(e,t){e.removeAttribute(t)},n.prototype.insertAfter=function(e,t,n){this.insertBefore(e,t,n.nextSibling)},n}(Qe),Xe=Ze +Xe=P(Ke,Xe),Xe=E(Ke,Xe,qe) +var Je=Xe,$e=Ge.DOMTreeConstruction,et=["javascript:","vbscript:"],tt=["A","BODY","LINK","IMG","IFRAME","BASE","FORM"],nt=["EMBED"],rt=["href","src","background","action"],it=["src"],ot={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},BUTTON:{form:!0}},st=function(e){this.attribute=e},at=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){var n,r,i,o=Y(t) +null!==o&&(n=this.attribute,r=n.name,i=n.namespace,e.__setAttribute(r,o,i))},n.prototype.update=function(e){var t=Y(e),n=this.attribute,r=n.element,i=n.name +null===t?r.removeAttribute(i):r.setAttribute(i,t)},n}(st),ut=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this,r)) +return i.normalizedName=n,i}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){null!==t&&void 0!==t&&(this.value=t,e.__setProperty(this.normalizedName,t))},n.prototype.update=function(e){var t=this.attribute.element +this.value!==e&&(t[this.normalizedName]=this.value=e,null!==e&&void 0!==e||this.removeAttribute())},n.prototype.removeAttribute=function(){var e=this.attribute,t=e.element,n=e.namespace +n?t.removeAttributeNS(n,this.normalizedName):t.removeAttribute(this.normalizedName)},n}(st),ct=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(t,n,r){var i=this.attribute,o=i.element,s=i.name,a=F(r,o,s,n) +e.prototype.set.call(this,t,a,r)},n.prototype.update=function(t,n){var r=this.attribute,i=r.element,o=r.name,s=F(n,i,o,t) +e.prototype.update.call(this,s,n)},n}(ut),lt=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(t,n,r){var i=this.attribute,o=i.element,s=i.name,a=F(r,o,s,n) +e.prototype.set.call(this,t,a,r)},n.prototype.update=function(t,n){var r=this.attribute,i=r.element,o=r.name,s=F(n,i,o,t) +e.prototype.update.call(this,s,n)},n}(at),ht=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){e.__setProperty("value",c(t))},n.prototype.update=function(e){var t=this.attribute.element,n=t.value,r=c(e) +n!==r&&(t.value=r)},n}(ut),dt=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){null!==t&&void 0!==t&&!1!==t&&e.__setProperty("selected",!0)},n.prototype.update=function(e){var t=this.attribute.element +t.selected=!!e},n}(ut),pt=function(){function e(e,t,n,r){this.slots=e,this.callerScope=t,this.evalScope=n,this.partialMap=r}return e.root=function(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new Array(r+1) +for(n=0;n<=r;n++)i[n]=ge +return new e(i,null,null,null).init({self:t})},e.sized=function(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=new Array(n+1) +for(t=0;t<=n;t++)r[t]=ge +return new e(r,null,null,null)},e.prototype.init=function(e){var t=e.self +return this.slots[0]=t,this},e.prototype.getSelf=function(){return this.get(0)},e.prototype.getSymbol=function(e){return this.get(e)},e.prototype.getBlock=function(e){var t=this.get(e) +return t===ge?null:t},e.prototype.getEvalScope=function(){return this.evalScope},e.prototype.getPartialMap=function(){return this.partialMap},e.prototype.bind=function(e,t){this.set(e,t)},e.prototype.bindSelf=function(e){this.set(0,e)},e.prototype.bindSymbol=function(e,t){this.set(e,t)},e.prototype.bindBlock=function(e,t){this.set(e,t)},e.prototype.bindEvalScope=function(e){this.evalScope=e},e.prototype.bindPartialMap=function(e){this.partialMap=e},e.prototype.bindCallerScope=function(e){this.callerScope=e},e.prototype.getCallerScope=function(){return this.callerScope},e.prototype.child=function(){return new e(this.slots.slice(),this.callerScope,this.evalScope,this.partialMap)},e.prototype.get=function(e){if(e>=this.slots.length)throw new RangeError("BUG: cannot get $"+e+" from scope; length="+this.slots.length) +return this.slots[e]},e.prototype.set=function(e,t){if(e>=this.slots.length)throw new RangeError("BUG: cannot get $"+e+" from scope; length="+this.slots.length) +this.slots[e]=t},e}(),ft=function(){function e(){this.scheduledInstallManagers=[],this.scheduledInstallModifiers=[],this.scheduledUpdateModifierManagers=[],this.scheduledUpdateModifiers=[],this.createdComponents=[],this.createdManagers=[],this.updatedComponents=[],this.updatedManagers=[],this.destructors=[]}return e.prototype.didCreate=function(e,t){this.createdComponents.push(e),this.createdManagers.push(t)},e.prototype.didUpdate=function(e,t){this.updatedComponents.push(e),this.updatedManagers.push(t)},e.prototype.scheduleInstallModifier=function(e,t){this.scheduledInstallManagers.push(t),this.scheduledInstallModifiers.push(e)},e.prototype.scheduleUpdateModifier=function(e,t){this.scheduledUpdateModifierManagers.push(t),this.scheduledUpdateModifiers.push(e)},e.prototype.didDestroy=function(e){this.destructors.push(e)},e.prototype.commit=function(){var e,t,n,r,i,o,s,a,u,c,l,h,d,p=this.createdComponents,f=this.createdManagers +for(e=0;e<p.length;e++)t=p[e],n=f[e],n.didCreate(t) +var g=this.updatedComponents,m=this.updatedManagers +for(r=0;r<g.length;r++)i=g[r],o=m[r],o.didUpdate(i) +var v=this.destructors +for(s=0;s<v.length;s++)v[s].destroy() +var y=this.scheduledInstallManagers,b=this.scheduledInstallModifiers +for(a=0;a<y.length;a++)u=y[a],c=b[a],u.install(c) +var C=this.scheduledUpdateModifierManagers,A=this.scheduledUpdateModifiers +for(l=0;l<C.length;l++)h=C[l],d=A[l],h.update(d)},e}(),gt=function(){function e(e){var t=e.appendOperations,n=e.updateOperations +this._transaction=null,this.appendOperations=t,this.updateOperations=n}return e.prototype.toConditionalReference=function(e){return new be(e)},e.prototype.getAppendOperations=function(){return this.appendOperations},e.prototype.getDOM=function(){return this.updateOperations},e.prototype.begin=function(){this._transaction=new ft},e.prototype.didCreate=function(e,t){this.transaction.didCreate(e,t)},e.prototype.didUpdate=function(e,t){this.transaction.didUpdate(e,t)},e.prototype.scheduleInstallModifier=function(e,t){this.transaction.scheduleInstallModifier(e,t)},e.prototype.scheduleUpdateModifier=function(e,t){this.transaction.scheduleUpdateModifier(e,t)},e.prototype.didDestroy=function(e){this.transaction.didDestroy(e)},e.prototype.commit=function(){var e=this.transaction +this._transaction=null,e.commit()},e.prototype.attributeFor=function(e,t){return U(e,t,arguments.length>3&&void 0!==arguments[3]?arguments[3]:null)},(0,t.createClass)(e,[{key:"transaction",get:function(){return this._transaction}}]),e}(),mt=function(e){function n(n){var r,i,o +return n||(r=window.document,i=new $e(r),o=new Ze(r),n={appendOperations:i,updateOperations:o}),(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n}(gt),vt=function(){function e(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:-1 +this.stack=e,this.heap=t,this.program=n,this.externs=r,this.pc=i,this.ra=o,this.currentOpSize=0}return e.prototype.pushFrame=function(){this.stack.pushSmi(this.ra),this.stack.pushSmi(this.stack.fp),this.stack.fp=this.stack.sp-1},e.prototype.popFrame=function(){this.stack.sp=this.stack.fp-1,this.ra=this.stack.getSmi(0),this.stack.fp=this.stack.getSmi(1)},e.prototype.pushSmallFrame=function(){this.stack.pushSmi(this.ra)},e.prototype.popSmallFrame=function(){this.ra=this.stack.popSmi()},e.prototype.goto=function(e){var t=this.pc+e-this.currentOpSize +this.pc=t},e.prototype.call=function(e){this.ra=this.pc,this.pc=this.heap.getaddr(e)},e.prototype.returnTo=function(e){var t=this.pc+e-this.currentOpSize +this.ra=t},e.prototype.return=function(){this.pc=this.ra},e.prototype.nextStatement=function(){var e=this.pc,t=this.program +if(-1===e)return null +var n=this.program.opcode(e),r=n.size,i=this.currentOpSize=r +return this.pc+=i,t.opcode(e)},e.prototype.evaluateOuter=function(e,t){this.evaluateInner(e,t)},e.prototype.evaluateInner=function(e,t){e.isMachine?this.evaluateMachine(e):this.evaluateSyscall(e,t)},e.prototype.evaluateMachine=function(e){switch(e.type){case 57:return this.pushFrame() +case 58:return this.popFrame() +case 59:return this.pushSmallFrame() +case 60:return this.popSmallFrame() +case 50:return this.call(e.op1) +case 49:return this.call(this.stack.popSmi()) +case 52:return this.goto(e.op1) +case 24:return this.return() +case 25:return this.returnTo(e.op1)}},e.prototype.evaluateSyscall=function(e,t){le.evaluate(t,e,e.type)},e}(),yt=function(){function e(e){this.node=e}return e.prototype.firstNode=function(){return this.node},e}(),bt=function(){function e(e){this.node=e}return e.prototype.lastNode=function(){return this.node},e}(),Ct=function(){function e(e,t,r){this.constructing=null,this.operations=null,this.cursorStack=new n.Stack,this.blockStack=new n.Stack,this.pushElement(t,r),this.env=e,this.dom=e.getAppendOperations(),this.updateOperations=e.getDOM()}return e.forInitialRender=function(e,t){var n=new this(e,t.element,t.nextSibling) +return n.pushSimpleBlock(),n},e.resume=function(e,t,n){var r=t.parentElement(),i=new this(e,r,n) +return i.pushSimpleBlock(),i.pushBlockTracker(t),i},e.prototype.expectConstructing=function(){return this.constructing},e.prototype.block=function(){return this.blockStack.current},e.prototype.popElement=function(){this.cursorStack.pop(),this.cursorStack.current},e.prototype.pushSimpleBlock=function(){return this.pushBlockTracker(new At(this.element))},e.prototype.pushUpdatableBlock=function(){return this.pushBlockTracker(new It(this.element))},e.prototype.pushBlockList=function(e){return this.pushBlockTracker(new wt(this.element,e))},e.prototype.pushBlockTracker=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.blockStack.current +return null!==n&&(n.newDestroyable(e),t||n.didAppendBounds(e)),this.__openBlock(),this.blockStack.push(e),e},e.prototype.popBlock=function(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()},e.prototype.__openBlock=function(){},e.prototype.__closeBlock=function(){},e.prototype.openElement=function(e){var t=this.__openElement(e) +return this.constructing=t,t},e.prototype.__openElement=function(e){return this.dom.createElement(e,this.element)},e.prototype.flushElement=function(){var e=this.element,t=this.constructing +this.__flushElement(e,t),this.constructing=null,this.operations=null,this.pushElement(t,null),this.didOpenElement(t)},e.prototype.__flushElement=function(e,t){this.dom.insertBefore(e,t,this.nextSibling)},e.prototype.closeElement=function(){this.willCloseElement(),this.popElement()},e.prototype.pushRemoteElement=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null +this.__pushRemoteElement(e,t,n)},e.prototype.__pushRemoteElement=function(e,t,n){this.pushElement(e,n) +var r=new _t(e) +this.pushBlockTracker(r,!0)},e.prototype.popRemoteElement=function(){this.popBlock(),this.popElement()},e.prototype.pushElement=function(e,t){this.cursorStack.push(new Be(e,t))},e.prototype.didAddDestroyable=function(e){this.block().newDestroyable(e)},e.prototype.didAppendBounds=function(e){return this.block().didAppendBounds(e),e},e.prototype.didAppendNode=function(e){return this.block().didAppendNode(e),e},e.prototype.didOpenElement=function(e){return this.block().openElement(e),e},e.prototype.willCloseElement=function(){this.block().closeElement()},e.prototype.appendText=function(e){return this.didAppendNode(this.__appendText(e))},e.prototype.__appendText=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createTextNode(e) +return t.insertBefore(n,i,r),i},e.prototype.__appendNode=function(e){return this.dom.insertBefore(this.element,e,this.nextSibling),e},e.prototype.__appendFragment=function(e){var t,n=e.firstChild +return n?(t=w(this.element,n,e.lastChild),this.dom.insertBefore(this.element,e,this.nextSibling),t):x(this.element,this.__appendComment(""))},e.prototype.__appendHTML=function(e){return this.dom.insertHTMLBefore(this.element,this.nextSibling,e)},e.prototype.appendDynamicHTML=function(e){var t=this.trustedContent(e) +this.didAppendBounds(t)},e.prototype.appendDynamicText=function(e){var t=this.untrustedContent(e) +return this.didAppendNode(t),t},e.prototype.appendDynamicFragment=function(e){var t=this.__appendFragment(e) +this.didAppendBounds(t)},e.prototype.appendDynamicNode=function(e){var t=this.__appendNode(e),n=x(this.element,t) +this.didAppendBounds(n)},e.prototype.trustedContent=function(e){return this.__appendHTML(e)},e.prototype.untrustedContent=function(e){return this.__appendText(e)},e.prototype.appendComment=function(e){return this.didAppendNode(this.__appendComment(e))},e.prototype.__appendComment=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createComment(e) +return t.insertBefore(n,i,r),i},e.prototype.__setAttribute=function(e,t,n){this.dom.setAttribute(this.constructing,e,t,n)},e.prototype.__setProperty=function(e,t){this.constructing[e]=t},e.prototype.setStaticAttribute=function(e,t,n){this.__setAttribute(e,t,n)},e.prototype.setDynamicAttribute=function(e,t,n,r){var i=this.constructing,o=this.env.attributeFor(i,e,n,r) +return o.set(this,t,this.env),o},(0,t.createClass)(e,[{key:"element",get:function(){return this.cursorStack.current.element}},{key:"nextSibling",get:function(){return this.cursorStack.current.nextSibling}}]),e}(),At=function(){function e(e){this.parent=e,this.first=null,this.last=null,this.destroyables=null,this.nesting=0}return e.prototype.destroy=function(){var e,t=this.destroyables +if(t&&t.length)for(e=0;e<t.length;e++)t[e].destroy()},e.prototype.parentElement=function(){return this.parent},e.prototype.firstNode=function(){return this.first&&this.first.firstNode()},e.prototype.lastNode=function(){return this.last&&this.last.lastNode()},e.prototype.openElement=function(e){this.didAppendNode(e),this.nesting++},e.prototype.closeElement=function(){this.nesting--},e.prototype.didAppendNode=function(e){0===this.nesting&&(this.first||(this.first=new yt(e)),this.last=new bt(e))},e.prototype.didAppendBounds=function(e){0===this.nesting&&(this.first||(this.first=e),this.last=e)},e.prototype.newDestroyable=function(e){this.destroyables=this.destroyables||[],this.destroyables.push(e)},e.prototype.finalize=function(e){this.first||e.appendComment("")},e}(),_t=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.destroy=function(){e.prototype.destroy.call(this),j(this)},n}(At),It=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.reset=function(e){var t,n=this.destroyables +if(n&&n.length)for(t=0;t<n.length;t++)e.didDestroy(n[t]) +var r=j(this) +return this.first=null,this.last=null,this.destroyables=null,this.nesting=0,r},n}(At),wt=function(){function e(e,t){this.parent=e,this.boundList=t,this.parent=e,this.boundList=t}return e.prototype.destroy=function(){this.boundList.forEachNode(function(e){return e.destroy()})},e.prototype.parentElement=function(){return this.parent},e.prototype.firstNode=function(){var e=this.boundList.head() +return e&&e.firstNode()},e.prototype.lastNode=function(){var e=this.boundList.tail() +return e&&e.lastNode()},e.prototype.openElement=function(){},e.prototype.closeElement=function(){},e.prototype.didAppendNode=function(){},e.prototype.didAppendBounds=function(){},e.prototype.newDestroyable=function(){},e.prototype.finalize=function(){},e}(),xt=2147483648,kt=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new o.Stack,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[] +this.inner=e,this.js=t}return e.prototype.slice=function(t,n){var r=void 0 +return r="number"==typeof t&&"number"==typeof n?this.inner.slice(t,n):"number"==typeof t&&void 0===n?this.inner.sliceFrom(t):this.inner.clone(),new e(r,this.js.slice(t,n))},e.prototype.sliceInner=function(e,t){var n,r=[] +for(n=e;n<t;n++)r.push(this.get(n)) +return r},e.prototype.copy=function(e,t){this.inner.copy(e,t)},e.prototype.write=function(e,t){var n +K(t)?this.inner.writeRaw(e,Z(t)):(n=this.js.length,this.js.push(t),this.inner.writeRaw(e,n|xt))},e.prototype.writeSmi=function(e,t){this.inner.writeSmi(e,t)},e.prototype.writeImmediate=function(e,t){this.inner.writeRaw(e,t)},e.prototype.get=function(e){var t=this.inner.getRaw(e) +return t&xt?this.js[2147483647&t]:J(t)},e.prototype.getSmi=function(e){return this.inner.getSmi(e)},e.prototype.reset=function(){this.inner.reset(),this.js.length=0},(0,t.createClass)(e,[{key:"length",get:function(){return this.inner.len()}}]),e}(),jt=function(){function e(e,t,n){this.stack=e,this.fp=t,this.sp=n}return e.empty=function(){return new this(new kt,0,-1)},e.restore=function(e){var t,n=new kt +for(t=0;t<e.length;t++)n.write(t,e[t]) +return new this(n,0,e.length-1)},e.prototype.push=function(e){this.stack.write(++this.sp,e)},e.prototype.pushSmi=function(e){this.stack.writeSmi(++this.sp,e)},e.prototype.pushImmediate=function(e){this.stack.writeImmediate(++this.sp,Z(e))},e.prototype.pushEncodedImmediate=function(e){this.stack.writeImmediate(++this.sp,e)},e.prototype.pushNull=function(){this.stack.writeImmediate(++this.sp,19)},e.prototype.dup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.sp +this.stack.copy(e,++this.sp)},e.prototype.copy=function(e,t){this.stack.copy(e,t)},e.prototype.pop=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=this.stack.get(this.sp) +return this.sp-=e,t},e.prototype.popSmi=function(){return this.stack.getSmi(this.sp--)},e.prototype.peek=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0 +return this.stack.get(this.sp-e)},e.prototype.peekSmi=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0 +return this.stack.getSmi(this.sp-e)},e.prototype.get=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.fp +return this.stack.get(t+e)},e.prototype.getSmi=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.fp +return this.stack.getSmi(t+e)},e.prototype.set=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.fp +this.stack.write(n+t,e)},e.prototype.slice=function(e,t){return this.stack.slice(e,t)},e.prototype.sliceArray=function(e,t){return this.stack.sliceInner(e,t)},e.prototype.capture=function(e){var t=this.sp+1 +return this.stack.sliceInner(t-e,t)},e.prototype.reset=function(){this.stack.reset()},e.prototype.toArray=function(){return this.stack.sliceInner(this.fp,this.sp+1)},e}(),Et=function(){function e(e,t,r){var i=r.alwaysRevalidate,o=void 0!==i&&i +this.frameStack=new n.Stack,this.env=e,this.constants=t.constants,this.dom=e.getDOM(),this.alwaysRevalidate=o}return e.prototype.execute=function(e,t){var n,r=this.frameStack +for(this.try(e,t);;){if(r.isEmpty())break +n=this.frame.nextStatement(),null!==n?n.evaluate(this):this.frameStack.pop()}},e.prototype.goto=function(e){this.frame.goto(e)},e.prototype.try=function(e,t){this.frameStack.push(new Rt(e,t))},e.prototype.throw=function(){this.frame.handleException(),this.frameStack.pop()},(0,t.createClass)(e,[{key:"frame",get:function(){return this.frameStack.current}}]),e}(),St=function(e){function n(n,r,i,o,s){var a=(0,t.possibleConstructorReturn)(this,e.call(this)) +return a.start=n,a.state=r,a.runtime=i,a.type="block",a.next=null,a.prev=null,a.children=s,a.bounds=o,a}return(0,t.inherits)(n,e),n.prototype.parentElement=function(){return this.bounds.parentElement()},n.prototype.firstNode=function(){return this.bounds.firstNode()},n.prototype.lastNode=function(){return this.bounds.lastNode()},n.prototype.evaluate=function(e){e.try(this.children,null)},n.prototype.destroy=function(){this.bounds.destroy()},n.prototype.didDestroy=function(){this.runtime.env.didDestroy(this.bounds)},n}(he),Tt=function(e){function i(n,i,o,s,a){var u=(0,t.possibleConstructorReturn)(this,e.call(this,n,i,o,s,a)) +return u.type="try",u.tag=u._tag=r.UpdatableTag.create(r.CONSTANT_TAG),u}return(0,t.inherits)(i,e),i.prototype.didInitializeChildren=function(){this._tag.inner.update((0,r.combineSlice)(this.children))},i.prototype.evaluate=function(e){e.try(this.children,this)},i.prototype.handleException=function(){var e=this,t=this.state,r=this.bounds,i=this.children,o=this.start,s=this.prev,a=this.next,u=this.runtime +i.clear() +var c=Ct.resume(u.env,r,r.reset(u.env)),l=Wt.resume(t,u,c),h=new n.LinkedList +l.execute(o,function(n){n.stack=jt.restore(t.stack),n.updatingOpcodeStack.push(h),n.updateWith(e),n.updatingOpcodeStack.push(i)}),this.prev=s,this.next=a},i}(St),Pt=function(){function e(e,t){this.opcode=e,this.marker=t,this.didInsert=!1,this.didDelete=!1,this.map=e.map,this.updating=e.children}return e.prototype.insert=function(e,t,r,i){var o=this.map,s=this.opcode,a=this.updating,u=null,c=null +i?(c=o[i],u=c.bounds.firstNode()):u=this.marker +var l=s.vmForInsertion(u),h=null,d=s.start +l.execute(d,function(i){o[e]=h=i.iterate(r,t),i.updatingOpcodeStack.push(new n.LinkedList),i.updateWith(h),i.updatingOpcodeStack.push(h.children)}),a.insertBefore(h,c),this.didInsert=!0},e.prototype.retain=function(){},e.prototype.move=function(e,t,n,r){var i=this.map,o=this.updating,s=i[e],a=i[r]||null +r?k(s,a.firstNode()):k(s,this.marker),o.remove(s),o.insertBefore(s,a)},e.prototype.delete=function(e){var t=this.map,n=t[e] +n.didDestroy(),j(n),this.updating.remove(n),delete t[e],this.didDelete=!0},e.prototype.done=function(){this.opcode.didInitializeChildren(this.didInsert||this.didDelete)},e}(),Ot=function(e){function i(i,o,s,a,u,c){var l=(0,t.possibleConstructorReturn)(this,e.call(this,i,o,s,a,u)) +l.type="list-block",l.map=(0,n.dict)(),l.lastIterated=r.INITIAL,l.artifacts=c +var h=l._tag=r.UpdatableTag.create(r.CONSTANT_TAG) +return l.tag=(0,r.combine)([c.tag,h]),l}return(0,t.inherits)(i,e),i.prototype.didInitializeChildren=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0] +this.lastIterated=this.artifacts.tag.value(),e&&this._tag.inner.update((0,r.combineSlice)(this.children))},i.prototype.evaluate=function(t){var n,i,o,s,a,u=this.artifacts,c=this.lastIterated +u.tag.validate(c)||(n=this.bounds,i=t.dom,o=i.createComment(""),i.insertAfter(n.parentElement(),o,n.lastNode()),s=new Pt(this,o),a=new r.IteratorSynchronizer({target:s,artifacts:u}),a.sync(),this.parentElement().removeChild(o)),e.prototype.evaluate.call(this,t)},i.prototype.vmForInsertion=function(e){var t=this.bounds,n=this.state,r=this.runtime,i=Ct.forInitialRender(r.env,{element:t.parentElement(),nextSibling:e}) +return Wt.resume(n,r,i)},i}(St),Rt=function(){function e(e,t){this.ops=e,this.exceptionHandler=t,this.current=e.head()}return e.prototype.goto=function(e){this.current=e},e.prototype.nextStatement=function(){var e=this.current,t=this.ops +return e&&(this.current=t.nextNode(e)),e},e.prototype.handleException=function(){this.exceptionHandler&&this.exceptionHandler.handleException()},e}(),Nt=function(){function e(e,t,n,r){this.env=e,this.program=t,this.updating=n,this.bounds=r}return e.prototype.rerender=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{alwaysRevalidate:!1},t=e.alwaysRevalidate,n=void 0!==t&&t,r=this.env,i=this.program,o=this.updating +new Et(r,i,{alwaysRevalidate:n}).execute(o,this)},e.prototype.parentElement=function(){return this.bounds.parentElement()},e.prototype.firstNode=function(){return this.bounds.firstNode()},e.prototype.lastNode=function(){return this.bounds.lastNode()},e.prototype.handleException=function(){throw"this should never happen"},e.prototype.destroy=function(){this.bounds.destroy(),j(this.bounds)},e}(),Mt=function(){function e(){this.stack=null,this.positional=new Lt,this.named=new zt,this.blocks=new Bt}return e.prototype.empty=function(e){var t=e.sp+1 +return this.named.empty(e,t),this.positional.empty(e,t),this.blocks.empty(e,t),this},e.prototype.setup=function(e,t,n,r,i){this.stack=e +var o=this.named,s=t.length,a=e.sp-s+1 +o.setup(e,a,s,t,i) +var u=this.positional,c=a-r +u.setup(e,c,r) +var l=this.blocks,h=n.length +l.setup(e,c-3*h,h,n)},e.prototype.at=function(e){return this.positional.at(e)},e.prototype.realloc=function(e){var t,n,r,i,o,s=this.stack +if(e>0&&null!==s){for(t=this.positional,n=this.named,r=t.base+e,i=t.length+n.length,o=i-1;o>=0;o--)s.copy(o+t.base,o+r) +t.base+=e,n.base+=e,s.sp+=e}},e.prototype.capture=function(){var e=0===this.positional.length?qt:this.positional.capture(),t=0===this.named.length?Ut:this.named.capture() +return{tag:this.tag,length:this.length,positional:e,named:t}},e.prototype.clear=function(){var e=this.stack,t=this.length +t>0&&null!==e&&e.pop(t)},(0,t.createClass)(e,[{key:"tag",get:function(){return(0,r.combineTagged)([this.positional,this.named])}},{key:"base",get:function(){return this.blocks.base}},{key:"length",get:function(){return this.positional.length+this.named.length+3*this.blocks.length}}]),e}(),Lt=function(){function e(){this.base=0,this.length=0,this.stack=null,this._tag=null,this._references=null}return e.prototype.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._tag=r.CONSTANT_TAG,this._references=n.EMPTY_ARRAY},e.prototype.setup=function(e,t,i){this.stack=e,this.base=t,this.length=i,0===i?(this._tag=r.CONSTANT_TAG,this._references=n.EMPTY_ARRAY):(this._tag=null,this._references=null)},e.prototype.at=function(e){var t=this.base,n=this.length,r=this.stack +return e<0||e>=n?ge:r.get(e,t)},e.prototype.capture=function(){return new Dt(this.tag,this.references)},e.prototype.prepend=function(e){var t,n,r,i,o=e.length +if(o>0){for(t=this.base,n=this.length,r=this.stack,this.base=t-=o,this.length=n+o,i=0;i<o;i++)r.set(e.at(i),i,t) +this._tag=null,this._references=null}},(0,t.createClass)(e,[{key:"tag",get:function(){var e=this._tag +return e||(e=this._tag=(0,r.combineTagged)(this.references)),e}},{key:"references",get:function(){var e,t,n,r=this._references +return r||(e=this.stack,t=this.base,n=this.length,r=this._references=e.sliceArray(t,t+n)),r}}]),e}(),Dt=function(){function e(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length +this.tag=e,this.references=t,this.length=n}return e.empty=function(){return new e(r.CONSTANT_TAG,n.EMPTY_ARRAY,0)},e.prototype.at=function(e){return this.references[e]},e.prototype.value=function(){return this.references.map(this.valueOf)},e.prototype.get=function(e){var t,n=this.references,r=this.length +return"length"===e?de.create(r):(t=parseInt(e,10),t<0||t>=r?ge:n[t])},e.prototype.valueOf=function(e){return e.value()},e}(),zt=function(){function e(){this.base=0,this.length=0,this._references=null,this._names=n.EMPTY_ARRAY,this._atNames=n.EMPTY_ARRAY}return e.prototype.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._references=n.EMPTY_ARRAY,this._names=n.EMPTY_ARRAY,this._atNames=n.EMPTY_ARRAY},e.prototype.setup=function(e,t,r,i,o){this.stack=e,this.base=t,this.length=r,0===r?(this._references=n.EMPTY_ARRAY,this._names=n.EMPTY_ARRAY,this._atNames=n.EMPTY_ARRAY):(this._references=null,o?(this._names=i,this._atNames=null):(this._names=null,this._atNames=i))},e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.base,r=this.stack,i=t?this.names:this.atNames,o=i.indexOf(e) +return-1===o?ge:r.get(o,n)},e.prototype.capture=function(){return new Ft(this.tag,this.names,this.references)},e.prototype.merge=function(e){var t,n,r,i,o,s,a=e.length +if(a>0){for(t=this.names,n=this.length,r=this.stack,i=e.names,Object.isFrozen(t)&&0===t.length&&(t=[]),o=0;o<a;o++)s=i[o],-1===t.indexOf(s)&&(n=t.push(s),r.push(e.references[o])) +this.length=n,this._references=null,this._names=t,this._atNames=null}},e.prototype.toSyntheticName=function(e){return e.slice(1)},e.prototype.toAtName=function(e){return"@"+e},(0,t.createClass)(e,[{key:"tag",get:function(){return(0,r.combineTagged)(this.references)}},{key:"names",get:function(){var e=this._names +return e||(e=this._names=this._atNames.map(this.toSyntheticName)),e}},{key:"atNames",get:function(){var e=this._atNames +return e||(e=this._atNames=this._names.map(this.toAtName)),e}},{key:"references",get:function(){var e,t,n,r=this._references +return r||(e=this.base,t=this.length,n=this.stack,r=this._references=n.sliceArray(e,e+t)),r}}]),e}(),Ft=function(){function e(e,t,n){this.tag=e,this.names=t,this.references=n,this.length=t.length,this._map=null}return e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=this.names,n=this.references,r=t.indexOf(e) +return-1===r?ge:n[r]},e.prototype.value=function(){var e,t,r=this.names,i=this.references,o=(0,n.dict)() +for(e=0;e<r.length;e++)t=r[e],o[t]=i[e].value() +return o},(0,t.createClass)(e,[{key:"map",get:function(){var e,t,r,i,o=this._map +if(!o)for(e=this.names,t=this.references,o=this._map=(0,n.dict)(),r=0;r<e.length;r++)i=e[r],o[i]=t[r] +return o}}]),e}(),Bt=function(){function e(){this.internalValues=null,this.internalTag=null,this.names=n.EMPTY_ARRAY,this.length=0,this.base=0}return e.prototype.empty=function(e,t){this.stack=e,this.names=n.EMPTY_ARRAY,this.base=t,this.length=0,this.internalTag=r.CONSTANT_TAG,this.internalValues=n.EMPTY_ARRAY},e.prototype.setup=function(e,t,i,o){this.stack=e,this.names=o,this.base=t,this.length=i,0===i?(this.internalTag=r.CONSTANT_TAG,this.internalValues=n.EMPTY_ARRAY):(this.internalTag=null,this.internalValues=null)},e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=this.base,n=this.stack,r=this.names,i=r.indexOf(e) +if(-1===r.indexOf(e))return null +var o=n.get(3*i,t),s=n.get(3*i+1,t),a=n.get(3*i+2,t) +return null===a?null:[a,s,o]},e.prototype.capture=function(){return new Ht(this.names,this.values)},(0,t.createClass)(e,[{key:"values",get:function(){var e,t,n,r=this.internalValues +return r||(e=this.base,t=this.length,n=this.stack,r=this.internalValues=n.sliceArray(e,e+3*t)),r}}]),e}(),Ht=function(){function e(e,t){this.names=e,this.values=t,this.length=e.length}return e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=this.names.indexOf(e) +return-1===t?null:[this.values[3*t+2],this.values[3*t+1],this.values[3*t]]},e}(),Ut=new Ft(r.CONSTANT_TAG,n.EMPTY_ARRAY,n.EMPTY_ARRAY),qt=new Dt(r.CONSTANT_TAG,n.EMPTY_ARRAY),Vt={tag:r.CONSTANT_TAG,length:0,positional:qt,named:Ut},Wt=function(){function e(e,t,r,i){var o=this +this.runtime=e,this.elementStack=i,this.dynamicScopeStack=new n.Stack,this.scopeStack=new n.Stack,this.updatingOpcodeStack=new n.Stack,this.cacheGroups=new n.Stack,this.listBlockStack=new n.Stack,this.s0=null,this.s1=null,this.t0=null,this.t1=null,this.v0=null,this.heap=this.program.heap,this.constants=this.program.constants,this.elementStack=i,this.scopeStack.push(t),this.dynamicScopeStack.push(r),this.args=new Mt,this.inner=new vt(jt.empty(),this.heap,e.program,{debugBefore:function(e){return le.debugBefore(o,e,e.type)},debugAfter:function(e,t){le.debugAfter(o,e,e.type,t)}})}return e.prototype.fetch=function(e){this.stack.push(this[i.Register[e]])},e.prototype.load=function(e){this[i.Register[e]]=this.stack.pop()},e.prototype.fetchValue=function(e){return this[i.Register[e]]},e.prototype.loadValue=function(e,t){this[i.Register[e]]=t},e.prototype.pushFrame=function(){this.inner.pushFrame()},e.prototype.popFrame=function(){this.inner.popFrame()},e.prototype.goto=function(e){this.inner.goto(e)},e.prototype.call=function(e){this.inner.call(e)},e.prototype.returnTo=function(e){this.inner.returnTo(e)},e.prototype.return=function(){this.inner.return()},e.initial=function(t,r,i,o,s,a){var u=t.heap.scopesizeof(a),c=pt.root(i,u),l=new e({program:t,env:r},c,o,s) +return l.pc=l.heap.getaddr(a),l.updatingOpcodeStack.push(new n.LinkedList),l},e.empty=function(t,r,i){var o={get:function(){return ge},set:function(){return ge},child:function(){return o}},s=new e({program:t,env:r},pt.root(ge,0),o,i) +return s.updatingOpcodeStack.push(new n.LinkedList),s},e.resume=function(t,n,r){return new e(n,t.scope,t.dynamicScope,r)},e.prototype.capture=function(e){return{dynamicScope:this.dynamicScope(),scope:this.scope(),stack:this.stack.capture(e)}},e.prototype.beginCacheGroup=function(){this.cacheGroups.push(this.updating().tail())},e.prototype.commitCacheGroup=function(){var e=new Se("END"),t=this.updating(),i=this.cacheGroups.pop(),o=i?t.nextNode(i):t.head(),s=t.tail(),a=(0,r.combineSlice)(new n.ListSlice(o,s)),u=new je(a,e) +t.insertBefore(u,o),t.append(new Ee(u)),t.append(e)},e.prototype.enter=function(e){var t=new n.LinkedList,r=this.capture(e),i=this.elements().pushUpdatableBlock(),o=new Tt(this.heap.gethandle(this.pc),r,this.runtime,i,t) +this.didEnter(o)},e.prototype.iterate=function(e,t){var r=this.stack +r.push(t),r.push(e) +var i=this.capture(2),o=this.elements().pushUpdatableBlock() +return new Tt(this.heap.gethandle(this.pc),i,this.runtime,o,new n.LinkedList)},e.prototype.enterItem=function(e,t){this.listBlock().map[e]=t,this.didEnter(t)},e.prototype.enterList=function(e){var t=new n.LinkedList,r=this.capture(0),i=this.elements().pushBlockList(t),o=this.stack.peek().artifacts,s=this.pc+e-this.currentOpSize,a=this.heap.gethandle(s),u=new Ot(a,r,this.runtime,i,t,o) +this.listBlockStack.push(u),this.didEnter(u)},e.prototype.didEnter=function(e){this.updateWith(e),this.updatingOpcodeStack.push(e.children)},e.prototype.exit=function(){this.elements().popBlock(),this.updatingOpcodeStack.pop(),this.updating().tail().didInitializeChildren()},e.prototype.exitList=function(){this.exit(),this.listBlockStack.pop()},e.prototype.updateWith=function(e){this.updating().append(e)},e.prototype.listBlock=function(){return this.listBlockStack.current},e.prototype.updating=function(){return this.updatingOpcodeStack.current},e.prototype.elements=function(){return this.elementStack},e.prototype.scope=function(){return this.scopeStack.current},e.prototype.dynamicScope=function(){return this.dynamicScopeStack.current},e.prototype.pushChildScope=function(){this.scopeStack.push(this.scope().child())},e.prototype.pushDynamicScope=function(){var e=this.dynamicScope().child() +return this.dynamicScopeStack.push(e),e},e.prototype.pushRootScope=function(e,t){var n=pt.sized(e) +return t&&n.bindCallerScope(this.scope()),this.scopeStack.push(n),n},e.prototype.pushScope=function(e){this.scopeStack.push(e)},e.prototype.popScope=function(){this.scopeStack.pop()},e.prototype.popDynamicScope=function(){this.dynamicScopeStack.pop()},e.prototype.newDestroyable=function(e){this.elements().didAddDestroyable(e)},e.prototype.getSelf=function(){return this.scope().getSelf()},e.prototype.referenceForSymbol=function(e){return this.scope().getSymbol(e)},e.prototype.execute=function(e,t){this.pc=this.heap.getaddr(e),t&&t(this) +for(var n=void 0;;)if(n=this.next(),n.done)break +return n.value},e.prototype.next=function(){var e=this.env,t=this.program,n=this.updatingOpcodeStack,r=this.elementStack,i=this.inner.nextStatement(),o=void 0 +return null!==i?(this.inner.evaluateOuter(i,this),o={done:!1,value:null}):(this.stack.reset(),o={done:!0,value:new Nt(e,t,n.pop(),r.popBlock())}),o},e.prototype.bindDynamicScope=function(e){var t,n,r=this.dynamicScope() +for(t=e.length-1;t>=0;t--)n=this.constants.getString(e[t]),r.set(n,this.stack.pop())},(0,t.createClass)(e,[{key:"stack",get:function(){return this.inner.stack},set:function(e){this.inner.stack=e}},{key:"currentOpSize",set:function(e){this.inner.currentOpSize=e},get:function(){return this.inner.currentOpSize}},{key:"pc",get:function(){return this.inner.pc},set:function(e){this.inner.pc=e}},{key:"ra",get:function(){return this.inner.ra},set:function(e){this.inner.ra=e}},{key:"fp",get:function(){return this.stack.fp},set:function(e){this.stack.fp=e}},{key:"sp",get:function(){return this.stack.sp},set:function(e){this.stack.sp=e}},{key:"program",get:function(){return this.runtime.program}},{key:"env",get:function(){return this.runtime.env}}]),e}(),Gt=function(){function e(e){this.vm=e}return e.prototype.next=function(){return this.vm.next()},e}(),Yt=function(){function e(e,t){this.scope=e,this.nameRef=t +var n=this.varTag=r.UpdatableTag.create(r.CONSTANT_TAG) +this.tag=(0,r.combine)([t.tag,n])}return e.prototype.value=function(){return this.getVar().value()},e.prototype.get=function(e){return this.getVar().get(e)},e.prototype.getVar=function(){var e=String(this.nameRef.value()),t=this.scope.get(e) +return this.varTag.inner.update(t.tag),t},e}(),Kt=function(e){function n(n,r,i){var o=(0,t.possibleConstructorReturn)(this,e.call(this,n,r)) +return o.startingBlockDepth=i,o.candidate=null,o.injectedOmittedNode=!1,o.openBlockDepth=i-1,o}return(0,t.inherits)(n,e),n}(Be),Qt=function(e){function r(r,i,o){var s=(0,t.possibleConstructorReturn)(this,e.call(this,r,i,o)) +if(s.unmatchedAttributes=null,s.blockDepth=0,o)throw new Error("Rehydration with nextSibling not supported") +for(var a=s.currentCursor.element.firstChild;!(null===a||ee(a)&&(0,n.isSerializationFirstNode)(a));)a=a.nextSibling +return s.candidate=a,s}return(0,t.inherits)(r,e),r.prototype.pushElement=function(e,t){var n=this.blockDepth,r=void 0===n?0:n,i=new Kt(e,t,r),o=this.currentCursor +o&&o.candidate&&(i.candidate=e.firstChild,o.candidate=e.nextSibling),this.cursorStack.push(i)},r.prototype.clearMismatch=function(e){var t,n=e,r=this.currentCursor +if(null!==r){if((t=r.openBlockDepth)>=r.startingBlockDepth)for(;n&&(!ee(n)||ne(n)!==t);)n=this.remove(n) +else for(;null!==n;)n=this.remove(n) +r.nextSibling=n,r.candidate=null}},r.prototype.__openBlock=function(){var e=this.currentCursor +if(null!==e){var t=this.blockDepth +this.blockDepth++ +var n=e.candidate +null!==n&&(ee(n)&&te(n)===t?(e.candidate=this.remove(n),e.openBlockDepth=t):this.clearMismatch(n))}},r.prototype.__closeBlock=function(){var e=this.currentCursor +if(null!==e){var t=e.openBlockDepth +this.blockDepth-- +var n=e.candidate +null!==n&&(ee(n)&&ne(n)===t?(e.candidate=this.remove(n),e.openBlockDepth--):this.clearMismatch(n)),e.openBlockDepth===this.blockDepth&&(e.candidate=this.remove(e.nextSibling),e.openBlockDepth--)}},r.prototype.__appendNode=function(t){var n=this.candidate +return n||e.prototype.__appendNode.call(this,t)},r.prototype.__appendHTML=function(t){var n,r,i,o,s=this.markerBounds() +return s?(n=s.firstNode(),r=s.lastNode(),i=w(this.element,n.nextSibling,r.previousSibling),o=this.remove(n),this.remove(r),null!==o&&se(o)&&(this.candidate=this.remove(o),null!==this.candidate&&this.clearMismatch(this.candidate)),i):e.prototype.__appendHTML.call(this,t)},r.prototype.remove=function(e){var t=e.parentNode,n=e.nextSibling +return t.removeChild(e),n},r.prototype.markerBounds=function(){var e,t,n=this.candidate +if(n&&ie(n)){for(e=n,t=e.nextSibling;t&&!ie(t);)t=t.nextSibling +return w(this.element,e,t)}return null},r.prototype.__appendText=function(t){var n,r,i=this.candidate +return i?$(i)?(i.nodeValue!==t&&(i.nodeValue=t),this.candidate=i.nextSibling,i):i&&(oe(i)||se(i))?(this.candidate=i.nextSibling,this.remove(i),this.__appendText(t)):se(i)?(n=this.remove(i),this.candidate=n,r=this.dom.createTextNode(t),this.dom.insertBefore(this.element,r,n),r):(this.clearMismatch(i),e.prototype.__appendText.call(this,t)):e.prototype.__appendText.call(this,t)},r.prototype.__appendComment=function(t){var n=this.candidate +return n&&ee(n)?(n.nodeValue!==t&&(n.nodeValue=t),this.candidate=n.nextSibling,n):(n&&this.clearMismatch(n),e.prototype.__appendComment.call(this,t))},r.prototype.__openElement=function(t){var n=this.candidate +if(n&&re(n)&&ae(n,t))return this.unmatchedAttributes=[].slice.call(n.attributes),n +if(n){if(re(n)&&"TBODY"===n.tagName)return this.pushElement(n,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(t) +this.clearMismatch(n)}return e.prototype.__openElement.call(this,t)},r.prototype.__setAttribute=function(t,n,r){var i,o=this.unmatchedAttributes +return o&&(i=ue(o,t))?(i.value!==n&&(i.value=n),void o.splice(o.indexOf(i),1)):e.prototype.__setAttribute.call(this,t,n,r)},r.prototype.__setProperty=function(t,n){var r,i=this.unmatchedAttributes +return i&&(r=ue(i,t))?(r.value!==n&&(r.value=n),void i.splice(i.indexOf(r),1)):e.prototype.__setProperty.call(this,t,n)},r.prototype.__flushElement=function(t,n){var r,i=this.unmatchedAttributes +if(i){for(r=0;r<i.length;r++)this.constructing.removeAttribute(i[r].name) +this.unmatchedAttributes=null}else e.prototype.__flushElement.call(this,t,n)},r.prototype.willCloseElement=function(){var t=this.candidate,n=this.currentCursor +null!==t&&this.clearMismatch(t),n&&n.injectedOmittedNode&&this.popElement(),e.prototype.willCloseElement.call(this)},r.prototype.getMarker=function(e,t){var n=e.querySelector('script[glmr="'+t+'"]') +if(n)return n +throw new Error("Cannot find serialized cursor for `in-element`")},r.prototype.__pushRemoteElement=function(e,t){var n,r,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,s=this.getMarker(e,t) +s.parentNode===e&&(n=this.currentCursor,r=n.candidate,this.pushElement(e,o),n.candidate=r,this.candidate=this.remove(s),i=new _t(e),this.pushBlockTracker(i,!0))},r.prototype.didAppendBounds=function(t){var n +return e.prototype.didAppendBounds.call(this,t),this.candidate&&(n=t.lastNode(),this.candidate=n&&n.nextSibling),t},(0,t.createClass)(r,[{key:"currentCursor",get:function(){return this.cursorStack.current}},{key:"candidate",get:function(){return this.currentCursor?this.currentCursor.candidate:null},set:function(e){this.currentCursor.candidate=e}}]),r}(Ct) +e.renderMain=function(e,t,n,r,i,o){var s=Wt.initial(e,t,n,r,i,o) +return new Gt(s)},e.NULL_REFERENCE=me,e.UNDEFINED_REFERENCE=ge,e.PrimitiveReference=de,e.ConditionalReference=be,e.setDebuggerCallback=function(e){De=e},e.resetDebuggerCallback=function(){De=I},e.getDynamicVar=function(e,t){var n=e.dynamicScope(),r=t.positional.at(0) +return new Yt(n,r)},e.LowLevelVM=Wt,e.UpdatingVM=Et,e.RenderResult=Nt,e.SimpleDynamicAttribute=at,e.DynamicAttribute=st,e.EMPTY_ARGS=Vt,e.Scope=pt,e.Environment=gt,e.DefaultEnvironment=mt,e.DEFAULT_CAPABILITIES={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!1,elementHook:!1,dynamicScope:!0,createCaller:!1,updateHook:!0,createInstance:!0},e.MINIMAL_CAPABILITIES={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,dynamicScope:!1,createCaller:!1,updateHook:!1,createInstance:!1},e.CurriedComponentDefinition=_e,e.isCurriedComponentDefinition=a,e.curry=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null +return new _e(e,t)},e.DOMChanges=Je,e.SVG_NAMESPACE=qe,e.IDOMChanges=Ze,e.DOMTreeConstruction=$e,e.isWhitespace=function(e){return Ye.test(e)},e.insertHTMLBefore=N,e.normalizeProperty=B,e.NewElementBuilder=Ct +e.clientBuilder=function(e,t){return Ct.forInitialRender(e,t)},e.rehydrationBuilder=function(e,t){return Qt.forInitialRender(e,t)},e.RehydrateBuilder=Qt,e.ConcreteBounds=He,e.Cursor=Be,e.capabilityFlagsFrom=v,e.hasCapability=y}),e("@glimmer/util",["exports","ember-babel"],function(e,t){"use strict" +function n(e){return e._guid=++s}function r(e){return e._guid||n(e)}function i(){return Object.create(null)}e.unreachable=e.expect=e.unwrap=e.EMPTY_ARRAY=e.ListSlice=e.ListNode=e.LinkedList=e.EMPTY_SLICE=e.dict=e.DictSet=e.Stack=e.SERIALIZATION_FIRST_NODE_STRING=e.isSerializationFirstNode=e.initializeGuid=e.ensureGuid=e.fillNulls=e.assign=e.assert=void 0 +var o=Object.keys,s=0,a=function(){function e(){this.dict=i()}return e.prototype.add=function(e){return"string"==typeof e?this.dict[e]=e:this.dict[r(e)]=e,this},e.prototype.delete=function(e){"string"==typeof e?delete this.dict[e]:e._guid&&delete this.dict[e._guid]},e}(),u=function(){function e(){this.stack=[],this.current=null}return e.prototype.push=function(e){this.current=e,this.stack.push(e)},e.prototype.pop=function(){var e=this.stack.pop(),t=this.stack.length +return this.current=0===t?null:this.stack[t-1],void 0===e?null:e},e.prototype.isEmpty=function(){return 0===this.stack.length},(0,t.createClass)(e,[{key:"size",get:function(){return this.stack.length}}]),e}(),c=function(){function e(){this.clear()}return e.prototype.head=function(){return this._head},e.prototype.tail=function(){return this._tail},e.prototype.clear=function(){this._head=this._tail=null},e.prototype.toArray=function(){var e=[] +return this.forEachNode(function(t){return e.push(t)}),e},e.prototype.nextNode=function(e){return e.next},e.prototype.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=t.next},e.prototype.insertBefore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null +return null===t?this.append(e):(t.prev?t.prev.next=e:this._head=e,e.prev=t.prev,e.next=t,t.prev=e,e)},e.prototype.append=function(e){var t=this._tail +return t?(t.next=e,e.prev=t,e.next=null):this._head=e,this._tail=e},e.prototype.remove=function(e){return e.prev?e.prev.next=e.next:this._head=e.next,e.next?e.next.prev=e.prev:this._tail=e.prev,e},e}(),l=function(){function e(e,t){this._head=e,this._tail=t}return e.prototype.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=this.nextNode(t)},e.prototype.head=function(){return this._head},e.prototype.tail=function(){return this._tail},e.prototype.toArray=function(){var e=[] +return this.forEachNode(function(t){return e.push(t)}),e},e.prototype.nextNode=function(e){return e===this._tail?null:e.next},e}(),h=new l(null,null),d=Object.freeze([]) +e.assert=function(e,t){if(!e)throw new Error(t||"assertion failure")},e.assign=function(e){var t,n,r,i,s +for(t=1;t<arguments.length;t++)if(null!==(n=arguments[t])&&"object"==typeof n)for(r=o(n),i=0;i<r.length;i++)s=r[i],e[s]=n[s] +return e},e.fillNulls=function(e){var t,n=new Array(e) +for(t=0;t<e;t++)n[t]=null +return n},e.ensureGuid=r,e.initializeGuid=n,e.isSerializationFirstNode=function(e){return"%+b:0%"===e.nodeValue},e.SERIALIZATION_FIRST_NODE_STRING="%+b:0%",e.Stack=u,e.DictSet=a,e.dict=i,e.EMPTY_SLICE=h,e.LinkedList=c,e.ListNode=function(e){this.next=null,this.prev=null,this.value=e},e.ListSlice=l,e.EMPTY_ARRAY=d,e.unwrap=function(e){if(null===e||void 0===e)throw new Error("Expected value to be present") +return e},e.expect=function(e,t){if(null===e||void 0===e)throw new Error(t) +return e},e.unreachable=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"unreachable" +return new Error(e)}}),e("@glimmer/vm",["exports"],function(e){"use strict" +var t;(function(e){e[e.pc=0]="pc",e[e.ra=1]="ra",e[e.fp=2]="fp",e[e.sp=3]="sp",e[e.s0=4]="s0",e[e.s1=5]="s1",e[e.t0=6]="t0",e[e.t1=7]="t1",e[e.v0=8]="v0"})(t||(e.Register=t={})),e.Register=t}),e("@glimmer/wire-format",["exports"],function(e){"use strict" +function t(e){return function(t){return Array.isArray(t)&&t[0]===e}}function n(e){return e[0]===i.StaticAttr||e[0]===i.DynamicAttr||e[0]===i.TrustingAttr}function r(e){return e[0]===i.StaticArg||e[0]===i.DynamicArg}var i;(function(e){e[e.Text=0]="Text",e[e.Append=1]="Append",e[e.Comment=2]="Comment",e[e.Modifier=3]="Modifier",e[e.Block=4]="Block",e[e.Component=5]="Component",e[e.OpenElement=6]="OpenElement",e[e.OpenSplattedElement=7]="OpenSplattedElement",e[e.FlushElement=8]="FlushElement",e[e.CloseElement=9]="CloseElement",e[e.StaticAttr=10]="StaticAttr",e[e.DynamicAttr=11]="DynamicAttr",e[e.AttrSplat=12]="AttrSplat",e[e.Yield=13]="Yield",e[e.Partial=14]="Partial",e[e.DynamicArg=15]="DynamicArg",e[e.StaticArg=16]="StaticArg",e[e.TrustingAttr=17]="TrustingAttr",e[e.Debugger=18]="Debugger",e[e.ClientSideStatement=19]="ClientSideStatement",e[e.Unknown=20]="Unknown",e[e.Get=21]="Get",e[e.MaybeLocal=22]="MaybeLocal",e[e.HasBlock=23]="HasBlock",e[e.HasBlockParams=24]="HasBlockParams",e[e.Undefined=25]="Undefined",e[e.Helper=26]="Helper",e[e.Concat=27]="Concat",e[e.ClientSideExpression=28]="ClientSideExpression"})(i||(e.Ops=i={})) +var o=t(i.Modifier),s=t(i.FlushElement),a=t(i.Get),u=t(i.MaybeLocal) +e.is=t,e.isModifier=o,e.isFlushElement=s,e.isAttribute=n,e.isArgument=r,e.isGet=a,e.isMaybeLocal=u,e.Ops=i}),e("backburner",["exports","ember-babel"],function(e,t){"use strict" +function n(e){var t,n,r,i,o=void 0 +return"function"==typeof MutationObserver?(t=0,n=new MutationObserver(e),r=document.createTextNode(""),n.observe(r,{characterData:!0}),o=function(){return t=++t%2,r.data=""+t,t}):"function"==typeof Promise?(i=Promise.resolve(),o=function(){return i.then(e)}):o=function(){return h(e,0)},{setTimeout:function(e,t){return h(e,t)},clearTimeout:function(e){return clearTimeout(e)},now:function(){return Date.now()},next:o,clearNext:d}}function r(e){var t=typeof e +return"number"===t&&e===e||"string"===t&&p.test(e)}function i(e){return e.onError||e.onErrorTarget&&e.onErrorTarget[e.onErrorMethod]}function o(e,t,n){var r,i,o=-1 +for(r=0,i=n.length;r<i;r+=4)if(n[r]===e&&n[r+1]===t){o=r +break}return o}function s(e,t){var n,r=-1 +for(n=3;n<t.length;n+=4)if(t[n]===e){r=n-3 +break}return r}function a(e,t){for(var n=0,r=t.length-6,i=void 0,o=void 0;n<r;)o=(r-n)/6,i=n+o-o%6,e>=t[i]?n=i+6:r=i +return e>=t[n]?n+6:n}function u(){var e,t,n,r,i,o,s=arguments.length,a=void 0,u=void 0,c=void 0 +if(0===s);else if(1===s)c=null,u=arguments[0] +else if(e=2,t=arguments[0],n=arguments[1],r=typeof n,"function"===r?(c=t,u=n):null!==t&&"string"===r&&n in t?(c=t,u=c[n]):"function"==typeof t&&(e=1,c=null,u=t),s>e)for(i=s-e,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o+e] +return[c,u,a]}function c(){var e,t=u.apply(void 0,arguments),n=t[0],i=t[1],o=t[2],s=0,a=void 0!==o?o.length:0 +return a>0&&(e=o[a-1],r(e)&&(s=parseInt(o.pop(),10))),[n,i,o,s]}function l(){var e,t=void 0,n=void 0,i=void 0,o=void 0,s=void 0 +return 2===arguments.length?(n=arguments[0],s=arguments[1],t=null):(e=u.apply(void 0,arguments),t=e[0],n=e[1],o=e[2],void 0===o?s=0:(s=o.pop(),r(s)||(i=!0===s,s=o.pop()))),s=parseInt(s,10),[t,n,o,s,i]}e.buildPlatform=void 0 +var h=setTimeout,d=function(){},p=/\d+/,f=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{} +this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=e,this.options=t,this.globalOptions=n}return e.prototype.stackFor=function(e){var t +if(e<this._queue.length)return t=this._queue[3*e+4],t?t.stack:null},e.prototype.flush=function(e){var t,n,r=this.options,o=r.before,s=r.after,a=void 0,u=void 0,c=void 0,l=void 0 +this.targetQueues.clear(),0===this._queueBeingFlushed.length&&(this._queueBeingFlushed=this._queue,this._queue=[]),void 0!==o&&o() +var h=void 0,d=this._queueBeingFlushed +if(d.length>0)for(t=i(this.globalOptions),h=t?this.invokeWithOnError:this.invoke,n=this.index;n<d.length;n+=4)if(this.index+=4,u=d[n+1],null!==u&&(a=d[n],c=d[n+2],l=d[n+3],h(a,u,c,t,l)),this.index!==this._queueBeingFlushed.length&&this.globalOptions.mustYield&&this.globalOptions.mustYield())return 1 +void 0!==s&&s(),this._queueBeingFlushed.length=0,this.index=0,!1!==e&&this._queue.length>0&&this.flush(!0)},e.prototype.hasWork=function(){return this._queueBeingFlushed.length>0||this._queue.length>0},e.prototype.cancel=function(e){var t=e.target,n=e.method,r=this._queue,i=this.targetQueues.get(t) +void 0!==i&&i.delete(n) +var s=o(t,n,r) +return s>-1?(r.splice(s,4),!0):(r=this._queueBeingFlushed,(s=o(t,n,r))>-1&&(r[s+1]=null,!0))},e.prototype.push=function(e,t,n,r){return this._queue.push(e,t,n,r),{queue:this,target:e,method:t}},e.prototype.pushUnique=function(e,t,n,r){var i,o,s=this.targetQueues.get(e) +void 0===s&&(s=new Map,this.targetQueues.set(e,s)) +var a=s.get(t) +return void 0===a?(i=this._queue.push(e,t,n,r)-4,s.set(t,i)):(o=this._queue,o[a+2]=n,o[a+3]=r),{queue:this,target:e,method:t}},e.prototype.invoke=function(e,t,n){void 0===n?t.call(e):t.apply(e,n)},e.prototype.invokeWithOnError=function(e,t,n,r,i){try{void 0===n?t.call(e):t.apply(e,n)}catch(e){r(e,i)}},e}(),g=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1] +this.queues={},this.queueNameIndex=0,this.queueNames=e,e.reduce(function(e,n){return e[n]=new f(n,t[n],t),e},this.queues)}return e.prototype.schedule=function(e,t,n,r,i,o){var s=this.queues,a=s[e] +if(void 0===a)throw new Error("You attempted to schedule an action in a queue ("+e+") that doesn't exist") +if(void 0===n||null===n)throw new Error("You attempted to schedule an action in a queue ("+e+") for a method that doesn't exist") +return this.queueNameIndex=0,i?a.pushUnique(t,n,r,o):a.push(t,n,r,o)},e.prototype.flush=function(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=void 0,n=void 0,r=this.queueNames.length;this.queueNameIndex<r;)if(n=this.queueNames[this.queueNameIndex],t=this.queues[n],!1===t.hasWork()){if(this.queueNameIndex++,e&&this.queueNameIndex<r)return 1}else if(1===t.flush(!1))return 1},e}(),m=function(e){for(var t=e(),n=t.next();!1===n.done;)n.value(),n=t.next()},v=function(){},y=0,b=0,C=0,A=0,_=0,I=0,w=0,x=0,k=0,j=0,E=0,S=0,T=0,P=0,O=0,R=0,N=0,M=0,L=0,D=0,z=0,F=function(){function e(e,t){var r=this +this.DEBUG=!1,this.currentInstance=null,this.instanceStack=[],this._debouncees=[],this._throttlers=[],this._eventCallbacks={end:[],begin:[]},this._timerTimeoutId=null,this._timers=[],this._autorun=null,this.queueNames=e,this.options=t||{},"string"==typeof this.options.defaultQueue?this._defaultQueue=this.options.defaultQueue:this._defaultQueue=this.queueNames[0],this._onBegin=this.options.onBegin||v,this._onEnd=this.options.onEnd||v,this._boundRunExpiredTimers=this._runExpiredTimers.bind(this),this._boundAutorunEnd=function(){L++,null!==r._autorun&&(r._autorun=null,r._end(!0))} +var i=this.options._buildPlatform||n +this._platform=i(this._boundAutorunEnd)}return e.prototype.begin=function(){b++ +var e=this.options,t=this.currentInstance,n=void 0 +return null!==this._autorun?(n=t,this._cancelAutorun()):(null!==t&&(z++,this.instanceStack.push(t)),D++,n=this.currentInstance=new g(this.queueNames,e),A++,this._trigger("begin",n,t)),this._onBegin(n,t),n},e.prototype.end=function(){C++,this._end(!1)},e.prototype.on=function(e,t){if("function"!=typeof t)throw new TypeError("Callback must be a function") +var n=this._eventCallbacks[e] +if(void 0===n)throw new TypeError("Cannot on() event "+e+" because it does not exist") +n.push(t)},e.prototype.off=function(e,t){var n,r=this._eventCallbacks[e] +if(!e||void 0===r)throw new TypeError("Cannot off() event "+e+" because it does not exist") +var i=!1 +if(t)for(n=0;n<r.length;n++)r[n]===t&&(i=!0,r.splice(n,1),n--) +if(!i)throw new TypeError("Cannot off() callback that does not exist")},e.prototype.run=function(){_++ +var e=u.apply(void 0,arguments),t=e[0],n=e[1],r=e[2] +return this._run(t,n,r)},e.prototype.join=function(){I++ +var e=u.apply(void 0,arguments),t=e[0],n=e[1],r=e[2] +return this._join(t,n,r)},e.prototype.defer=function(e,t,n){var r,i,o +for(w++,r=arguments.length,i=Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o] +return this.schedule.apply(this,[e,t,n].concat(i))},e.prototype.schedule=function(e){for(x++,t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +var t,n,r,i=u.apply(void 0,n),o=i[0],s=i[1],a=i[2],c=this.DEBUG?new Error:void 0 +return this._ensureInstance().schedule(e,o,s,a,!1,c)},e.prototype.scheduleIterable=function(e,t){k++ +var n=this.DEBUG?new Error:void 0 +return this._ensureInstance().schedule(e,null,m,[t],!1,n)},e.prototype.deferOnce=function(e,t,n){var r,i,o +for(j++,r=arguments.length,i=Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o] +return this.scheduleOnce.apply(this,[e,t,n].concat(i))},e.prototype.scheduleOnce=function(e){for(E++,t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +var t,n,r,i=u.apply(void 0,n),o=i[0],s=i[1],a=i[2],c=this.DEBUG?new Error:void 0 +return this._ensureInstance().schedule(e,o,s,a,!0,c)},e.prototype.setTimeout=function(){return S++,this.later.apply(this,arguments)},e.prototype.later=function(){T++ +var e=c.apply(void 0,arguments),t=e[0],n=e[1],r=e[2],i=e[3] +return this._later(t,n,r,i)},e.prototype.throttle=function(){var e=this +P++ +var t=l.apply(void 0,arguments),n=t[0],r=t[1],i=t[2],a=t[3],u=t[4],c=void 0===u||u,h=o(n,r,this._throttlers) +if(h>-1)return this._throttlers[h+2]=i,this._throttlers[h+3] +var d=this._platform.setTimeout(function(){var t=s(d,e._throttlers),n=e._throttlers.splice(t,4),r=n[0],i=n[1],o=n[2] +!1===c&&e._run(r,i,o)},a) +return c&&this._join(n,r,i),this._throttlers.push(n,r,i,d),d},e.prototype.debounce=function(){var e,t=this +O++ +var n=l.apply(void 0,arguments),r=n[0],i=n[1],a=n[2],u=n[3],c=n[4],h=void 0!==c&&c,d=o(r,i,this._debouncees) +d>-1&&(e=this._debouncees[d+3],this._platform.clearTimeout(e),this._debouncees.splice(d,4)) +var p=this._platform.setTimeout(function(){var e=s(p,t._debouncees),n=t._debouncees.splice(e,4),r=n[0],i=n[1],o=n[2] +!1===h&&t._run(r,i,o)},u) +return h&&-1===d&&this._join(r,i,a),this._debouncees.push(r,i,a,p),p},e.prototype.cancelTimers=function(){var e,t +for(R++,e=3;e<this._throttlers.length;e+=4)this._platform.clearTimeout(this._throttlers[e]) +for(this._throttlers=[],t=3;t<this._debouncees.length;t+=4)this._platform.clearTimeout(this._debouncees[t]) +this._debouncees=[],this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()},e.prototype.hasTimers=function(){return this._timers.length>0||this._debouncees.length>0||this._throttlers.length>0||null!==this._autorun},e.prototype.cancel=function(e){if(N++,void 0===e||null===e)return!1 +var t=typeof e +return"number"===t?this._cancelItem(e,this._throttlers)||this._cancelItem(e,this._debouncees):"string"===t?this._cancelLaterTimer(e):!("object"!==t||!e.queue||!e.method)&&e.queue.cancel(e)},e.prototype.ensureInstance=function(){this._ensureInstance()},e.prototype._end=function(e){var t=this.currentInstance,n=null +if(null===t)throw new Error("end called without begin") +var r=!1,i=void 0 +try{i=t.flush(e)}finally{r||(r=!0,1===i?this._scheduleAutorun():(this.currentInstance=null,this.instanceStack.length>0&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger("end",t,n),this._onEnd(t,n)))}},e.prototype._join=function(e,t,n){return null===this.currentInstance?this._run(e,t,n):void 0===e&&void 0===n?t():t.apply(e,n)},e.prototype._run=function(e,t,n){var r=i(this.options) +if(this.begin(),r)try{return t.apply(e,n)}catch(e){r(e)}finally{this.end()}else try{return t.apply(e,n)}finally{this.end()}},e.prototype._cancelAutorun=function(){null!==this._autorun&&(this._platform.clearNext(this._autorun),this._autorun=null)},e.prototype._later=function(e,t,n,r){var i,o=this.DEBUG?new Error:void 0,s=this._platform.now()+r,u=y+++"" +return 0===this._timers.length?(this._timers.push(s,u,e,t,n,o),this._installTimerTimeout()):(i=a(s,this._timers),this._timers.splice(i,0,s,u,e,t,n,o),0===i&&this._reinstallTimerTimeout()),u},e.prototype._cancelLaterTimer=function(e){var t +for(t=1;t<this._timers.length;t+=6)if(this._timers[t]===e)return t-=1,this._timers.splice(t,6),0===t&&this._reinstallTimerTimeout(),!0 +return!1},e.prototype._cancelItem=function(e,t){var n=s(e,t) +return n>-1&&(this._platform.clearTimeout(e),t.splice(n,4),!0)},e.prototype._trigger=function(e,t,n){var r,i=this._eventCallbacks[e] +if(void 0!==i)for(r=0;r<i.length;r++)i[r](t,n)},e.prototype._runExpiredTimers=function(){this._timerTimeoutId=null,this._timers.length>0&&(this.begin(),this._scheduleExpiredTimers(),this.end())},e.prototype._scheduleExpiredTimers=function(){for(var e,t,n,r,i=this._timers,o=0,s=i.length,a=this._defaultQueue,u=this._platform.now();o<s&&!(i[o]>u);o+=6)e=i[o+2],t=i[o+3],n=i[o+4],r=i[o+5],this.currentInstance.schedule(a,e,t,n,!1,r) +i.splice(0,o),this._installTimerTimeout()},e.prototype._reinstallTimerTimeout=function(){this._clearTimerTimeout(),this._installTimerTimeout()},e.prototype._clearTimerTimeout=function(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)},e.prototype._installTimerTimeout=function(){if(0!==this._timers.length){var e=this._timers[0],t=this._platform.now(),n=Math.max(0,e-t) +this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n)}},e.prototype._ensureInstance=function(){var e=this.currentInstance +return null===e&&(e=this.begin(),this._scheduleAutorun()),e},e.prototype._scheduleAutorun=function(){M++ +var e=this._platform.next +this._autorun=e()},(0,t.createClass)(e,[{key:"counters",get:function(){return{begin:b,end:C,events:{begin:A,end:0},autoruns:{created:M,completed:L},run:_,join:I,defer:w,schedule:x,scheduleIterable:k,deferOnce:j,scheduleOnce:E,setTimeout:S,later:T,throttle:P,debounce:O,cancelTimers:R,cancel:N,loops:{total:D,nested:z}}}},{key:"defaultQueue",get:function(){return this._defaultQueue}}]),e}() +F.Queue=f,e.buildPlatform=n,e.default=F}),e("container",["exports","ember-debug","ember-utils","ember-environment"],function(e,t,n,r){"use strict" +function i(e,t){return!1!==e.registry.getOption(t,"singleton")}function o(e,t){return!1!==e.registry.getOption(t,"instantiate")}function s(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t +if(!r.source&&!r.namespace||(i=e.registry.expandLocalLookup(t,r)))return!1!==r.singleton&&void 0!==(n=e.cache[i])?n:d(e,i,t,r)}function a(e,t,n){var r=e.factoryManagerCache[t] +if(void 0!==r)return r +var i=e.registry.resolve(t) +if(void 0!==i){var o=new x(e,i,n,t) +return e.factoryManagerCache[t]=o,o}}function u(e,t,n){var r=n.instantiate +return!1!==n.singleton&&!r&&i(e,t)&&!o(e,t)}function c(e,t,n){var r=n.instantiate +return!1!==n.singleton&&!1!==r&&i(e,t)&&o(e,t)}function l(e,t,n){var r=n.instantiate,s=n.singleton +return!(!1!==r||!1!==s&&i(e,t)||o(e,t))}function h(e,t,n){var r=n.instantiate,s=n.singleton +return!1!==r&&(!1!==s||i(e,t))&&o(e,t)}function d(e,t,n,r){var i=a(e,t,n) +if(void 0!==i){if(c(e,n,r))return e.cache[t]=i.create() +if(h(e,n,r))return i.create() +if(u(e,n,r)||l(e,n,r))return i.class +throw new Error("Could not create factory")}}function p(e,t,n){var r,o,a,u,c,l=n.injections +for(void 0===l&&(l=n.injections={}),r=0;r<t.length;r++)o=t[r],a=o.property,u=o.specifier,c=o.source,l[a]=c?s(e,u,{source:c}):s(e,u),n.isDynamic||(n.isDynamic=!i(e,u))}function f(e,t,n){var r={injections:void 0,isDyanmic:!1} +return void 0!==t&&p(e,t,r),void 0!==n&&p(e,n,r),r}function g(e,t){var n=e.registry,r=t.split(":"),i=r[0] +return f(e,n.getTypeInjections(i),n.getInjections(t))}function m(e){var t,n,r,i=e.cache,o=Object.keys(i) +for(t=0;t<o.length;t++)n=o[t],r=i[n],r.destroy&&r.destroy()}function v(e){m(e),e.cache=(0,n.dictionary)(null),e.factoryManagerCache=(0,n.dictionary)(null)}function y(e,t){var n=e.cache[t] +delete e.factoryManagerCache[t],n&&(delete e.cache[t],n.destroy&&n.destroy())}function b(e){e.resolver={resolve:e.resolver}}function C(e,t,n,r){var i=e._localLookupCache,o=i[t] +o||(o=i[t]=Object.create(null)) +var s=r||n,a=o[s] +if(void 0!==a)return a +var u=e.resolver.expandLocalLookup(t,n,r) +return o[s]=u}function A(e,t,n){var r=t +if(void 0===n||!n.source&&!n.namespace||(r=e.expandLocalLookup(t,n))){var i=e._resolveCache[r] +if(void 0!==i)return i +if(!e._failSet.has(r)){var o=void 0 +return e.resolver&&(o=e.resolver.resolve(r)),void 0===o&&(o=e.registrations[r]),void 0===o?e._failSet.add(r):e._resolveCache[r]=o,o}}}function _(e,t,n,r){return void 0!==e.resolve(t,{source:n,namespace:r})}e.FACTORY_FOR=e.Container=e.privatize=e.Registry=void 0 +var I=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{} +this.registry=e,this.owner=t.owner||null,this.cache=(0,n.dictionary)(t.cache||null),this.factoryManagerCache=(0,n.dictionary)(t.factoryManagerCache||null),this.isDestroyed=!1}return e.prototype.lookup=function(e,t){return s(this,this.registry.normalize(e),t)},e.prototype.destroy=function(){v(this),this.isDestroyed=!0},e.prototype.reset=function(e){this.isDestroyed||(void 0===e?v(this):y(this,this.registry.normalize(e)))},e.prototype.ownerInjection=function(){var e +return e={},e[n.OWNER]=this.owner,e},e.prototype.factoryFor=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.registry.normalize(e) +if(!t.source&&!t.namespace||(n=this.registry.expandLocalLookup(e,t)))return a(this,n,e)},e}(),w=new WeakMap,x=function(){function e(e,t,n,r){this.container=e,this.owner=e.owner,this.class=t,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0,w.set(this,this)}return e.prototype.toString=function(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString},e.prototype.create=function(e){var t,r,i,o=this.injections +void 0===o&&(t=g(this.container,this.normalizedName),r=t.injections,i=t.isDynamic,o=r,i||(this.injections=r)) +var s=o +if(void 0!==e&&(s=(0,n.assign)({},o,e)),!this.class.create)throw new Error("Failed to create an instance of '"+this.normalizedName+"'. Most likely an improperly defined class or an invalid module export.") +"function"==typeof this.class._initFactory?this.class._initFactory(this):(void 0!==e&&void 0!==s||(s=(0,n.assign)({},s)),(0,n.setOwner)(s,this.owner)) +var a=this.class.create(s) +return w.set(a,this),a},e}(),k=/^[^:]+:[^:]+$/,j=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{} +this.fallback=e.fallback||null,this.resolver=e.resolver||null,r.ENV._ENABLE_RESOLVER_FUNCTION_SUPPORT,"function"==typeof this.resolver&&!0===r.ENV._ENABLE_RESOLVER_FUNCTION_SUPPORT&&b(this),this.registrations=(0,n.dictionary)(e.registrations||null),this._typeInjections=(0,n.dictionary)(null),this._injections=(0,n.dictionary)(null),this._localLookupCache=Object.create(null),this._normalizeCache=(0,n.dictionary)(null),this._resolveCache=(0,n.dictionary)(null),this._failSet=new Set,this._options=(0,n.dictionary)(null),this._typeOptions=(0,n.dictionary)(null)}return e.prototype.container=function(e){return new I(this,e)},e.prototype.register=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.normalize(e) +this._failSet.delete(r),this.registrations[r]=t,this._options[r]=n},e.prototype.unregister=function(e){var t=this.normalize(e) +this._localLookupCache=Object.create(null),delete this.registrations[t],delete this._resolveCache[t],delete this._options[t],this._failSet.delete(t)},e.prototype.resolve=function(e,t){var n,r=A(this,this.normalize(e),t) +return void 0===r&&null!==this.fallback&&(r=(n=this.fallback).resolve.apply(n,arguments)),r},e.prototype.describe=function(e){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(e):null!==this.fallback?this.fallback.describe(e):e},e.prototype.normalizeFullName=function(e){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(e):null!==this.fallback?this.fallback.normalizeFullName(e):e},e.prototype.normalize=function(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this.normalizeFullName(e))},e.prototype.makeToString=function(e,t){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(e,t):null!==this.fallback?this.fallback.makeToString(e,t):e.toString()},e.prototype.has=function(e,t){if(!this.isValidFullName(e))return!1 +var n=t&&t.source&&this.normalize(t.source),r=t&&t.namespace||void 0 +return _(this,this.normalize(e),n,r)},e.prototype.optionsForType=function(e,t){this._typeOptions[e]=t},e.prototype.getOptionsForType=function(e){var t=this._typeOptions[e] +return void 0===t&&null!==this.fallback&&(t=this.fallback.getOptionsForType(e)),t},e.prototype.options=function(e,t){var n=this.normalize(e) +this._options[n]=t},e.prototype.getOptions=function(e){var t=this.normalize(e),n=this._options[t] +return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(e)),n},e.prototype.getOption=function(e,t){var n=this._options[e] +if(void 0!==n&&void 0!==n[t])return n[t] +var r=e.split(":")[0] +return n=this._typeOptions[r],n&&void 0!==n[t]?n[t]:null!==this.fallback?this.fallback.getOption(e,t):void 0},e.prototype.typeInjection=function(e,t,n){n.split(":")[0];(this._typeInjections[e]||(this._typeInjections[e]=[])).push({property:t,specifier:n})},e.prototype.injection=function(e,t,n){var r=this.normalize(n) +if(-1===e.indexOf(":"))return this.typeInjection(e,t,r) +var i=this.normalize(e);(this._injections[i]||(this._injections[i]=[])).push({property:t,specifier:r})},e.prototype.knownForType=function(e){var t,r,i=(0,n.dictionary)(null),o=Object.keys(this.registrations) +for(t=0;t<o.length;t++)r=o[t],r.split(":")[0]===e&&(i[r]=!0) +var s=void 0,a=void 0 +return null!==this.fallback&&(s=this.fallback.knownForType(e)),null!==this.resolver&&this.resolver.knownForType&&(a=this.resolver.knownForType(e)),(0,n.assign)({},s,i,a)},e.prototype.isValidFullName=function(e){return k.test(e)},e.prototype.getInjections=function(e){var t,n=this._injections[e] +return null!==this.fallback&&void 0!==(t=this.fallback.getInjections(e))&&(n=void 0===n?t:n.concat(t)),n},e.prototype.getTypeInjections=function(e){var t,n=this._typeInjections[e] +return null!==this.fallback&&void 0!==(t=this.fallback.getTypeInjections(e))&&(n=void 0===n?t:n.concat(t)),n},e.prototype.expandLocalLookup=function(e,t){var n,r +return null!==this.resolver&&this.resolver.expandLocalLookup?(n=this.normalize(e),r=this.normalize(t.source),C(this,n,r,t.namespace)):null!==this.fallback?this.fallback.expandLocalLookup(e,t):null},e}(),E=(0,n.dictionary)(null),S=(""+Math.random()+Date.now()).replace(".","") +e.Registry=j,e.privatize=function(e){var t=e[0],r=E[t] +if(r)return r +var i=t.split(":"),o=i[0],s=i[1] +return E[t]=(0,n.intern)(o+":"+s+"-"+S)},e.Container=I,e.FACTORY_FOR=w}),e("dag-map",["exports"],function(e){"use strict" +var t=function(){function e(){this._vertices=new n}return e.prototype.add=function(e,t,n,r){if(!e)throw new Error("argument `key` is required") +var i,o=this._vertices,s=o.add(e) +if(s.val=t,n)if("string"==typeof n)o.addEdge(s,o.add(n)) +else for(var i=0;i<n.length;i++)o.addEdge(s,o.add(n[i])) +if(r)if("string"==typeof r)o.addEdge(o.add(r),s) +else for(i=0;i<r.length;i++)o.addEdge(o.add(r[i]),s)},e.prototype.addEdges=function(e,t,n,r){this.add(e,t,n,r)},e.prototype.each=function(e){this._vertices.walk(e)},e.prototype.topsort=function(e){this.each(e)},e}() +e.default=t +var n=function(){function e(){this.length=0,this.stack=new r,this.path=new r,this.result=new r}return e.prototype.add=function(e){if(!e)throw new Error("missing key") +var t,n,r=0|this.length +for(t=0;t<r;t++)if(n=this[t],n.key===e)return n +return this.length=r+1,this[r]={idx:r,key:e,val:void 0,out:!1,flag:!1,length:0}},e.prototype.addEdge=function(e,t){this.check(e,t.key) +var n,r=0|t.length +for(n=0;n<r;n++)if(t[n]===e.idx)return +t.length=r+1,t[r]=e.idx,e.out=!0},e.prototype.walk=function(e){var t,n +for(this.reset(),t=0;t<this.length;t++)n=this[t],n.out||this.visit(n,"") +this.each(this.result,e)},e.prototype.check=function(e,t){var n,r +if(e.key===t)throw new Error("cycle detected: "+t+" <- "+t) +if(0!==e.length){for(n=0;n<e.length;n++)if(this[e[n]].key===t)throw new Error("cycle detected: "+t+" <- "+e.key+" <- "+t) +if(this.reset(),this.visit(e,t),this.path.length>0)throw r="cycle detected: "+t,this.each(this.path,function(e){r+=" <- "+e}),new Error(r)}},e.prototype.reset=function(){var e,t +for(this.stack.length=0,this.path.length=0,this.result.length=0,e=0,t=this.length;e<t;e++)this[e].flag=!1},e.prototype.visit=function(e,t){var n,r,i=this,o=i.stack,s=i.path,a=i.result +for(o.push(e.idx);o.length;)if((n=0|o.pop())>=0){if(r=this[n],r.flag)continue +if(r.flag=!0,s.push(n),t===r.key)break +o.push(~n),this.pushIncoming(r)}else s.pop(),a.push(~n)},e.prototype.pushIncoming=function(e){var t,n,r=this.stack +for(t=e.length-1;t>=0;t--)n=e[t],this[n].flag||r.push(n)},e.prototype.each=function(e,t){var n,r,i +for(n=0,r=e.length;n<r;n++)i=this[e[n]],t(i.key,i.val)},e}(),r=function(){function e(){this.length=0}return e.prototype.push=function(e){this[this.length++]=0|e},e.prototype.pop=function(){return 0|this[--this.length]},e}()}),e("ember-application/index",["exports","ember-application/lib/system/application","ember-application/lib/system/application-instance","ember-application/lib/system/resolver","ember-application/lib/system/engine","ember-application/lib/system/engine-instance","ember-application/lib/system/engine-parent"],function(e,t,n,r,i,o,s){"use strict" +Object.defineProperty(e,"Application",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"ApplicationInstance",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Resolver",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"Engine",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"EngineInstance",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"getEngineParent",{enumerable:!0,get:function(){return s.getEngineParent}}),Object.defineProperty(e,"setEngineParent",{enumerable:!0,get:function(){return s.setEngineParent}})}),e("ember-application/lib/system/application-instance",["exports","ember-utils","ember-metal","ember-environment","ember-views","ember-application/lib/system/engine-instance","ember-glimmer"],function(e,t,n,r,i,o,s){"use strict" +var a=o.default.extend({application:null,customEvents:null,rootElement:null,init:function(){this._super.apply(this,arguments),this.application._watchInstance(this),this.register("-application-instance:main",this,{instantiate:!1})},_bootSync:function(e){var t +return this._booted?this:(e=new u(e),this.setupRegistry(e),e.rootElement?this.rootElement=e.rootElement:this.rootElement=this.application.rootElement,e.location&&(t=(0,n.get)(this,"router"),(0,n.set)(t,"location",e.location)),this.application.runInstanceInitializers(this),e.isInteractive&&this.setupEventDispatcher(),this._booted=!0,this)},setupRegistry:function(e){this.constructor.setupRegistry(this.__registry__,e)},router:(0,n.computed)(function(){return this.lookup("router:main")}).readOnly(),didCreateRootView:function(e){e.appendTo(this.rootElement)},startRouting:function(){(0,n.get)(this,"router").startRouting(),this._didSetupRouter=!0},setupRouter:function(){if(!this._didSetupRouter){this._didSetupRouter=!0;(0,n.get)(this,"router").setupRouter()}},handleURL:function(e){var t=(0,n.get)(this,"router") +return this.setupRouter(),t.handleURL(e)},setupEventDispatcher:function(){var e=this.lookup("event_dispatcher:main"),r=(0,n.get)(this.application,"customEvents"),i=(0,n.get)(this,"customEvents"),o=(0,t.assign)({},r,i) +return e.setup(o,this.rootElement),e},getURL:function(){return(0,n.get)(this,"router.url")},visit:function(e){var t=this +this.setupRouter() +var r=this.__container__.lookup("-environment:main"),i=(0,n.get)(this,"router"),o=function(){return r.options.shouldRender?(0,s.renderSettled)().then(function(){return t}):t},a=function(e){if(e.error)throw e.error +if("TransitionAborted"===e.name&&i._routerMicrolib.activeTransition)return i._routerMicrolib.activeTransition.then(o,a) +throw"TransitionAborted"===e.name?new Error(e.message):e},u=(0,n.get)(i,"location") +return u.setURL(e),i.handleURL(u.getURL()).then(o,a)},willDestroy:function(){this._super.apply(this,arguments),this.application._unwatchInstance(this)}}) +a.reopenClass({setupRegistry:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{} +t.toEnvironment||(t=new u(t)),e.register("-environment:main",t.toEnvironment(),{instantiate:!1}),e.register("service:-document",t.document,{instantiate:!1}),this._super(e,t)}}) +var u=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{} +this.jQuery=i.jQuery,this.isInteractive=r.environment.hasDOM,this._renderMode=e._renderMode,void 0!==e.isBrowser?this.isBrowser=!!e.isBrowser:this.isBrowser=r.environment.hasDOM,this.isBrowser||(this.jQuery=null,this.isInteractive=!1,this.location="none"),void 0!==e.shouldRender?this.shouldRender=!!e.shouldRender:this.shouldRender=!0,this.shouldRender||(this.jQuery=null,this.isInteractive=!1),e.document?this.document=e.document:this.document="undefined"!=typeof document?document:null,e.rootElement&&(this.rootElement=e.rootElement),void 0!==e.location&&(this.location=e.location),void 0!==e.jQuery&&(this.jQuery=e.jQuery),void 0!==e.isInteractive&&(this.isInteractive=!!e.isInteractive)}return e.prototype.toEnvironment=function(){var e=(0,t.assign)({},r.environment) +return e.hasDOM=this.isBrowser,e.isInteractive=this.isInteractive,e._renderMode=this._renderMode,e.options=this,e},e}() +e.default=a}),e("ember-application/lib/system/application",["exports","ember-babel","ember-utils","ember-environment","ember-debug","ember-metal","ember-runtime","ember-views","ember-routing","ember-application/lib/system/application-instance","container","ember-application/lib/system/engine","ember-glimmer"],function(e,t,n,r,i,o,s,a,u,c,l,h,d){"use strict" +function p(e){e.register("router:main",u.Router.extend()),e.register("-view-registry:main",{create:function(){return(0,n.dictionary)(null)}}),e.register("route:basic",u.Route),e.register("event_dispatcher:main",a.EventDispatcher),e.injection("router:main","namespace","application:main"),e.register("location:auto",u.AutoLocation),e.register("location:hash",u.HashLocation),e.register("location:history",u.HistoryLocation),e.register("location:none",u.NoneLocation),e.register((0,l.privatize)(g),{create:function(){return new u.BucketCache}}),e.register("service:router",u.RouterService),e.injection("service:router","_router","router:main")}function f(){m||(m=!0,r.environment.hasDOM&&!a.jQueryDisabled&&o.libraries.registerCoreLibrary("jQuery",(0,a.jQuery)().jquery))}var g=(0,t.taggedTemplateLiteralLoose)(["-bucket-cache:main"],["-bucket-cache:main"]),m=!1,v=h.default.extend({rootElement:"body",eventDispatcher:null,customEvents:null,autoboot:!0,_globalsMode:!0,_applicationInstances:null,init:function(){this._super.apply(this,arguments),this.$||(this.$=a.jQuery),f(),this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=[],this.autoboot=this._globalsMode=!!this.autoboot,this._globalsMode&&this._prepareForGlobalsMode(),this.autoboot&&this.waitForDOMReady()},buildInstance:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{} +return e.base=this,e.application=this,c.default.create(e)},_watchInstance:function(e){this._applicationInstances.push(e)},_unwatchInstance:function(e){var t=this._applicationInstances.indexOf(e) +t>-1&&this._applicationInstances.splice(t,1)},_prepareForGlobalsMode:function(){this.Router=(this.Router||u.Router).extend(),this._buildDeprecatedInstance()},_buildDeprecatedInstance:function(){var e=this.buildInstance() +this.__deprecatedInstance__=e,this.__container__=e.__container__},waitForDOMReady:function(){!this.$||this.$.isReady?(0,o.schedule)("actions",this,"domReady"):this.$().ready((0,o.bind)(this,"domReady"))},domReady:function(){this.isDestroyed||this._bootSync()},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){0===--this._readinessDeferrals&&(0,o.once)(this,this.didBecomeReady)},boot:function(){if(this._bootPromise)return this._bootPromise +try{this._bootSync()}catch(e){}return this._bootPromise},_bootSync:function(){if(!this._booted){var e=this._bootResolver=s.RSVP.defer() +this._bootPromise=e.promise +try{this.runInitializers(),(0,s.runLoadHooks)("application",this),this.advanceReadiness()}catch(t){throw e.reject(t),t}}},reset:function(){var e=this.__deprecatedInstance__ +this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,this._booted=!1,(0,o.join)(this,function(){(0,o.run)(e,"destroy"),this._buildDeprecatedInstance(),(0,o.schedule)("actions",this,"_bootSync")})},didBecomeReady:function(){var e +try{(0,i.isTesting)()||((0,o.processAllNamespaces)(),(0,o.setNamespaceSearchDisabled)(!0)),this.autoboot&&(e=void 0,e=this._globalsMode?this.__deprecatedInstance__:this.buildInstance(),e._bootSync(),this.ready(),e.startRouting()),this._bootResolver.resolve(this),this._booted=!0}catch(e){throw this._bootResolver.reject(e),e}},ready:function(){return this},willDestroy:function(){this._super.apply(this,arguments),(0,o.setNamespaceSearchDisabled)(!1),this._booted=!1,this._bootPromise=null,this._bootResolver=null,s._loaded.application===this&&(s._loaded.application=void 0),this._applicationInstances.length&&(this._applicationInstances.forEach(function(e){return e.destroy()}),this._applicationInstances.length=0)},visit:function(e,t){var n=this +return this.boot().then(function(){var r=n.buildInstance() +return r.boot(t).then(function(){return r.visit(e)}).catch(function(e){throw(0,o.run)(r,"destroy"),e})})}}) +v.reopenClass({buildRegistry:function(){var e=this._super.apply(this,arguments) +return p(e),(0,d.setupApplicationRegistry)(e),e}}),e.default=v}),e("ember-application/lib/system/engine-instance",["exports","ember-babel","ember-utils","ember-runtime","ember-debug","container","ember-application/lib/system/engine-parent"],function(e,t,n,r,i,o,s){"use strict" +var a=(0,t.taggedTemplateLiteralLoose)(["-bucket-cache:main"],["-bucket-cache:main"]),u=(0,t.taggedTemplateLiteralLoose)(["template-compiler:main"],["template-compiler:main"]),c=r.Object.extend(r.RegistryProxyMixin,r.ContainerProxyMixin,{base:null,init:function(){this._super.apply(this,arguments),(0,n.guidFor)(this) +var e=this.base +e||(e=this.application,this.base=e) +var t=this.__registry__=new o.Registry({fallback:e.__registry__}) +this.__container__=t.container({owner:this}),this._booted=!1},boot:function(e){var t=this +return this._bootPromise?this._bootPromise:(this._bootPromise=new r.RSVP.Promise(function(n){return n(t._bootSync(e))}),this._bootPromise)},_bootSync:function(e){return this._booted?this:(this.cloneParentDependencies(),this.setupRegistry(e),this.base.runInstanceInitializers(this),this._booted=!0,this)},setupRegistry:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.__container__.lookup("-environment:main") +this.constructor.setupRegistry(this.__registry__,e)},unregister:function(e){this.__container__.reset(e),this._super.apply(this,arguments)},buildChildEngineInstance:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.lookup("engine:"+e) +if(!n)throw new i.Error("You attempted to mount the engine '"+e+"', but it is not registered with its parent.") +var r=n.buildInstance(t) +return(0,s.setEngineParent)(r,this),r},cloneParentDependencies:function(){var e=this,t=(0,s.getEngineParent)(this);["route:basic","service:-routing","service:-glimmer-environment"].forEach(function(n){return e.register(n,t.resolveRegistration(n))}) +var n=t.lookup("-environment:main") +this.register("-environment:main",n,{instantiate:!1}) +var r=["router:main",(0,o.privatize)(a),"-view-registry:main","renderer:-"+(n.isInteractive?"dom":"inert"),"service:-document",(0,o.privatize)(u)] +n.isInteractive&&r.push("event_dispatcher:main"),r.forEach(function(n){return e.register(n,t.lookup(n),{instantiate:!1})}),this.inject("view","_environment","-environment:main"),this.inject("route","_environment","-environment:main")}}) +c.reopenClass({setupRegistry:function(e,t){t&&(e.injection("view","_environment","-environment:main"),e.injection("route","_environment","-environment:main"),t.isInteractive?(e.injection("view","renderer","renderer:-dom"),e.injection("component","renderer","renderer:-dom")):(e.injection("view","renderer","renderer:-inert"),e.injection("component","renderer","renderer:-inert")))}}),e.default=c}),e("ember-application/lib/system/engine-parent",["exports","ember-utils"],function(e,t){"use strict" +e.ENGINE_PARENT=void 0,e.getEngineParent=function(e){return e[n]},e.setEngineParent=function(e,t){e[n]=t} +var n=e.ENGINE_PARENT=(0,t.symbol)("ENGINE_PARENT")}),e("ember-application/lib/system/engine",["exports","ember-babel","ember-utils","ember-runtime","container","dag-map","ember-debug","ember-metal","ember-application/lib/system/resolver","ember-application/lib/system/engine-instance","ember-routing","ember-extension-support","ember-views","ember-glimmer"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p){"use strict" +function f(e){var t=[] +for(var n in e)t.push(n) +return t}function g(e){return(e.get("Resolver")||u.default).create({namespace:e})}function m(e,t){return function(t){var n +void 0!==this.superclass[e]&&this.superclass[e]===this[e]&&(n={},n[e]=Object.create(this[e]),this.reopenClass(n)),this[e][t.name]=t}}function v(e){e.optionsForType("component",{singleton:!1}),e.optionsForType("view",{singleton:!1}),e.register("controller:basic",r.Controller,{instantiate:!1}),e.injection("view","_viewRegistry","-view-registry:main"),e.injection("renderer","_viewRegistry","-view-registry:main"),e.injection("event_dispatcher:main","_viewRegistry","-view-registry:main"),e.injection("route","_topLevelViewTemplate","template:-outlet"),e.injection("view:-outlet","namespace","application:main"),e.injection("controller","target","router:main"),e.injection("controller","namespace","application:main"),e.injection("router","_bucketCache",(0,i.privatize)(y)),e.injection("route","_bucketCache",(0,i.privatize)(y)),e.injection("route","_router","router:main"),e.register("service:-routing",l.RoutingService),e.injection("service:-routing","router","router:main"),e.register("resolver-for-debugging:main",e.resolver,{instantiate:!1}),e.injection("container-debug-adapter:main","resolver","resolver-for-debugging:main"),e.injection("data-adapter:main","containerDebugAdapter","container-debug-adapter:main"),e.register("container-debug-adapter:main",h.ContainerDebugAdapter),e.register("component-lookup:main",d.ComponentLookup)}var y=(0,t.taggedTemplateLiteralLoose)(["-bucket-cache:main"],["-bucket-cache:main"]),b=r.Namespace.extend(r.RegistryProxyMixin,{init:function(){this._super.apply(this,arguments),this.buildRegistry()},_initializersRan:!1,ensureInitializers:function(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)},buildInstance:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{} +return this.ensureInitializers(),e.base=this,c.default.create(e)},buildRegistry:function(){return this.__registry__=this.constructor.buildRegistry(this)},initializer:function(e){this.constructor.initializer(e)},instanceInitializer:function(e){this.constructor.instanceInitializer(e)},runInitializers:function(){var e=this +this._runInitializer("initializers",function(t,n){n.initialize(e)})},runInstanceInitializers:function(e){this._runInitializer("instanceInitializers",function(t,n){n.initialize(e)})},_runInitializer:function(e,t){var n,r=(0,a.get)(this.constructor,e),i=f(r),s=new o.default,u=void 0 +for(n=0;n<i.length;n++)u=r[i[n]],s.add(u.name,u,u.before,u.after) +s.topsort(t)}}) +b.reopenClass({initializers:Object.create(null),instanceInitializers:Object.create(null),initializer:m("initializers","initializer"),instanceInitializer:m("instanceInitializers","instance initializer"),buildRegistry:function(e){var t=new i.Registry({resolver:g(e)}) +return t.set=a.set,t.register("application:main",e,{instantiate:!1}),v(t),(0,p.setupEngineRegistry)(t),t},resolver:null,Resolver:null}),e.default=b}),e("ember-application/lib/system/resolver",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-application/lib/utils/validate-type","ember-glimmer"],function(e,t,n,r,i,o,s){"use strict" +e.Resolver=void 0,e.Resolver=i.Object.extend({namespace:null,normalize:null,resolve:null,parseName:null,lookupDescription:null,makeToString:null,resolveOther:null,_logLookup:null}) +var a=i.Object.extend({namespace:null,init:function(){this._parseNameCache=(0,t.dictionary)(null)},normalize:function(e){var t,n=e.split(":"),r=n[0],i=n[1] +return"template"!==r?(t=i.replace(/(\.|_|-)./g,function(e){return e.charAt(1).toUpperCase()}),r+":"+t):e},resolve:function(e){var t=this.parseName(e),n=t.resolveMethodName,r=void 0 +return this[n]&&(r=this[n](t)),r=r||this.resolveOther(t),r&&(0,o.default)(r,t),r},parseName:function(e){return this._parseNameCache[e]||(this._parseNameCache[e]=this._parseName(e))},_parseName:function(e){var t,r,o=e.split(":"),s=o[0],a=o[1],u=a,c=(0,n.get)(this,"namespace"),l=c,h=u.lastIndexOf("/"),d=-1!==h?u.slice(0,h):null +"template"!==s&&-1!==h&&(t=u.split("/"),u=t[t.length-1],r=i.String.capitalize(t.slice(0,-1).join(".")),l=(0,n.findNamespace)(r)) +var p="main"===a?"Main":i.String.classify(s) +if(!u||!s)throw new TypeError("Invalid fullName: `"+e+"`, must be of the form `type:name` ") +return{fullName:e,type:s,fullNameWithoutType:a,dirname:d,name:u,root:l,resolveMethodName:"resolve"+p}},lookupDescription:function(e){var t=this.parseName(e),n=void 0 +return"template"===t.type?"template at "+t.fullNameWithoutType.replace(/\./g,"/"):(n=t.root+"."+i.String.classify(t.name).replace(/\./g,""),"model"!==t.type&&(n+=i.String.classify(t.type)),n)},makeToString:function(e){return e.toString()},useRouterNaming:function(e){"basic"===e.name?e.name="":e.name=e.name.replace(/\./g,"_")},resolveTemplate:function(e){var t=e.fullNameWithoutType.replace(/\./g,"/") +return(0,s.getTemplate)(t)||(0,s.getTemplate)(i.String.decamelize(t))},resolveView:function(e){return this.useRouterNaming(e),this.resolveOther(e)},resolveController:function(e){return this.useRouterNaming(e),this.resolveOther(e)},resolveRoute:function(e){return this.useRouterNaming(e),this.resolveOther(e)},resolveModel:function(e){var t=i.String.classify(e.name) +return(0,n.get)(e.root,t)},resolveHelper:function(e){return this.resolveOther(e)},resolveOther:function(e){var t=i.String.classify(e.name)+i.String.classify(e.type) +return(0,n.get)(e.root,t)},resolveMain:function(e){var t=i.String.classify(e.type) +return(0,n.get)(e.root,t)},knownForType:function(e){var r,o,s,a=(0,n.get)(this,"namespace"),u=i.String.classify(e),c=new RegExp(u+"$"),l=(0,t.dictionary)(null),h=Object.keys(a) +for(r=0;r<h.length;r++)o=h[r],c.test(o)&&(s=this.translateToContainerFullname(e,o),l[s]=!0) +return l},translateToContainerFullname:function(e,t){var n=i.String.classify(e),r=t.slice(0,-1*n.length) +return e+":"+i.String.dasherize(r)}}) +e.default=a}),e("ember-application/lib/utils/validate-type",["exports","ember-debug"],function(e,t){"use strict" +e.default=function(e,t){var r=n[t.type] +if(r){r[1],r[2]}} +var n={route:["assert","isRouteFactory","Ember.Route"],component:["deprecate","isComponentFactory","Ember.Component"],view:["deprecate","isViewFactory","Ember.View"],service:["deprecate","isServiceFactory","Ember.Service"]}}),e("ember-babel",["exports"],function(e){"use strict" +function t(e,t){e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):o(e,t))}function n(e,t){return e.raw=t,e}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n] +r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}function o(e,t){for(var n=Object.getOwnPropertyNames(t),r=0;r<n.length;r++){var i=n[r],o=Object.getOwnPropertyDescriptor(t,i) +o&&o.configurable&&void 0===e[i]&&Object.defineProperty(e,i,o)}return e}e.inherits=t,e.taggedTemplateLiteralLoose=n,e.createClass=i,e.defaults=o +e.possibleConstructorReturn=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?e:t},e.slice=Array.prototype.slice}),e("ember-console",["exports","ember-debug"],function(e,t){"use strict" +e.default={log:function(){var e +return(e=console).log.apply(e,arguments)},warn:function(){var e +return(e=console).warn.apply(e,arguments)},error:function(){var e +return(e=console).error.apply(e,arguments)},info:function(){var e +return(e=console).info.apply(e,arguments)},debug:function(){var e,t +return console.debug?(t=console).debug.apply(t,arguments):(e=console).info.apply(e,arguments)},assert:function(){var e +return(e=console).assert.apply(e,arguments)}}}),e("ember-debug/index",["exports","ember-debug/lib/warn","ember-debug/lib/deprecate","ember-debug/lib/features","ember-debug/lib/error","ember-debug/lib/testing","ember-environment","ember/features"],function(e,t,n,r,i,o,s,a){"use strict" +e._warnIfUsingStrippedFeatureFlags=e.getDebugFunction=e.setDebugFunction=e.deprecateFunc=e.runInDebug=e.debugFreeze=e.debugSeal=e.deprecate=e.debug=e.warn=e.info=e.assert=e.setTesting=e.isTesting=e.Error=e.isFeatureEnabled=e.registerDeprecationHandler=e.registerWarnHandler=void 0,Object.defineProperty(e,"registerWarnHandler",{enumerable:!0,get:function(){return t.registerHandler}}),Object.defineProperty(e,"registerDeprecationHandler",{enumerable:!0,get:function(){return n.registerHandler}}),Object.defineProperty(e,"isFeatureEnabled",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"Error",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"isTesting",{enumerable:!0,get:function(){return o.isTesting}}),Object.defineProperty(e,"setTesting",{enumerable:!0,get:function(){return o.setTesting}}) +var u=(a.DEFAULT_FEATURES,a.FEATURES,function(){}) +e.assert=u,e.info=u,e.warn=u,e.debug=u,e.deprecate=u,e.debugSeal=u,e.debugFreeze=u,e.runInDebug=u,e.deprecateFunc=function(){return arguments[arguments.length-1]},e.setDebugFunction=u,e.getDebugFunction=u,e._warnIfUsingStrippedFeatureFlags=void 0}),e("ember-debug/lib/deprecate",["exports","ember-debug/lib/error","ember-environment","ember-debug/index","ember-debug/lib/handlers"],function(e){"use strict" +e.missingOptionsUntilDeprecation=e.missingOptionsIdDeprecation=e.missingOptionsDeprecation=e.registerHandler=void 0,e.default=void 0,e.registerHandler=function(){},e.missingOptionsDeprecation=void 0,e.missingOptionsIdDeprecation=void 0,e.missingOptionsUntilDeprecation=void 0}),e("ember-debug/lib/error",["exports","ember-babel"],function(e,t){"use strict" +var n=function(e){function n(r){var i,o=(0,t.possibleConstructorReturn)(this,e.call(this)) +if(!(o instanceof n))return i=new n(r),(0,t.possibleConstructorReturn)(o,i) +var s=Error.call(o,r) +return o.stack=s.stack,o.description=s.description,o.fileName=s.fileName,o.lineNumber=s.lineNumber,o.message=s.message,o.name=s.name,o.number=s.number,o.code=s.code,o}return(0,t.inherits)(n,e),n}(function(e){function t(){e.apply(this,arguments)}return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t}(Error)) +e.default=n}),e("ember-debug/lib/features",["exports","ember-environment","ember/features"],function(e,t,n){"use strict" +e.default=function(e){var n=r[e] +return!0===n||!1===n||void 0===n?n:!!t.ENV.ENABLE_OPTIONAL_FEATURES} +var r=n.FEATURES}),e("ember-debug/lib/handlers",["exports"],function(e){"use strict" +e.HANDLERS={},e.registerHandler=function(){},e.invoke=function(){}}) +e("ember-debug/lib/testing",["exports"],function(e){"use strict" +function t(){return n}e.isTesting=t,e.setTesting=function(e){n=!!e} +var n=!1}),e("ember-debug/lib/warn",["exports","ember-environment","ember-debug/lib/deprecate","ember-debug/index","ember-debug/lib/handlers"],function(e){"use strict" +e.missingOptionsDeprecation=e.missingOptionsIdDeprecation=e.registerHandler=void 0,e.default=function(){},e.registerHandler=function(){},e.missingOptionsIdDeprecation=void 0,e.missingOptionsDeprecation=void 0}),e("ember-environment",["exports"],function(e){"use strict" +function t(e){return e&&e.Object===Object?e:void 0}function n(e){return!1!==e}function r(e){return!0===e}var i=t(function(e){return e&&void 0===e.nodeType?e:void 0}("object"==typeof global&&global))||t("object"==typeof self&&self)||t("object"==typeof window&&window)||mainContext||new Function("return this")(),o="object"==typeof i.EmberENV&&i.EmberENV||"object"==typeof i.ENV&&i.ENV||{} +o.ENABLE_ALL_FEATURES&&(o.ENABLE_OPTIONAL_FEATURES=!0),o.EXTEND_PROTOTYPES=function(e){return!1===e?{String:!1,Array:!1,Function:!1}:e&&!0!==e?{String:n(e.String),Array:n(e.Array),Function:n(e.Function)}:{String:!0,Array:!0,Function:!0}}(o.EXTEND_PROTOTYPES),o.LOG_STACKTRACE_ON_DEPRECATION=n(o.LOG_STACKTRACE_ON_DEPRECATION),o.LOG_VERSION=n(o.LOG_VERSION),o.RAISE_ON_DEPRECATION=r(o.RAISE_ON_DEPRECATION),o._APPLICATION_TEMPLATE_WRAPPER=n(o._APPLICATION_TEMPLATE_WRAPPER),o._TEMPLATE_ONLY_GLIMMER_COMPONENTS=r(o._TEMPLATE_ONLY_GLIMMER_COMPONENTS) +var s="undefined"!=typeof window&&window===i&&window.document&&window.document.createElement&&!o.disableBrowserEnvironment,a=i.Ember||{},u={imports:a.imports||i,exports:a.exports||i,lookup:a.lookup||i},c=s?{hasDOM:!0,isChrome:!!window.chrome&&!window.opera,isFirefox:"undefined"!=typeof InstallTrigger,location:window.location,history:window.history,userAgent:window.navigator.userAgent,window:window}:{hasDOM:!1,isChrome:!1,isFirefox:!1,location:null,history:null,userAgent:"Lynx (textmode)",window:null} +e.ENV=o,e.getENV=function(){return o},e.context=u,e.getLookup=function(){return u.lookup},e.setLookup=function(e){u.lookup=e},e.environment=c}),e("ember-extension-support/index",["exports","ember-extension-support/lib/data_adapter","ember-extension-support/lib/container_debug_adapter"],function(e,t,n){"use strict" +Object.defineProperty(e,"DataAdapter",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"ContainerDebugAdapter",{enumerable:!0,get:function(){return n.default}})}),e("ember-extension-support/lib/container_debug_adapter",["exports","ember-runtime"],function(e,t){"use strict" +e.default=t.Object.extend({resolver:null,canCatalogEntriesByType:function(e){return"model"!==e&&"template"!==e},catalogEntriesByType:function(e){var n=(0,t.A)(t.Namespace.NAMESPACES),r=(0,t.A)(),i=new RegExp(t.String.classify(e)+"$") +return n.forEach(function(e){var n +for(var o in e)e.hasOwnProperty(o)&&i.test(o)&&(n=e[o],"class"===(0,t.typeOf)(n)&&r.push(t.String.dasherize(o.replace(i,""))))}),r}})}),e("ember-extension-support/lib/data_adapter",["exports","ember-utils","ember-metal","ember-runtime"],function(e,t,n,r){"use strict" +e.default=r.Object.extend({init:function(){this._super.apply(this,arguments),this.releaseMethods=(0,r.A)()},containerDebugAdapter:void 0,attributeLimit:3,acceptsModelName:!0,releaseMethods:(0,r.A)(),getFilters:function(){return(0,r.A)()},watchModelTypes:function(e,t){var n=this,i=this.getModelTypes(),o=(0,r.A)(),s=void 0 +s=i.map(function(e){var r=e.klass,i=n.wrapModelType(r,e.name) +return o.push(n.observeModelType(e.name,t)),i}),e(s) +var a=function(){o.forEach(function(e){return e()}),n.releaseMethods.removeObject(a)} +return this.releaseMethods.pushObject(a),a},_nameToClass:function(e){var n,r +return"string"==typeof e&&(n=(0,t.getOwner)(this),r=n.factoryFor("model:"+e),e=r&&r.class),e},watchRecords:function(e,t,i,o){function s(e){i([e])}var a=this,u=(0,r.A)(),c=this._nameToClass(e),l=this.getRecords(c,e),h=void 0,d=l.map(function(e){return u.push(a.observeRecord(e,s)),a.wrapRecord(e)}),p={didChange:function(e,r,i,c){var l,h,d +for(l=r;l<r+c;l++)h=(0,n.objectAt)(e,l),d=a.wrapRecord(h),u.push(a.observeRecord(h,s)),t([d]) +i&&o(r,i)},willChange:function(){return this}} +return(0,n.addArrayObserver)(l,this,p),h=function(){u.forEach(function(e){return e()}),(0,n.removeArrayObserver)(l,a,p),a.releaseMethods.removeObject(h)},t(d),this.releaseMethods.pushObject(h),h},willDestroy:function(){this._super.apply(this,arguments),this.releaseMethods.forEach(function(e){return e()})},detect:function(){return!1},columnsForType:function(){return(0,r.A)()},observeModelType:function(e,t){function r(){t([this.wrapModelType(o,e)])}var i=this,o=this._nameToClass(e),s=this.getRecords(o,e),a={didChange:function(e,t,i,o){(i>0||o>0)&&(0,n.scheduleOnce)("actions",this,r)},willChange:function(){return this}} +return(0,n.addArrayObserver)(s,this,a),function(){return(0,n.removeArrayObserver)(s,i,a)}},wrapModelType:function(e,t){var r=this.getRecords(e,t) +return{name:t,count:(0,n.get)(r,"length"),columns:this.columnsForType(e),object:e}},getModelTypes:function(){var e=this,t=this.get("containerDebugAdapter"),n=void 0 +return n=t.canCatalogEntriesByType("model")?t.catalogEntriesByType("model"):this._getObjectsOnNamespaces(),n=(0,r.A)(n).map(function(t){return{klass:e._nameToClass(t),name:t}}),n=(0,r.A)(n).filter(function(t){return e.detect(t.klass)}),(0,r.A)(n)},_getObjectsOnNamespaces:function(){var e=this,t=(0,r.A)(r.Namespace.NAMESPACES),n=(0,r.A)() +return t.forEach(function(t){var i +for(var o in t)t.hasOwnProperty(o)&&e.detect(t[o])&&(i=r.String.dasherize(o),n.push(i))}),n},getRecords:function(){return(0,r.A)()},wrapRecord:function(e){var t={object:e} +return t.columnValues=this.getRecordColumnValues(e),t.searchKeywords=this.getRecordKeywords(e),t.filterValues=this.getRecordFilterValues(e),t.color=this.getRecordColor(e),t},getRecordColumnValues:function(){return{}},getRecordKeywords:function(){return(0,r.A)()},getRecordFilterValues:function(){return{}},getRecordColor:function(){return null},observeRecord:function(){return function(){}}})}),e("ember-glimmer",["exports","@glimmer/runtime","@glimmer/util","@glimmer/node","ember-babel","@glimmer/opcode-compiler","ember-utils","@glimmer/reference","ember-runtime","ember-metal","ember-debug","ember-views","ember-environment","node-module","@glimmer/wire-format","container","rsvp","ember-routing"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m,v){"use strict" +function y(e){return new Qe((0,o.templateFactory)(e))}function b(e){return"object"==typeof e&&null!==e&&e.class&&e.class.isHelperFactory}function C(e){return void 0===e.destroy}function A(e){return new $e(e)}function _(e){return!!e&&(!0===e||(!(0,u.isArray)(e)||0!==(0,c.get)(e,"length")))}function I(e,t){var n,r=e +for(n=0;n<t.length;n++)r=r.get(t[n]) +return r}function w(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1] +return null!==e&&"object"==typeof e?n?new ot(e):new ft(e):"function"==typeof e?new ft(e):t.PrimitiveReference.create(e)}function x(e){if(e in xt)return xt[e] +if(!d.environment.hasDOM)return xt[e]=e,e +var t=document.createElement("input") +try{t.type=e}catch(e){}return xt[e]=t.type===e}function k(e){return null!==e&&"object"==typeof e&&e[Tt]}function j(e,t){return k(e)?new Bt(e,t||"@key"):new Ht(e,t||"@identity")}function E(e){return"function"==typeof e.forEach}function S(e){return"function"==typeof e[Symbol.iterator]}function T(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function P(e,t,n){return String(n)}function O(e,t){return t}function R(e,t){return N(t)}function N(e){switch(typeof e){case"string":return e +case"number":return String(e) +default:return(0,s.guidFor)(e)}}function M(e){return function(t){return String((0,c.get)(t,e))}}function L(e){var t=new Set +return function(n,r,i){var o=e(n,r,i),s=t[o] +return void 0===s?(t[o]=0,o):(t[o]=++s,o+"be277757-bbbe-4620-9fcb-213ef433cca2"+s)}}function D(e){return qt[e]}function z(e){return null===e||void 0===e?e="":"string"!=typeof e&&(e=""+e),new Ut(e)}function F(e){return null!==e&&"object"==typeof e&&"function"==typeof e.toHTML}function B(e){var t=void 0 +if(d.environment.hasDOM&&(t=H.call(e,"foobar:baz")),"foobar:"===t)e.protocolForURL=H +else if("object"==typeof URL)Gt=URL,e.protocolForURL=U +else{if(!p.IS_NODE)throw new Error("Could not find valid URL parsing mechanism for URL Sanitization") +Gt=(0,p.require)("url"),e.protocolForURL=U}}function H(e){return Yt||(Yt=document.createElement("a")),Yt.href=e,Yt.protocol}function U(e){var t=null +return"string"==typeof e&&(t=Gt.parse(e).protocol),null===t?":":t}function q(e){return{object:e.name+":"+e.outlet}}function V(e){var t,n,r +return d.ENV._APPLICATION_TEMPLATE_WRAPPER?(t=(0,s.assign)({},Zt,{dynamicTag:!0,elementHook:!0}),n=function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.prototype.getTagName=function(){return"div"},n.prototype.getLayout=function(e){var t=e.template,n=t.asWrappedLayout() +return{handle:n.compile(),symbolTable:n.symbolTable}},n.prototype.getCapabilities=function(){return t},n.prototype.didCreateElement=function(e,t){t.setAttribute("class","ember-view"),t.setAttribute("id",(0,s.guidFor)(e))},n}(Xt),r=new n,new $t(e.state,r)):new $t(e.state)}function W(){}function G(e,t){return e[yt].get(t)}function Y(e,t){return"attrs"===t[0]&&(t.shift(),1===t.length)?G(e,t[0]):I(e[yt],t)}function K(e){if(null!==e){var t,n,r,i,o=e[0],s=e[1],a=null===o?-1:o.indexOf("class") +if(-1!==a){if(t=s[a],!Array.isArray(t))return +n=t[0],n!==f.Ops.Get&&n!==f.Ops.MaybeLocal||(r=t[t.length-1],i=r[r.length-1],s[a]=[f.Ops.Helper,"-class",[t,i],null])}}}function Q(e){var t,n,r,i,o=e.names,s=e.value(),a=Object.create(null),u=Object.create(null) +for(a[vt]=u,t=0;t<o.length;t++)n=o[t],r=e.get(n),i=s[n],"function"==typeof i&&i[nt]?s[n]=i:r[et]&&(s[n]=new ln(r,i)),u[n]=r,a[n]=i +return a.attrs=s,a}function Z(e,t){e.named.has("id")&&(t.elementId=t.id)}function X(e){return"function"==typeof e.create}function J(e,n,r,i){for(var o,s,a,u=[],c=n.length-1;-1!==c;)o=n[c],s=tn.parse(o),a=s[1],-1===u.indexOf(a)&&(u.push(a),tn.install(e,r,s,i)),c--;-1===u.indexOf("id")&&i.setAttribute("id",t.PrimitiveReference.create(r.elementId),!0,null),-1===u.indexOf("style")&&on.install(e,r,i)}function $(e){return e.instrumentDetails({initialRender:!0})}function ee(e){return e.instrumentDetails({initialRender:!1})}function te(e){An.push(e)}function ne(e){var t=An.indexOf(e) +An.splice(t,1)}function re(){}function ie(){return null===_n&&(_n=m.default.defer(),(0,c.getCurrentRunLoop)()||c.backburner.schedule("actions",null,re)),_n.promise}function oe(){var e +null!==_n&&(e=_n.resolve,_n=null,c.backburner.join(null,e))}function se(){var e +for(e=0;e<An.length;e++)if(!An[e]._isValid()){if(In>10)throw In=0,An[e].destroy(),new Error("infinite rendering invalidation detected") +return In++,c.backburner.join(null,re)}In=0,oe()}function ae(){return jn}function ue(e){if(jn.hasOwnProperty(e))return jn[e]}function ce(e){return jn.hasOwnProperty(e)}function le(e,t){return jn[e]=t}function he(e){var t=e.positional,n=t.at(0),r=t.length,i=n.value() +return!0===i?r>1?u.String.dasherize(t.at(1).value()):null:!1===i?r>2?u.String.dasherize(t.at(2).value()):null:i}function de(e){var t=e.positional,n=t.at(0) +return new Ut(n.value())}function pe(e){return"checkbox"===e.positional.at(0).value()?"-checkbox":"-text-field"}function fe(e){var t=e.positional,n=t.at(0).value().split("."),r=n[n.length-1],i=t.at(1).value() +return!0===i?u.String.dasherize(r):i||0===i?String(i):""}function ge(e,t){var n=t.named,r=t.positional,i=r.capture(),o=i.references,s=o[0],u=o[1],c=o.slice(2),l=u._propertyKey,h=n.has("target")?n.get("target"):s,d=ve(n.has("value")&&n.get("value"),c),p=void 0 +return p="function"==typeof u[tt]?be(u,u,u[tt],d,l):(0,a.isConst)(h)&&(0,a.isConst)(u)?be(s.value(),h.value(),u.value(),d,l):ye(s.value(),h,u,d,l),p[nt]=!0,new ft(p)}function me(e){return e}function ve(e,t){var n=void 0 +t.length>0&&(n=function(e){return t.map(function(e){return e.value()}).concat(e)}) +var r=void 0 +return e&&(r=function(t){var n=e.value() +return n&&t.length>0&&(t[0]=(0,c.get)(t[0],n)),t}),n&&r?function(e){return r(n(e))}:n||r||me}function ye(e,t,n,r,i){return function(){return be(e,t.value(),n.value(),r,i).apply(void 0,arguments)}}function be(e,t,n,r,i){var o,s=void 0,a=void 0 +return"function"==typeof n[tt]?(s=n,a=n[tt]):(o=typeof n,"string"===o?(s=t,a=t.actions&&t.actions[n]):"function"===o&&(s=e,a=n)),function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +var e,t,n,i={target:s,args:t,label:"@glimmer/closure-action"} +return(0,c.flaggedInstrument)("interaction.ember-action",i,function(){return c.join.apply(void 0,[s,a].concat(r(t)))})}}function Ce(e){return e.positional.value().map(Mn).join("")}function Ae(e,n){return void 0===n||null===n||""===n?t.NULL_REFERENCE:"string"==typeof n&&n.indexOf(".")>-1?I(e,n.split(".")):e.get(n)}function _e(e){var t,n=e.positional;(t=console).log.apply(t,n.value())}function Ie(e){return e&&e[zn]}function we(e){return e[Fn]||e}function xe(e){var t=(e.positional,e.named) +return new v.QueryParams((0,s.assign)({},t.value()))}function ke(e,t){var n +if(null===t||void 0===t){if(Hn.test(e.type))return(0,h.isSimpleClick)(e) +t=""}if(t.indexOf("any")>=0)return!0 +for(n=0;n<Bn.length;n++)if(e[Bn[n]+"Key"]&&-1===t.indexOf(Bn[n]))return!1 +return!0}function je(e){return null===e?null:[e[0].map(function(e){return"@"+e}),e[1]]}function Ee(e,t,n,r){var i=r.compiler.resolver.lookupComponentDefinition("-text-area",r.referrer) +return K(n),r.component.static(i,[t||[],je(n),null,null]),!0}function Se(e,t,n,r){var i=r.compiler.resolver.lookupComponentDefinition(e,r.referrer) +return r.component.static(i,[t,je(n),null,null]),!0}function Te(e,t,n,r){var i,o,s,a,u +if(null===t&&(t=[]),null!==n&&(i=n[0],o=n[1],(s=i.indexOf("type"))>-1)){if(a=o[s],Array.isArray(a))return u=t[0],r.dynamicComponent(u,t.slice(1),n,!0,null,null),!0 +if("checkbox"===a)return K(n),Se("-checkbox",t,n,r)}return Se("-text-field",t,n,r)}function Pe(e,t,n,r,i){return null!==n&&(null!==e?(i.compileParams(e),i.invokeStaticBlock(n,e.length)):i.invokeStatic(n)),!0}function Oe(e,t,n,r){var i=[f.Ops.Helper,"-mount",t||[],n] +return r.dynamicComponent(i,[],null,!1,null,null),!0}function Re(e,t,n,r){var i=[f.Ops.Helper,"-outlet",t||[],n] +return r.dynamicComponent(i,[],null,!1,null,null),!0}function Ne(e){var t=e.value() +if(void 0===t)return null +var n=t.render +if(void 0===n)return null +var r=n.template +return void 0===r?null:{ref:e,name:n.name,outlet:n.outlet,template:r,controller:n.controller}}function Me(e,t){return null===e?null===t:null!==t&&(e.template===t.template&&e.controller===t.controller)}function Le(e,t,n,r){var i +return!0===d.ENV._ENABLE_RENDER_SUPPORT&&(i=[f.Ops.Helper,"-render",t||[],n],r.dynamicComponent(i,null,null,!1,null,null),!0)}function De(e,t,n,r){if(-1===e.indexOf("-"))return!1 +var i=r.compiler.resolver.lookupComponentDefinition(e,r.referrer) +return null!==i&&(r.component.static(i,[null===t?[]:t,je(n),null,null]),!0)}function ze(e,t,n,r,i,o){if(-1===e.indexOf("-"))return!1 +var s=o.compiler.resolver.lookupComponentDefinition(e,o.referrer) +return null!==s&&(K(n),o.component.static(s,[t,je(n),r,i]),!0)}function Fe(e){var t,n=e.inlines,r=e.blocks +for(n.add("outlet",Re),n.add("render",Le),n.add("mount",Oe),n.add("input",Te),n.add("textarea",Ee),n.addMissing(De),r.add("let",Pe),r.addMissing(ze),t=0;t<cr.length;t++)(0,cr[t])(r,n) +return{blocks:r,inlines:n}}function Be(e){var t=e.renderer +if(!t)throw new Error("missing renderer for component "+e) +return t}function He(e,t){var n +return"reopenClass"in e?e.reopenClass((n={},n[dr]=t,n)):(e[dr]=t,e)}function Ue(e){return{object:"component:"+e}}function qe(e,t){return{source:void 0!==e?"template:"+e:void 0,namespace:t}}e.componentManager=e.COMPONENT_MANAGER=e.CustomComponentManager=e.OutletView=e.DebugStack=e.iterableFor=e.INVOKE=e.UpdatableReference=e.AbstractComponentManager=e._experimentalMacros=e._registerMacros=e.setupApplicationRegistry=e.setupEngineRegistry=e.setTemplates=e.getTemplates=e.hasTemplate=e.setTemplate=e.getTemplate=e.renderSettled=e._resetRenderers=e.InteractiveRenderer=e.InertRenderer=e.Renderer=e.isHTMLSafe=e.htmlSafe=e.escapeExpression=e.SafeString=e.Environment=e.helper=e.Helper=e.ROOT_REF=e.Component=e.LinkComponent=e.TextArea=e.TextField=e.Checkbox=e.template=e.RootTemplate=e.NodeDOMTreeConstruction=e.isSerializationFirstNode=e.DOMTreeConstruction=e.DOMChanges=void 0,Object.defineProperty(e,"DOMChanges",{enumerable:!0,get:function(){return t.DOMChanges}}),Object.defineProperty(e,"DOMTreeConstruction",{enumerable:!0,get:function(){return t.DOMTreeConstruction}}),Object.defineProperty(e,"isSerializationFirstNode",{enumerable:!0,get:function(){return n.isSerializationFirstNode}}),Object.defineProperty(e,"NodeDOMTreeConstruction",{enumerable:!0,get:function(){return r.NodeDOMTreeConstruction}}) +var Ve,We=(0,i.taggedTemplateLiteralLoose)(["template:components/-default"],["template:components/-default"]),Ge=(0,i.taggedTemplateLiteralLoose)(["component:-default"],["component:-default"]),Ye=(0,i.taggedTemplateLiteralLoose)(["template:-root"],["template:-root"]),Ke=(0,i.taggedTemplateLiteralLoose)(["template-compiler:main"],["template-compiler:main"]),Qe=function(){function e(e){this.factory=e,this.id=e.id,this.meta=e.meta}return e.prototype.create=function(e){var t=(0,s.getOwner)(e) +return this.factory.create(e.compiler,{owner:t})},e}(),Ze=y({id:"UYMQEP0l",block:'{"symbols":[],"statements":[[1,[26,"component",[[21,0,[]]],null],false]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/root.hbs"}}),Xe=(0,s.symbol)("RECOMPUTE_TAG"),Je=u.FrameworkObject.extend({init:function(){this._super.apply(this,arguments),this[Xe]=a.DirtyableTag.create()},recompute:function(){this[Xe].inner.dirty()}}) +Je.isHelperFactory=!0 +var $e=function(){function e(e){this.compute=e,this.isHelperFactory=!0}return e.prototype.create=function(){return{compute:this.compute}},e}(),et=(0,s.symbol)("UPDATE"),tt=(0,s.symbol)("INVOKE"),nt=(0,s.symbol)("ACTION"),rt=function(){function e(){}return e.prototype.get=function(e){return st.create(this,e)},e}(),it=function(e){function t(){var t=(0,i.possibleConstructorReturn)(this,e.call(this)) +return t._lastRevision=null,t._lastValue=null,t}return(0,i.inherits)(t,e),t.prototype.value=function(){var e=this.tag,t=this._lastRevision,n=this._lastValue +return null!==t&&e.validate(t)||(n=this._lastValue=this.compute(),this._lastRevision=e.value()),n},t}(rt),ot=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this,t)) +return n.children=Object.create(null),n}return(0,i.inherits)(t,e),t.prototype.get=function(e){var t=this.children[e] +return void 0===t&&(t=this.children[e]=new at(this.inner,e)),t},t}(a.ConstReference),st=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e,t){return(0,a.isConst)(e)?new at(e.value(),t):new ut(e,t)},t.prototype.get=function(e){return new ut(this,e)},t}(it),at=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)) +return r._parentValue=t,r._propertyKey=n,r.tag=(0,c.tagForProperty)(t,n),r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e=this._parentValue,t=this._propertyKey +return(0,c.get)(e,t)},t.prototype[et]=function(e){(0,c.set)(this._parentValue,this._propertyKey,e)},t}(st),ut=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)),o=t.tag,s=a.UpdatableTag.create(a.CONSTANT_TAG) +return r._parentReference=t,r._parentObjectTag=s,r._propertyKey=n,r.tag=(0,a.combine)([o,s]),r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e=this._parentReference,t=this._parentObjectTag,n=this._propertyKey,r=e.value() +t.inner.update((0,c.tagForProperty)(r,n)) +var i=typeof r +return"string"===i&&"length"===n?r.length:"object"===i&&null!==r||"function"===i?(0,c.get)(r,n):void 0},t.prototype[et]=function(e){var t=this._parentReference.value();(0,c.set)(t,this._propertyKey,e)},t}(st),ct=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this)) +return n.tag=a.DirtyableTag.create(),n._value=t,n}return(0,i.inherits)(t,e),t.prototype.value=function(){return this._value},t.prototype.update=function(e){e!==this._value&&(this.tag.inner.dirty(),this._value=e)},t}(rt),lt=function(e){function n(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this,t)) +return n.objectTag=a.UpdatableTag.create(a.CONSTANT_TAG),n.tag=(0,a.combine)([t.tag,n.objectTag]),n}return(0,i.inherits)(n,e),n.create=function(e){var r +return(0,a.isConst)(e)?(r=e.value(),(0,s.isProxy)(r)?new at(r,"isTruthy"):t.PrimitiveReference.create(_(r))):new n(e)},n.prototype.toBool=function(e){return(0,s.isProxy)(e)?(this.objectTag.inner.update((0,c.tagForProperty)(e,"isTruthy")),(0,c.get)(e,"isTruthy")):(this.objectTag.inner.update((0,c.tagFor)(e)),_(e))},n}(t.ConditionalReference),ht=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)) +return r.tag=n.tag,r.helper=t,r.args=n,r}return(0,i.inherits)(t,e),t.create=function(e,n){var r,i,o,s,u +return(0,a.isConst)(n)?(r=n.positional,i=n.named,o=r.value(),s=i.value(),u=e(o,s),w(u)):new t(e,n)},t.prototype.compute=function(){var e=this.helper,t=this.args,n=t.positional,r=t.named +return e(n.value(),r.value())},t}(it),dt=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)) +return r.tag=(0,a.combine)([t[Xe],n.tag]),r.instance=t,r.args=n,r}return(0,i.inherits)(t,e),t.create=function(e,n){return new t(e,n)},t.prototype.compute=function(){var e=this.instance,t=this.args,n=t.positional,r=t.named,i=n.value(),o=r.value() +return e.compute(i,o)},t}(it),pt=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)) +return r.tag=n.tag,r.helper=t,r.args=n,r}return(0,i.inherits)(t,e),t.prototype.compute=function(){return(0,this.helper)(this.args)},t}(it),ft=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e){return w(e,!1)},t.prototype.get=function(e){return w((0,c.get)(this.inner,e),!1)},t}(a.ConstReference),gt=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this)) +return n.inner=t,n}return(0,i.inherits)(t,e),t.prototype.compute=function(){return this.inner.value()},t.prototype.get=function(e){return this.inner.get(e)},(0,i.createClass)(t,[{key:"tag",get:function(){return this.inner.tag}},{key:tt,get:function(){return this.inner[tt]}}]),t}(it),mt=(0,s.symbol)("DIRTY_TAG"),vt=(0,s.symbol)("ARGS"),yt=(0,s.symbol)("ROOT_REF"),bt=(0,s.symbol)("IS_DISPATCHING_ATTRS"),Ct=(0,s.symbol)("HAS_BLOCK"),At=(0,s.symbol)("BOUNDS"),_t=h.CoreView.extend(h.ChildViewsSupport,h.ViewStateSupport,h.ClassNamesSupport,u.TargetActionSupport,h.ActionSupport,h.ViewMixin,(Ve={isComponent:!0,init:function(){this._super.apply(this,arguments),this[bt]=!1,this[mt]=a.DirtyableTag.create(),this[yt]=new ot(this),this[At]=null},rerender:function(){this[mt].inner.dirty(),this._super()}},Ve[c.PROPERTY_DID_CHANGE]=function(e){if(!this[bt]){var t=this[vt],n=t&&t[e] +n&&n[et]&&n[et]((0,c.get)(this,e))}},Ve.getAttr=function(e){return this.get(e)},Ve.readDOMAttr=function(e){var n=(0,h.getViewElement)(this),r=n.namespaceURI===t.SVG_NAMESPACE,i=(0,t.normalizeProperty)(n,e),o=i.type,s=i.normalized +return r?n.getAttribute(s):"attr"===o?n.getAttribute(s):n[s]},Ve)) +_t.toString=function(){return"@ember/component"},_t.reopenClass({isComponentFactory:!0,positionalParams:[]}) +var It=y({id:"5jp2oO+o",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/empty.hbs"}}),wt=_t.extend({layout:It,classNames:["ember-checkbox"],tagName:"input",attributeBindings:["type","checked","indeterminate","disabled","tabindex","name","autofocus","required","form"],type:"checkbox",disabled:!1,indeterminate:!1,didInsertElement:function(){this._super.apply(this,arguments),(0,c.get)(this,"element").indeterminate=!!(0,c.get)(this,"indeterminate")},change:function(){(0,c.set)(this,"checked",this.element.checked)}}) +wt.toString=function(){return"@ember/component/checkbox"} +var xt=Object.create(null),kt=_t.extend(h.TextSupport,{layout:It,classNames:["ember-text-field"],tagName:"input",attributeBindings:["accept","autocomplete","autosave","dir","formaction","formenctype","formmethod","formnovalidate","formtarget","height","inputmode","lang","list","type","max","min","multiple","name","pattern","size","step","value","width"],value:"",type:(0,c.computed)({get:function(){return"text"},set:function(e,t){var n="text" +return x(t)&&(n=t),n}}),size:null,pattern:null,min:null,max:null}) +kt.toString=function(){return"@ember/component/text-field"} +var jt=_t.extend(h.TextSupport,{classNames:["ember-text-area"],layout:It,tagName:"textarea",attributeBindings:["rows","cols","name","selectionEnd","selectionStart","autocomplete","wrap","lang","dir","value"],rows:null,cols:null}) +jt.toString=function(){return"@ember/component/text-area"} +var Et=y({id:"4GmgUGfN",block:'{"symbols":["&default"],"statements":[[4,"if",[[22,["linkTitle"]]],null,{"statements":[[1,[20,"linkTitle"],false]],"parameters":[]},{"statements":[[13,1]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/link-to.hbs"}}),St=_t.extend({layout:Et,tagName:"a","current-when":null,title:null,rel:null,tabindex:null,target:null,activeClass:"active",loadingClass:"loading",disabledClass:"disabled",replace:!1,attributeBindings:["href","title","rel","tabindex","target"],classNameBindings:["active","loading","disabled","transitioningIn","transitioningOut"],eventName:"click",init:function(){this._super.apply(this,arguments) +var e=(0,c.get)(this,"eventName") +this.on(e,this,this._invoke)},_routing:u.inject.service("-routing"),disabled:(0,c.computed)({get:function(){return!1},set:function(e,t){return this._isDisabled=t,!!t&&(0,c.get)(this,"disabledClass")}}),_isActive:function(e){if((0,c.get)(this,"loading"))return!1 +var t,n=(0,c.get)(this,"current-when") +if("boolean"==typeof n)return n +var r=!!n +n=n||(0,c.get)(this,"qualifiedRouteName"),n=n.split(" ") +var i=(0,c.get)(this,"_routing"),o=(0,c.get)(this,"models"),s=(0,c.get)(this,"resolvedQueryParams") +for(t=0;t<n.length;t++)if(i.isActiveForRoute(o,s,n[t],e,r))return!0 +return!1},active:(0,c.computed)("activeClass","_active",function(){return!!this.get("_active")&&(0,c.get)(this,"activeClass")}),_active:(0,c.computed)("_routing.currentState","attrs.params",function(){var e=(0,c.get)(this,"_routing.currentState") +return!!e&&this._isActive(e)}),willBeActive:(0,c.computed)("_routing.targetState",function(){var e=(0,c.get)(this,"_routing"),t=(0,c.get)(e,"targetState") +if((0,c.get)(e,"currentState")!==t)return this._isActive(t)}),transitioningIn:(0,c.computed)("active","willBeActive",function(){return!0===(0,c.get)(this,"willBeActive")&&!(0,c.get)(this,"_active")&&"ember-transitioning-in"}),transitioningOut:(0,c.computed)("active","willBeActive",function(){return!(!1!==(0,c.get)(this,"willBeActive")||!(0,c.get)(this,"_active"))&&"ember-transitioning-out"}),_invoke:function(e){if(!(0,h.isSimpleClick)(e))return!0 +var t=(0,c.get)(this,"preventDefault"),n=(0,c.get)(this,"target") +if(!1!==t&&(n&&"_self"!==n||e.preventDefault()),!1===(0,c.get)(this,"bubbles")&&e.stopPropagation(),this._isDisabled)return!1 +if((0,c.get)(this,"loading"))return!1 +if(n&&"_self"!==n)return!1 +var r=(0,c.get)(this,"qualifiedRouteName"),i=(0,c.get)(this,"models"),o=(0,c.get)(this,"queryParams.values"),s=(0,c.get)(this,"replace"),a={queryParams:o,routeName:r} +return(0,c.flaggedInstrument)("interaction.link-to",a,this._generateTransition(a,r,i,o,s)),!1},_generateTransition:function(e,t,n,r,i){var o=(0,c.get)(this,"_routing") +return function(){e.transition=o.transitionTo(t,n,r,i)}},queryParams:null,qualifiedRouteName:(0,c.computed)("targetRouteName","_routing.currentState",function(){var e=(0,c.get)(this,"params"),t=e.length,n=e[t-1] +return n&&n.isQueryParams&&t--,(this[Ct]?0===t:1===t)?(0,c.get)(this,"_routing.currentRouteName"):(0,c.get)(this,"targetRouteName")}),resolvedQueryParams:(0,c.computed)("queryParams",function(){var e={},t=(0,c.get)(this,"queryParams") +if(!t)return e +var n=t.values +for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r]) +return e}),href:(0,c.computed)("models","qualifiedRouteName",function(){if("a"===(0,c.get)(this,"tagName")){var e=(0,c.get)(this,"qualifiedRouteName"),t=(0,c.get)(this,"models") +if((0,c.get)(this,"loading"))return(0,c.get)(this,"loadingHref") +var n=(0,c.get)(this,"_routing"),r=(0,c.get)(this,"queryParams.values") +return n.generateURL(e,t,r)}}),loading:(0,c.computed)("_modelsAreLoaded","qualifiedRouteName",function(){var e=(0,c.get)(this,"qualifiedRouteName") +if(!(0,c.get)(this,"_modelsAreLoaded")||null===e||void 0===e)return(0,c.get)(this,"loadingClass")}),_modelsAreLoaded:(0,c.computed)("models",function(){var e,t,n=(0,c.get)(this,"models") +for(e=0;e<n.length;e++)if(null===(t=n[e])||void 0===t)return!1 +return!0}),_getModels:function(e){var t,n,r=e.length-1,i=new Array(r) +for(t=0;t<r;t++)n=e[t+1],i[t]=n +return i},loadingHref:"#",didReceiveAttrs:function(){var e=void 0,t=(0,c.get)(this,"params") +t&&(t=t.slice()) +var n=(0,c.get)(this,"disabledWhen") +void 0!==n&&this.set("disabled",n),this[Ct]||this.set("linkTitle",t.shift()),this.set("targetRouteName",t[0]) +var r=t[t.length-1] +e=r&&r.isQueryParams?t.pop():{values:{}},this.set("queryParams",e),t.length>1?this.set("models",this._getModels(t)):this.set("models",[])}}) +St.toString=function(){return"@ember/routing/link-component"},St.reopenClass({positionalParams:"params"}) +var Tt=(0,s.symbol)("EACH_IN"),Pt=function(){function e(e){this.inner=e,this.tag=e.tag,this[Tt]=!0}return e.prototype.value=function(){return this.inner.value()},e.prototype.get=function(e){return this.inner.get(e)},e}(),Ot=function(){function e(e,t){this.length=e,this.keyFor=t,this.position=0}return e.prototype.isEmpty=function(){return!1},e.prototype.memoFor=function(e){return e},e.prototype.next=function(){var e=this.length,t=this.keyFor,n=this.position +if(n>=e)return null +var r=this.valueFor(n),i=this.memoFor(n),o=t(r,i,n) +return this.position++,{key:o,value:r,memo:i}},e}(),Rt=function(e){function t(t,n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this,n,r)) +return o.array=t,o}return(0,i.inherits)(t,e),t.from=function(e,t){var n=e.length +return 0===n?Ft:new this(e,n,t)},t.fromForEachable=function(e,t){var n=[] +return e.forEach(function(e){return n.push(e)}),this.from(n,t)},t.prototype.valueFor=function(e){return this.array[e]},t}(Ot),Nt=function(e){function t(t,n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this,n,r)) +return o.array=t,o}return(0,i.inherits)(t,e),t.from=function(e,t){var n=(0,c.get)(e,"length") +return 0===n?Ft:new this(e,n,t)},t.prototype.valueFor=function(e){return(0,c.objectAt)(this.array,e)},t}(Ot),Mt=function(e){function t(t,n,r,o){var s=(0,i.possibleConstructorReturn)(this,e.call(this,r,o)) +return s.keys=t,s.values=n,s}return(0,i.inherits)(t,e),t.fromIndexable=function(e,t){var n,r=Object.keys(e),i=[],o=r.length +for(n=0;n<o;n++)i.push((0,c.get)(e,r[n])) +return 0===o?Ft:new this(r,i,o,t)},t.fromForEachable=function(e,t){var n=arguments,r=[],i=[],o=0,s=!1 +return e.forEach(function(e,t){s=s||n.length>=2,s?(r.push(t),i.push(e)):i.push(e),o++}),0===o?Ft:s?new this(r,i,o,t):new Rt(i,o,t)},t.prototype.valueFor=function(e){return this.values[e]},t.prototype.memoFor=function(e){return this.keys[e]},t}(Ot),Lt=function(){function e(e,t,n){this.iterable=e,this.result=t,this.keyFor=n,this.position=0}return e.from=function(e,t){var n=e[Symbol.iterator](),r=n.next(),i=r.value +return r.done?Ft:Array.isArray(i)&&2===i.length?new this(n,r,t):new Dt(n,r,t)},e.prototype.isEmpty=function(){return!1},e.prototype.next=function(){var e=this.iterable,t=this.result,n=this.position,r=this.keyFor +if(t.done)return null +var i=this.valueFor(t,n),o=this.memoFor(t,n),s=r(i,o,n) +return this.position++,this.result=e.next(),{key:s,value:i,memo:o}},e}(),Dt=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.valueFor=function(e){return e.value},t.prototype.memoFor=function(e,t){return t},t}(Lt),zt=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.valueFor=function(e){return e.value[1]},t.prototype.memoFor=function(e){return e.value[0]},t}(Lt),Ft={isEmpty:function(){return!0},next:function(){return null}},Bt=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=a.UpdatableTag.create(a.CONSTANT_TAG),this.tag=(0,a.combine)([e.tag,this.valueTag])}return e.prototype.iterate=function(){var e=this.ref,t=this.valueTag,n=e.value(),r=(0,c.tagFor)(n) +return(0,s.isProxy)(n)&&(n=(0,u._contentFor)(n)),t.inner.update(r),T(n)?Array.isArray(n)||(0,u.isEmberArray)(n)?Mt.fromIndexable(n,this.keyFor(!0)):s.HAS_NATIVE_SYMBOL&&S(n)?zt.from(n,this.keyFor()):E(n)?Mt.fromForEachable(n,this.keyFor()):Mt.fromIndexable(n,this.keyFor(!0)):Ft},e.prototype.valueReferenceFor=function(e){return new ct(e.value)},e.prototype.updateValueReference=function(e,t){e.update(t.value)},e.prototype.memoReferenceFor=function(e){return new ct(e.memo)},e.prototype.updateMemoReference=function(e,t){e.update(t.memo)},e.prototype.keyFor=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.keyPath +switch(t){case"@key":return e?O:L(R) +case"@index":return P +case"@identity":return L(N) +default:return L(M(t))}},e}(),Ht=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=a.UpdatableTag.create(a.CONSTANT_TAG),this.tag=(0,a.combine)([e.tag,this.valueTag])}return e.prototype.iterate=function(){var e=this.ref,t=this.valueTag,n=e.value() +if(t.inner.update((0,c.tagForProperty)(n,"[]")),null===n||"object"!=typeof n)return Ft +var r=this.keyFor() +return Array.isArray(n)?Rt.from(n,r):(0,u.isEmberArray)(n)?Nt.from(n,r):s.HAS_NATIVE_SYMBOL&&S(n)?Dt.from(n,r):E(n)?Rt.fromForEachable(n,r):Ft},e.prototype.valueReferenceFor=function(e){return new ct(e.value)},e.prototype.updateValueReference=function(e,t){e.update(t.value)},e.prototype.memoReferenceFor=function(e){return new ct(e.memo)},e.prototype.updateMemoReference=function(e,t){e.update(t.memo)},e.prototype.keyFor=function(){var e=this.keyPath +switch(e){case"@index":return P +case"@identity":return L(N) +default:return L(M(e))}},e}(),Ut=function(){function e(e){this.string=e}return e.prototype.toString=function(){return""+this.string},e.prototype.toHTML=function(){return this.toString()},e}(),qt={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},Vt=/[&<>"'`=]/,Wt=/[&<>"'`=]/g,Gt=void 0,Yt=void 0,Kt=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this,t)) +return n.inTransaction=!1,n.owner=t[s.OWNER],n.isInteractive=n.owner.lookup("-environment:main").isInteractive,n.destroyedComponents=[],B(n),n}return(0,i.inherits)(t,e),t.create=function(e){return new this(e)},t.prototype.protocolForURL=function(e){return e},t.prototype.lookupComponent=function(e,t){return(0,h.lookupComponent)(t.owner,e,t)},t.prototype.toConditionalReference=function(e){return lt.create(e)},t.prototype.iterableFor=function(e,t){return j(e,t)},t.prototype.scheduleInstallModifier=function(t,n){this.isInteractive&&e.prototype.scheduleInstallModifier.call(this,t,n)},t.prototype.scheduleUpdateModifier=function(t,n){this.isInteractive&&e.prototype.scheduleUpdateModifier.call(this,t,n)},t.prototype.didDestroy=function(e){e.destroy()},t.prototype.begin=function(){this.inTransaction=!0,e.prototype.begin.call(this)},t.prototype.commit=function(){var t,n=this.destroyedComponents +for(this.destroyedComponents=[],t=0;t<n.length;t++)n[t].destroy() +try{e.prototype.commit.call(this)}finally{this.inTransaction=!1}},t}(t.Environment),Qt=function(){function e(){this.debugStack=void 0}return e.prototype.prepareArgs=function(){return null},e.prototype.didCreateElement=function(){},e.prototype.didRenderLayout=function(){},e.prototype.didCreate=function(){},e.prototype.update=function(){},e.prototype.didUpdateLayout=function(){},e.prototype.didUpdate=function(){},e}(),Zt={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Xt=function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.prototype.create=function(e,n,r,i){i.outletState=n.ref,void 0===i.rootOutletState&&(i.rootOutletState=i.outletState) +var o=n.controller +return{self:void 0===o?t.UNDEFINED_REFERENCE:new ot(o),finalize:(0,c._instrumentStart)("render.outlet",q,n)}},n.prototype.layoutFor=function(){throw new Error("Method not implemented.")},n.prototype.getLayout=function(e){var t=e.template,n=t.asLayout() +return{handle:n.compile(),symbolTable:n.symbolTable}},n.prototype.getCapabilities=function(){return Zt},n.prototype.getSelf=function(e){return e.self},n.prototype.getTag=function(){return a.CONSTANT_TAG},n.prototype.didRenderLayout=function(e){e.finalize()},n.prototype.getDestructor=function(){return null},n}(Qt),Jt=new Xt,$t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Jt +this.state=e,this.manager=t},en=function(){function e(e,t,n,r){this.environment=e,this.component=t,this.args=n,this.finalizer=r,this.classRef=null,this.classRef=null,this.argsRevision=null===n?0:n.tag.value()}return e.prototype.destroy=function(){var e=this.component,t=this.environment +t.isInteractive&&(e.trigger("willDestroyElement"),e.trigger("willClearRender")),t.destroyedComponents.push(e)},e.prototype.finalize=function(){(0,this.finalizer)(),this.finalizer=W},e}(),tn={parse:function(e){var t,n,r=e.indexOf(":") +return-1===r?[e,e,!0]:(t=e.substring(0,r),n=e.substring(r+1),[t,n,!1])},install:function(e,n,r,i){var o,s=r[0],a=r[1] +r[2] +if("id"===a)return o=(0,c.get)(n,s),void 0!==o&&null!==o||(o=n.elementId),o=t.PrimitiveReference.create(o),void i.setAttribute("id",o,!0,null) +var u=s.indexOf(".")>-1,l=u?Y(n,s.split(".")):G(n,s) +"style"===a&&(l=new rn(l,G(n,"isVisible"))),i.setAttribute(a,l,!1,null)}},nn=z("display: none;"),rn=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)) +return r.inner=t,r.isVisible=n,r.tag=(0,a.combine)([t.tag,n.tag]),r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e,t=this.inner.value() +return!1!==this.isVisible.value()?t:t?(e=t+" display: none;",F(t)?z(e):e):nn},t}(a.CachedReference),on={install:function(e,t,n){n.setAttribute("style",(0,a.map)(G(t,"isVisible"),this.mapStyleValue),!1,null)},mapStyleValue:function(e){return!1===e?nn:null}},sn={install:function(e,n,r,i){var o,s,a,u,c=r.split(":"),l=c[0],h=c[1],d=c[2] +""===l?i.setAttribute("class",t.PrimitiveReference.create(h),!0,null):(o=l.indexOf(".")>-1,s=o?l.split("."):[],a=o?Y(n,s):G(n,l),u=void 0,u=void 0===h?new an(a,o?s[s.length-1]:l):new un(a,h,d),i.setAttribute("class",u,!1,null))}},an=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)) +return r.inner=t,r.path=n,r.tag=t.tag,r.inner=t,r.path=n,r.dasherizedPath=null,r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e,t=this.inner.value() +return!0===t?(e=this.path,this.dasherizedPath||(this.dasherizedPath=u.String.dasherize(e))):t||0===t?String(t):null},t}(a.CachedReference),un=function(e){function t(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=(0,i.possibleConstructorReturn)(this,e.call(this)) +return o.inner=t,o.truthy=n,o.falsy=r,o.tag=t.tag,o}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e=this.inner,t=this.truthy,n=this.falsy +return e.value()?t:n},t}(a.CachedReference),cn=(0,s.symbol)("REF"),ln=function(){function e(e,t){this[h.MUTABLE_CELL]=!0,this[cn]=e,this.value=t}return e.prototype.update=function(e){this[cn][et](e)},e}(),hn=(0,g.privatize)(We),dn=function(e){function r(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(r,e),r.prototype.getLayout=function(e){return{handle:e.handle,symbolTable:e.symbolTable}},r.prototype.templateFor=function(e,t){var n,r=(0,c.get)(e,"layout") +if(void 0!==r)return X(r)?t.createTemplate(r,(0,s.getOwner)(e)):r +var i=(0,s.getOwner)(e),o=(0,c.get)(e,"layoutName") +return o&&(n=i.lookup("template:"+o))?n:i.lookup(hn)},r.prototype.getDynamicLayout=function(e,t){var n=e.component,r=this.templateFor(n,t),i=r.asWrappedLayout() +return{handle:i.compile(),symbolTable:i.symbolTable}},r.prototype.getTagName=function(e){var t=e.component +return""===t.tagName?null:t&&t.tagName||"div"},r.prototype.getCapabilities=function(e){return e.capabilities},r.prototype.prepareArgs=function(e,t){var r,i,o,a,u=e.ComponentClass.class.positionalParams +if(void 0===u||null===u||0===t.positional.length)return null +var c=void 0 +if("string"==typeof u)r={},r[u]=t.positional.capture(),c=r,(0,s.assign)(c,t.named.capture().map) +else{if(!(Array.isArray(u)&&u.length>0))return null +for(i=Math.min(u.length,t.positional.length),c={},(0,s.assign)(c,t.named.capture().map),o=0;o<i;o++)a=u[o],c[a]=t.positional.at(o)}return{positional:n.EMPTY_ARRAY,named:c}},r.prototype.create=function(e,t,n,r,i,o){var s=r.view,a=t.ComponentClass,u=n.named.capture(),l=Q(u) +Z(n,l),l.parentView=s,l[Ct]=o,l._targetObject=i.value(),t.template&&(l.layout=t.template) +var p=a.create(l),f=(0,c._instrumentStart)("render.component",$,p) +r.view=p,null!==s&&void 0!==s&&(0,h.addChildView)(s,p),!0===d.ENV._ENABLE_DID_INIT_ATTRS_SUPPORT&&p.trigger("didInitAttrs"),p.trigger("didReceiveAttrs"),""===p.tagName&&(e.isInteractive&&p.trigger("willRender"),p._transitionTo("hasElement"),e.isInteractive&&p.trigger("willInsertElement")) +var g=new en(e,p,u,f) +return n.named.has("class")&&(g.classRef=n.named.get("class")),e.isInteractive&&""!==p.tagName&&p.trigger("willRender"),g},r.prototype.getSelf=function(e){return e.component[yt]},r.prototype.didCreateElement=function(e,n,r){var i,o=e.component,a=e.classRef,u=e.environment;(0,h.setViewElement)(o,n) +var c=o.attributeBindings,l=o.classNames,d=o.classNameBindings +r.setAttribute("id",t.PrimitiveReference.create((0,s.guidFor)(o)),!1,null),c&&c.length?J(n,c,o,r):(o.elementId&&r.setAttribute("id",t.PrimitiveReference.create(o.elementId),!1,null),on.install(n,o,r)),a&&(i=new an(a,a._propertyKey),r.setAttribute("class",i,!1,null)),l&&l.length&&l.forEach(function(e){r.setAttribute("class",t.PrimitiveReference.create(e),!1,null)}),d&&d.length&&d.forEach(function(e){sn.install(n,o,e,r)}),r.setAttribute("class",t.PrimitiveReference.create("ember-view"),!1,null),"ariaRole"in o&&r.setAttribute("role",G(o,"ariaRole"),!1,null),o._transitionTo("hasElement"),u.isInteractive&&o.trigger("willInsertElement")},r.prototype.didRenderLayout=function(e,t){e.component[At]=t,e.finalize()},r.prototype.getTag=function(e){var t=e.args,n=e.component +return t?(0,a.combine)([t.tag,n[mt]]):n[mt]},r.prototype.didCreate=function(e){var t=e.component +e.environment.isInteractive&&(t._transitionTo("inDOM"),t.trigger("didInsertElement"),t.trigger("didRender"))},r.prototype.update=function(e){var t,n=e.component,r=e.args,i=e.argsRevision,o=e.environment +e.finalizer=(0,c._instrumentStart)("render.component",ee,n),r&&!r.tag.validate(i)&&(t=Q(r),e.argsRevision=r.tag.value(),n[bt]=!0,n.setProperties(t),n[bt]=!1,n.trigger("didUpdateAttrs"),n.trigger("didReceiveAttrs")),o.isInteractive&&(n.trigger("willUpdate"),n.trigger("willRender"))},r.prototype.didUpdateLayout=function(e){e.finalize()},r.prototype.didUpdate=function(e){var t=e.component +e.environment.isInteractive&&(t.trigger("didUpdate"),t.trigger("didRender"))},r.prototype.getDestructor=function(e){return e},r}(Qt),pn={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},fn=new dn,gn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fn,n=arguments[2],r=arguments[3],i=arguments[4],o=arguments[5] +this.name=e,this.manager=t,this.ComponentClass=n,this.handle=r +var s=i&&i.asLayout(),a=s?s.symbolTable:void 0 +this.symbolTable=a,this.template=i,this.args=o,this.state={name:e,ComponentClass:n,handle:r,template:i,capabilities:pn,symbolTable:a}},mn=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this)) +return n.component=t,n}return(0,i.inherits)(t,e),t.prototype.getLayout=function(e,t){var n=this.templateFor(this.component,t),r=n.asWrappedLayout() +return{handle:r.compile(),symbolTable:r.symbolTable}},t.prototype.create=function(e,t,n,r){var i=this.component,o=(0,c._instrumentStart)("render.component",$,i) +return r.view=i,""===i.tagName&&(e.isInteractive&&i.trigger("willRender"),i._transitionTo("hasElement"),e.isInteractive&&i.trigger("willInsertElement")),new en(e,i,null,o)},t}(dn),vn={dynamicLayout:!1,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!1},yn=function(){function e(e){this.component=e +var t=new mn(e) +this.manager=t +var n=g.FACTORY_FOR.get(e) +this.state={name:n.fullName.slice(10),capabilities:vn,ComponentClass:n,handle:null}}return e.prototype.getTag=function(e){return e.component[mt]},e}(),bn=function(){function e(e,t,n){this.view=e,this.outletState=t,this.rootOutletState=n}return e.prototype.child=function(){return new e(this.view,this.outletState,this.rootOutletState)},e.prototype.get=function(e){return this.outletState},e.prototype.set=function(e,t){return this.outletState=t,t},e}(),Cn=function(){function e(e,n,r,i,o,s,a){var u=this +this.id=(0,h.getViewId)(e),this.env=n,this.root=e,this.result=void 0,this.shouldReflush=!1,this.destroyed=!1 +var c=this.options={alwaysRevalidate:!1} +this.render=function(){var e=r.asLayout(),l=e.compile(),h=(0,t.renderMain)(e.compiler.program,n,i,s,a(n,{element:o,nextSibling:null}),l),d=void 0 +do{d=h.next()}while(!d.done) +var p=u.result=d.value +u.render=function(){return p.rerender(c)}}}return e.prototype.isFor=function(e){return this.root===e},e.prototype.destroy=function(){var e,t=this.result,n=this.env +if(this.destroyed=!0,this.env=void 0,this.root=null,this.result=void 0,this.render=void 0,t){e=!n.inTransaction,e&&n.begin() +try{t.destroy()}finally{e&&n.commit()}}},e}(),An=[];(0,c.setHasViews)(function(){return An.length>0}) +var _n=null,In=0 +c.backburner.on("begin",function(){var e +for(e=0;e<An.length;e++)An[e]._scheduleRevalidate()}),c.backburner.on("end",se) +var wn=function(){function e(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.fallbackViewRegistry,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:t.clientBuilder +this._env=e,this._rootTemplate=n,this._viewRegistry=r,this._destinedForDOM=i,this._destroyed=!1,this._roots=[],this._lastRevision=-1,this._isRenderingRoots=!1,this._removedRoots=[],this._builder=o}return e.prototype.appendOutletView=function(e,n){var r=V(e) +this._appendDefinition(e,(0,t.curry)(r),n)},e.prototype.appendTo=function(e,n){var r=new yn(e) +this._appendDefinition(e,(0,t.curry)(r),n)},e.prototype._appendDefinition=function(e,n,r){var i=new ft(n),o=new bn(null,t.UNDEFINED_REFERENCE),s=new Cn(e,this._env,this._rootTemplate,i,r,o,this._builder) +this._renderRoot(s)},e.prototype.rerender=function(){this._scheduleRevalidate()},e.prototype.register=function(e){var t=(0,h.getViewId)(e) +this._viewRegistry[t]=e},e.prototype.unregister=function(e){delete this._viewRegistry[(0,h.getViewId)(e)]},e.prototype.remove=function(e){e._transitionTo("destroying"),this.cleanupRootFor(e),(0,h.setViewElement)(e,null),this._destinedForDOM&&e.trigger("didDestroyElement"),e.isDestroying||e.destroy()},e.prototype.cleanupRootFor=function(e){if(!this._destroyed)for(var t,n=this._roots,r=this._roots.length;r--;)t=n[r],t.isFor(e)&&(t.destroy(),n.splice(r,1))},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._clearAllRoots())},e.prototype.getBounds=function(e){var t=e[At] +return{parentElement:t.parentElement(),firstNode:t.firstNode(),lastNode:t.lastNode()}},e.prototype.createElement=function(e){return this._env.getAppendOperations().createElement(e)},e.prototype._renderRoot=function(e){var t=this._roots +t.push(e),1===t.length&&te(this),this._renderRootsTransaction()},e.prototype._renderRoots=function(){var e,t,n,r,i,o=this._roots,s=this._env,u=this._removedRoots,l=void 0,h=void 0 +do{s.begin() +try{for(h=o.length,l=!1,e=0;e<o.length;e++)t=o[e],t.destroyed?u.push(t):(n=t.shouldReflush,e>=h&&!n||(t.options.alwaysRevalidate=n,n=t.shouldReflush=(0,c.runInTransaction)(t,"render"),l=l||n)) +this._lastRevision=a.CURRENT_TAG.value()}finally{s.commit()}}while(l||o.length>h) +for(;u.length;)r=u.pop(),i=o.indexOf(r),o.splice(i,1) +0===this._roots.length&&ne(this)},e.prototype._renderRootsTransaction=function(){if(!this._isRenderingRoots){this._isRenderingRoots=!0 +var e=!1 +try{this._renderRoots(),e=!0}finally{e||(this._lastRevision=a.CURRENT_TAG.value(),!0===this._env.inTransaction&&this._env.commit()),this._isRenderingRoots=!1}}},e.prototype._clearAllRoots=function(){var e,t,n=this._roots +for(e=0;e<n.length;e++)t=n[e],t.destroy() +this._removedRoots.length=0,this._roots=[],n.length&&ne(this)},e.prototype._scheduleRevalidate=function(){c.backburner.scheduleOnce("render",this,this._revalidate)},e.prototype._isValid=function(){return this._destroyed||0===this._roots.length||a.CURRENT_TAG.validate(this._lastRevision)},e.prototype._revalidate=function(){this._isValid()||this._renderRootsTransaction()},e}(),xn=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!1,e.builder)},t.prototype.getElement=function(){throw new Error("Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).")},t}(wn),kn=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!0,e.builder)},t.prototype.getElement=function(e){return(0,h.getViewElement)(e)},t}(wn),jn={},En=A(function(e){return u.String.loc.apply(null,e)}),Sn=function(){function e(e){this.resolver=e}return e.prototype.getCapabilities=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state +return n.getCapabilities(r)},e.prototype.getLayout=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state +if(n.getCapabilities(r).dynamicLayout)return null +var i=n.getLayout(r,this.resolver) +return{compile:function(){return i.handle},symbolTable:i.symbolTable}},e.prototype.lookupHelper=function(e,t){return this.resolver.lookupHelper(e,t)},e.prototype.lookupModifier=function(e,t){return this.resolver.lookupModifier(e,t)},e.prototype.lookupComponentDefinition=function(e,t){return this.resolver.lookupComponentHandle(e,t)},e.prototype.lookupPartial=function(e,t){return this.resolver.lookupPartial(e,t)},e}(),Tn={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Pn=function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.prototype.getLayout=function(e){var t=e.asLayout() +return{handle:t.compile(),symbolTable:t.symbolTable}},n.prototype.getCapabilities=function(){return Tn},n.prototype.create=function(){return null},n.prototype.getSelf=function(){return t.NULL_REFERENCE},n.prototype.getTag=function(){return a.CONSTANT_TAG},n.prototype.getDestructor=function(){return null},n}(Qt),On=new Pn,Rn=function(e){this.state=e,this.manager=On},Nn=function(e){return null===e||void 0===e||"function"!=typeof e.toString},Mn=function(e){return Nn(e)?"":String(e)},Ln=function(e){function n(n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this)) +o.sourceReference=n,o.pathReference=r,o.lastPath=null,o.innerReference=t.NULL_REFERENCE +var s=o.innerTag=a.UpdatableTag.create(a.CONSTANT_TAG) +return o.tag=(0,a.combine)([n.tag,r.tag,s]),o}return(0,i.inherits)(n,e),n.create=function(e,t){var r +return(0,a.isConst)(t)?(r=t.value(),Ae(e,r)):new n(e,t)},n.prototype.compute=function(){var e=this.lastPath,t=this.innerReference,n=this.innerTag,r=this.pathReference.value() +return r!==e&&(t=Ae(this.sourceReference,r),n.inner.update(t.tag),this.innerReference=t,this.lastPath=r),t.value()},n.prototype[et]=function(e){(0,c.set)(this.sourceReference.value(),this.pathReference.value(),e)},n}(it),Dn=function(e){function t(t,n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this)) +return o.branchTag=a.UpdatableTag.create(a.CONSTANT_TAG),o.tag=(0,a.combine)([t.tag,o.branchTag]),o.cond=t,o.truthy=n,o.falsy=r,o}return(0,i.inherits)(t,e),t.create=function(e,n,r){var i=lt.create(e) +return(0,a.isConst)(i)?i.value()?n:r:new t(i,n,r)},t.prototype.compute=function(){var e=this.cond.value()?this.truthy:this.falsy +return this.branchTag.inner.update(e.tag),e.value()},t}(it),zn=(0,s.symbol)("MUT"),Fn=(0,s.symbol)("SOURCE"),Bn=["alt","shift","meta","ctrl"],Hn=/^click|mouse|touch/,Un={registeredActions:h.ActionManager.registeredActions,registerAction:function(e){var t=e.actionId +return h.ActionManager.registeredActions[t]=e,t},unregisterAction:function(e){var t=e.actionId +delete h.ActionManager.registeredActions[t]}},qn=function(){function e(e,t,n,r,i,o,s,a,u){this.element=e,this.actionId=t,this.actionName=n,this.actionArgs=r,this.namedArgs=i,this.positional=o,this.implicitTarget=s,this.dom=a,this.eventName=this.getEventName(),this.tag=u}return e.prototype.getEventName=function(){return this.namedArgs.get("on").value()||"click"},e.prototype.getActionArgs=function(){var e,t=new Array(this.actionArgs.length) +for(e=0;e<this.actionArgs.length;e++)t[e]=this.actionArgs[e].value() +return t},e.prototype.getTarget=function(){var e=this.implicitTarget,t=this.namedArgs +return t.has("target")?t.get("target").value():e.value()},e.prototype.handler=function(e){var t=this,n=this.actionName,r=this.namedArgs,i=r.get("bubbles"),o=r.get("preventDefault"),s=r.get("allowedKeys"),a=this.getTarget(),u=!1!==i.value() +return!ke(e,s.value())||(!1!==o.value()&&e.preventDefault(),u||e.stopPropagation(),(0,c.join)(function(){var e=t.getActionArgs(),r={args:e,target:a,name:null} +return"function"==typeof n[tt]?void(0,c.flaggedInstrument)("interaction.ember-action",r,function(){n[tt].apply(n,e)}):"function"==typeof n?void(0,c.flaggedInstrument)("interaction.ember-action",r,function(){n.apply(a,e)}):(r.name=n,void(a.send?(0,c.flaggedInstrument)("interaction.ember-action",r,function(){a.send.apply(a,[n].concat(e))}):(0,c.flaggedInstrument)("interaction.ember-action",r,function(){a[n].apply(a,e)})))}),u)},e.prototype.destroy=function(){Un.unregisterAction(this)},e}(),Vn=function(){function e(){}return e.prototype.create=function(e,t,n,r){var i,o=t.capture(),a=o.named,u=o.positional,c=o.tag,l=void 0,h=void 0,d=void 0 +u.length>1&&(l=u.at(0),d=u.at(1),d[tt]?h=d:(d._propertyKey,h=d.value())) +var p=[] +for(i=2;i<u.length;i++)p.push(u.at(i)) +var f=(0,s.uuid)() +return new qn(e,f,h,p,a,u,l,r,c)},e.prototype.install=function(e){var t=e.dom,n=e.element,r=e.actionId +Un.registerAction(e),t.setAttribute(n,"data-ember-action",""),t.setAttribute(n,"data-ember-action-"+r,r)},e.prototype.update=function(e){var t=e.positional,n=t.at(1) +n[tt]||(e.actionName=n.value()),e.eventName=e.getEventName()},e.prototype.getTag=function(e){return e.tag},e.prototype.getDestructor=function(e){return e},e}(),Wn={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Gn=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.getDynamicLayout=function(e){var t=e.engine.lookup("template:application"),n=t.asLayout() +return{handle:n.compile(),symbolTable:n.symbolTable}},t.prototype.getCapabilities=function(){return Wn},t.prototype.create=function(e,t){var n,r,i=e.owner.buildChildEngineInstance(t.name) +i.boot() +var o=i.factoryFor("controller:application"),s=o||(0,v.generateControllerFactory)(i,"application"),u=void 0,c=void 0,l=void 0,h=void 0,d=t.modelRef +return void 0===d?(u=s.create(),c=new ot(u),h=a.CONSTANT_TAG,l={engine:i,controller:u,self:c,tag:h}):(n=d.value(),r=d.tag.value(),u=s.create({model:n}),c=new ot(u),h=d.tag,l={engine:i,controller:u,self:c,tag:h,modelRef:d,modelRev:r}),l},t.prototype.getSelf=function(e){return e.self},t.prototype.getTag=function(e){return e.tag},t.prototype.getDestructor=function(e){return e.engine},t.prototype.didRenderLayout=function(){},t.prototype.update=function(e){var t,n=e.controller,r=e.modelRef,i=e.modelRev +r.tag.validate(i)||(t=r.value(),e.modelRev=r.tag.value(),n.set("model",t))},t}(Qt),Yn=new Gn,Kn=function(e,t){this.manager=Yn,this.state={name:e,modelRef:t}},Qn=function(){function e(e,t,n){this.tag=e.tag,this.nameRef=e,this.modelRef=n,this.env=t,this._lastName=null,this._lastDef=null}return e.prototype.value=function(){var e=this.env,n=this.nameRef,r=this.modelRef,i=n.value() +return"string"==typeof i?this._lastName===i?this._lastDef:e.owner.hasRegistration("engine:"+i)?(this._lastName=i,this._lastDef=(0,t.curry)(new Kn(i,r)),this._lastDef):null:(this._lastDef=null,this._lastName=null,null)},e.prototype.get=function(){return t.UNDEFINED_REFERENCE},e}(),Zn=function(){function e(e){this.outletState=e,this.tag=a.DirtyableTag.create()}return e.prototype.get=function(e){return new Jn(this,e)},e.prototype.value=function(){return this.outletState},e.prototype.update=function(e){this.outletState.outlets.main=e,this.tag.inner.dirty()},e}(),Xn=function(){function e(e,t){this.parentStateRef=e,this.outletNameRef=t,this.tag=(0,a.combine)([e.tag,t.tag])}return e.prototype.value=function(){var e=this.parentStateRef.value(),t=void 0===e?void 0:e.outlets +return void 0===t?void 0:t[this.outletNameRef.value()]},e.prototype.get=function(e){return new Jn(this,e)},e}(),Jn=function(){function e(e,t){this.parent=e,this.key=t,this.tag=e.tag}return e.prototype.get=function(t){return new e(this,t)},e.prototype.value=function(){var e=this.parent.value() +return e&&e[this.key]},e}(),$n=function(){function e(e,t){this.root=e,this.name=t,this.tag=e.tag}return e.prototype.value=function(){var e=this.root.value(),t=e&&e.outlets.main,n=t&&t.outlets +if(t=n&&n.__ember_orphans__,void 0!==(n=t&&t.outlets)){var r=n[this.name] +if(void 0!==r&&void 0!==r.render){var i=Object.create(null) +return i[r.render.outlet]=r,r.wasUsed=!0,{outlets:i,render:void 0}}}},e.prototype.get=function(e){return new Jn(this,e)},e}(),er=function(){function e(e){this.outletRef=e,this.definition=null,this.lastState=null,this.tag=e.tag}return e.prototype.value=function(){var e=Ne(this.outletRef) +if(Me(e,this.lastState))return this.definition +this.lastState=e +var n=null +return null!==e&&(n=(0,t.curry)(new $t(e))),this.definition=n},e.prototype.get=function(){return t.UNDEFINED_REFERENCE},e}(),tr=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.create=function(e,t,n,r){var i=t.name +return r.rootOutletState&&(r.outletState=new $n(r.rootOutletState,i)),this.createRenderState(n,e.owner,i)},t.prototype.getLayout=function(e){var t=e.template,n=t.asLayout() +return{handle:n.compile(),symbolTable:n.symbolTable}},t.prototype.getSelf=function(e){var t=e.controller +return new ot(t)},t}(Qt),nr={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},rr=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.createRenderState=function(e,t,n){return{controller:t.lookup("controller:"+n)||(0,v.generateController)(t,n)}},t.prototype.getCapabilities=function(){return nr},t.prototype.getTag=function(){return a.CONSTANT_TAG},t.prototype.getDestructor=function(){return null},t}(tr),ir=new rr,or={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,dynamicScope:!0,createCaller:!1,updateHook:!0,createInstance:!0},sr=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.createRenderState=function(e,t,n){var r=e.positional.at(1) +return{controller:(t.factoryFor("controller:"+n)||(0,v.generateControllerFactory)(t,"controller:"+n)).create({model:r.value()}),model:r}},t.prototype.update=function(e){var t=e.controller,n=e.model +t.set("model",n.value())},t.prototype.getCapabilities=function(){return or},t.prototype.getTag=function(e){return e.model.tag},t.prototype.getDestructor=function(e){return e.controller},t}(tr),ar=new sr,ur=function(e,t,n){this.manager=n,this.state={name:e,template:t}},cr=[],lr=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this)) +return n.delegate=t,n}return(0,i.inherits)(t,e),t.prototype.create=function(e,t,n,r){var i=this.delegate,o=n.named.capture(),s=i.create({args:o.value(),ComponentClass:t.ComponentClass}),a=r.view +return null!==a&&void 0!==a&&(0,h.addChildView)(a,s),r.view=s,new hr(i,s,o)},t.prototype.update=function(e){var t=e.component,n=e.args +this.delegate.update(t,n.value())},t.prototype.didUpdate=function(e){var t=e.component +"function"==typeof this.delegate.didUpdate&&this.delegate.didUpdate(t)},t.prototype.getContext=function(e){this.delegate.getContext(e)},t.prototype.getLayout=function(e){return{handle:e.template.asLayout().compile(),symbolTable:e.symbolTable}},t.prototype.getSelf=function(e){var t=e.component,n=this.delegate.getContext(t) +return new ot(n)},t.prototype.getDestructor=function(e){return e},t.prototype.getCapabilities=function(){return{dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0}},t.prototype.getTag=function(e){return e.args.tag},t.prototype.didRenderLayout=function(e){var t=e.component +Be(t).register(t),"function"==typeof this.delegate.didCreate&&this.delegate.didCreate(t)},t}(Qt),hr=function(){function e(e,t,n){this.delegate=e,this.component=t,this.args=n}return e.prototype.destroy=function(){var e=this.delegate,t=this.component +Be(t).unregister(t),e.destroy&&e.destroy(t)},e}(),dr=(0,s.symbol)("COMPONENT_MANAGER"),pr={if:function(e,t){var n=t.positional +return Dn.create(n.at(0),n.at(1),n.at(2))},action:ge,concat:function(e,t){return new pt(Ce,t.capture())},get:function(e,t){return Ln.create(t.positional.at(0),t.positional.at(1))},hash:function(e,t){return t.named.capture()},log:function(e,t){return new pt(_e,t.capture())},mut:function(e,t){var n=t.positional.at(0) +if(Ie(n))return n +var r=Object.create(n) +return r[Fn]=n,r[tt]=n[et],r[zn]=!0,r},"query-params":function(e,t){return new pt(xe,t.capture())},readonly:function(e,t){var n=we(t.positional.at(0)) +return new gt(n)},unbound:function(e,t){return ft.create(t.positional.at(0).value())},unless:function(e,t){var n=t.positional +return Dn.create(n.at(0),n.at(2),n.at(1))},"-class":function(e,t){return new pt(he,t.capture())},"-each-in":function(e,t){return new Pt(t.positional.at(0))},"-input-type":function(e,t){return new pt(pe,t.capture())},"-normalize-class":function(e,t){return new pt(fe,t.capture())},"-html-safe":function(e,t){return new pt(de,t.capture())},"-get-dynamic-var":t.getDynamicVar,"-mount":function(e,t){var n=e.env,r=t.positional.at(0),i=t.named.has("model")?t.named.get("model"):void 0 +return new Qn(r,n,i)},"-outlet":function(e,t){var n=e.dynamicScope(),r=void 0 +return r=0===t.positional.length?new a.ConstReference("main"):t.positional.at(0),new er(new Xn(n.outletState,r))},"-render":function(e,n){var r,i,o,s,a=e.env,u=n.positional.at(0),c=u.value(),l=a.owner.lookup("template:"+c),h=void 0 +return n.named.has("controller")?(r=n.named.get("controller"),h=r.value()):h=c,1===n.positional.length?(i=new ur(h,l,ir),ft.create((0,t.curry)(i))):(o=new ur(h,l,ar),s=n.capture(),ft.create((0,t.curry)(o,s)))}},fr={action:new Vn},gr=function(){function e(){this.handles=[void 0],this.objToHandle=new WeakMap,this.builtInHelpers=pr,this.builtInModifiers=fr,this.templateCache=new Map,this.componentDefinitionCache=new Map,this.templateCacheHits=0,this.templateCacheMisses=0,this.componentDefinitionCount=0,this.helperDefinitionCount=0 +var e=new o.Macros +Fe(e),this.compiler=new o.LazyCompiler(new Sn(this),this,e)}return e.prototype.lookupComponentDefinition=function(e,t){var n=this.lookupComponentHandle(e,t) +return null===n?null:this.resolve(n)},e.prototype.lookupComponentHandle=function(e,t){var n=this.handles.length,r=this.handle(this._lookupComponentDefinition(e,t)) +return n===r&&this.componentDefinitionCount++,r},e.prototype.resolve=function(e){return this.handles[e]},e.prototype.lookupHelper=function(e,t){var n,r=this.handles.length,i=this._lookupHelper(e,t) +return null!==i?(n=this.handle(i),r===n&&this.helperDefinitionCount++,n):null},e.prototype.lookupModifier=function(e){return this.handle(this._lookupModifier(e))},e.prototype.lookupPartial=function(e,t){var n=this._lookupPartial(e,t) +return this.handle(n)},e.prototype.createTemplate=function(e,t){var n,r,i=this.templateCache.get(t) +void 0===i&&(i=new Map,this.templateCache.set(t,i)) +var o=i.get(e) +return void 0===o?(n=this.compiler,r={compiler:n},(0,s.setOwner)(r,t),o=e.create(r),i.set(e,o),this.templateCacheMisses++):this.templateCacheHits++,o},e.prototype.handle=function(e){if(void 0===e||null===e)return null +var t=this.objToHandle.get(e) +return void 0===t&&(t=this.handles.push(e)-1,this.objToHandle.set(e,t)),t},e.prototype._lookupHelper=function(e,t){var n=this.builtInHelpers[e] +if(void 0!==n)return n +var r=t.owner,i=t.moduleName,o=e,s=qe(i,void 0),a=r.factoryFor("helper:"+o,s)||r.factoryFor("helper:"+o) +return b(a)?function(e,t){var n=a.create() +return C(n)?new ht(n.compute,t.capture()):(e.newDestroyable(n),dt.create(n,t.capture()))}:null},e.prototype._lookupPartial=function(e,t){var n=(0,h.lookupPartial)(e,t.owner),r=new o.PartialDefinition(e,(0,h.lookupPartial)(e,t.owner)) +if(n)return r +throw new Error(e+" is not a partial")},e.prototype._lookupModifier=function(e){var t=this.builtInModifiers[e] +return void 0!==t?t:null},e.prototype._parseNameForNamespace=function(e){var t=e,n=void 0,r=e.indexOf("::") +return-1!==r&&(t=e.slice(r+2),n=e.slice(0,r)),{name:t,namespace:n}},e.prototype._lookupComponentDefinition=function(e,t){var n,r=e,i=(0,h.lookupComponent)(t.owner,r,qe(t.moduleName,void 0)),o=i.layout,s=i.component,a=void 0===s?o:s +if(void 0===a)return null +var u=this.componentDefinitionCache.get(a) +if(void 0!==u)return u +if(o&&!s&&d.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS)return n=new Rn(o),this.componentDefinitionCache.set(a,n),n +var l=(0,c._instrumentStart)("render.getComponentDefinition",Ue,r),p=o||s?new gn(r,void 0,s||t.owner.factoryFor((0,g.privatize)(Ge)),null,o):null +return l(),this.componentDefinitionCache.set(a,p),p},e}(),mr={create:function(){return(new gr).compiler}},vr=y({id:"o98Iahwz",block:'{"symbols":["&default"],"statements":[[13,1]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/component.hbs"}}),yr=y({id:"cNysaqQS",block:'{"symbols":[],"statements":[[1,[20,"outlet"],false]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/outlet.hbs"}}),br="-top-level",Cr="main",Ar=function(){function e(e,t,n,r){this._environment=e,this.renderer=t,this.owner=n,this.template=r +var i=this.ref=new Zn({outlets:{main:void 0},render:{owner:n,into:void 0,outlet:Cr,name:br,controller:void 0,template:r}}) +this.state={ref:i,name:br,outlet:Cr,template:r,controller:void 0}}return e.extend=function(t){return function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.create=function(n){return n?e.create.call(this,(0,s.assign)({},t,n)):e.create.call(this,t)},n}(e)},e.reopenClass=function(e){(0,s.assign)(this,e)},e.create=function(t){var n=t._environment,r=t.renderer,i=t.template +return new e(n,r,t[s.OWNER],i)},e.prototype.appendTo=function(e){var t=this._environment||d.environment,n=void 0 +n=t.hasDOM&&"string"==typeof e?document.querySelector(e):e,(0,c.schedule)("render",this.renderer,"appendOutletView",this,n)},e.prototype.rerender=function(){},e.prototype.setOutletState=function(e){this.ref.update(e)},e.prototype.destroy=function(){},e}() +e.RootTemplate=Ze,e.template=y,e.Checkbox=wt,e.TextField=kt,e.TextArea=jt,e.LinkComponent=St,e.Component=_t,e.ROOT_REF=yt,e.Helper=Je,e.helper=A,e.Environment=Kt,e.SafeString=Ut,e.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML() +if(null===e||void 0===e)return"" +if(!e)return e+"" +e=""+e}return Vt.test(e)?e.replace(Wt,D):e},e.htmlSafe=z,e.isHTMLSafe=F,e.Renderer=wn,e.InertRenderer=xn,e.InteractiveRenderer=kn,e._resetRenderers=function(){An.length=0},e.renderSettled=ie,e.getTemplate=ue,e.setTemplate=le,e.hasTemplate=ce,e.getTemplates=ae,e.setTemplates=function(e){jn=e},e.setupEngineRegistry=function(e){e.register("view:-outlet",Ar),e.register("template:-outlet",yr),e.injection("view:-outlet","template","template:-outlet"),e.injection("service:-dom-changes","document","service:-document"),e.injection("service:-dom-tree-construction","document","service:-document"),e.register((0,g.privatize)(We),vr),e.register("service:-glimmer-environment",Kt),e.register((0,g.privatize)(Ke),mr),e.injection("template","compiler",(0,g.privatize)(Ke)),e.optionsForType("helper",{instantiate:!1}),e.register("helper:loc",En),e.register("component:-text-field",kt),e.register("component:-text-area",jt),e.register("component:-checkbox",wt),e.register("component:link-to",St),d.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS||e.register((0,g.privatize)(Ge),_t)},e.setupApplicationRegistry=function(e){e.injection("service:-glimmer-environment","appendOperations","service:-dom-tree-construction"),e.injection("renderer","env","service:-glimmer-environment"),e.register("service:-dom-builder",{create:function(e){switch(e.bootOptions._renderMode){case"serialize":return r.serializeBuilder.bind(null) +case"rehydrate":return t.rehydrationBuilder.bind(null) +default:return t.clientBuilder.bind(null)}}}),e.injection("service:-dom-builder","bootOptions","-environment:main"),e.injection("renderer","builder","service:-dom-builder"),e.register((0,g.privatize)(Ye),Ze),e.injection("renderer","rootTemplate",(0,g.privatize)(Ye)),e.register("renderer:-dom",kn),e.register("renderer:-inert",xn),d.environment.hasDOM&&e.injection("service:-glimmer-environment","updateOperations","service:-dom-changes"),e.register("service:-dom-changes",{create:function(e){var n=e.document +return new t.DOMChanges(n)}}),e.register("service:-dom-tree-construction",{create:function(e){var n=e.document +return new(d.environment.hasDOM?t.DOMTreeConstruction:r.NodeDOMTreeConstruction)(n)}})},e._registerMacros=function(e){cr.push(e)},e._experimentalMacros=cr,e.AbstractComponentManager=Qt +e.UpdatableReference=ct,e.INVOKE=tt,e.iterableFor=j,e.DebugStack=void 0,e.OutletView=Ar,e.CustomComponentManager=lr,e.COMPONENT_MANAGER=dr,e.componentManager=He}),e("ember-metal",["exports","ember-environment","ember-debug","ember-babel","container","backburner","@glimmer/reference","ember-utils","ember/version"],function(e,t,n,r,i,o,s,a,u){"use strict" +function c(e,t,n){var r,i=t[n+1],o=t[n+2] +for(r=0;r<e.length;r+=3)if(e[r]===i&&e[r+1]===o)return +e.push(i,o,t[n+3])}function l(e,n,r,i,o){t.ENV._ENABLE_DID_INIT_ATTRS_SUPPORT,i||"function"!=typeof r||(i=r,r=null),ce(e).addToListeners(n,r,i,o)}function h(e,t,n,r){r||"function"!=typeof n||(r=n,n=null),ce(e).removeFromListeners(t,n,r)}function d(e,t,n,r,i){var o,s,a,u,c +if(void 0===r&&(o=void 0===i?ue(e):i,r="object"==typeof o&&null!==o&&o.matchingListeners(t)),void 0===r||0===r.length)return!1 +for(s=r.length-3;s>=0;s-=3)a=r[s],u=r[s+1],c=r[s+2],u&&(c&&h(e,t,a,u),a||(a=e),"string"==typeof u&&(u=a[u]),u.apply(a,n)) +return!0}function p(){return vt}function f(){return bt}function g(){return At}function m(){return It.run.apply(It,arguments)}function v(){return It.join.apply(It,arguments)}function y(){return s.DirtyableTag.create()}function b(e,t,n){if("object"!=typeof e||null===e)return s.CONSTANT_TAG +var r=void 0===n?ce(e):n +if(a.isProxy(e))return C(e,r) +var i=r.writableTags(),o=i[t] +return o||(i[t]=y())}function C(e,t){var n +return"object"==typeof e&&null!==e?(n=void 0===t?ce(e):t,n.writableTag(y)):s.CONSTANT_TAG}function A(e,t,n){var r=n.readableTag() +void 0!==r&&(a.isProxy(e)?r.inner.first.inner.dirty():r.inner.dirty()) +var i=n.readableTags(),o=void 0!==i?i[t]:void 0 +void 0!==o&&kt(o),void 0===r&&void 0===o||_()}function _(){xt()&&It.ensureInstance()}function I(e,t,n){var r=void 0===n?ce(e):n,i=r.peekWatching(t)||0 +r.writeWatching(t,i+1),0===i&&r.writableChains(re).add(t)}function w(e,t,n){var r=void 0===n?ue(e):n +if(void 0!==r){var i=r.peekWatching(t) +i>0&&(r.writeWatching(t,i-1),1===i&&r.writableChains(re).remove(t))}}function x(e,t,n){de(t)?I(e,t,n):U(e,t,n)}function k(e,t){var n=ue(e) +return void 0!==n&&n.peekWatching(t)||0}function j(e,t,n){de(t)?w(e,t,n):q(e,t,n)}function E(e){return e+":change"}function S(e,t,n,r){l(e,E(t),n,r),x(e,t)}function T(e,t,n,r){j(e,t),h(e,E(t),n,r)}function P(e,t,n){var r=void 0===n?ue(e):n,i=void 0!==r +if(!i||r.isInitialized(e)){var o=le(e,t,r) +if(void 0!==o&&"function"==typeof o.didChange&&o.didChange(e,t),i&&r.peekWatching(t)>0&&(O(e,t,r),N(e,t,r),F(e,t,r)),Et in e&&e[Et](t),i){if(r.isSourceDestroying())return +A(e,t,r)}}}function O(e,t,n){if(!n.isSourceDestroying()&&n.hasDeps(t)){var r=Ot +r&&(Ot=!1),R(P,e,t,Pt,n),r&&(Pt.clear(),Ot=!0)}}function R(e,t,n,r,i){var o=r.get(t) +if(void 0===o&&(o=new Set,r.set(t,o)),!o.has(n)){var s=void 0 +i.forEachInDeps(n,function(n,r){r&&(void 0!==(s=le(t,n,i))&&s._suspended===t||e(t,n,i))})}}function N(e,t,n){var r=n.readableChainWatchers() +void 0!==r&&r.notify(t,!0,P)}function M(e,t,n){var r=n.readableChainWatchers() +void 0!==r&&r.revalidate(t)}function L(){Tt++}function D(){--Tt<=0&&St.flush()}function z(e){L() +try{e()}finally{D()}}function F(e,t,n){if(!n.isSourceDestroying()){var r=E(t) +Tt>0?St.add(e,t,r):d(e,r,[e,t])}}function B(e,t){return function(){return t.get(this,e)}}function H(e,t,n,r,i){void 0===i&&(i=ce(e)) +var o=i.peekWatching(t),s=void 0!==o&&o>0,a=le(e,t,i),u=void 0!==a +u&&(a.teardown(e,t,i),i.removeDescriptors(t)) +var c=!0 +e===Array.prototype&&(c=!1) +var l=void 0 +return n instanceof Rt?(l=n,Object.defineProperty(e,t,{configurable:!0,enumerable:c,get:B(t,l)}),i.writeDescriptors(t,l),"function"==typeof n.setup&&n.setup(e,t)):void 0===n||null===n?(l=r,u?Object.defineProperty(e,t,{configurable:!0,enumerable:c,writable:!0,value:l}):!1===c?Object.defineProperty(e,t,{configurable:!0,enumerable:c,writable:!0,value:l}):e[t]=r):(l=n,Object.defineProperty(e,t,n)),s&&M(e,t,i),"function"==typeof e.didDefineProperty&&e.didDefineProperty(e,t,l),this}function U(e,t,n){var r,i=void 0===n?ce(e):n,o=i.peekWatching(t)||0 +i.writeWatching(t,o+1),0===o&&(r=le(e,t,i),void 0!==r&&r.willWatch&&r.willWatch(e,t,i),"function"==typeof e.willWatchProperty&&e.willWatchProperty(t))}function q(e,t,n){var r,i,o=void 0===n?ue(e):n +if(void 0!==o&&!o.isSourceDestroyed()){var s=o.peekWatching(t) +1===s?(o.writeWatching(t,0),r=le(e,t,o),i=void 0!==r,i&&r.didUnwatch&&r.didUnwatch(e,t,o),"function"==typeof e.didUnwatchProperty&&e.didUnwatchProperty(t)):s>1&&o.writeWatching(t,s-1)}}function V(e,t){return Array.isArray(e)?e[t]:e.objectAt(t)}function W(e,t,n,r){var i,o +if(Y(e,t,n,r.length),r.length<=Mt)e.splice.apply(e,[t,n].concat(r)) +else for(e.splice(t,n),i=0;i<r.length;i+=Mt)o=r.slice(i,i+Mt),e.splice.apply(e,[t+i,0].concat(o)) +K(e,t,n,r.length)}function G(e,t,n,r,i){var o=n&&n.willChange||"arrayWillChange",s=n&&n.didChange||"arrayDidChange",a=me(e,"hasArrayObservers") +return r(e,"@array:before",t,o),r(e,"@array:change",t,s),a===i&&P(e,"hasArrayObservers"),e}function Y(e,t,n,r){return void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),Z(e,t,n,r),d(e,"@array:before",[e,t,n,r]),e}function K(e,t,n,r){void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)) +var i,o,s,a,u,c=ue(e);(r<0||n<0||r-n!=0)&&P(e,"length",c),P(e,"[]",c),X(e,t,n,r),d(e,"@array:change",[e,t,n,r]) +var l=Se(e) +return void 0!==l&&(i=me(e,"length"),o=-1===r?0:r,s=-1===n?0:n,a=i-(o-s),u=t<0?a+t:t,l.has("firstObject")&&0===u&&P(e,"firstObject",c),l.has("lastObject")&&a-1<u+s&&P(e,"lastObject",c)),e}function Q(e){var t=Lt.get(e) +return void 0===t&&(t=new Dt(e),Lt.set(e,t)),t}function Z(e,t,n,r){var i=Lt.get(e) +void 0!==i&&i.arrayWillChange(e,t,n,r)}function X(e,t,n,r){var i=Lt.get(e) +void 0!==i&&i.arrayDidChange(e,t,n,r)}function J(e,t,n,r,i){for(var o;--i>=r;)(o=V(e,i))&&S(o,t,n,"contentKeyDidChange")}function $(e,t,n,r,i){for(var o;--i>=r;)(o=V(e,i))&&T(o,t,n,"contentKeyDidChange")}function ee(e){return"object"==typeof e&&null!==e}function te(e,t,n){var r=le(e,t,n) +return!(void 0!==r&&!1===r._volatile)}function ne(){return new zt}function re(e){return new Ft(null,null,e)}function ie(e,t,n){var r=ce(e) +r.writableChainWatchers(ne).add(t,n),U(e,t,r)}function oe(e,t,n,r){if(ee(e)){var i=void 0===r?ue(e):r +void 0!==i&&void 0!==i.readableChainWatchers()&&(i=ce(e),i.readableChainWatchers().remove(t,n),q(e,t,i))}}function se(e,t){if(ee(e)){var n=ue(e) +if(void 0===n||n.proto!==e)return"@each"===t?Q(e):te(e,t,n)?me(e,t):Ee(e,t)}}function ae(e,t){Wt.set(e,t)}function ue(e){for(var t=e,n=void 0;void 0!==t&&null!==t;){if(void 0!==(n=Wt.get(t)))return n +t=Vt(t)}}function ce(e){var t=ue(e),n=void 0 +if(void 0!==t){if(t.source===e)return t +n=t}var r=new Ut(e,n) +return ae(e,r),r}function le(e,t,n){var r=void 0===n?ue(e):n +if(void 0!==r)return r.peekDescriptors(t)}function he(e){return void 0!==e&&null!==e&&"object"==typeof e&&!0===e.isDescriptor}function de(e){return"string"==typeof e&&-1!==Yt.get(e)}function pe(e,t,n){return"value"in n?ge(t,n):fe(t,n)}function fe(e,t){function n(){var t=Qt,n=Qt=new Kt,r=i.call(this) +Qt=t +var o=n.combine() +return Qt&&Qt.add(o),(void 0)(b(this,e),o),r}function r(){kt(b(this,e)),o.apply(this,arguments)}var i=t.get,o=t.set +return{enumerable:!0,configurable:!1,get:i&&n,set:o&&r}}function ge(e,t){var n=Symbol(e) +return{enumerable:!0,configurable:!0,get:function(){return Qt&&Qt.add(b(this,e)),n in this||(this[n]=t.value),this[n]},set:function(t){C(this).inner.dirty(),kt(b(this,e)),this[n]=t,Zt()}}}function me(e,t){var n=typeof e,r="object"===n,i=void 0,o=void 0 +if(r||"function"===n){if(void 0!==(i=le(e,t)))return i.get(e,t) +if(o=e[t],he(o))return Object.defineProperty(e,t,{configurable:!0,enumerable:!1===o.enumerable,get:function(){return o.get(this,t)}}),ce(e).writeDescriptors(t,o),"function"==typeof o.setup&&o.setup(e,t),o.get(e,t)}else o=e[t] +if(void 0===o){if(de(t))return ve(e,t) +if(r&&!(t in e)&&"function"==typeof e.unknownProperty)return e.unknownProperty(t)}return o}function ve(e,t){var n,r=e,i=t.split(".") +for(n=0;n<i.length;n++){if(!ye(r))return +if((r=me(r,i[n]))&&r.isDestroyed)return}return r}function ye(e){return void 0!==e&&null!==e&&Xt[typeof e]}function be(e,t,n,r){if(!e.isDestroyed){if(de(t))return Ce(e,t,n,r) +var i,o=le(e,t) +if(void 0!==o)return o.set(e,t,n),n +var s=void 0 +return s=e[t],he(s)?(Object.defineProperty(e,t,{configurable:!0,enumerable:!1===s.enumerable,get:function(){return s.get(this,t)}}),ce(e).writeDescriptors(t,s),"function"==typeof s.setup&&s.setup(e,t),s.set(e,t,n),n):(void 0!==s||"object"!=typeof e||t in e||"function"!=typeof e.setUnknownProperty?(i=ue(e),e[t]=n,s!==n&&P(e,t,i)):e.setUnknownProperty(t,n),n)}}function Ce(e,t,r,i){var o=t.split("."),s=o.pop(),a=o.join("."),u=ve(e,a) +if(u)return be(u,s,r) +if(!i)throw new n.Error('Property set failed: object in path "'+a+'" could not be found or was destroyed.')}function Ae(e,t){var n=e.indexOf("{") +n<0?t(e.replace($t,".[]")):_e("",e,n,t)}function _e(e,t,n,r){var i=t.indexOf("}"),o=0,s=void 0,a=void 0,u=t.substring(n+1,i).split(","),c=t.substring(i+1) +for(e+=t.substring(0,n),a=u.length;o<a;)s=c.indexOf("{"),s<0?r((e+u[o++]+c).replace($t,".[]")):_e(e+u[o++],c,s,r)}function Ie(e,t,n,r){var i,o,s=e._dependentKeys +if(null!==s&&void 0!==s)for(i=0;i<s.length;i++)o=s[i],r.writeDeps(o,n,(r.peekDeps(o,n)||0)+1),x(t,o,r)}function we(e,t,n,r){var i,o,s=e._dependentKeys +if(null!==s&&void 0!==s)for(i=0;i<s.length;i++)o=s[i],r.writeDeps(o,n,(r.peekDeps(o,n)||0)-1),j(t,o,r)}function xe(){}function ke(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +var e,t,n,r=t.pop(),i=new en(r) +return t.length>0&&i.property.apply(i,t),i}function je(e){var t=nn.get(e) +return void 0===t&&(t=new Map,nn.set(e,t)),t}function Ee(e,t){var n=nn.get(e) +if(void 0!==n)return n.get(t)}function Se(e){return nn.get(e)}function Te(e,t){throw new n.Error("Cannot set read-only property '"+t+"' on object: "+a.inspect(e))}function Pe(e,t,n){return H(e,t,null),be(e,t,n)}function Oe(e){var t,n=[],r=void 0 +for(t=0;t<sn.length;t++)r=sn[t],r.regex.test(e)&&n.push(r.object) +return an[e]=n,n}function Re(e,t,n,r){var i=void 0 +try{i=e.call(r)}catch(e){n.exception=e,i=n}finally{t()}return i}function Ne(){}function Me(e,n,r){if(0===sn.length)return Ne +var i=an[e] +if(i||(i=Oe(e)),0===i.length)return Ne +var o=n(r),s=t.ENV.STRUCTURED_PROFILE,a=void 0 +s&&(a=e+": "+o.object,console.time(a)) +var u=new Array(i.length),c=void 0,l=void 0,h=un() +for(c=0;c<i.length;c++)l=i[c],u[c]=l.before(e,h,o) +return function(){var t=void 0,n=void 0,r=un() +for(t=0;t<i.length;t++)n=i[t],"function"==typeof n.after&&n.after(e,r,o,u[t]) +s&&console.timeEnd(a)}}function Le(e){return null===e||void 0===e}function De(e){var t,n,r=Le(e) +if(r)return r +if("number"==typeof e.size)return!e.size +var i=typeof e +return"object"===i&&"number"==typeof(t=me(e,"size"))?!t:"number"==typeof e.length&&"function"!==i?!e.length:"object"===i&&"number"==typeof(n=me(e,"length"))&&!n}function ze(e){return De(e)||"string"==typeof e&&!1===/\S/.test(e)}function Fe(e){var t=Object.create(null) +for(var n in e)t[n]=e[n] +return t}function Be(e,t){var n=e._keys.copy(),r=Fe(e._values) +return t._keys=n,t._values=r,t.size=e.size,t}function He(e){var n=a.getName(e) +delete bn[n],yn.splice(yn.indexOf(e),1),n in t.context.lookup&&e===t.context.lookup[n]&&(t.context.lookup[n]=void 0)}function Ue(){if(mn.unprocessedNamespaces){var e,n,r,i=t.context.lookup,o=Object.keys(i) +for(e=0;e<o.length;e++)n=o[e],Ze(n.charCodeAt(0))&&(r=Xe(i,n))&&a.setName(r,n)}}function qe(e){return gn||We(),bn[e]}function Ve(e){Qe([e.toString()],e,new Set)}function We(){var e,t,n=mn.unprocessedNamespaces +if(n&&(Ue(),mn.unprocessedNamespaces=!1),n||vn){for(e=yn,t=0;t<e.length;t++)Ve(e[t]) +vn=!1}}function Ge(){var e=a.getName(this) +return void 0!==e?e:(e=Je(this),a.setName(this,e),e)}function Ye(){return gn}function Ke(){vn=!0}function Qe(e,t,n){var r,i=e.length,o=e.join(".") +bn[o]=t,a.setName(t,o) +for(var s in t)if(fn.call(t,s))if(r=t[s],e[i]=s,r&&r.toString===Ge&&void 0===a.getName(r))a.setName(r,e.join(".")) +else if(r&&r.isNamespace){if(n.has(r))continue +n.add(r),Qe(e,r,n)}e.length=i}function Ze(e){return e>=65&&e<=90}function Xe(e,t){var n +try{return(null!==(n=e[t])&&"object"==typeof n||"function"==typeof n)&&n.isNamespace&&n}catch(e){}}function Je(e){var t,n=void 0 +if(!gn){if(We(),void 0!==(n=a.getName(e)))return n +t=e +do{if((t=Object.getPrototypeOf(t))===Function.prototype||t===Object.prototype)break +if(void 0!==(n=a.getName(e))){n="(subclass of "+n+")" +break}}while(void 0===n)}return n||"(unknown)"}function $e(e){return"function"==typeof e&&!1!==e.isMethod&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function et(e,t){return t instanceof _n?e.hasMixin(t)?An:(e.addMixin(t),t.properties):t}function tt(e,t,n,r){var i=n[e]||r[e] +return t[e]&&(i=i?Cn.call(i,t[e]):t[e]),i}function nt(e,t,n,r,i,o){var s=void 0 +return void 0===r[t]&&(s=i[t]),s||(s=le(o,t,e)),void 0!==s&&s instanceof en?(n=Object.create(n),n._getter=a.wrap(n._getter,s._getter),s._setter&&(n._setter?n._setter=a.wrap(n._setter,s._setter):n._setter=s._setter),n):n}function rt(e,t,n,r,i){if(void 0!==i[t])return n +var o=r[t] +return void 0===o&&void 0===le(e,t)&&(o=e[t]),"function"==typeof o?a.wrap(n,o):n}function it(e,t,n,r){var i=r[t]||e[t] +return a.makeArray(i).concat(a.makeArray(n))}function ot(e,t,n,r){var i,o=r[t]||e[t] +if(!o)return n +var s=a.assign({},o),u=!1 +for(var c in n)n.hasOwnProperty(c)&&(i=n[c],$e(i)?(u=!0,s[c]=rt(e,c,i,o,{})):s[c]=i) +return u&&(s._super=a.ROOT),s}function st(e,t,n,r,i,o,s,a){n instanceof Rt?(n._getter&&(n=nt(r,t,n,o,i,e)),i[t]=n,o[t]=void 0):(s&&s.indexOf(t)>=0||"concatenatedProperties"===t||"mergedProperties"===t?n=it(e,t,n,o):a&&a.indexOf(t)>-1?n=ot(e,t,n,o):$e(n)&&(n=rt(e,t,n,o,i)),i[t]=void 0,o[t]=n)}function at(e,t,n,r,i,o){function s(e){delete n[e],delete r[e]}var a,u=void 0,c=void 0,l=void 0,h=void 0,d=void 0 +for(a=0;a<e.length;a++)if(u=e[a],(c=et(t,u))!==An)if(c){i.willMergeMixin&&i.willMergeMixin(c),h=tt("concatenatedProperties",c,r,i),d=tt("mergedProperties",c,r,i) +for(l in c)c.hasOwnProperty(l)&&(o.push(l),st(i,l,c[l],t,n,r,h,d)) +c.hasOwnProperty("toString")&&(i.toString=c.toString)}else u.mixins&&(at(u.mixins,t,n,r,i,o),u._without&&u._without.forEach(s))}function ut(e,t,n,r){var i=t.methodName,o=void 0,s=void 0 +return n[i]||r[i]?(o=r[i],t=n[i]):void 0!==(s=le(e,i))?(t=s,o=void 0):(t=void 0,o=e[i]),{desc:t,value:o}}function ct(e,t,n,r){var i +if(n)for(i=0;i<n.length;i++)r(e,n[i],null,t)}function lt(e,t,n,r){"function"==typeof n&&(ct(e,t,n.__ember_observes__,T),ct(e,t,n.__ember_listens__,h)),"function"==typeof r&&(ct(e,t,r.__ember_observes__,S),ct(e,t,r.__ember_listens__,l))}function ht(e,n,r){var i,o,s={},u={},c=ce(e),l=[],h=void 0,d=void 0,p=void 0 +for(e._super=a.ROOT,at(n,c,s,u,e,l),i=0;i<l.length;i++)if("constructor"!==(h=l[i])&&u.hasOwnProperty(h)){for(p=s[h],d=u[h];p&&p instanceof In;)o=ut(e,p,s,u),p=o.desc,d=o.value +void 0===p&&void 0===d||(void 0!==le(e,h)?lt(e,h,null,d):lt(e,h,e[h],d),t.ENV._ENABLE_BINDING_SUPPORT&&"function"==typeof _n.detectBinding&&_n.detectBinding(h)&&c.writeBindings(h,d),H(e,h,p,d,c))}return t.ENV._ENABLE_BINDING_SUPPORT&&!r&&"function"==typeof _n.finishProtype&&_n.finishPartial(e,c),e}function dt(e){var t,n,r=e&&e.length,i=void 0 +if(r>0)for(i=new Array(r),t=0;t<r;t++)n=e[t],i[t]=n instanceof _n?n:new _n(void 0,n) +return i}function pt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set +if(n.has(e))return!1 +if(n.add(e),e===t)return!0 +var r=e.mixins +return!!r&&r.some(function(e){return pt(e,t,n)})}function ft(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set +if(!i.has(e)){if(i.add(e),e.properties)for(t=Object.keys(e.properties),n=0;n<t.length;n++)r.add(t[n]) +else e.mixins&&e.mixins.forEach(function(e){return ft(e,r,i)}) +return r}}function gt(e){var t=le(this,e),n=a.getOwner(this)||this.container,r=t.type+":"+(t.name||e) +return n.lookup(r,{source:t.source,namespace:t.namespace})}o=o&&o.hasOwnProperty("default")?o.default:o,u=u&&u.hasOwnProperty("default")?u.default:u +var mt={addToListeners:function(e,t,n,r){void 0===this._listeners&&(this._listeners=[]),this._listeners.push(e,t,n,r)},_finalizeListeners:function(){if(!this._listenersFinalized){void 0===this._listeners&&(this._listeners=[]) +for(var e,t=this.parent;void 0!==t&&(e=t._listeners,void 0!==e&&(this._listeners=this._listeners.concat(e)),!t._listenersFinalized);)t=t.parent +this._listenersFinalized=!0}},removeFromListeners:function(e,t,n){for(var r,i,o=this;void 0!==o;){if(void 0!==(r=o._listeners))for(i=r.length-4;i>=0;i-=4)if(r[i]===e&&(!n||r[i+1]===t&&r[i+2]===n)){if(o!==this)return this._finalizeListeners(),this.removeFromListeners(e,t,n) +r.splice(i,4)}if(o._listenersFinalized)break +o=o.parent}},matchingListeners:function(e){for(var t,n,r=this,i=void 0;void 0!==r;){if(void 0!==(t=r._listeners))for(n=0;n<t.length;n+=4)t[n]===e&&(i=i||[],c(i,t,n)) +if(r._listenersFinalized)break +r=r.parent}return i}},vt=void 0,yt={get onerror(){return vt}},bt=void 0,Ct=r.taggedTemplateLiteralLoose(["rsvpAfter"],["rsvpAfter"]),At=null,_t=["sync","actions","routerTransitions","render","afterRender","destroy",i.privatize(Ct)],It=new o(_t,{sync:{before:L,after:D},defaultQueue:"actions",onBegin:function(e){At=e},onEnd:function(e,t){At=t},onErrorTarget:yt,onErrorMethod:"onerror"}),wt=m.bind(null),xt=function(){return!1},kt=void 0 +kt=function(e){e.inner.dirty()} +var jt=function(){function e(){this.added=new Map,this.queue=[]}return e.prototype.add=function(e,t,n){var r=this.added.get(e) +void 0===r&&(r=new Set,this.added.set(e,r)),r.has(t)||(this.queue.push(e,t,n),r.add(t))},e.prototype.flush=function(){var e,t,n,r,i=this.queue +for(this.added.clear(),this.queue=[],e=0;e<i.length;e+=3)t=i[e],n=i[e+1],r=i[e+2],t.isDestroying||t.isDestroyed||d(t,r,[t,n])},e}() +e.runInTransaction=void 0,e.runInTransaction=function(e,t){return e[t](),!1} +var Et=a.symbol("PROPERTY_DID_CHANGE"),St=new jt,Tt=0,Pt=new Map,Ot=!0,Rt=function(){this.isDescriptor=!0,this.enumerable=!0},Nt=Object.freeze([]),Mt=6e4,Lt=new WeakMap,Dt=function(){function e(e){this._content=e,this._keys=void 0,ce(this)}return e.prototype.arrayWillChange=function(e,t,n){var r=this._keys,i=n>0?t+n:-1 +if(i>0)for(var o in r)$(e,o,this,t,i)},e.prototype.arrayDidChange=function(e,t,n,r){var i=this._keys,o=r>0?t+r:-1,s=ue(this) +for(var a in i)o>0&&J(e,a,this,t,o),P(this,a,s)},e.prototype.willWatchProperty=function(e){this.beginObservingContentKey(e)},e.prototype.didUnwatchProperty=function(e){this.stopObservingContentKey(e)},e.prototype.beginObservingContentKey=function(e){var t,n,r=this._keys +void 0===r&&(r=this._keys=Object.create(null)),r[e]?r[e]++:(r[e]=1,t=this._content,n=me(t,"length"),J(t,e,this,0,n))},e.prototype.stopObservingContentKey=function(e){var t,n,r=this._keys +void 0!==r&&r[e]>0&&--r[e]<=0&&(t=this._content,n=me(t,"length"),$(t,e,this,0,n))},e.prototype.contentKeyDidChange=function(e,t){P(this,t)},e}(),zt=function(){function e(){this.chains=Object.create(null)}return e.prototype.add=function(e,t){var n=this.chains[e] +void 0===n?this.chains[e]=[t]:n.push(t)},e.prototype.remove=function(e,t){var n,r=this.chains[e] +if(void 0!==r)for(n=0;n<r.length;n++)if(r[n]===t){r.splice(n,1) +break}},e.prototype.has=function(e,t){var n,r=this.chains[e] +if(void 0!==r)for(n=0;n<r.length;n++)if(r[n]===t)return!0 +return!1},e.prototype.revalidateAll=function(){for(var e in this.chains)this.notify(e,!0,void 0)},e.prototype.revalidate=function(e){this.notify(e,!0,void 0)},e.prototype.notify=function(e,t,n){var r,i,o,s,a=this.chains[e] +if(void 0!==a&&0!==a.length){var u=void 0 +for(n&&(u=[]),r=0;r<a.length;r++)a[r].notify(t,u) +if(void 0!==n)for(i=0;i<u.length;i+=2)o=u[i],s=u[i+1],n(o,s)}},e}(),Ft=function(){function e(e,t,n){this._parent=e,this._key=t,this._chains=void 0,this._object=void 0,this.count=0,this._value=n,this._paths=void 0 +var r,i=this._isWatching=void 0===n +if(i){if(r=e.value(),!ee(r))return +this._object=r,ie(this._object,this._key,this)}}return e.prototype.value=function(){var e +return void 0===this._value&&this._isWatching&&(e=this._parent.value(),this._value=se(e,this._key)),this._value},e.prototype.destroy=function(){this._isWatching&&(oe(this._object,this._key,this),this._isWatching=!1)},e.prototype.copy=function(e){var t,n=re(e),r=this._paths +if(void 0!==r){t=void 0 +for(t in r)r[t]>0&&n.add(t)}return n},e.prototype.add=function(e){var t=this._paths||(this._paths={}) +t[e]=(t[e]||0)+1 +var n=e.split(".") +this.chain(n.shift(),n)},e.prototype.remove=function(e){var t=this._paths +if(void 0!==t){t[e]>0&&t[e]-- +var n=e.split(".") +this.unchain(n.shift(),n)}},e.prototype.chain=function(t,n){var r=this._chains,i=void 0 +void 0===r?r=this._chains=Object.create(null):i=r[t],void 0===i&&(i=r[t]=new e(this,t,void 0)),i.count++,n.length>0&&i.chain(n.shift(),n)},e.prototype.unchain=function(e,t){var n=this._chains,r=n[e] +t.length>0&&r.unchain(t.shift(),t),--r.count<=0&&(n[r._key]=void 0,r.destroy())},e.prototype.notify=function(e,t){e&&this._isWatching&&(n=this._parent.value(),n!==this._object&&(oe(this._object,this._key,this),ee(n)?(this._object=n,ie(n,this._key,this)):this._object=void 0),this._value=void 0) +var n,r,i=this._chains +if(void 0!==i){r=void 0 +for(var o in i)void 0!==(r=i[o])&&r.notify(e,t)}t&&this._parent&&this._parent.populateAffected(this._key,1,t)},e.prototype.populateAffected=function(e,t,n){this._key&&(e=this._key+"."+e),this._parent?this._parent.populateAffected(e,t+1,n):t>1&&n.push(this.value(),e)},e}(),Bt=a.symbol("undefined"),Ht=[],Ut=function(){function e(e,n){this._descriptors=void 0,this._watching=void 0,this._mixins=void 0,t.ENV._ENABLE_BINDING_SUPPORT&&(this._bindings=void 0),this._deps=void 0,this._chainWatchers=void 0,this._chains=void 0,this._tag=void 0,this._tags=void 0,this._flags=0,this.source=e,this.proto=void 0,this.parent=n,this._listeners=void 0,this._listenersFinalized=!1}return e.prototype.isInitialized=function(e){return this.proto!==e},e.prototype.destroy=function(){if(!this.isMetaDestroyed()){var e,t=void 0,n=void 0,r=void 0,i=this.readableChains() +if(void 0!==i)for(Ht.push(i);Ht.length>0;){if(i=Ht.pop(),void 0!==(t=i._chains))for(n in t)void 0!==t[n]&&Ht.push(t[n]) +i._isWatching&&void 0!==(r=i._object)&&(e=ue(r))&&!e.isSourceDestroying()&&oe(r,i._key,i,e)}this.setMetaDestroyed()}},e.prototype.isSourceDestroying=function(){return this._hasFlag(2)},e.prototype.setSourceDestroying=function(){this._flags|=2},e.prototype.isSourceDestroyed=function(){return this._hasFlag(4)},e.prototype.setSourceDestroyed=function(){this._flags|=4},e.prototype.isMetaDestroyed=function(){return this._hasFlag(8)},e.prototype.setMetaDestroyed=function(){this._flags|=8},e.prototype._hasFlag=function(e){return(this._flags&e)===e},e.prototype._getOrCreateOwnMap=function(e){return this[e]||(this[e]=Object.create(null))},e.prototype._getOrCreateOwnSet=function(e){return this[e]||(this[e]=new Set)},e.prototype._getInherited=function(e){for(var t,n=this;void 0!==n;){if(void 0!==(t=n[e]))return t +n=n.parent}},e.prototype._findInherited=function(e,t){for(var n,r,i=this;void 0!==i;){if(void 0!==(n=i[e])&&void 0!==(r=n[t]))return r +i=i.parent}},e.prototype._hasInInheritedSet=function(e,t){for(var n,r=this;void 0!==r;){if(void 0!==(n=r[e])&&n.has(t))return!0 +r=r.parent}return!1},e.prototype.writeDeps=function(e,t,n){var r=this._getOrCreateOwnMap("_deps"),i=r[e] +void 0===i&&(i=r[e]=Object.create(null)),i[t]=n},e.prototype.peekDeps=function(e,t){for(var n,r,i,o=this;void 0!==o;){if(void 0!==(n=o._deps)&&void 0!==(r=n[e])&&void 0!==(i=r[t]))return i +o=o.parent}},e.prototype.hasDeps=function(e){for(var t,n=this;void 0!==n;){if(void 0!==(t=n._deps)&&void 0!==t[e])return!0 +n=n.parent}return!1},e.prototype.forEachInDeps=function(e,t){return this._forEachIn("_deps",e,t)},e.prototype._forEachIn=function(e,t,n){for(var r,i,o,s=this,a=void 0,u=void 0;void 0!==s;){if(void 0!==(r=s[e])&&void 0!==(i=r[t]))for(var c in i)a=void 0===a?new Set:a,a.has(c)||(a.add(c),u=u||[],u.push(c,i[c])) +s=s.parent}if(void 0!==u)for(o=0;o<u.length;o+=2)n(u[o],u[o+1])},e.prototype.writableTags=function(){return this._getOrCreateOwnMap("_tags")},e.prototype.readableTags=function(){return this._tags},e.prototype.writableTag=function(e){var t=this._tag +return void 0===t&&(t=this._tag=e(this.source)),t},e.prototype.readableTag=function(){return this._tag},e.prototype.writableChainWatchers=function(e){var t=this._chainWatchers +return void 0===t&&(t=this._chainWatchers=e(this.source)),t},e.prototype.readableChainWatchers=function(){return this._chainWatchers},e.prototype.writableChains=function(e){var t=this._chains +return void 0===t&&(t=void 0===this.parent?e(this.source):this.parent.writableChains(e).copy(this.source),this._chains=t),t},e.prototype.readableChains=function(){return this._getInherited("_chains")},e.prototype.writeWatching=function(e,t){this._getOrCreateOwnMap("_watching")[e]=t},e.prototype.peekWatching=function(e){return this._findInherited("_watching",e)},e.prototype.addMixin=function(e){this._getOrCreateOwnSet("_mixins").add(e)},e.prototype.hasMixin=function(e){return this._hasInInheritedSet("_mixins",e)},e.prototype.forEachMixins=function(e){for(var t,n=this,r=void 0;void 0!==n;)t=n._mixins,void 0!==t&&(r=void 0===r?new Set:r,t.forEach(function(t){r.has(t)||(r.add(t),e(t))})),n=n.parent},e.prototype.writeBindings=function(e,t){this._getOrCreateOwnMap("_bindings")[e]=t},e.prototype.peekBindings=function(e){return this._findInherited("_bindings",e)},e.prototype.forEachBindings=function(e){for(var t,n=this,r=void 0;void 0!==n;){if(void 0!==(t=n._bindings))for(var i in t)r=r||Object.create(null),void 0===r[i]&&(r[i]=!0,e(i,t[i])) +n=n.parent}},e.prototype.clearBindings=function(){this._bindings=void 0},e.prototype.writeDescriptors=function(e,t){this._getOrCreateOwnMap("_descriptors")[e]=t},e.prototype.peekDescriptors=function(e){var t=this._findInherited("_descriptors",e) +return t===Bt?void 0:t},e.prototype.removeDescriptors=function(e){this.writeDescriptors(e,Bt)},e.prototype.forEachDescriptors=function(e){for(var t,n,r=this,i=void 0;void 0!==r;){if(void 0!==(t=r._descriptors))for(var o in t)i=void 0===i?new Set:i,i.has(o)||(i.add(o),(n=t[o])!==Bt&&e(o,n)) +r=r.parent}},e}() +for(var qt in mt)Ut.prototype[qt]=mt[qt] +var Vt=Object.getPrototypeOf,Wt=new WeakMap,Gt=function(){function e(e,t,n,r){this.size=0,this.misses=0,this.hits=0,this.limit=e,this.func=t,this.key=n,this.store=r||new Map}return e.prototype.get=function(e){var t=void 0===this.key?e:this.key(e),n=this.store.get(t) +return void 0===n?(this.misses++,n=this._set(t,this.func(e))):n===Bt?(this.hits++,n=void 0):this.hits++,n},e.prototype.set=function(e,t){var n=void 0===this.key?e:this.key(e) +return this._set(n,t)},e.prototype._set=function(e,t){return this.limit>this.size&&(this.size++,void 0===t?this.store.set(e,Bt):this.store.set(e,t)),t},e.prototype.purge=function(){this.store.clear(),this.size=0,this.hits=0,this.misses=0},e}(),Yt=new Gt(1e3,function(e){return e.indexOf(".")}),Kt=function(){function e(){this.tags=new Set,this.last=null}return e.prototype.add=function(e){this.tags.add(e),this.last=e},e.prototype.combine=function(){var e +return 0===this.tags.size?s.CONSTANT_TAG:1===this.tags.size?this.last:(e=[],this.tags.forEach(function(t){return e.push(t)}),s.combine(e))},r.createClass(e,[{key:"size",get:function(){return this.tags.size}}]),e}(),Qt=null,Zt=function(){};(function(e){function t(t,n,i){var o=r.possibleConstructorReturn(this,e.call(this,i)) +return o.target=t,o.key=n,o}r.inherits(t,e),t.for=function(e,n){return new t(e,n,"The property '"+n+"' on "+e+" was changed after being rendered. If you want to change a property used in a template after the component has rendered, mark the property as a tracked property with the @tracked decorator.")}})(Error) +var Xt={object:!0,function:!0,string:!0},Jt=a.symbol("PROXY_CONTENT"),$t=/\.@each$/,en=function(e){function t(t,n){var i=r.possibleConstructorReturn(this,e.call(this)),o="function"==typeof t +return o?i._getter=t:(i._getter=t.get||xe,i._setter=t.set),i._suspended=void 0,i._meta=void 0,i._volatile=!1,i._dependentKeys=n&&n.dependentKeys,i._readOnly=n&&o&&!0===n.readOnly,i}return r.inherits(t,e),t.prototype.volatile=function(){return this._volatile=!0,this},t.prototype.readOnly=function(){return this._readOnly=!0,this},t.prototype.property=function(){function e(e){n.push(e)}var t,n=[] +for(t=0;t<arguments.length;t++)Ae(arguments[t],e) +return this._dependentKeys=n,this},t.prototype.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},t.prototype.didChange=function(e,t){if(!this._volatile&&this._suspended!==e){var n=ue(e) +if(void 0!==n&&n.source===e){var r=Se(e) +void 0!==r&&r.delete(t)&&we(this,e,t,n)}}},t.prototype.get=function(e,t){if(this._volatile)return this._getter.call(e,t) +var n=je(e) +if(n.has(t))return n.get(t) +var r=this._getter.call(e,t) +n.set(t,r) +var i=ce(e),o=i.readableChainWatchers() +return void 0!==o&&o.revalidate(t),Ie(this,e,t,i),r},t.prototype.set=function(e,t,n){return this._readOnly&&this._throwReadOnlyError(e,t),this._setter?this._volatile?this.volatileSet(e,t,n):this.setWithSuspend(e,t,n):this.clobberSet(e,t,n)},t.prototype._throwReadOnlyError=function(e,t){throw new n.Error('Cannot set read-only property "'+t+'" on object: '+a.inspect(e))},t.prototype.clobberSet=function(e,t,n){return H(e,t,null,Ee(e,t)),be(e,t,n),n},t.prototype.volatileSet=function(e,t,n){return this._setter.call(e,t,n)},t.prototype.setWithSuspend=function(e,t,n){var r=this._suspended +this._suspended=e +try{return this._set(e,t,n)}finally{this._suspended=r}},t.prototype._set=function(e,t,n){var r=je(e),i=r.has(t),o=r.get(t),s=this._setter.call(e,t,n,o) +if(i&&o===s)return s +var a=ce(e) +return i||Ie(this,e,t,a),r.set(t,s),P(e,t,a),s},t.prototype.teardown=function(e,t,n){if(!this._volatile){var r=Se(e) +void 0!==r&&r.delete(t)&&we(this,e,t,n)}},t}(Rt),tn=ke.bind(null),nn=new WeakMap,rn={},on=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this)) +return n.altKey=t,n._dependentKeys=[t],n}return r.inherits(t,e),t.prototype.setup=function(e,t){var n=ce(e) +n.peekWatching(t)&&Ie(this,e,t,n)},t.prototype.teardown=function(e,t,n){n.peekWatching(t)&&we(this,e,t,n)},t.prototype.willWatch=function(e,t,n){Ie(this,e,t,n)},t.prototype.didUnwatch=function(e,t,n){we(this,e,t,n)},t.prototype.get=function(e,t){var n,r=me(e,this.altKey),i=je(e) +return i.get(t)!==rn&&(n=ce(e),i.set(t,rn),Ie(this,e,t,n)),r},t.prototype.set=function(e,t,n){return be(e,this.altKey,n)},t.prototype.readOnly=function(){return this.set=Te,this},t.prototype.oneWay=function(){return this.set=Pe,this},t}(Rt) +on.prototype._meta=void 0,on.prototype.meta=en.prototype.meta +var sn=[],an={},un=function(){var e="undefined"!=typeof window?window.performance||{}:{},t=e.now||e.mozNow||e.webkitNow||e.msNow||e.oNow +return t?t.bind(e):function(){return+new Date}}() +e.flaggedInstrument=void 0,e.flaggedInstrument=function(e,t,n){return n()} +var cn=function(){function e(){this._registry=[],this._coreLibIndex=0}return e.prototype._getLibraryByName=function(e){var t,n=this._registry,r=n.length +for(t=0;t<r;t++)if(n[t].name===e)return n[t]},e.prototype.register=function(e,t,n){var r=this._registry.length +this._getLibraryByName(e)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:e,version:t}))},e.prototype.registerCoreLibrary=function(e,t){this.register(e,t,!0)},e.prototype.deRegister=function(e){var t=this._getLibraryByName(e),n=void 0 +t&&(n=this._registry.indexOf(t),this._registry.splice(n,1))},e}(),ln=new cn +ln.registerCoreLibrary("Ember",u) +var hn=function(){function e(){this.clear()}return e.create=function(){return new this},e.prototype.clear=function(){this.presenceSet=Object.create(null),this.list=[],this.size=0},e.prototype.add=function(e,t){var n=t||a.guidFor(e),r=this.presenceSet,i=this.list +return!0!==r[n]&&(r[n]=!0,this.size=i.push(e)),this},e.prototype.delete=function(e,t){var n,r=t||a.guidFor(e),i=this.presenceSet,o=this.list +return!0===i[r]&&(delete i[r],n=o.indexOf(e),n>-1&&o.splice(n,1),this.size=o.length,!0)},e.prototype.isEmpty=function(){return 0===this.size},e.prototype.has=function(e){if(0===this.size)return!1 +var t=a.guidFor(e) +return!0===this.presenceSet[t]},e.prototype.forEach=function(e){if(0!==this.size){var t,n,r=this.list +if(2===arguments.length)for(t=0;t<r.length;t++)e.call(arguments[1],r[t]) +else for(n=0;n<r.length;n++)e(r[n])}},e.prototype.toArray=function(){return this.list.slice()},e.prototype.copy=function(){var e=this.constructor,t=new e +return t.presenceSet=Fe(this.presenceSet),t.list=this.toArray(),t.size=this.size,t},e}(),dn=function(){function e(){this._keys=new hn,this._values=Object.create(null),this.size=0}return e.create=function(){return new this},e.prototype.get=function(e){if(0!==this.size){return this._values[a.guidFor(e)]}},e.prototype.set=function(e,t){var n=this._keys,r=this._values,i=a.guidFor(e),o=-0===e?0:e +return n.add(o,i),r[i]=t,this.size=n.size,this},e.prototype.delete=function(e){if(0===this.size)return!1 +var t=this._keys,n=this._values,r=a.guidFor(e) +return!!t.delete(e,r)&&(delete n[r],this.size=t.size,!0)},e.prototype.has=function(e){return this._keys.has(e)},e.prototype.forEach=function(e){if(0!==this.size){var t=this,n=void 0,r=void 0 +2===arguments.length?(r=arguments[1],n=function(n){return e.call(r,t.get(n),n,t)}):n=function(n){return e(t.get(n),n,t)},this._keys.forEach(n)}},e.prototype.clear=function(){this._keys.clear(),this._values=Object.create(null),this.size=0},e.prototype.copy=function(){return Be(this,new e)},e}(),pn=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this)) +return n.defaultValue=t.defaultValue,n}return r.inherits(t,e),t.create=function(e){return e?new t(e):new dn},t.prototype.get=function(t){var n,r=this.has(t) +return r?e.prototype.get.call(this,t):(n=this.defaultValue(t),this.set(t,n),n)},t.prototype.copy=function(){return Be(this,new(0,this.constructor)({defaultValue:this.defaultValue}))},t}(dn),fn=Object.prototype.hasOwnProperty,gn=!1,mn={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(e){this._set++,this._unprocessedNamespaces=e}},vn=!1,yn=[],bn=Object.create(null),Cn=Array.prototype.concat,An={},_n=function(){function e(e,t){this.properties=t,this.mixins=dt(e),this.ownerConstructor=void 0,this._without=void 0}return e._apply=function(){return ht.apply(void 0,arguments)},e.applyPartial=function(e){var t,n,r +for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +return ht(e,n,!0)},e.create=function(){Ke() +var e,t,n,r=this +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +return new r(t,void 0)},e.mixins=function(e){var t=ue(e),n=[] +return void 0===t?n:(t.forEachMixins(function(e){e.properties||n.push(e)}),n)},e.prototype.reopen=function(){var t,n,r,i +for(t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r] +if(0!==n.length)return this.properties?(i=new e(void 0,this.properties),this.properties=void 0,this.mixins=[i]):this.mixins||(this.mixins=[]),this.mixins=this.mixins.concat(dt(n)),this},e.prototype.apply=function(e){return ht(e,[this],!1)},e.prototype.applyPartial=function(e){return ht(e,[this],!0)},e.prototype.detect=function(t){if("object"!=typeof t||null===t)return!1 +if(t instanceof e)return pt(t,this) +var n=ue(t) +return void 0!==n&&n.hasMixin(this)},e.prototype.without=function(){var t,n,r,i=new e([this]) +for(t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r] +return i._without=n,i},e.prototype.keys=function(){return ft(this)},e.prototype.toString=function(){return"(unknown mixin)"},e}() +t.ENV._ENABLE_BINDING_SUPPORT&&(_n.finishPartial=null,_n.detectBinding=null),_n.prototype.toString=Ge +var In=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this)) +return n.methodName=t,n}return r.inherits(t,e),t}(Rt),wn=function(e){function t(t,n,i){var o,s=r.possibleConstructorReturn(this,e.call(this,gt)) +return s.type=t,s.source=i?i.source:void 0,n?(o=n.indexOf("::"),-1===o?(s.name=n,s.namespace=void 0):(s.name=n.slice(o+2),s.namespace=n.slice(0,o))):s.name=void 0,s}return r.inherits(t,e),t}(en),xn=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this)) +return n.desc=t,n.enumerable=t.enumerable,n}return r.inherits(t,e),t.prototype.setup=function(e,t){Object.defineProperty(e,t,this.desc)},t.prototype.get=function(e,t){return e[t]},t.prototype.set=function(e,t,n){return e[t]=n},t.prototype.teardown=function(){},t}(Rt) +e.computed=ke,e.getCacheFor=je,e.getCachedValueFor=Ee,e.peekCacheFor=Se,e.ComputedProperty=en,e._globalsComputed=tn,e.alias=function(e){return new on(e)},e.merge=function(e,t){if(null===t||"object"!=typeof t)return e +var n,r=Object.keys(t),i=void 0 +for(n=0;n<r.length;n++)i=r[n],e[i]=t[i] +return e},e.deprecateProperty=function(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,set:function(e){be(this,n,e)},get:function(){return me(this,n)}})},e.instrument=function(e,t,n,r){if(arguments.length<=3&&"function"==typeof t&&(r=n,n=t,t=void 0),0===sn.length)return n.call(r) +var i=t||{},o=Me(e,function(){return i}) +return o?Re(n,o,i,r):n.call(r)},e._instrumentStart=Me,e.instrumentationReset=function(){sn.length=0,an={}},e.instrumentationSubscribe=function(e,t){var n,r=e.split("."),i=void 0,o=[] +for(n=0;n<r.length;n++)i=r[n],"*"===i?o.push("[^\\.]*"):o.push(i) +o=o.join("\\."),o+="(\\..*)?" +var s={pattern:e,regex:new RegExp("^"+o+"$"),object:t} +return sn.push(s),an={},s},e.instrumentationUnsubscribe=function(e){var t,n=void 0 +for(t=0;t<sn.length;t++)sn[t]===e&&(n=t) +sn.splice(n,1),an={}},e.getOnerror=p,e.setOnerror=function(e){vt=e},e.setDispatchOverride=function(e){bt=e},e.getDispatchOverride=f,e.descriptorFor=le,e.meta=ce,e.peekMeta=ue,e.deleteMeta=function(e){var t=ue(e) +void 0!==t&&t.destroy()},e.Cache=Gt,e.PROXY_CONTENT=Jt,e._getPath=ve,e.get=me,e.getWithDefault=function(e,t,n){var r=me(e,t) +return void 0===r?n:r},e.set=be,e.trySet=function(e,t,n){return be(e,t,n,!0)},e.objectAt=V +e.replace=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Nt +Array.isArray(e)?W(e,t,n,r):e.replace(t,n,r)},e.replaceInNativeArray=W,e.addArrayObserver=function(e,t,n){return G(e,t,n,l,!1)},e.removeArrayObserver=function(e,t,n){return G(e,t,n,h,!0)},e.arrayContentWillChange=Y,e.arrayContentDidChange=K,e.eachProxyFor=Q,e.eachProxyArrayWillChange=Z,e.eachProxyArrayDidChange=X,e.addListener=l,e.hasListeners=function(e,t){var n=ue(e) +if(void 0===n)return!1 +var r=n.matchingListeners(t) +return void 0!==r&&r.length>0},e.on=function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +var e,t,n,r=t.pop() +return r.__ember_listens__=t,r},e.removeListener=h,e.sendEvent=d,e.isNone=Le,e.isEmpty=De,e.isBlank=ze,e.isPresent=function(e){return!ze(e)},e.getCurrentRunLoop=g,e.backburner=It,e.run=m,e.join=v,e.bind=function(){var e,t,n +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +return function(){var e,n,r +for(e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r] +return v.apply(void 0,t.concat(n))}},e.begin=function(){It.begin()},e.end=function(){It.end()},e.schedule=function(){return It.schedule.apply(It,arguments)},e.hasScheduledTimers=function(){return It.hasTimers()},e.cancelTimers=function(){It.cancelTimers()},e.later=function(){return It.later.apply(It,arguments)},e.once=function(){var e,t,n +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +return t.unshift("actions"),It.scheduleOnce.apply(It,t)} +e.scheduleOnce=function(){return It.scheduleOnce.apply(It,arguments)},e.next=function(){var e,t,n +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +return t.push(1),It.later.apply(It,t)},e.cancel=function(e){return It.cancel(e)},e.debounce=function(){return It.debounce.apply(It,arguments)},e.throttle=function(){return It.throttle.apply(It,arguments)},e._globalsRun=wt,e.beginPropertyChanges=L,e.changeProperties=z,e.endPropertyChanges=D,e.notifyPropertyChange=P,e.overrideChains=M,e.propertyDidChange=function(e,t,n){P(e,t,n)},e.propertyWillChange=function(){},e.PROPERTY_DID_CHANGE=Et,e.defineProperty=H,e.Descriptor=Rt,e.watchKey=U,e.unwatchKey=q,e.ChainNode=Ft,e.finishChains=function(e){var t=e.readableChainWatchers() +void 0!==t&&t.revalidateAll(),void 0!==e.readableChains()&&e.writableChains(re)},e.removeChainWatcher=oe,e.watchPath=I,e.unwatchPath=w,e.isWatching=function(e,t){return k(e,t)>0},e.unwatch=j,e.watch=x,e.watcherCount=k,e.libraries=ln,e.Libraries=cn,e.Map=dn +e.MapWithDefault=pn,e.OrderedSet=hn,e.getProperties=function(e){var t={},n=arguments,r=1 +for(2===arguments.length&&Array.isArray(arguments[1])&&(r=0,n=arguments[1]);r<n.length;r++)t[n[r]]=me(e,n[r]) +return t},e.setProperties=function(e,t){return null===t||"object"!=typeof t?t:(z(function(){var n,r=Object.keys(t),i=void 0 +for(n=0;n<r.length;n++)i=r[n],be(e,i,t[i])}),t)},e.expandProperties=Ae,e.addObserver=S,e.removeObserver=T,e.Mixin=_n,e.aliasMethod=function(e){return new In(e)},e.mixin=function(e){var t,n,r +for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +return ht(e,n,!1),e},e.observer=function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +var e,t,n,r,i=t.pop(),o=t,s=[],a=function(e){return s.push(e)} +for(r=0;r<o.length;++r)Ae(o[r],a) +return i.__ember_observes__=s,i},e.InjectedProperty=wn,e.setHasViews=function(e){xt=e},e.tagForProperty=b,e.tagFor=C,e.markObjectAsDirty=A,e.didRender=void 0,e.assertNotRendered=void 0,e.descriptor=function(e){return new xn(e)},e.tracked=pe,e.NAMESPACES=yn,e.NAMESPACES_BY_ID=bn,e.addNamespace=function(e){mn.unprocessedNamespaces=!0,yn.push(e)},e.classToString=Ge,e.findNamespace=qe,e.findNamespaces=Ue,e.processNamespace=Ve,e.processAllNamespaces=We,e.removeNamespace=He,e.isNamespaceSearchDisabled=Ye +e.setNamespaceSearchDisabled=function(e){gn=!!e},Object.defineProperty(e,"__esModule",{value:!0})}),e("ember-routing/index",["exports","ember-routing/lib/location/api","ember-routing/lib/location/none_location","ember-routing/lib/location/hash_location","ember-routing/lib/location/history_location","ember-routing/lib/location/auto_location","ember-routing/lib/system/generate_controller","ember-routing/lib/system/controller_for","ember-routing/lib/system/dsl","ember-routing/lib/system/router","ember-routing/lib/system/route","ember-routing/lib/system/query_params","ember-routing/lib/services/routing","ember-routing/lib/services/router","ember-routing/lib/system/cache","ember-routing/lib/ext/controller"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f){"use strict" +e.BucketCache=e.RouterService=e.RoutingService=e.QueryParams=e.Route=e.Router=e.RouterDSL=e.controllerFor=e.generateControllerFactory=e.generateController=e.AutoLocation=e.HistoryLocation=e.HashLocation=e.NoneLocation=e.Location=void 0,Object.defineProperty(e,"Location",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"NoneLocation",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"HashLocation",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"HistoryLocation",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"AutoLocation",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"generateController",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"generateControllerFactory",{enumerable:!0,get:function(){return s.generateControllerFactory}}),Object.defineProperty(e,"controllerFor",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"RouterDSL",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Router",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"Route",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"QueryParams",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"RoutingService",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"RouterService",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"BucketCache",{enumerable:!0,get:function(){return f.default}})}),e("ember-routing/lib/ext/controller",["exports","ember-metal","ember-runtime","ember-routing/lib/utils"],function(e,t,n,r){"use strict" +n.ControllerMixin.reopen({concatenatedProperties:["queryParams"],queryParams:null,_qpDelegate:null,_qpChanged:function(e,n){var r=n.substr(0,n.length-3);(0,e._qpDelegate)(r,(0,t.get)(e,r))},transitionToRoute:function(){var e,n,i,o=(0,t.get)(this,"target"),s=o.transitionToRoute||o.transitionTo +for(e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i] +return s.apply(o,(0,r.prefixRouteNameArg)(this,n))},replaceRoute:function(){var e,n,i,o=(0,t.get)(this,"target"),s=o.replaceRoute||o.replaceWith +for(e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i] +return s.apply(o,(0,r.prefixRouteNameArg)(this,n))}}),e.default=n.ControllerMixin}),e("ember-routing/lib/location/api",["exports","ember-debug","ember-environment","ember-routing/lib/location/util"],function(e,t,n,r){"use strict" +e.default={create:function(e){var t=e&&e.implementation,n=this.implementations[t] +return n.create.apply(n,arguments)},implementations:{},_location:n.environment.location,_getHash:function(){return(0,r.getHash)(this.location)}}}),e("ember-routing/lib/location/auto_location",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-environment","ember-routing/lib/location/util"],function(e,t,n,r,i,o,s){"use strict" +function a(e){return function(){var r,i,o,s=(0,n.get)(this,"concreteImplementation") +for(r=arguments.length,i=Array(r),o=0;o<r;o++)i[o]=arguments[o] +return(0,t.tryInvoke)(s,e,i)}}function u(e){var t,n,r=e.location,i=e.userAgent,o=e.history,a=e.documentMode,u=e.global,h=e.rootURL,d="none",p=!1,f=(0,s.getFullPath)(r) +return(0,s.supportsHistory)(i,o)?(t=c(h,r),f===t?d="history":"/#"===f.substr(0,2)?(o.replaceState({path:t},null,t),d="history"):(p=!0,(0,s.replacePath)(r,t))):(0,s.supportsHashChange)(a,u)&&(n=l(h,r),f===n||"/"===f&&"/#/"===n?d="hash":(p=!0,(0,s.replacePath)(r,n))),!p&&d}function c(e,t){var n=(0,s.getPath)(t),r=(0,s.getHash)(t),i=(0,s.getQuery)(t),o=(n.indexOf(e),void 0),a=void 0 +return"#/"===r.substr(0,2)?(a=r.substr(1).split("#"),o=a.shift(),"/"===n.charAt(n.length-1)&&(o=o.substr(1)),n+=o+i,a.length&&(n+="#"+a.join("#"))):n+=i+r,n}function l(e,t){var n=e,r=c(e,t),i=r.substr(e.length) +return""!==i&&("/"!==i[0]&&(i="/"+i),n+="#"+i),n}e.getHistoryPath=c,e.getHashPath=l,e.default=i.Object.extend({location:o.environment.location,history:o.environment.history,global:o.environment.window,userAgent:o.environment.userAgent,cancelRouterSetup:!1,rootURL:"/",detect:function(){var e=this.rootURL,r=u({location:this.location,history:this.history,userAgent:this.userAgent,rootURL:e,documentMode:this.documentMode,global:this.global}) +!1===r&&((0,n.set)(this,"cancelRouterSetup",!0),r="none") +var i=(0,t.getOwner)(this).lookup("location:"+r);(0,n.set)(i,"rootURL",e),(0,n.set)(this,"concreteImplementation",i)},initState:a("initState"),getURL:a("getURL"),setURL:a("setURL"),replaceURL:a("replaceURL"),onUpdateURL:a("onUpdateURL"),formatURL:a("formatURL"),willDestroy:function(){var e=(0,n.get)(this,"concreteImplementation") +e&&e.destroy()}})}),e("ember-routing/lib/location/hash_location",["exports","ember-metal","ember-runtime","ember-routing/lib/location/api"],function(e,t,n,r){"use strict" +e.default=n.Object.extend({implementation:"hash",init:function(){(0,t.set)(this,"location",(0,t.get)(this,"_location")||window.location),this._hashchangeHandler=void 0},getHash:r.default._getHash,getURL:function(){var e=this.getHash().substr(1),t=e +return"/"!==t[0]&&(t="/",e&&(t+="#"+e)),t},setURL:function(e){(0,t.get)(this,"location").hash=e,(0,t.set)(this,"lastSetURL",e)},replaceURL:function(e){(0,t.get)(this,"location").replace("#"+e),(0,t.set)(this,"lastSetURL",e)},onUpdateURL:function(e){this._removeEventListener(),this._hashchangeHandler=(0,t.bind)(this,function(){var n=this.getURL();(0,t.get)(this,"lastSetURL")!==n&&((0,t.set)(this,"lastSetURL",null),e(n))}),window.addEventListener("hashchange",this._hashchangeHandler)},formatURL:function(e){return"#"+e},willDestroy:function(){this._removeEventListener()},_removeEventListener:function(){this._hashchangeHandler&&window.removeEventListener("hashchange",this._hashchangeHandler)}})}),e("ember-routing/lib/location/history_location",["exports","ember-metal","ember-runtime","ember-routing/lib/location/api"],function(e,t,n,r){"use strict" +function i(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t,n +return t=16*Math.random()|0,n="x"===e?t:3&t|8,n.toString(16)})}var o=!1 +e.default=n.Object.extend({implementation:"history",init:function(){this._super.apply(this,arguments) +var e=document.querySelector("base"),n="" +e&&(n=e.getAttribute("href")),(0,t.set)(this,"baseURL",n),(0,t.set)(this,"location",(0,t.get)(this,"location")||window.location),this._popstateHandler=void 0},initState:function(){var e=(0,t.get)(this,"history")||window.history;(0,t.set)(this,"history",e),e&&"state"in e&&(this.supportsHistory=!0) +var n=this.getState(),r=this.formatURL(this.getURL()) +n&&n.path===r?this._previousURL=this.getURL():this.replaceState(r)},rootURL:"/",getURL:function(){var e=(0,t.get)(this,"location"),n=e.pathname,r=(0,t.get)(this,"rootURL"),i=(0,t.get)(this,"baseURL") +r=r.replace(/\/$/,""),i=i.replace(/\/$/,"") +var o=n.replace(new RegExp("^"+i+"(?=/|$)"),"").replace(new RegExp("^"+r+"(?=/|$)"),"").replace(/\/\/$/g,"/") +return o+=(e.search||"")+this.getHash()},setURL:function(e){var t=this.getState() +e=this.formatURL(e),t&&t.path===e||this.pushState(e)},replaceURL:function(e){var t=this.getState() +e=this.formatURL(e),t&&t.path===e||this.replaceState(e)},getState:function(){return this.supportsHistory?(0,t.get)(this,"history").state:this._historyState},pushState:function(e){var n={path:e,uuid:i()};(0,t.get)(this,"history").pushState(n,null,e),this._historyState=n,this._previousURL=this.getURL()},replaceState:function(e){var n={path:e,uuid:i()};(0,t.get)(this,"history").replaceState(n,null,e),this._historyState=n,this._previousURL=this.getURL()},onUpdateURL:function(e){var t=this +this._removeEventListener(),this._popstateHandler=function(){(o||(o=!0,t.getURL()!==t._previousURL))&&e(t.getURL())},window.addEventListener("popstate",this._popstateHandler)},formatURL:function(e){var n=(0,t.get)(this,"rootURL"),r=(0,t.get)(this,"baseURL") +return""!==e?(n=n.replace(/\/$/,""),r=r.replace(/\/$/,"")):"/"===r[0]&&"/"===n[0]&&(r=r.replace(/\/$/,"")),r+n+e},willDestroy:function(){this._removeEventListener()},getHash:r.default._getHash,_removeEventListener:function(){this._popstateHandler&&window.removeEventListener("popstate",this._popstateHandler)}})}),e("ember-routing/lib/location/none_location",["exports","ember-metal","ember-debug","ember-runtime"],function(e,t,n,r){"use strict" +e.default=r.Object.extend({implementation:"none",path:"",detect:function(){this.rootURL},rootURL:"/",getURL:function(){var e=(0,t.get)(this,"path"),n=(0,t.get)(this,"rootURL") +return n=n.replace(/\/$/,""),e.replace(new RegExp("^"+n+"(?=/|$)"),"")},setURL:function(e){(0,t.set)(this,"path",e)},onUpdateURL:function(e){this.updateCallback=e},handleURL:function(e){(0,t.set)(this,"path",e),this.updateCallback(e)},formatURL:function(e){var n=(0,t.get)(this,"rootURL") +return""!==e&&(n=n.replace(/\/$/,"")),n+e}})}),e("ember-routing/lib/location/util",["exports"],function(e){"use strict" +function t(e){var t=e.pathname +return"/"!==t[0]&&(t="/"+t),t}function n(e){return e.search}function r(e){var t=e.href,n=t.indexOf("#") +return-1===n?"":t.substr(n)}function i(e){var t=e.origin +return t||(t=e.protocol+"//"+e.hostname,e.port&&(t+=":"+e.port)),t}function o(e,t){return"onhashchange"in t&&(void 0===e||e>7)}function s(e,t){return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&!!(t&&"pushState"in t)}e.getPath=t,e.getQuery=n,e.getHash=r,e.getFullPath=function(e){return t(e)+n(e)+r(e)},e.getOrigin=i,e.supportsHashChange=o,e.supportsHistory=s,e.replacePath=function(e,t){e.replace(i(e)+t)}}),e("ember-routing/lib/services/router",["exports","ember-runtime","ember-routing/lib/utils"],function(e,t,n){"use strict" +var r=t.Service.extend({currentRouteName:(0,t.readOnly)("_router.currentRouteName"),currentURL:(0,t.readOnly)("_router.currentURL"),location:(0,t.readOnly)("_router.location"),rootURL:(0,t.readOnly)("_router.rootURL"),_router:null,transitionTo:function(){for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r] +if((0,n.resemblesURL)(t[0]))return this._router._doURLTransition("transitionTo",t[0]) +var e,t,r,i=(0,n.extractRouteArgs)(t),o=i.routeName,s=i.models,a=i.queryParams,u=this._router._doTransition(o,s,a,!0) +return u._keepDefaultQueryParamValues=!0,u},replaceWith:function(){return this.transitionTo.apply(this,arguments).method("replace")},urlFor:function(){var e +return(e=this._router).generate.apply(e,arguments)},isActive:function(){for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r] +var e,t,r,i=(0,n.extractRouteArgs)(t),o=i.routeName,s=i.models,a=i.queryParams,u=this._router._routerMicrolib +return!!u.isActiveIntent(o,s,null)&&(!(Object.keys(a).length>0)||(this._router._prepareQueryParams(o,s,a,!0),(0,n.shallowEqual)(a,u.state.queryParams)))}}) +e.default=r}),e("ember-routing/lib/services/routing",["exports","ember-utils","ember-runtime","ember-metal"],function(e,t,n,r){"use strict" +function i(e,t){var n,r=0 +for(n=0;n<t.length&&(r+=t[n].names.length,t[n].handler!==e);n++);return r}e.default=n.Service.extend({router:null,targetState:(0,n.readOnly)("router.targetState"),currentState:(0,n.readOnly)("router.currentState"),currentRouteName:(0,n.readOnly)("router.currentRouteName"),currentPath:(0,n.readOnly)("router.currentPath"),hasRoute:function(e){return(0,r.get)(this,"router").hasRoute(e)},transitionTo:function(e,t,n,i){var o=(0,r.get)(this,"router"),s=o._doTransition(e,t,n) +return i&&s.method("replace"),s},normalizeQueryParams:function(e,t,n){(0,r.get)(this,"router")._prepareQueryParams(e,t,n)},generateURL:function(e,n,i){var o=(0,r.get)(this,"router") +if(o._routerMicrolib){var s={} +return i&&((0,t.assign)(s,i),this.normalizeQueryParams(e,n,s)),o.generate.apply(o,[e].concat(n,[{queryParams:s}]))}},isActiveForRoute:function(e,t,n,o,s){var a=(0,r.get)(this,"router"),u=a._routerMicrolib.recognizer.handlersFor(n),c=u[u.length-1].handler,l=i(n,u) +return e.length>l&&(n=c),o.isActiveIntent(n,e,t,!s)}})}),e("ember-routing/lib/system/cache",["exports"],function(e){"use strict" +var t=function(){function e(){this.cache=new Map}return e.prototype.has=function(e){return this.cache.has(e)},e.prototype.stash=function(e,t,n){var r=this.cache.get(e) +void 0===r&&(r=new Map,this.cache.set(e,r)),r.set(t,n)},e.prototype.lookup=function(e,t,n){if(!this.has(e))return n +var r=this.cache.get(e) +return r.has(t)?r.get(t):n},e}() +e.default=t}),e("ember-routing/lib/system/controller_for",["exports"],function(e){"use strict" +e.default=function(e,t,n){return e.lookup("controller:"+t,n)}}),e("ember-routing/lib/system/dsl",["exports","ember-utils","ember-debug"],function(e,t,n){"use strict" +function r(e){return"application"!==e.parent}function i(e,t,n){return r(e)&&!0!==n?e.parent+"."+t:t}function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments[3],o=i(e,t,n.resetNamespace) +"string"!=typeof n.path&&(n.path="/"+t),e.push(n.path,o,r,n.serialize)}var s=0,a=function(){function e(e,t){this.parent=e,this.enableLoadingSubstates=t&&t.enableLoadingSubstates,this.matches=[],this.explicitIndex=void 0,this.options=t}return e.prototype.route=function(t){var n,r,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments[2],u="/_unused_dummy_error_path_route_"+t+"/:error" +2===arguments.length&&"function"==typeof s&&(a=s,s={}),this.enableLoadingSubstates&&(o(this,t+"_loading",{resetNamespace:s.resetNamespace}),o(this,t+"_error",{resetNamespace:s.resetNamespace,path:u})),a?(n=i(this,t,s.resetNamespace),r=new e(n,this.options),o(r,"loading"),o(r,"error",{path:u}),a.call(r),o(this,t,s,r.generate())):o(this,t,s)},e.prototype.push=function(e,n,r,i){var o,s,a=n.split(".") +if(this.options.engineInfo)o=n.slice(this.options.engineInfo.fullName.length+1),s=(0,t.assign)({localFullName:o},this.options.engineInfo),i&&(s.serializeMethod=i),this.options.addRouteForEngine(n,s) +else if(i)throw new Error("Defining a route serializer on route '"+n+"' outside an Engine is not allowed.") +""!==e&&"/"!==e&&"index"!==a[a.length-1]||(this.explicitIndex=!0),this.matches.push(e,n,r)},e.prototype.generate=function(){var e=this.matches +return this.explicitIndex||this.route("index",{path:"/"}),function(t){var n +for(n=0;n<e.length;n+=3)t(e[n]).to(e[n+1],e[n+2])}},e.prototype.mount=function(n){var r,a,u,c,l,h,d,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=this.options.resolveRouteMap(n),g=n +p.as&&(g=p.as) +var m=i(this,g,p.resetNamespace),v={name:n,instanceId:s++,mountPoint:m,fullName:m},y=p.path +"string"!=typeof y&&(y="/"+g) +var b=void 0,C="/_unused_dummy_error_path_route_"+g+"/:error" +f&&(r=!1,a=this.options.engineInfo,a&&(r=!0,this.options.engineInfo=v),u=(0,t.assign)({engineInfo:v},this.options),c=new e(m,u),o(c,"loading"),o(c,"error",{path:C}),f.class.call(c),b=c.generate(),r&&(this.options.engineInfo=a)) +var A=(0,t.assign)({localFullName:"application"},v) +this.enableLoadingSubstates&&(l=g+"_loading",h="application_loading",d=(0,t.assign)({localFullName:h},v),o(this,l,{resetNamespace:p.resetNamespace}),this.options.addRouteForEngine(l,d),l=g+"_error",h="application_error",d=(0,t.assign)({localFullName:h},v),o(this,l,{resetNamespace:p.resetNamespace,path:C}),this.options.addRouteForEngine(l,d)),this.options.addRouteForEngine(m,A),this.push(y,m,b)},e}() +e.default=a,a.map=function(e){var t=new a +return e.call(t),t}}),e("ember-routing/lib/system/generate_controller",["exports","ember-metal","ember-debug"],function(e){"use strict" +function t(e,t){var n=e.factoryFor("controller:basic").class +return n=n.extend({toString:function(){return"(generated "+t+" controller)"}}),e.register("controller:"+t,n),n}e.generateControllerFactory=t,e.default=function(e,n){return t(e,n),e.lookup("controller:"+n)}}),e("ember-routing/lib/system/query_params",["exports"],function(e){"use strict" +e.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null +this.values=e,this.isQueryParams=!0}}),e("ember-routing/lib/system/route",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-routing/lib/system/generate_controller","ember-routing/lib/utils"],function(e,t,n,r,i,o,s){"use strict" +function a(){return this}function u(e,t){if(!(t.length<1)&&e){var r,i={} +return 1===t.length?(r=t[0],r in e?i[r]=(0,n.get)(e,r):/_id$/.test(r)&&(i[r]=(0,n.get)(e,"id"))):i=(0,n.getProperties)(e,t),i}}function c(e){var t=l(e,e._router._routerMicrolib.state.handlerInfos,-1) +return t&&t.handler}function l(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0 +if(t){for(n=0;n<t.length;n++)if(t[n].handler===e)return t[n+r]}}function h(e,n,r,i){var o,s=(0,t.getOwner)(e),a=void 0,u=void 0,l=void 0,h=void 0,d=void 0,p=void 0 +i&&(l=i.into&&i.into.replace(/\//g,"."),h=i.outlet,d=i.controller,p=i.model),h=h||"main",n?(a=e.routeName,u=e.templateName||a):(a=r.replace(/\//g,"."),u=a),d||(d=n?e.controllerName||s.lookup("controller:"+a):s.lookup("controller:"+a)||e.controllerName||e.routeName),"string"==typeof d&&(o=d,d=s.lookup("controller:"+o)),p&&d.set("model",p) +var f=s.lookup("template:"+u),g=void 0 +return l&&(g=c(e))&&l===g.routeName&&(l=void 0),{owner:s,into:l,outlet:h,name:a,controller:d,template:f||e._topLevelViewTemplate}}function d(e,n){return n.fullQueryParams?n.fullQueryParams:(n.fullQueryParams={},(0,t.assign)(n.fullQueryParams,n.queryParams),e._deserializeQueryParams(n.handlerInfos,n.fullQueryParams),n.fullQueryParams)}function p(e,t){t.queryParamsFor=t.queryParamsFor||{} +var r,i,o,s=e.fullRouteName +if(t.queryParamsFor[s])return t.queryParamsFor[s] +var a=d(e._router,t),u=t.queryParamsFor[s]={},c=(0,n.get)(e,"_qp"),l=c.qps +for(r=0;r<l.length;++r)i=l[r],o=i.prop in a,u[i.prop]=o?a[i.prop]:f(i.defaultValue) +return u}function f(e){return Array.isArray(e)?(0,i.A)(e.slice()):e}function g(e,n){var r,i,o={},s={defaultValue:!0,type:!0,scope:!0,as:!0} +for(var a in e)e.hasOwnProperty(a)&&(r={},(0,t.assign)(r,e[a],n[a]),o[a]=r,s[a]=!0) +for(var u in n)n.hasOwnProperty(u)&&!s[u]&&(i={},(0,t.assign)(i,n[u],e[u]),o[u]=i) +return o}function m(e,t){t.forEach(function(t){e.addObserver(t+".[]",e,e._qpChanged)})}function v(e,t){var n +return e.routable?(n=e.mountPoint,"application"===t?n:n+"."+t):t}e.defaultSerialize=u,e.hasDefaultSerialize=function(e){return e.serialize===u} +var y=i.Object.extend(i.ActionHandler,i.Evented,{queryParams:{},router:(0,n.computed)("_router",function(){return this._router}),_setRouteName:function(e){this.routeName=e,this.fullRouteName=v((0,t.getOwner)(this),e)},_qp:(0,n.computed)(function(){var e,r,a,u,c,l,h,d,p,f,m,v=this,y=void 0,b=this.controllerName||this.routeName,C=(0,t.getOwner)(this),A=C.lookup("controller:"+b),_=(0,n.get)(this,"queryParams"),I=Object.keys(_).length>0 +A?(e=(0,n.get)(A,"queryParams")||{},r=(0,s.normalizeControllerQueryParams)(e),y=g(r,_)):I&&(A=(0,o.default)(C,b),y=_) +var w=[],x={},k=[] +for(var j in y)y.hasOwnProperty(j)&&"unknownProperty"!==j&&"_super"!==j&&(a=y[j],u=a.scope||"model",c=void 0,"controller"===u&&(c=[]),l=a.as||this.serializeQueryParamKey(j),h=(0,n.get)(A,j),Array.isArray(h)&&(h=(0,i.A)(h.slice())),d=a.type||(0,i.typeOf)(h),p=this.serializeQueryParam(h,l,d),f=b+":"+j,m={undecoratedDefaultValue:(0,n.get)(A,j),defaultValue:h,serializedDefaultValue:p,serializedValue:p,type:d,urlKey:l,prop:j,scopedPropertyName:f,controllerName:b,route:this,parts:c,values:null,scope:u},x[j]=x[l]=x[f]=m,w.push(m),k.push(j)) +return{qps:w,map:x,propertyNames:k,states:{inactive:function(e,t){var n=x[e] +v._qpChanged(e,t,n)},active:function(e,t){var n=x[e] +return v._qpChanged(e,t,n),v._activeQPChanged(n,t)},allowOverrides:function(e,t){var n=x[e] +return v._qpChanged(e,t,n),v._updatingQPChanged(n)}}}}),_names:null,_stashNames:function(e,t){if(!this._names){var r,i,o,s=this._names=e._names +s.length||(e=t,s=e&&e._names||[]) +var a=(0,n.get)(this,"_qp.qps"),u=new Array(s.length) +for(r=0;r<s.length;++r)u[r]=e.name+"."+s[r] +for(i=0;i<a.length;++i)o=a[i],"model"===o.scope&&(o.parts=u)}},_activeQPChanged:function(e,t){this._router._activeQPChanged(e.scopedPropertyName,t)},_updatingQPChanged:function(e){this._router._updatingQPChanged(e.urlKey)},mergedProperties:["queryParams"],paramsFor:function(e){var n=(0,t.getOwner)(this).lookup("route:"+e) +if(!n)return{} +var r=this._router._routerMicrolib.activeTransition,i=r?r.state:this._router._routerMicrolib.state,o=n.fullRouteName,s=(0,t.assign)({},i.params[o]),a=p(n,i) +return Object.keys(a).reduce(function(e,t){return e[t]=a[t],e},s)},serializeQueryParamKey:function(e){return e},serializeQueryParam:function(e,t,n){return this._router._serializeQueryParam(e,n)},deserializeQueryParam:function(e,t,n){return this._router._deserializeQueryParam(e,n)},_optionsForQueryParam:function(e){return(0,n.get)(this,"queryParams."+e.urlKey)||(0,n.get)(this,"queryParams."+e.prop)||{}},resetController:a,exit:function(){this.deactivate(),this.trigger("deactivate"),this.teardownViews()},_reset:function(e,t){var r=this.controller +r._qpDelegate=(0,n.get)(this,"_qp.states.inactive"),this.resetController(r,e,t)},enter:function(){this.connections=[],this.activate(),this.trigger("activate")},templateName:null,controllerName:null,actions:{queryParamsDidChange:function(e,t,r){var i,o,s=(0,n.get)(this,"_qp").map,a=Object.keys(e).concat(Object.keys(r)) +for(i=0;i<a.length;++i)if((o=s[a[i]])&&(0,n.get)(this._optionsForQueryParam(o),"refreshModel")&&this._router.currentState){this.refresh() +break}return!0},finalizeQueryParamChange:function(e,t,r){if("application"!==this.fullRouteName)return!0 +if(r){var i,o,a,u,c,l,h,d,p,g,m=r.state.handlerInfos,v=this._router,y=v._queryParamsFor(m),b=v._qpUpdates,C=void 0 +for((0,s.stashParamNames)(v,m),i=0;i<y.qps.length;++i)o=y.qps[i],a=o.route,u=a.controller,c=o.urlKey in e&&o.urlKey,l=void 0,h=void 0,b&&o.urlKey in b?(l=(0,n.get)(u,o.prop),h=a.serializeQueryParam(l,o.urlKey,o.type)):c?void 0!==(h=e[c])&&(l=a.deserializeQueryParam(h,o.urlKey,o.type)):(h=o.serializedDefaultValue,l=f(o.defaultValue)),u._qpDelegate=(0,n.get)(a,"_qp.states.inactive"),d=h!==o.serializedValue,d&&(r.queryParamsOnly&&!1!==C&&(p=a._optionsForQueryParam(o),g=(0,n.get)(p,"replace"),g?C=!0:!1===g&&(C=!1)),(0,n.set)(u,o.prop,l)),o.serializedValue=h,o.serializedDefaultValue===h&&!r._keepDefaultQueryParamValues||t.push({value:h,visible:!0,key:c||o.urlKey}) +C&&r.method("replace"),y.qps.forEach(function(e){var t=(0,n.get)(e.route,"_qp") +e.route.controller._qpDelegate=(0,n.get)(t,"states.active")}),v._qpUpdates=null}}},deactivate:a,activate:a,transitionTo:function(){var e +return(e=this._router).transitionTo.apply(e,(0,s.prefixRouteNameArg)(this,arguments))},intermediateTransitionTo:function(){var e;(e=this._router).intermediateTransitionTo.apply(e,(0,s.prefixRouteNameArg)(this,arguments))},refresh:function(){return this._router._routerMicrolib.refresh(this)},replaceWith:function(){var e +return(e=this._router).replaceWith.apply(e,(0,s.prefixRouteNameArg)(this,arguments))},send:function(){var e,t,n,i,o,s +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +if(this._router&&this._router._routerMicrolib||!(0,r.isTesting)())(i=this._router).send.apply(i,t) +else if(o=t.shift(),s=this.actions[o])return s.apply(this,t)},setup:function(e,t){var r,i,o,a,u,c=void 0,l=this.controllerName||this.routeName,h=this.controllerFor(l,!0) +c=h||this.generateController(l),this.controller||(r=(0,n.get)(this,"_qp.propertyNames"),m(c,r),this.controller=c) +var d=(0,n.get)(this,"_qp"),f=d.states +c._qpDelegate=f.allowOverrides,t&&((0,s.stashParamNames)(this._router,t.state.handlerInfos),i=this._bucketCache,o=t.params,a=d.propertyNames,a.forEach(function(e){var t=d.map[e] +t.values=o +var r=(0,s.calculateCacheKey)(t.route.fullRouteName,t.parts,t.values),a=i.lookup(r,e,t.undecoratedDefaultValue);(0,n.set)(c,e,a)}),u=p(this,t.state),(0,n.setProperties)(c,u)),this.setupController(c,e,t),this._environment.options.shouldRender&&this.renderTemplate(c,e)},_qpChanged:function(e,t,n){if(n){var r=this._bucketCache,i=(0,s.calculateCacheKey)(n.route.fullRouteName,n.parts,n.values) +r.stash(i,e,t)}},beforeModel:a,afterModel:a,redirect:a,contextDidChange:function(){this.currentModel=this.context},model:function(e,t){var r,o=void 0,s=void 0,a=void 0,u=(0,n.get)(this,"_qp.map") +for(var c in e)"queryParams"===c||u&&c in u||(r=c.match(/^(.*)_id$/),null!==r&&(o=r[1],a=e[c]),s=!0) +if(!o){if(s)return(0,i.copy)(e) +if(t.resolveIndex<1)return +return t.state.handlerInfos[t.resolveIndex-1].context}return this.findModel(o,a)},deserialize:function(e,t){return this.model(this.paramsFor(this.routeName),t)},findModel:function(){var e +return(e=(0,n.get)(this,"store")).find.apply(e,arguments)},store:(0,n.computed)(function(){var e=(0,t.getOwner)(this) +this.routeName,(0,n.get)(this,"_router.namespace") +return{find:function(t,n){var r=e.factoryFor("model:"+t) +if(r)return r=r.class,r.find(n)}}}),serialize:u,setupController:function(e,t){e&&void 0!==t&&(0,n.set)(e,"model",t)},controllerFor:function(e,n){var r=(0,t.getOwner)(this),i=r.lookup("route:"+e) +return i&&i.controllerName&&(e=i.controllerName),r.lookup("controller:"+e)},generateController:function(e){var n=(0,t.getOwner)(this) +return(0,o.default)(n,e)},modelFor:function(e){var n,r=void 0,i=(0,t.getOwner)(this),o=this._router?this._router._routerMicrolib.activeTransition:null +r=i.routable&&null!==o?v(i,e):e +var s=i.lookup("route:"+r) +return null!==o&&(n=s&&s.routeName||r,o.resolvedModels.hasOwnProperty(n))?o.resolvedModels[n]:s&&s.currentModel},renderTemplate:function(){this.render()},render:function(e,t){var r=void 0,i=0===arguments.length +i||("object"!=typeof e||t?r=e:(r=this.templateName||this.routeName,t=e)) +var o=h(this,i,r,t) +this.connections.push(o),(0,n.once)(this._router,"_setOutlets")},disconnectOutlet:function(e){var t,n=void 0,r=void 0 +e&&("string"==typeof e?n=e:(n=e.outlet,r=e.parentView?e.parentView.replace(/\//g,"."):void 0)),n=n||"main",this._disconnectOutlet(n,r) +var i=this._router._routerMicrolib.currentHandlerInfos +for(t=0;t<i.length;t++)i[t].handler._disconnectOutlet(n,r)},_disconnectOutlet:function(e,t){var r,i,o=c(this) +for(o&&t===o.routeName&&(t=void 0),r=0;r<this.connections.length;r++)i=this.connections[r],i.outlet===e&&i.into===t&&(this.connections[r]={owner:i.owner,into:i.into,outlet:i.outlet,name:i.name,controller:void 0,template:void 0},(0,n.once)(this._router,"_setOutlets"))},willDestroy:function(){this.teardownViews()},teardownViews:function(){this.connections&&this.connections.length>0&&(this.connections=[],(0,n.once)(this._router,"_setOutlets"))}}) +y.reopenClass({isRouteFactory:!0}),e.default=y}),e("ember-routing/lib/system/router",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-routing/lib/system/route","ember-routing/lib/system/dsl","ember-routing/lib/location/api","ember-routing/lib/utils","ember-routing/lib/system/router_state","router"],function(e,t,n,r,i,o,s,a,u,c,l){"use strict" +function h(){return this}function d(e,t){var n,r,i +for(n=e.length-1;n>=0;--n)if(r=e[n],void 0!==(i=r.handler)&&!0!==t(i,r))return}function p(e,t){var n,r=[],i=void 0 +i=e&&"object"==typeof e&&"object"==typeof e.errorThrown?e.errorThrown:e,t&&r.push(t),i&&(i.message&&r.push(i.message),i.stack&&r.push(i.stack),"string"==typeof i&&r.push(i)),(n=console).error.apply(n,r)}function f(e,n){var r=(0,t.getOwner)(e),i=e.routeName,o=e.fullRouteName,s=e._router,a=o+"_"+n +return m(r,s,i+"_"+n,a)?a:""}function g(e,n){var r=(0,t.getOwner)(e),i=e.routeName,o=e.fullRouteName,s=e._router,a="application"===i?n:i+"."+n,u="application"===o?n:o+"."+n +return m(r,s,a,u)?u:""}function m(e,t,n,r){var i=t.hasRoute(r),o=e.hasRegistration("template:"+n)||e.hasRegistration("route:"+n) +return i&&o}function v(e,t,n){var i,o=n.shift() +if(!e){if(t)return +throw new r.Error("Can't trigger action '"+o+"' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call `.send()` on the `Transition` object passed to the `model/beforeModel/afterModel` hooks.")}var s=!1,a=void 0,u=void 0,c=void 0 +for(i=e.length-1;i>=0;i--)if(a=e[i],u=a.handler,c=u&&u.actions&&u.actions[o]){if(!0!==c.apply(u,n))return void("error"===o&&u._router._markErrorAsHandled(n[0])) +s=!0}var l=E[o] +if(l)return void l.apply(this,[e].concat(n)) +if(!s&&!t)throw new r.Error("Nothing handled the action '"+o+"'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.")}function y(e,t,n){var r,i,o=e._routerMicrolib.applyIntent(t,n),s=o.handlerInfos,a=o.params +for(r=0;r<s.length;++r)i=s[r],i.isResolved?a[i.name]=i.params:a[i.name]=i.serialize(i.context) +return o}function b(e){var r=e._routerMicrolib.currentHandlerInfos +if(0!==r.length){var i=j._routePath(r),o=r[r.length-1].name,s=e.get("location").getURL();(0,n.set)(e,"currentPath",i),(0,n.set)(e,"currentRouteName",o),(0,n.set)(e,"currentURL",s) +var a=(0,t.getOwner)(e).lookup("controller:application") +a&&("currentPath"in a||(0,n.defineProperty)(a,"currentPath"),(0,n.set)(a,"currentPath",i),"currentRouteName"in a||(0,n.defineProperty)(a,"currentRouteName"),(0,n.set)(a,"currentRouteName",o))}}function C(e,t){var n=new c.default(t,t._routerMicrolib,e.state) +t.currentState||t.set("currentState",n),t.set("targetState",n),e.promise=e.catch(function(e){if(!t._isErrorHandled(e))throw e +t._clearHandledError(e)})}function A(e,t,n,r){var i,o,s=e._queryParamsFor(t) +for(var a in n)n.hasOwnProperty(a)&&(i=n[a],o=s.map[a],r(a,i,o))}function _(e,t){if(e)for(var n,r,i=[e];i.length>0;){if(n=i.shift(),n.render.name===t)return n +r=n.outlets +for(var o in r)i.push(r[o])}}function I(e,t,r){var i=void 0,o={render:r,outlets:Object.create(null),wasUsed:!1} +return i=r.into?_(e,r.into):t,i?(0,n.set)(i.outlets,r.outlet,o):r.into?w(e,r.into,o):e=o,{liveRoutes:e,ownState:o}}function w(e,t,r){e.outlets.__ember_orphans__||(e.outlets.__ember_orphans__={render:{name:"__ember_orphans__"},outlets:Object.create(null)}),e.outlets.__ember_orphans__.outlets[t]=r,(0,n.schedule)("afterRender",function(){})}function x(e,t,n){var r=_(e,n.routeName) +return r||(t.outlets.main={render:{name:n.routeName,outlet:"main"},outlets:{}},t)}e.triggerEvent=v +var k=Array.prototype.slice,j=i.Object.extend(i.Evented,{location:"hash",rootURL:"/",_initRouterJs:function(){var e=this._routerMicrolib=new l.default +e.triggerEvent=v.bind(this),e._triggerWillChangeContext=h,e._triggerWillLeave=h +var t=this.constructor.dslCallbacks||[h],n=this._buildDSL() +n.route("application",{path:"/",resetNamespace:!0,overrideNameAssertion:!0},function(){var e +for(e=0;e<t.length;e++)t[e].call(this)}),e.map(n.generate())},_buildDSL:function(){var e=this._hasModuleBasedResolver(),n={enableLoadingSubstates:e},r=(0,t.getOwner)(this),i=this +return n.resolveRouteMap=function(e){return r.factoryFor("route-map:"+e)},n.addRouteForEngine=function(e,t){i._engineInfoByRoute[e]||(i._engineInfoByRoute[e]=t)},new s.default(null,n)},init:function(){this._super.apply(this,arguments),this.currentURL=null,this.currentRouteName=null,this.currentPath=null,this._qpCache=Object.create(null),this._resetQueuedQueryParameterChanges(),this._handledErrors=new Set,this._engineInstances=Object.create(null),this._engineInfoByRoute=Object.create(null)},_resetQueuedQueryParameterChanges:function(){this._queuedQPChanges={}},url:(0,n.computed)(function(){return(0,n.get)(this,"location").getURL()}),_hasModuleBasedResolver:function(){var e=(0,t.getOwner)(this) +return!!e&&!!(0,n.get)(e,"application.__registry__.resolver.moduleBasedResolver")},startRouting:function(){var e,t=(0,n.get)(this,"initialURL") +if(this.setupRouter()&&(void 0===t&&(t=(0,n.get)(this,"location").getURL()),(e=this.handleURL(t))&&e.error))throw e.error},setupRouter:function(){var e=this +this._initRouterJs(),this._setupLocation() +var t=(0,n.get)(this,"location") +return!(0,n.get)(t,"cancelRouterSetup")&&(this._setupRouter(t),t.onUpdateURL(function(t){e.handleURL(t)}),!0)},didTransition:function(){b(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange("url"),this.set("currentState",this.targetState),(0,n.once)(this,this.trigger,"didTransition")},_setOutlets:function(){if(!this.isDestroying&&!this.isDestroyed){var e,n,r,i,o,s,a,u,c=this._routerMicrolib.currentHandlerInfos,l=void 0,h=void 0,d=null +if(c){for(e=0;e<c.length;e++){for(l=c[e].handler,n=l.connections,r=void 0,i=0;i<n.length;i++)o=I(d,h,n[i]),d=o.liveRoutes,o.ownState.render.name!==l.routeName&&"main"!==o.ownState.render.outlet||(r=o.ownState) +0===n.length&&(r=x(d,h,l)),h=r}d&&(this._toplevelView?this._toplevelView.setOutletState(d):(s=(0,t.getOwner)(this),a=s.factoryFor("view:-outlet"),this._toplevelView=a.create(),this._toplevelView.setOutletState(d),u=s.lookup("-application-instance:main"),u.didCreateRootView(this._toplevelView)))}}},willTransition:function(e,t,r){(0,n.once)(this,this.trigger,"willTransition",r)},handleURL:function(e){var t=e.split(/#(.+)?/)[0] +return this._doURLTransition("handleURL",t)},_doURLTransition:function(e,t){var n=this._routerMicrolib[e](t||"/") +return C(n,this),n},transitionTo:function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +if((0,u.resemblesURL)(t[0]))return this._doURLTransition("transitionTo",t[0]) +var e,t,n,r=(0,u.extractRouteArgs)(t),i=r.routeName,o=r.models,s=r.queryParams +return this._doTransition(i,o,s)},intermediateTransitionTo:function(){var e;(e=this._routerMicrolib).intermediateTransitionTo.apply(e,arguments),b(this)},replaceWith:function(){return this.transitionTo.apply(this,arguments).method("replace")},generate:function(){var e,t=(e=this._routerMicrolib).generate.apply(e,arguments) +return this.location.formatURL(t)},isActive:function(){var e +return(e=this._routerMicrolib).isActive.apply(e,arguments)},isActiveIntent:function(e,t,n){return this.currentState.isActiveIntent(e,t,n)},send:function(){var e;(e=this._routerMicrolib).trigger.apply(e,arguments)},hasRoute:function(e){return this._routerMicrolib.hasRoute(e)},reset:function(){this._routerMicrolib&&this._routerMicrolib.reset()},willDestroy:function(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),this._super.apply(this,arguments),this.reset() +var e=this._engineInstances +for(var t in e)for(var r in e[t])(0,n.run)(e[t][r],"destroy")},_activeQPChanged:function(e,t){this._queuedQPChanges[e]=t,(0,n.once)(this,this._fireQueryParamTransition)},_updatingQPChanged:function(e){this._qpUpdates||(this._qpUpdates={}),this._qpUpdates[e]=!0},_fireQueryParamTransition:function(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()},_setupLocation:function(){var e,r,i=(0,n.get)(this,"location"),o=(0,n.get)(this,"rootURL"),s=(0,t.getOwner)(this) +"string"==typeof i&&s&&(e=s.lookup("location:"+i),void 0!==e?i=(0,n.set)(this,"location",e):(r={implementation:i},i=(0,n.set)(this,"location",a.default.create(r)))),null!==i&&"object"==typeof i&&(o&&(0,n.set)(i,"rootURL",o),"function"==typeof i.detect&&i.detect(),"function"==typeof i.initState&&i.initState())},_getHandlerFunction:function(){var e=this,n=Object.create(null),r=(0,t.getOwner)(this) +return function(t){var i,s,a=t,u=r,c=e._engineInfoByRoute[a] +c&&(i=e._getEngineInstance(c),u=i,a=c.localFullName) +var l="route:"+a,h=u.lookup(l) +if(n[t])return h +if(n[t]=!0,h||(s=u.factoryFor("route:basic").class,u.register(l,s.extend()),h=u.lookup(l)),h._setRouteName(a),c&&!(0,o.hasDefaultSerialize)(h))throw new Error("Defining a custom serialize method on an Engine route is not supported.") +return h}},_getSerializerFunction:function(){var e=this +return function(t){var n=e._engineInfoByRoute[t] +if(n)return n.serializeMethod||o.defaultSerialize}},_setupRouter:function(e){var t,r=this,i=void 0,o=this._routerMicrolib +o.getHandler=this._getHandlerFunction(),o.getSerializer=this._getSerializerFunction() +var s=function(){e.setURL(i),(0,n.set)(r,"currentURL",i)} +o.updateURL=function(e){i=e,(0,n.once)(s)},e.replaceURL&&(t=function(){e.replaceURL(i),(0,n.set)(r,"currentURL",i)},o.replaceURL=function(e){i=e,(0,n.once)(t)}),o.didTransition=function(e){r.didTransition(e)},o.willTransition=function(e,t,n){r.willTransition(e,t,n)}},_serializeQueryParams:function(e,t){var n=this +A(this,e,t,function(e,r,o){o?(delete t[e],t[o.urlKey]=o.route.serializeQueryParam(r,o.urlKey,o.type)):void 0===r||(t[e]=n._serializeQueryParam(r,(0,i.typeOf)(r)))})},_serializeQueryParam:function(e,t){return null===e||void 0===e?e:"array"===t?JSON.stringify(e):""+e},_deserializeQueryParams:function(e,t){A(this,e,t,function(e,n,r){r&&(delete t[e],t[r.prop]=r.route.deserializeQueryParam(n,r.urlKey,r.type))})},_deserializeQueryParam:function(e,t){return null===e||void 0===e?e:"boolean"===t?"true"===e:"number"===t?Number(e).valueOf():"array"===t?(0,i.A)(JSON.parse(e)):e},_pruneDefaultQueryParamValues:function(e,t){var n,r=this._queryParamsFor(e) +for(var i in t)(n=r.map[i])&&n.serializedDefaultValue===t[i]&&delete t[i]},_doTransition:function(e,n,r,i){var o,s=e||(0,u.getActiveTargetName)(this._routerMicrolib),a={} +this._processActiveTransitionQueryParams(s,n,a,r),(0,t.assign)(a,r),this._prepareQueryParams(s,n,a,i) +var c=(o=this._routerMicrolib).transitionTo.apply(o,[s].concat(n,[{queryParams:a}])) +return C(c,this),c},_processActiveTransitionQueryParams:function(e,n,r,i){if(this._routerMicrolib.activeTransition){var o={},s=this._qpUpdates||{},a=this._routerMicrolib.activeTransition.queryParams +for(var u in a)s[u]||(o[u]=a[u]) +this._fullyScopeQueryParams(e,n,i),this._fullyScopeQueryParams(e,n,o),(0,t.assign)(r,o)}},_prepareQueryParams:function(e,t,n,r){var i=y(this,e,t) +this._hydrateUnsuppliedQueryParams(i,n,r),this._serializeQueryParams(i.handlerInfos,n),r||this._pruneDefaultQueryParamValues(i.handlerInfos,n)},_getQPMeta:function(e){var t=e.handler +return t&&(0,n.get)(t,"_qp")},_queryParamsFor:function(e){var n,r,i,o,s,a,u=e.length,c=e[u-1].name,l=this._qpCache[c] +if(l)return l +var h=!0,d={},p={},f=[] +for(n=0;n<u;++n)if(r=this._getQPMeta(e[n])){for(i=0;i<r.qps.length;i++)o=r.qps[i],s=o.urlKey,a=d[s],a&&a.controllerName!==o.controllerName&&d[s],d[s]=o,f.push(o);(0,t.assign)(p,r.map)}else h=!1 +var g={qps:f,map:p} +return h&&(this._qpCache[c]=g),g},_fullyScopeQueryParams:function(e,t,n){var r,i,o,s,a,u,c,l=y(this,e,t),h=l.handlerInfos +for(r=0,i=h.length;r<i;++r)if(o=this._getQPMeta(h[r]))for(s=0,a=o.qps.length;s<a;++s)u=o.qps[s],(c=u.prop in n&&u.prop||u.scopedPropertyName in n&&u.scopedPropertyName||u.urlKey in n&&u.urlKey)&&c!==u.scopedPropertyName&&(n[u.scopedPropertyName]=n[c],delete n[c])},_hydrateUnsuppliedQueryParams:function(e,t,n){var r,i,o,s,a,c,l,h=e.handlerInfos,d=this._bucketCache +for(r=0;r<h.length;++r)if(i=this._getQPMeta(h[r]))for(o=0,s=i.qps.length;o<s;++o)a=i.qps[o],c=a.prop in t&&a.prop||a.scopedPropertyName in t&&a.scopedPropertyName||a.urlKey in t&&a.urlKey,c?c!==a.scopedPropertyName&&(t[a.scopedPropertyName]=t[c],delete t[c]):(l=(0,u.calculateCacheKey)(a.route.fullRouteName,a.parts,e.params),t[a.scopedPropertyName]=d.lookup(l,a.prop,a.defaultValue))},_scheduleLoadingEvent:function(e,t){this._cancelSlowTransitionTimer(),this._slowTransitionTimer=(0,n.scheduleOnce)("routerTransitions",this,"_handleSlowTransition",e,t)},currentState:null,targetState:null,_handleSlowTransition:function(e,t){if(this._routerMicrolib.activeTransition){var n=new c.default(this,this._routerMicrolib,this._routerMicrolib.activeTransition.state) +this.set("targetState",n),e.trigger(!0,"loading",e,t)}},_cancelSlowTransitionTimer:function(){this._slowTransitionTimer&&(0,n.cancel)(this._slowTransitionTimer),this._slowTransitionTimer=null},_markErrorAsHandled:function(e){this._handledErrors.add(e)},_isErrorHandled:function(e){return this._handledErrors.has(e)},_clearHandledError:function(e){this._handledErrors.delete(e)},_getEngineInstance:function(e){var n,r=e.name,i=e.instanceId,o=e.mountPoint,s=this._engineInstances +s[r]||(s[r]=Object.create(null)) +var a=s[r][i] +return a||(n=(0,t.getOwner)(this),a=n.buildChildEngineInstance(r,{routable:!0,mountPoint:o}),a.boot(),s[r][i]=a),a}}),E={willResolveModel:function(e,t,n){this._scheduleLoadingEvent(t,n)},error:function(e,t,n){var r=this,i=e[e.length-1] +d(e,function(e,n){if(n!==i&&(o=g(e,"error")))return r._markErrorAsHandled(t),r.intermediateTransitionTo(o,t),!1 +var o,s=f(e,"error") +return!s||(r._markErrorAsHandled(t),r.intermediateTransitionTo(s,t),!1)}),p(t,"Error while processing route: "+n.targetName)},loading:function(e,t){var n=this,r=e[e.length-1] +d(e,function(e,i){if(i!==r&&(o=g(e,"loading")))return n.intermediateTransitionTo(o),!1 +var o,s=f(e,"loading") +return s?(n.intermediateTransitionTo(s),!1):t.pivotHandler!==e})}} +j.reopenClass({map:function(e){return this.dslCallbacks||(this.dslCallbacks=[],this.reopenClass({dslCallbacks:this.dslCallbacks})),this.dslCallbacks.push(e),this},_routePath:function(e){var t,n=[],r=void 0,i=void 0,o=void 0 +for(t=1;t<e.length;t++){for(r=e[t].name,i=r.split("."),o=k.call(n);o.length&&!function(e,t){var n +for(n=0;n<e.length;++n)if(e[n]!==t[n])return!1 +return!0}(o,i);)o.shift() +n.push.apply(n,i.slice(o.length))}return n.join(".")}}),e.default=j}),e("ember-routing/lib/system/router_state",["exports","ember-utils","ember-routing/lib/utils"],function(e,t,n){"use strict" +var r=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null +this.emberRouter=e,this.routerJs=t,this.routerJsState=n}return e.prototype.isActiveIntent=function(e,r,i,o){var s,a=this.routerJsState +return!!this.routerJs.isActiveIntent(e,r,null,a)&&(!(o&&Object.keys(i).length>0)||(s=(0,t.assign)({},i),this.emberRouter._prepareQueryParams(e,r,s),(0,n.shallowEqual)(s,a.queryParams)))},e}() +e.default=r}),e("ember-routing/lib/utils",["exports","ember-utils","ember-metal","ember-debug"],function(e,t,n,r){"use strict" +function i(e,t){var n,r,i=e.split("."),o="" +for(n=0;n<i.length&&(r=i.slice(0,n+1).join("."),0===t.indexOf(r));n++)o=r +return o}function o(e){var t,r,o,s,a,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments[2],h="" +for(t=0;t<c.length;++t)r=c[t],o=i(e,r),s=void 0,l&&(o&&o in l?(a=0===r.indexOf(o)?r.substr(o.length+1):r,s=(0,n.get)(l[o],a)):s=(0,n.get)(l,r)),h+="::"+r+":"+s +return e+h.replace(u,"-")}function s(e,n){var r,i=e,o=void 0 +"string"==typeof i&&(o={},o[i]={as:null},i=o) +for(var s in i){if(!i.hasOwnProperty(s))return +r=i[s],"string"==typeof r&&(r={as:r}),o=n[s]||{as:null,scope:"model"},(0,t.assign)(o,r),n[s]=o}}function a(e){return"string"==typeof e&&(""===e||"/"===e[0])}e.extractRouteArgs=function(e){e=e.slice() +var t=e[e.length-1],n=void 0 +return n=t&&t.hasOwnProperty("queryParams")?e.pop().queryParams:{},{routeName:e.shift(),models:e,queryParams:n}},e.getActiveTargetName=function(e){var t=e.activeTransition?e.activeTransition.state.handlerInfos:e.state.handlerInfos +return t[t.length-1].name},e.stashParamNames=function(e,t){if(!t._namesStashed){var n,r,i,o,s=t[t.length-1].name,a=e._routerMicrolib.recognizer.handlersFor(s),u=null +for(n=0;n<t.length;++n)r=t[n],i=a[n].names,i.length&&(u=r),r._names=i,o=r.handler,o._stashNames(r,u) +t._namesStashed=!0}},e.calculateCacheKey=o,e.normalizeControllerQueryParams=function(e){var t,n={} +for(t=0;t<e.length;++t)s(e[t],n) +return n},e.resemblesURL=a,e.prefixRouteNameArg=function(e,n){var i=n[0],o=(0,t.getOwner)(e),s=o.mountPoint +if(o.routable&&"string"==typeof i){if(a(i))throw new r.Error("Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.") +i=s+"."+i,n[0]=i}return n},e.shallowEqual=function(e,t){var n=void 0,r=0,i=0 +for(n in e)if(e.hasOwnProperty(n)){if(e[n]!==t[n])return!1 +r++}for(n in t)t.hasOwnProperty(n)&&i++ +return r===i} +var u=/\./g}),e("ember-runtime/index",["exports","ember-runtime/lib/system/object","ember-runtime/lib/system/string","ember-runtime/lib/mixins/registry_proxy","ember-runtime/lib/mixins/container_proxy","ember-runtime/lib/copy","ember-runtime/lib/inject","ember-runtime/lib/compare","ember-runtime/lib/is-equal","ember-runtime/lib/mixins/array","ember-runtime/lib/mixins/comparable","ember-runtime/lib/system/namespace","ember-runtime/lib/system/array_proxy","ember-runtime/lib/system/object_proxy","ember-runtime/lib/system/core_object","ember-runtime/lib/mixins/action_handler","ember-runtime/lib/mixins/copyable","ember-runtime/lib/mixins/enumerable","ember-runtime/lib/mixins/-proxy","ember-runtime/lib/system/lazy_load","ember-runtime/lib/mixins/observable","ember-runtime/lib/mixins/mutable_enumerable","ember-runtime/lib/mixins/target_action_support","ember-runtime/lib/mixins/evented","ember-runtime/lib/mixins/promise_proxy","ember-runtime/lib/computed/computed_macros","ember-runtime/lib/computed/reduce_computed_macros","ember-runtime/lib/controllers/controller","ember-runtime/lib/mixins/controller","ember-runtime/lib/system/service","ember-runtime/lib/ext/rsvp","ember-runtime/lib/utils","ember-runtime/lib/string_registry","ember-runtime/lib/ext/string","ember-runtime/lib/ext/function"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m,v,y,b,C,A,_,I,w,x,k,j,E,S,T,P,O){"use strict" +e.setStrings=e.getStrings=e.typeOf=e.isArray=e.onerrorDefault=e.RSVP=e.Service=e.ControllerMixin=e.Controller=e.collect=e.intersect=e.union=e.uniqBy=e.uniq=e.filterBy=e.filter=e.mapBy=e.setDiff=e.sort=e.map=e.max=e.min=e.sum=e.or=e.and=e.deprecatingAlias=e.readOnly=e.oneWay=e.lte=e.lt=e.gte=e.gt=e.equal=e.match=e.bool=e.not=e.none=e.notEmpty=e.empty=e.PromiseProxyMixin=e.Evented=e.TargetActionSupport=e.MutableEnumerable=e.Observable=e._loaded=e.runLoadHooks=e.onLoad=e._contentFor=e._ProxyMixin=e.Enumerable=e.Copyable=e.ActionHandler=e.CoreObject=e.ObjectProxy=e.ArrayProxy=e.Namespace=e.Comparable=e.removeAt=e.MutableArray=e.A=e.NativeArray=e.isEmberArray=e.Array=e.isEqual=e.compare=e.inject=e.copy=e.ContainerProxyMixin=e.RegistryProxyMixin=e.String=e.FrameworkObject=e.Object=void 0,Object.defineProperty(e,"Object",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"FrameworkObject",{enumerable:!0,get:function(){return t.FrameworkObject}}),Object.defineProperty(e,"String",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"RegistryProxyMixin",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"ContainerProxyMixin",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"copy",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"inject",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"compare",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Array",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"isEmberArray",{enumerable:!0,get:function(){return c.isEmberArray}}),Object.defineProperty(e,"NativeArray",{enumerable:!0,get:function(){return c.NativeArray}}),Object.defineProperty(e,"A",{enumerable:!0,get:function(){return c.A}}),Object.defineProperty(e,"MutableArray",{enumerable:!0,get:function(){return c.MutableArray}}),Object.defineProperty(e,"removeAt",{enumerable:!0,get:function(){return c.removeAt}}),Object.defineProperty(e,"Comparable",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"Namespace",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"ArrayProxy",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"ObjectProxy",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"CoreObject",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"ActionHandler",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(e,"Copyable",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(e,"Enumerable",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"_ProxyMixin",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"_contentFor",{enumerable:!0,get:function(){return y.contentFor}}),Object.defineProperty(e,"onLoad",{enumerable:!0,get:function(){return b.onLoad}}),Object.defineProperty(e,"runLoadHooks",{enumerable:!0,get:function(){return b.runLoadHooks}}),Object.defineProperty(e,"_loaded",{enumerable:!0,get:function(){return b._loaded}}),Object.defineProperty(e,"Observable",{enumerable:!0,get:function(){return C.default}}) +Object.defineProperty(e,"MutableEnumerable",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(e,"TargetActionSupport",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,"Evented",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(e,"PromiseProxyMixin",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(e,"empty",{enumerable:!0,get:function(){return x.empty}}),Object.defineProperty(e,"notEmpty",{enumerable:!0,get:function(){return x.notEmpty}}),Object.defineProperty(e,"none",{enumerable:!0,get:function(){return x.none}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return x.not}}),Object.defineProperty(e,"bool",{enumerable:!0,get:function(){return x.bool}}),Object.defineProperty(e,"match",{enumerable:!0,get:function(){return x.match}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return x.equal}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return x.gt}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return x.gte}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return x.lt}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return x.lte}}),Object.defineProperty(e,"oneWay",{enumerable:!0,get:function(){return x.oneWay}}),Object.defineProperty(e,"readOnly",{enumerable:!0,get:function(){return x.readOnly}}),Object.defineProperty(e,"deprecatingAlias",{enumerable:!0,get:function(){return x.deprecatingAlias}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return x.and}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return x.or}}),Object.defineProperty(e,"sum",{enumerable:!0,get:function(){return k.sum}}),Object.defineProperty(e,"min",{enumerable:!0,get:function(){return k.min}}),Object.defineProperty(e,"max",{enumerable:!0,get:function(){return k.max}}),Object.defineProperty(e,"map",{enumerable:!0,get:function(){return k.map}}),Object.defineProperty(e,"sort",{enumerable:!0,get:function(){return k.sort}}),Object.defineProperty(e,"setDiff",{enumerable:!0,get:function(){return k.setDiff}}),Object.defineProperty(e,"mapBy",{enumerable:!0,get:function(){return k.mapBy}}),Object.defineProperty(e,"filter",{enumerable:!0,get:function(){return k.filter}}),Object.defineProperty(e,"filterBy",{enumerable:!0,get:function(){return k.filterBy}}),Object.defineProperty(e,"uniq",{enumerable:!0,get:function(){return k.uniq}}) +Object.defineProperty(e,"uniqBy",{enumerable:!0,get:function(){return k.uniqBy}}),Object.defineProperty(e,"union",{enumerable:!0,get:function(){return k.union}}),Object.defineProperty(e,"intersect",{enumerable:!0,get:function(){return k.intersect}}),Object.defineProperty(e,"collect",{enumerable:!0,get:function(){return k.collect}}),Object.defineProperty(e,"Controller",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"ControllerMixin",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(e,"Service",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(e,"RSVP",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(e,"onerrorDefault",{enumerable:!0,get:function(){return T.onerrorDefault}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return P.isArray}}),Object.defineProperty(e,"typeOf",{enumerable:!0,get:function(){return P.typeOf}}),Object.defineProperty(e,"getStrings",{enumerable:!0,get:function(){return O.getStrings}}),Object.defineProperty(e,"setStrings",{enumerable:!0,get:function(){return O.setStrings}})}),e("ember-runtime/lib/compare",["exports","ember-runtime/lib/utils","ember-runtime/lib/mixins/comparable"],function(e,t,n){"use strict" +function r(e,t){var n=e-t +return(n>0)-(n<0)}function i(e,s){if(e===s)return 0 +var a,u,c,l,h,d=(0,t.typeOf)(e),p=(0,t.typeOf)(s) +if("instance"===d&&n.default.detect(e)&&e.constructor.compare)return e.constructor.compare(e,s) +if("instance"===p&&n.default.detect(s)&&s.constructor.compare)return-1*s.constructor.compare(s,e) +var f=r(o[d],o[p]) +if(0!==f)return f +switch(d){case"boolean":case"number":return r(e,s) +case"string":return r(e.localeCompare(s),0) +case"array":for(a=e.length,u=s.length,c=Math.min(a,u),l=0;l<c;l++)if(0!==(h=i(e[l],s[l])))return h +return r(a,u) +case"instance":return n.default.detect(e)?e.compare(e,s):0 +case"date":return r(e.getTime(),s.getTime()) +default:return 0}}e.default=i +var o={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10}}),e("ember-runtime/lib/computed/computed_macros",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict" +function r(e,n){function r(e){s.push(e)}var i,o,s=[] +for(i=0;i<n.length;i++)o=n[i],(0,t.expandProperties)(o,r) +return s}function i(e,n){return function(){for(i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s] +var i,o,s,a=r(e,o) +return new t.ComputedProperty(function(){var e,r,i=a.length-1 +for(e=0;e<i;e++)if(r=(0,t.get)(this,a[e]),!n(r))return r +return(0,t.get)(this,a[i])},{dependentKeys:a})}}e.or=e.and=void 0,e.empty=function(e){return(0,t.computed)(e+".length",function(){return(0,t.isEmpty)((0,t.get)(this,e))})},e.notEmpty=function(e){return(0,t.computed)(e+".length",function(){return!(0,t.isEmpty)((0,t.get)(this,e))})},e.none=function(e){return(0,t.computed)(e,function(){return(0,t.isNone)((0,t.get)(this,e))})},e.not=function(e){return(0,t.computed)(e,function(){return!(0,t.get)(this,e)})},e.bool=function(e){return(0,t.computed)(e,function(){return!!(0,t.get)(this,e)})},e.match=function(e,n){return(0,t.computed)(e,function(){var r=(0,t.get)(this,e) +return n.test(r)})},e.equal=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)===n})},e.gt=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)>n})},e.gte=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)>=n})},e.lt=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)<n})},e.lte=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)<=n})},e.oneWay=function(e){return(0,t.alias)(e).oneWay()},e.readOnly=function(e){return(0,t.alias)(e).readOnly()},e.deprecatingAlias=function(e,n){return(0,t.computed)(e,{get:function(n){return(0,t.get)(this,e)},set:function(n,r){return(0,t.set)(this,e,r),r}})},e.and=i("and",function(e){return e}),e.or=i("or",function(e){return!e})}) +e("ember-runtime/lib/computed/reduce_computed_macros",["exports","ember-debug","ember-metal","ember-runtime/lib/compare","ember-runtime/lib/utils","ember-runtime/lib/mixins/array"],function(e,t,n,r,i,o){"use strict" +function s(e,t,r,i){return new n.ComputedProperty(function(){var i=(0,n.get)(this,e) +return null===i||"object"!=typeof i?r:i.reduce(t,r,this)},{dependentKeys:[e+".[]"],readOnly:!0})}function a(e,t){var r=void 0;/@each/.test(e)?r=e.replace(/\.@each.*$/,""):(r=e,e+=".[]") +var s=new n.ComputedProperty(function(){var e=(0,n.get)(this,r) +return(0,i.isArray)(e)?(0,o.A)(t.call(this,e)):(0,o.A)()},{readOnly:!0}) +return s.property(e),s}function u(e,t,r){var i=e.map(function(e){return e+".[]"}) +return new n.ComputedProperty(function(){return(0,o.A)(t.call(this,e))},{dependentKeys:i,readOnly:!0})}function c(e,t){return a(e,function(e){return e.map(t,this)})}function l(e,t){return a(e,function(e){return e.filter(t,this)})}function h(){var e,t,r +for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r] +return u(t,function(e){var t=this,r=(0,o.A)(),s=new Set +return e.forEach(function(e){var o=(0,n.get)(t,e);(0,i.isArray)(o)&&o.forEach(function(e){s.has(e)||(s.add(e),r.push(e))})}),r},"uniq")}function d(e,t){return a(e,function(e){var n=this +return e.slice().sort(function(e,r){return t.call(n,e,r)})})}function p(e,t){var r=new n.ComputedProperty(function(s){function a(){this.notifyPropertyChange(s)}var u,c=this,l=(0,n.get)(this,t),h=r._activeObserverMap||(r._activeObserverMap=new WeakMap),d=h.get(this) +void 0!==d&&d.forEach(function(e){return n.removeObserver.apply(void 0,e)}) +var p="@this"===e,m=f(l) +0===m.length?(u=p?"[]":e+".[]",(0,n.addObserver)(this,u,a),d=[[this,u,a]]):d=m.map(function(t){var r=t[0],i=p?"@each."+r:e+".@each."+r +return(0,n.addObserver)(c,i,a),[c,i,a]}),h.set(this,d) +var v=p?this:(0,n.get)(this,e) +return(0,i.isArray)(v)?0===m.length?(0,o.A)(v.slice()):g(v,m):(0,o.A)()},{dependentKeys:[t+".[]"],readOnly:!0}) +return r._activeObserverMap=void 0,r}function f(e){return e.map(function(e){var t=e.split(":"),n=t[0],r=t[1] +return r=r||"asc",[n,r]})}function g(e,t){return(0,o.A)(e.slice().sort(function(e,i){var o,s,a,u,c +for(o=0;o<t.length;o++)if(s=t[o],a=s[0],u=s[1],0!==(c=(0,r.default)((0,n.get)(e,a),(0,n.get)(i,a))))return"desc"===u?-1*c:c +return 0}))}e.union=void 0,e.sum=function(e){return s(e,function(e,t){return e+t},0,"sum")},e.max=function(e){return s(e,function(e,t){return Math.max(e,t)},-1/0,"max")},e.min=function(e){return s(e,function(e,t){return Math.min(e,t)},1/0,"min")},e.map=c,e.mapBy=function(e,t){return c(e+".@each."+t,function(e){return(0,n.get)(e,t)})},e.filter=l,e.filterBy=function(e,t,r){var i=void 0 +return i=2===arguments.length?function(e){return(0,n.get)(e,t)}:function(e){return(0,n.get)(e,t)===r},l(e+".@each."+t,i)},e.uniq=h,e.uniqBy=function(e,t){return new n.ComputedProperty(function(){var r,s=(0,o.A)(),a=(0,n.get)(this,e) +return(0,i.isArray)(a)&&(r=new Set,a.forEach(function(e){var i=(0,n.get)(e,t) +r.has(i)||(r.add(i),s.push(e))})),s},{dependentKeys:[e+".[]"],readOnly:!0})},e.intersect=function(){var e,t,r +for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r] +return u(t,function(e){var t=this,r=e.map(function(e){var r=(0,n.get)(t,e) +return(0,i.isArray)(r)?r:[]}),s=r.pop().filter(function(e){var t,n,i,o +for(t=0;t<r.length;t++){for(n=!1,i=r[t],o=0;o<i.length;o++)if(i[o]===e){n=!0 +break}if(!1===n)return!1}return!0},"intersect") +return(0,o.A)(s)})},e.setDiff=function(e,t){return new n.ComputedProperty(function(){var n=this.get(e),r=this.get(t) +return(0,i.isArray)(n)?(0,i.isArray)(r)?n.filter(function(e){return-1===r.indexOf(e)}):(0,o.A)(n):(0,o.A)()},{dependentKeys:[e+".[]",t+".[]"],readOnly:!0})},e.collect=function(){var e,t,r +for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r] +return u(t,function(){var e=(0,n.getProperties)(this,t),r=(0,o.A)() +for(var i in e)e.hasOwnProperty(i)&&(void 0===e[i]?r.push(null):r.push(e[i])) +return r},"collect")},e.sort=function(e,t){return"function"==typeof t?d(e,t):p(e,t)},e.union=h}),e("ember-runtime/lib/controllers/controller",["exports","ember-debug","ember-runtime/lib/system/object","ember-runtime/lib/mixins/controller","ember-runtime/lib/inject"],function(e,t,n,r,i){"use strict" +var o=n.default.extend(r.default);(0,i.createInjectionHelper)("controller",function(e){}),e.default=o}),e("ember-runtime/lib/copy",["exports","ember-debug","ember-runtime/lib/system/object","ember-runtime/lib/mixins/copyable"],function(e,t,n,r){"use strict" +function i(e,t,n,o){if("object"!=typeof e||null===e)return e +var s,a=void 0,u=void 0 +if(t&&(u=n.indexOf(e))>=0)return o[u] +if(Array.isArray(e)){if(a=e.slice(),t)for(u=a.length;--u>=0;)a[u]=i(a[u],t,n,o)}else if(r.default.detect(e))a=e.copy(t,n,o) +else if(e instanceof Date)a=new Date(e.getTime()) +else{a={},s=void 0 +for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&"__"!==s.substring(0,2)&&(a[s]=t?i(e[s],t,n,o):e[s])}return t&&(n.push(e),o.push(a)),a}e.default=function(e,t){return"object"!=typeof e||null===e?e:r.default.detect(e)?e.copy(t):i(e,t,t?[]:null,t?[]:null)}}),e("ember-runtime/lib/ext/function",["ember-environment","ember-metal","ember-debug"],function(e,t,n){"use strict" +var r=Function.prototype +e.ENV.EXTEND_PROTOTYPES.Function&&(Object.defineProperty(r,"property",{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.computed.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}),Object.defineProperty(r,"observes",{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.observer.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}),Object.defineProperty(r,"_observesImmediately",{configurable:!0,enumerable:!1,writable:!0,value:function(){return this.observes.apply(this,arguments)}}),Object.defineProperty(r,"on",{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.on.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}))}),e("ember-runtime/lib/ext/rsvp",["exports","ember-babel","rsvp","ember-metal","ember-debug","container"],function(e,t,n,r,i,o){"use strict" +function s(e){var t,n=a(e) +if(n){if(!(t=(0,r.getDispatchOverride)()))throw n +t(n)}}function a(e){if(e){if(e.errorThrown)return u(e) +if("UnrecognizedURLError"!==e.name&&"TransitionAborted"!==e.name)return e}}function u(e){var t=e.errorThrown +return"string"==typeof t&&(t=new Error(t)),Object.defineProperty(t,"__reason_with_error_thrown__",{value:e,enumerable:!1}),t}e.onerrorDefault=s +var c=(0,t.taggedTemplateLiteralLoose)(["rsvpAfter"],["rsvpAfter"]) +n.configure("async",function(e,t){r.backburner.schedule("actions",null,e,t)}),n.configure("after",function(e){r.backburner.schedule((0,o.privatize)(c),null,e)}),n.on("error",s),e.default=n}),e("ember-runtime/lib/ext/string",["ember-environment","ember-runtime/lib/system/string"],function(e,t){"use strict" +var n=String.prototype +e.ENV.EXTEND_PROTOTYPES.String&&(Object.defineProperty(n,"w",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.w)(this)}}),Object.defineProperty(n,"loc",{configurable:!0,enumerable:!1,writeable:!0,value:function(){var e,n,r +for(e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r] +return(0,t.loc)(this,n)}}),Object.defineProperty(n,"camelize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.camelize)(this)}}),Object.defineProperty(n,"decamelize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.decamelize)(this)}}),Object.defineProperty(n,"dasherize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.dasherize)(this)}}),Object.defineProperty(n,"underscore",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.underscore)(this)}}),Object.defineProperty(n,"classify",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.classify)(this)}}),Object.defineProperty(n,"capitalize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.capitalize)(this)}}))}),e("ember-runtime/lib/inject",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict" +function r(){}e.default=r,e.createInjectionHelper=function(e,n){i[e]=n,r[e]=function(n){return new t.InjectedProperty(e,n)}},e.validatePropertyInjections=function(e){var n,r,o,s=e.proto(),a=[] +for(var u in s)(n=(0,t.descriptorFor)(s,u))instanceof t.InjectedProperty&&-1===a.indexOf(n.type)&&a.push(n.type) +if(a.length)for(r=0;r<a.length;r++)"function"==typeof(o=i[a[r]])&&o(e) +return!0} +var i={}}),e("ember-runtime/lib/is-equal",["exports"],function(e){"use strict" +e.default=function(e,t){return e&&"function"==typeof e.isEqual?e.isEqual(t):e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():e===t}}),e("ember-runtime/lib/mixins/-proxy",["exports","@glimmer/reference","ember-metal","ember-utils","ember-debug","ember-runtime/lib/computed/computed_macros"],function(e,t,n,r,i,o){"use strict" +function s(e,t){var r=t.slice(8) +r in this||(0,n.notifyPropertyChange)(this,r)}function a(e,t){var r=(0,n.get)(e,"content"),i=(void 0===t?(0,n.meta)(e):t).readableTag() +return void 0!==i&&i.inner.second.inner.update((0,n.tagFor)(r)),r}e.contentFor=a,e.default=n.Mixin.create({content:null,init:function(){this._super.apply(this,arguments),(0,r.setProxy)(this),(0,n.meta)(this).writableTag(function(){return(0,t.combine)([t.DirtyableTag.create(),t.UpdatableTag.create(t.CONSTANT_TAG)])})},isTruthy:(0,o.bool)("content"),willWatchProperty:function(e){(0,n.addObserver)(this,"content."+e,null,s)},didUnwatchProperty:function(e){(0,n.removeObserver)(this,"content."+e,null,s)},unknownProperty:function(e){var t=a(this) +if(t)return(0,n.get)(t,e)},setUnknownProperty:function(e,t){var r=(0,n.meta)(this) +if(r.proto===this)return(0,n.defineProperty)(this,e,null,t),t +var i=a(this,r) +return(0,n.set)(i,e,t)}})}),e("ember-runtime/lib/mixins/action_handler",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict" +var r=t.Mixin.create({mergedProperties:["actions"],send:function(e){for(n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i] +if(!this.actions||!this.actions[e]||!0===this.actions[e].apply(this,r)){var n,r,i,o=(0,t.get)(this,"target") +o&&o.send.apply(o,arguments)}}}) +e.default=r}),e("ember-runtime/lib/mixins/array",["exports","ember-utils","ember-metal","ember-debug","ember-runtime/lib/mixins/enumerable","ember-runtime/lib/compare","ember-environment","ember-runtime/lib/mixins/observable","ember-runtime/lib/mixins/copyable","ember-runtime/lib/copy","ember-runtime/lib/mixins/mutable_enumerable"],function(e,t,n,r,i,o,s,a,u,c,l){"use strict" +function h(e,t){return 2===arguments.length?function(r){return t===(0,n.get)(r,e)}:function(t){return!!(0,n.get)(t,e)}}function d(e,t,i){if("number"==typeof t){if(t<0||t>=(0,n.get)(e,"length"))throw new r.Error(y) +void 0===i&&(i=1),e.replace(t,i,b)}return e}e.MutableArray=e.NativeArray=e.A=void 0,e.isEmberArray=function(e){return e&&e[m]},e.removeAt=d +var p,f,g=Object.freeze([]),m=(0,t.symbol)("EMBER_ARRAY"),v=n.Mixin.create(i.default,(p={},p[m]=!0,p.length=null,p.objectAt=function(e){if(!(e<0||e>=(0,n.get)(this,"length")))return(0,n.get)(this,e)},p.objectsAt=function(e){var t=this +return e.map(function(e){return(0,n.objectAt)(t,e)})},p["[]"]=(0,n.computed)({get:function(){return this},set:function(e,t){return this.replace(0,(0,n.get)(this,"length"),t),this}}),p.firstObject=(0,n.computed)(function(){return(0,n.objectAt)(this,0)}).readOnly(),p.lastObject=(0,n.computed)(function(){return(0,n.objectAt)(this,(0,n.get)(this,"length")-1)}).readOnly(),p.slice=function(e,t){var r=I(),i=(0,n.get)(this,"length") +for((0,n.isNone)(e)?e=0:e<0&&(e=i+e),(0,n.isNone)(t)||t>i?t=i:t<0&&(t=i+t);e<t;)r[r.length]=(0,n.objectAt)(this,e++) +return r},p.indexOf=function(e,t){var r,i=(0,n.get)(this,"length") +for(void 0===t&&(t=0),t<0&&(t+=i),r=t;r<i;r++)if((0,n.objectAt)(this,r)===e)return r +return-1},p.lastIndexOf=function(e,t){var r,i=(0,n.get)(this,"length") +for((void 0===t||t>=i)&&(t=i-1),t<0&&(t+=i),r=t;r>=0;r--)if((0,n.objectAt)(this,r)===e)return r +return-1},p.addArrayObserver=function(e,t){return(0,n.addArrayObserver)(this,e,t)},p.removeArrayObserver=function(e,t){return(0,n.removeArrayObserver)(this,e,t)},p.hasArrayObservers=(0,n.computed)(function(){return(0,n.hasListeners)(this,"@array:change")||(0,n.hasListeners)(this,"@array:before")}),p.arrayContentWillChange=function(e,t,r){return(0,n.arrayContentWillChange)(this,e,t,r)},p.arrayContentDidChange=function(e,t,r){return(0,n.arrayContentDidChange)(this,e,t,r)},p.forEach=function(e){var t,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=(0,n.get)(this,"length") +for(t=0;t<o;t++)r=this.objectAt(t),e.call(i,r,t,this) +return this},p.getEach=(0,n.aliasMethod)("mapBy"),p.setEach=function(e,t){return this.forEach(function(r){return(0,n.set)(r,e,t)})},p.map=function(e,t){var n=I() +return this.forEach(function(r,i,o){return n[i]=e.call(t,r,i,o)}),n},p.mapBy=function(e){return this.map(function(t){return(0,n.get)(t,e)})},p.filter=function(e,t){var n=I() +return this.forEach(function(r,i,o){e.call(t,r,i,o)&&n.push(r)}),n},p.reject=function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},p.filterBy=function(){return this.filter(h.apply(this,arguments))},p.rejectBy=function(e,t){var r=2===arguments.length?function(r){return(0,n.get)(r,e)===t}:function(t){return!!(0,n.get)(t,e)} +return this.reject(r)},p.find=function(e){var t,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=(0,n.get)(this,"length") +for(t=0;t<o;t++)if(r=this.objectAt(t),e.call(i,r,t,this))return r},p.findBy=function(){return this.find(h.apply(this,arguments))},p.every=function(e,t){return!this.find(function(n,r,i){return!e.call(t,n,r,i)})},p.isEvery=function(){return this.every(h.apply(this,arguments))},p.any=function(e){var t,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=(0,n.get)(this,"length") +for(t=0;t<o;t++)if(r=this.objectAt(t),e.call(i,r,t,this))return!0 +return!1},p.isAny=function(){return this.any(h.apply(this,arguments))},p.reduce=function(e,t,n){var r=t +return this.forEach(function(t,i){r=e(r,t,i,this,n)},this),r},p.invoke=function(e){for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +var t,n,r,i=I() +return this.forEach(function(t,r){var o=t&&t[e] +"function"==typeof o&&(i[r]=n.length?o.apply(t,n):t[e]())},this),i},p.toArray=function(){var e=I() +return this.forEach(function(t,n){return e[n]=t}),e},p.compact=function(){return this.filter(function(e){return null!=e})},p.includes=function(e,t){var r,i,o=(0,n.get)(this,"length") +for(void 0===t&&(t=0),t<0&&(t+=o),r=t;r<o;r++)if(i=(0,n.objectAt)(this,r),e===i||e!==e&&i!==i)return!0 +return!1},p.sortBy=function(){var e=arguments +return this.toArray().sort(function(t,r){var i,s,a,u,c +for(i=0;i<e.length;i++)if(s=e[i],a=(0,n.get)(t,s),u=(0,n.get)(r,s),c=(0,o.default)(a,u))return c +return 0})},p.uniq=function(){var e=I(),t=new Set +return this.forEach(function(n){t.has(n)||(t.add(n),e.push(n))}),e},p.uniqBy=function(e){var t=I(),r=new Set +return this.forEach(function(i){var o=(0,n.get)(i,e) +r.has(o)||(r.add(o),t.push(i))}),t},p.without=function(e){if(!this.includes(e))return this +var t=I() +return this.forEach(function(n){n===e||n!==n&&e!==e||(t[t.length]=n)}),t},p["@each"]=(0,n.computed)(function(){return(0,n.eachProxyFor)(this)}).readOnly(),p)),y="Index out of range",b=[],C=n.Mixin.create(v,l.default,{replace:null,clear:function(){var e=(0,n.get)(this,"length") +return 0===e?this:(this.replace(0,e,b),this)},insertAt:function(e,t){if(e>(0,n.get)(this,"length"))throw new r.Error(y) +return this.replace(e,0,[t]),this},removeAt:function(e,t){return d(this,e,t)},pushObject:function(e){return this.insertAt((0,n.get)(this,"length"),e),e},pushObjects:function(e){if(!Array.isArray(e))throw new TypeError("Must pass Enumerable to MutableArray#pushObjects") +return this.replace((0,n.get)(this,"length"),0,e),this},popObject:function(){var e=(0,n.get)(this,"length") +if(0===e)return null +var t=(0,n.objectAt)(this,e-1) +return this.removeAt(e-1,1),t},shiftObject:function(){if(0===(0,n.get)(this,"length"))return null +var e=(0,n.objectAt)(this,0) +return this.removeAt(0),e},unshiftObject:function(e){return this.insertAt(0,e),e},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=(0,n.get)(this,"length") +if(0===e)return this +var t=this.toArray().reverse() +return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear() +var t=(0,n.get)(this,"length") +return this.replace(0,t,e),this},removeObject:function(e){for(var t=(0,n.get)(this,"length")||0;--t>=0;)(0,n.objectAt)(this,t)===e&&this.removeAt(t) +return this},removeObjects:function(e){var t +for((0,n.beginPropertyChanges)(this),t=e.length-1;t>=0;t--)this.removeObject(e[t]) +return(0,n.endPropertyChanges)(this),this},addObject:function(e){return this.includes(e)||this.pushObject(e),this},addObjects:function(e){var t=this +return(0,n.beginPropertyChanges)(this),e.forEach(function(e){return t.addObject(e)}),(0,n.endPropertyChanges)(this),this}}),A=n.Mixin.create(C,a.default,u.default,{get:function(e){return"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g +return(0,n.replaceInNativeArray)(this,e,t,r),this},unknownProperty:function(e,t){var n=void 0 +return void 0!==t&&void 0===n&&(n=this[e]=t),n},indexOf:Array.prototype.indexOf,lastIndexOf:Array.prototype.lastIndexOf,copy:function(e){return e?this.map(function(e){return(0,c.default)(e,!0)}):this.slice()}}),_=["length"] +A.keys().forEach(function(e){Array.prototype[e]&&_.push(e)}),e.NativeArray=A=(f=A).without.apply(f,_) +var I=void 0 +s.ENV.EXTEND_PROTOTYPES.Array?(A.apply(Array.prototype),e.A=I=function(e){return e||[]}):e.A=I=function(e){return e||(e=[]),v.detect(e)?e:A.apply(e)},e.A=I,e.NativeArray=A,e.MutableArray=C,e.default=v}),e("ember-runtime/lib/mixins/comparable",["exports","ember-metal"],function(e,t){"use strict" +e.default=t.Mixin.create({compare:null})}),e("ember-runtime/lib/mixins/container_proxy",["exports","ember-metal"],function(e,t){"use strict" +e.default=t.Mixin.create({__container__:null,ownerInjection:function(){return this.__container__.ownerInjection()},lookup:function(e,t){return this.__container__.lookup(e,t)},willDestroy:function(){this._super.apply(this,arguments),this.__container__&&(0,t.run)(this.__container__,"destroy")},factoryFor:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{} +return this.__container__.factoryFor(e,t)}})}),e("ember-runtime/lib/mixins/controller",["exports","ember-metal","ember-runtime/lib/mixins/action_handler"],function(e,t,n){"use strict" +e.default=t.Mixin.create(n.default,{isController:!0,target:null,store:null,model:null})}),e("ember-runtime/lib/mixins/copyable",["exports","ember-metal"],function(e,t){"use strict" +e.default=t.Mixin.create({copy:null})}),e("ember-runtime/lib/mixins/enumerable",["exports","ember-metal"],function(e,t){"use strict" +e.default=t.Mixin.create()}),e("ember-runtime/lib/mixins/evented",["exports","ember-metal"],function(e,t){"use strict" +e.default=t.Mixin.create({on:function(e,n,r){return(0,t.addListener)(this,e,n,r),this},one:function(e,n,r){return r||(r=n,n=null),(0,t.addListener)(this,e,n,r,!0),this},trigger:function(e){var n,r,i +for(n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(0,t.sendEvent)(this,e,r)},off:function(e,n,r){return(0,t.removeListener)(this,e,n,r),this},has:function(e){return(0,t.hasListeners)(this,e)}})}),e("ember-runtime/lib/mixins/mutable_enumerable",["exports","ember-runtime/lib/mixins/enumerable","ember-metal"],function(e,t,n){"use strict" +e.default=n.Mixin.create(t.default)}),e("ember-runtime/lib/mixins/observable",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict" +e.default=t.Mixin.create({get:function(e){return(0,t.get)(this,e)},getProperties:function(){var e,n,r +for(e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r] +return t.getProperties.apply(void 0,[this].concat(n))},set:function(e,n){return(0,t.set)(this,e,n)},setProperties:function(e){return(0,t.setProperties)(this,e)},beginPropertyChanges:function(){return(0,t.beginPropertyChanges)(),this},endPropertyChanges:function(){return(0,t.endPropertyChanges)(),this},propertyWillChange:function(e){return(0,t.propertyWillChange)(this,e),this},propertyDidChange:function(e){return(0,t.propertyDidChange)(this,e),this},notifyPropertyChange:function(e){return(0,t.notifyPropertyChange)(this,e),this},addObserver:function(e,n,r){return(0,t.addObserver)(this,e,n,r),this},removeObserver:function(e,n,r){return(0,t.removeObserver)(this,e,n,r),this},hasObserverFor:function(e){return(0,t.hasListeners)(this,e+":change")},getWithDefault:function(e,n){return(0,t.getWithDefault)(this,e,n)},incrementProperty:function(e,n){return(0,t.isNone)(n)&&(n=1),(0,t.set)(this,e,(parseFloat((0,t.get)(this,e))||0)+n)},decrementProperty:function(e,n){return(0,t.isNone)(n)&&(n=1),(0,t.set)(this,e,((0,t.get)(this,e)||0)-n)},toggleProperty:function(e){return(0,t.set)(this,e,!(0,t.get)(this,e))},cacheFor:function(e){return(0,t.getCachedValueFor)(this,e)}})}),e("ember-runtime/lib/mixins/promise_proxy",["exports","ember-metal","ember-debug","ember-runtime/lib/computed/computed_macros"],function(e,t,n,r){"use strict" +function i(e,n){return(0,t.setProperties)(e,{isFulfilled:!1,isRejected:!1}),n.then(function(n){return e.isDestroyed||e.isDestroying||(0,t.setProperties)(e,{content:n,isFulfilled:!0}),n},function(n){throw e.isDestroyed||e.isDestroying||(0,t.setProperties)(e,{reason:n,isRejected:!0}),n},"Ember: PromiseProxy")}function o(e){return function(){var n=(0,t.get)(this,"promise") +return n[e].apply(n,arguments)}}e.default=t.Mixin.create({reason:null,isPending:(0,r.not)("isSettled").readOnly(),isSettled:(0,r.or)("isRejected","isFulfilled").readOnly(),isRejected:!1,isFulfilled:!1,promise:(0,t.computed)({get:function(){throw new n.Error("PromiseProxy's promise must be set")},set:function(e,t){return i(this,t)}}),then:o("then"),catch:o("catch"),finally:o("finally")})}),e("ember-runtime/lib/mixins/registry_proxy",["exports","ember-debug","ember-metal"],function(e,t,n){"use strict" +function r(e){return function(){var t +return(t=this.__registry__)[e].apply(t,arguments)}}e.default=n.Mixin.create({__registry__:null,resolveRegistration:function(e,t){return this.__registry__.resolve(e,t)},register:r("register"),unregister:r("unregister"),hasRegistration:r("has"),registeredOption:r("getOption"),registerOptions:r("options"),registeredOptions:r("getOptions"),registerOptionsForType:r("optionsForType"),registeredOptionsForType:r("getOptionsForType"),inject:r("injection")})}),e("ember-runtime/lib/mixins/target_action_support",["exports","ember-environment","ember-metal","ember-debug"],function(e,t,n,r){"use strict" +function i(e){var r,i=(0,n.get)(e,"target") +return i?"string"==typeof i?(r=(0,n.get)(e,i),void 0===r&&(r=(0,n.get)(t.context.lookup,i)),r):i:i||(e._targetObject?e._targetObject:null)}e.default=n.Mixin.create({target:null,targetObject:(0,n.descriptor)({configurable:!0,enumerable:!1,get:function(){return this._targetObject},set:function(e){this._targetObject=e}}),action:null,actionContext:null,actionContextObject:(0,n.computed)("actionContext",function(){var e,r=(0,n.get)(this,"actionContext") +return"string"==typeof r?(e=(0,n.get)(this,r),void 0===e&&(e=(0,n.get)(t.context.lookup,r)),e):r}),triggerAction:function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r.action,s=r.target,a=r.actionContext +return o=o||(0,n.get)(this,"action"),s=s||i(this),void 0===a&&(a=(0,n.get)(this,"actionContextObject")||this),!(!s||!o||(void 0,!1===(s.send?(e=s).send.apply(e,[o].concat(a)):(t=s)[o].apply(t,[].concat(a)))))}})}),e("ember-runtime/lib/string_registry",["exports"],function(e){"use strict" +function t(){return r}function n(e){return r[e]}e.setStrings=function(e){r=e},e.getStrings=t,e.get=n +var r={}}),e("ember-runtime/lib/system/array_proxy",["exports","ember-metal","ember-runtime/lib/utils","ember-runtime/lib/system/object","ember-runtime/lib/mixins/array","ember-debug"],function(e,t,n,r,i,o){"use strict" +var s,a={willChange:"_arrangedContentArrayWillChange",didChange:"_arrangedContentArrayDidChange"} +e.default=r.default.extend(i.MutableArray,(s={init:function(){this._super.apply(this,arguments),this._objectsDirtyIndex=0,this._objects=null,this._lengthDirty=!0,this._length=0,this._arrangedContent=null,this._addArrangedContentArrayObsever()},willDestroy:function(){this._removeArrangedContentArrayObsever()},content:null,arrangedContent:(0,t.alias)("content"),objectAtContent:function(e){return(0,t.objectAt)((0,t.get)(this,"arrangedContent"),e)},replace:function(e,t,n){this.replaceContent(e,t,n)},replaceContent:function(e,n,r){(0,t.get)(this,"content").replace(e,n,r)},objectAt:function(e){var n,r,i +if(null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){if(n=(0,t.get)(this,"arrangedContent"))for(r=this._objects.length=(0,t.get)(n,"length"),i=this._objectsDirtyIndex;i<r;i++)this._objects[i]=this.objectAtContent(i) +else this._objects.length=0 +this._objectsDirtyIndex=-1}return this._objects[e]},length:(0,t.computed)(function(){var e +return this._lengthDirty&&(e=(0,t.get)(this,"arrangedContent"),this._length=e?(0,t.get)(e,"length"):0,this._lengthDirty=!1),this._length}).volatile()},s[t.PROPERTY_DID_CHANGE]=function(e){var n,r,i +"arrangedContent"===e&&(n=null===this._objects?0:this._objects.length,r=(0,t.get)(this,"arrangedContent"),i=r?(0,t.get)(r,"length"):0,this._removeArrangedContentArrayObsever(),this.arrayContentWillChange(0,n,i),this._objectsDirtyIndex=0,this._lengthDirty=!0,this.arrayContentDidChange(0,n,i),this._addArrangedContentArrayObsever())},s._addArrangedContentArrayObsever=function(){var e=(0,t.get)(this,"arrangedContent") +e&&((0,t.addArrayObserver)(e,this,a),this._arrangedContent=e)},s._removeArrangedContentArrayObsever=function(){this._arrangedContent&&(0,t.removeArrayObserver)(this._arrangedContent,this,a)},s._arrangedContentArrayWillChange=function(){},s._arrangedContentArrayDidChange=function(e,n,r,i){this.arrayContentWillChange(n,r,i) +var o,s=n +s<0&&(o=(0,t.get)(this._arrangedContent,"length"),s+=o+r-i),-1===this._objectsDirtyIndex?this._objectsDirtyIndex=s:this._objectsDirtyIndex>s&&(this._objectsDirtyIndex=s),this._lengthDirty=!0,this.arrayContentDidChange(n,r,i)},s))}),e("ember-runtime/lib/system/core_object",["exports","ember-babel","container","ember-utils","ember-metal","ember-runtime/lib/mixins/action_handler","ember-runtime/lib/inject","ember-debug","ember-environment"],function(e,t,n,r,i,o,s,a,u){"use strict" +function c(e){var o,s=!1,a=void 0 +return e?a=function(e){function n(n){return s||a.proto(),(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n}(e):(o=void 0,a=function(){function e(e){var t,c,l,h,d,p,f,g,m,v,y,b +s||a.proto() +var C=this +void 0!==o&&(n.FACTORY_FOR.set(this,o),o=void 0) +var A=(0,i.meta)(C),_=A.proto +if(A.proto=C,void 0!==e)for(c=C.concatenatedProperties,l=C.mergedProperties,h=void 0!==c&&c.length>0,d=void 0!==l&&l.length>0,p=Object.keys(e),f=0;f<p.length;f++)g=p[f],m=e[g],u.ENV._ENABLE_BINDING_SUPPORT&&i.Mixin.detectBinding(g)&&A.writeBindings(g,m),v=(0,i.descriptorFor)(C,g,A),y=void 0!==v,y||(b=C[g],h&&c.indexOf(g)>-1&&(m=b?(0,r.makeArray)(b).concat(m):(0,r.makeArray)(m)),d&&l.indexOf(g)>-1&&(m=(0,r.assign)({},b,m))),y?v.set(C,g,m):"function"!=typeof C.setUnknownProperty||g in C?C[g]=m:C.setUnknownProperty(g,m) +u.ENV._ENABLE_BINDING_SUPPORT&&i.Mixin.finishPartial(C,A),(t=C).init.apply(t,arguments),A.proto=_,(0,i.finishChains)(A),(0,i.sendEvent)(C,"init",void 0,void 0,void 0,A)}return e._initFactory=function(e){o=e},e}()),a.willReopen=function(){s&&(a.PrototypeMixin=i.Mixin.create(a.PrototypeMixin)),s=!1},a.proto=function(){var e=a.superclass +return e&&e.proto(),s||(s=!0,a.PrototypeMixin.applyPartial(a.prototype)),this.prototype},a}function l(){var e,t,n,i,o,s,a,u,c,l,h,d,p=this.concatenatedProperties,f=this.mergedProperties,g=void 0!==p&&p.length>0,m=void 0!==f&&f.length>0,v={} +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +for(i=0;i<t.length;i++)for(o=t[i],s=Object.keys(o),a=0,u=s.length;a<u;a++)c=s[a],l=o[c],g&&p.indexOf(c)>-1&&(h=v[c],l=h?(0,r.makeArray)(h).concat(l):(0,r.makeArray)(l)),m&&f.indexOf(c)>-1&&(d=v[c],l=(0,r.assign)({},d,l)),v[c]=l +return v}var h=i.Mixin._apply,d=i.Mixin.prototype.reopen,p=(0,i.descriptor)({configurable:!0,enumerable:!1,get:function(){return(0,i.peekMeta)(this).isSourceDestroyed()},set:function(e){}}),f=(0,i.descriptor)({configurable:!0,enumerable:!1,get:function(){return(0,i.peekMeta)(this).isSourceDestroying()},set:function(e){}}),g=c() +g.prototype.toString=i.classToString,g.toString=i.classToString,(0,r.setName)(g,"Ember.CoreObject"),g.PrototypeMixin=i.Mixin.create({reopen:function(){var e,t,n +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +return h(this,t,!0),this},init:function(){},concatenatedProperties:null,mergedProperties:null,isDestroyed:p,isDestroying:f,destroy:function(){var e=(0,i.peekMeta)(this) +if(!e.isSourceDestroying())return e.setSourceDestroying(),(0,i.schedule)("actions",this,this.willDestroy),(0,i.schedule)("destroy",this,this._scheduledDestroy,e),this},willDestroy:function(){},_scheduledDestroy:function(e){e.isSourceDestroyed()||((0,i.deleteMeta)(this),e.setSourceDestroyed())},toString:function(){var e="function"==typeof this.toStringExtension,t=e?":"+this.toStringExtension():"" +return"<"+((0,r.getName)(this)||n.FACTORY_FOR.get(this)||this.constructor.toString())+":"+(0,r.guidFor)(this)+t+">"}}),g.PrototypeMixin.ownerConstructor=g,g.__super__=null +var m=i.Mixin.create({isClass:!0,isMethod:!1,extend:function(){var e=c(this) +e.ClassMixin=i.Mixin.create(this.ClassMixin),e.PrototypeMixin=i.Mixin.create(this.PrototypeMixin),e.ClassMixin.ownerConstructor=e,e.PrototypeMixin.ownerConstructor=e,d.apply(e.PrototypeMixin,arguments),e.superclass=this,e.__super__=this.prototype +var t=e.prototype +return(0,i.meta)(t).proto=t,e.ClassMixin.apply(e),e},create:function(e,t){var n=this +return new n(void 0===t?e:l.apply(this,arguments))},reopen:function(){return this.willReopen(),d.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return d.apply(this.ClassMixin,arguments),h(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1 +for(;e;){if(e===this)return!0 +e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=this.proto(),n=(0,i.descriptorFor)(t,e) +return n._meta||{}},eachComputedProperty:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this +this.proto() +var n={};(0,i.meta)(this.prototype).forEachDescriptors(function(r,i){var o +i.enumerable&&(o=i._meta||n,e.call(t,r,o))})}}) +m.ownerConstructor=g,g.ClassMixin=m,m.apply(g),e.default=g}),e("ember-runtime/lib/system/lazy_load",["exports","ember-environment"],function(e,t){"use strict" +e._loaded=void 0,e.onLoad=function(e,t){var i=r[e] +n[e]=n[e]||[],n[e].push(t),i&&t(i)},e.runLoadHooks=function(e,i){r[e]=i +var o,s=t.environment.window +s&&"function"==typeof CustomEvent&&(o=new CustomEvent(e,{detail:i,name:e}),s.dispatchEvent(o)),n[e]&&n[e].forEach(function(e){return e(i)})} +var n=t.ENV.EMBER_LOAD_HOOKS||{},r={} +e._loaded=r}),e("ember-runtime/lib/system/namespace",["exports","ember-metal","ember-utils","ember-runtime/lib/system/object"],function(e,t,n,r){"use strict" +var i=r.default.extend({isNamespace:!0,init:function(){(0,t.addNamespace)(this)},toString:function(){var e=(0,t.get)(this,"name")||(0,t.get)(this,"modulePrefix") +return e||((0,t.findNamespaces)(),e=(0,n.getName)(this),void 0===e&&(e=(0,n.guidFor)(this),(0,n.setName)(this,e)),e)},nameClasses:function(){(0,t.processNamespace)(this)},destroy:function(){(0,t.removeNamespace)(this),this._super.apply(this,arguments)}}) +i.reopenClass({NAMESPACES:t.NAMESPACES,NAMESPACES_BY_ID:t.NAMESPACES_BY_ID,processAll:t.processAllNamespaces,byName:t.findNamespace}),e.default=i}),e("ember-runtime/lib/system/object",["exports","container","ember-utils","ember-metal","ember-runtime/lib/system/core_object","ember-runtime/lib/mixins/observable","ember-debug"],function(e,t,n,r,i,o){"use strict" +e.FrameworkObject=void 0 +var s,a=(0,n.symbol)("OVERRIDE_OWNER"),u=i.default.extend(o.default,(s={_debugContainerKey:(0,r.descriptor)({enumerable:!1,get:function(){var e=t.FACTORY_FOR.get(this) +return void 0!==e&&e.fullName}})},s[n.OWNER]=(0,r.descriptor)({enumerable:!1,get:function(){if(this[a])return this[a] +var e=t.FACTORY_FOR.get(this) +return void 0!==e&&e.owner},set:function(e){this[a]=e}}),s));(0,n.setName)(u,"Ember.Object"),e.FrameworkObject=u,e.default=u}),e("ember-runtime/lib/system/object_proxy",["exports","ember-runtime/lib/system/object","ember-runtime/lib/mixins/-proxy"],function(e,t,n){"use strict" +e.default=t.default.extend(n.default)}),e("ember-runtime/lib/system/service",["exports","ember-runtime/lib/system/object","ember-runtime/lib/inject"],function(e,t,n){"use strict";(0,n.createInjectionHelper)("service") +var r=t.default.extend() +r.reopenClass({isServiceFactory:!0}),e.default=r}) +e("ember-runtime/lib/system/string",["exports","ember-metal","ember-utils","ember-runtime/lib/utils","ember-runtime/lib/string_registry"],function(e,t,n,r,i){"use strict" +function o(e,t){var i,o=t +if(!(0,r.isArray)(o)||arguments.length>2)for(o=new Array(arguments.length-1),i=1;i<arguments.length;i++)o[i-1]=arguments[i] +var s=0 +return e.replace(/%@([0-9]+)?/g,function(e,t){return t=t?parseInt(t,10)-1:s++,e=o[t],null===e?"(null)":void 0===e?"":(0,n.inspect)(e)})}function s(e,t){return(!(0,r.isArray)(t)||arguments.length>2)&&(t=Array.prototype.slice.call(arguments,1)),e=(0,i.get)(e)||e,o(e,t)}function a(e){return e.split(/\s+/)}function u(e){return S.get(e)}function c(e){return g.get(e)}function l(e){return y.get(e)}function h(e){return _.get(e)}function d(e){return x.get(e)}function p(e){return j.get(e)}e.capitalize=e.underscore=e.classify=e.camelize=e.dasherize=e.decamelize=e.w=e.loc=void 0 +var f=/[ _]/g,g=new t.Cache(1e3,function(e){return u(e).replace(f,"-")}),m=/(\-|\_|\.|\s)+(.)?/g,v=/(^|\/)([A-Z])/g,y=new t.Cache(1e3,function(e){return e.replace(m,function(e,t,n){return n?n.toUpperCase():""}).replace(v,function(e){return e.toLowerCase()})}),b=/^(\-|_)+(.)?/,C=/(.)(\-|\_|\.|\s)+(.)?/g,A=/(^|\/|\.)([a-z])/g,_=new t.Cache(1e3,function(e){var t,n=function(e,t,n){return n?"_"+n.toUpperCase():""},r=function(e,t,n,r){return t+(r?r.toUpperCase():"")},i=e.split("/") +for(t=0;t<i.length;t++)i[t]=i[t].replace(b,n).replace(C,r) +return i.join("/").replace(A,function(e){return e.toUpperCase()})}),I=/([a-z\d])([A-Z]+)/g,w=/\-|\s+/g,x=new t.Cache(1e3,function(e){return e.replace(I,"$1_$2").replace(w,"_").toLowerCase()}),k=/(^|\/)([a-z\u00C0-\u024F])/g,j=new t.Cache(1e3,function(e){return e.replace(k,function(e){return e.toUpperCase()})}),E=/([a-z\d])([A-Z])/g,S=new t.Cache(1e3,function(e){return e.replace(E,"$1_$2").toLowerCase()}) +e.default={loc:s,w:a,decamelize:u,dasherize:c,camelize:l,classify:h,underscore:d,capitalize:p},e.loc=s,e.w=a,e.decamelize=u,e.dasherize=c,e.camelize=l,e.classify=h,e.underscore=d,e.capitalize=p}),e("ember-runtime/lib/utils",["exports","ember-metal","ember-utils","ember-runtime/lib/mixins/array","ember-runtime/lib/system/object"],function(e,t,n,r,i){"use strict" +function o(e){if(null===e)return"null" +if(void 0===e)return"undefined" +var t=s[a.call(e)]||"object" +return"function"===t?i.default.detect(e)&&(t="class"):"object"===t&&(e instanceof Error?t="error":e instanceof i.default?t="instance":e instanceof Date&&(t="date")),t}e.isArray=function(e){var t=e +if(!t||t.setInterval)return!1 +if(Array.isArray(t))return!0 +if(r.default.detect(t))return!0 +var n=o(t) +if("array"===n)return!0 +var i=t.length +return"number"==typeof i&&i===i&&"object"===n},e.typeOf=o +var s={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},a=Object.prototype.toString}),e("ember-utils",["exports"],function(e){"use strict" +function t(e){var t={} +t[e]=1 +for(var n in t)if(n===e)return n +return e}function n(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function r(){return++d}function i(e){var n=g+Math.floor(Math.random()*new Date),r=t("__"+e+n+"__") +return m.push(r),r}function o(e){var t,n,r,i,o +for(t=1;t<arguments.length;t++)if(n=arguments[t])for(r=Object.keys(n),i=0;i<r.length;i++)o=r[i],e[o]=n[o] +return e}function s(){}function a(e){return void 0===e.__hasSuper&&(e.__hasSuper=A(e)),e.__hasSuper}function u(e,t){function n(){var n=this._super +this._super=t +var r=e.apply(this,arguments) +return this._super=n,r}return n.wrappedFunction=e,n.__ember_observes__=e.__ember_observes__,n.__ember_listens__=e.__ember_listens__,n}function c(e,t){return null!==e&&void 0!==e&&"function"==typeof e[t]}function l(e){return null===e||void 0===e}function h(e){var t,n,r +if("string"==typeof e)return e +if(Array.isArray(e)){for(t=e.length,n="",r=0;r<t;r++)r>0&&(n+=","),l(e[r])||(n+=h(e[r])) +return n}return null!=e&&"function"==typeof e.toString?e.toString():x.call(e)}e.setProxy=e.isProxy=e.WeakSet=e.HAS_NATIVE_PROXY=e.HAS_NATIVE_SYMBOL=e.toString=e.setName=e.getName=e.makeArray=e.tryInvoke=e.canInvoke=e.lookupDescriptor=e.inspect=e.wrap=e.ROOT=e.checkHasSuper=e.intern=e.guidFor=e.generateGuid=e.GUID_KEY=e.uuid=e.dictionary=e.assignPolyfill=e.assign=e.OWNER=e.setOwner=e.getOwner=e.isInternalSymbol=e.symbol=e.NAME_KEY=void 0 +var d=0,p=new WeakMap,f=new Map,g=t("__ember"+ +new Date),m=[],v=i("OWNER"),y=Object.assign,b=/\.(_super|call\(this|apply\(this)/,C=Function.prototype.toString,A=function(){return C.call(function(){return this}).indexOf("return this")>-1?function(e){return b.test(C.call(e))}:function(){return!0}}() +s.__hasSuper=!1 +var _=Object.prototype.toString,I=Array.isArray,w=new WeakMap,x=Object.prototype.toString,k=function(){return"function"==typeof Symbol&&"[object Symbol]"===Object.prototype.toString.call(Symbol())}(),j="function"==typeof Proxy,E="function"==typeof WeakSet?WeakSet:function(){function e(){this._map=new WeakMap}return e.prototype.add=function(e){return this._map.set(e,!0),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.has=function(e){return this._map.has(e)},e}(),S=new E,T=i("NAME_KEY") +e.NAME_KEY=T,e.symbol=i,e.isInternalSymbol=function(e){return m.indexOf(e)>-1},e.getOwner=function(e){return e[v]},e.setOwner=function(e,t){e[v]=t},e.OWNER=v,e.assign=y||o,e.assignPolyfill=o,e.dictionary=function(e){var t=Object.create(e) +return t._dict=null,delete t._dict,t},e.uuid=r,e.GUID_KEY=g,e.generateGuid=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ember",i=t+r() +return n(e)&&p.set(e,i),i},e.guidFor=function(e){var t,i=void 0 +return n(e)?void 0===(i=p.get(e))&&(i="ember"+r(),p.set(e,i)):void 0===(i=f.get(e))&&(t=typeof e,i="string"===t?"st"+r():"number"===t?"nu"+r():"symbol"===t?"sy"+r():"("+e+")",f.set(e,i)),i},e.intern=t,e.checkHasSuper=A,e.ROOT=s,e.wrap=function(e,t){return a(e)?!t.wrappedFunction&&a(t)?u(e,u(t,s)):u(e,t):e},e.inspect=function(e){if(null===e)return"null" +if(void 0===e)return"undefined" +if(Array.isArray(e))return"["+e+"]" +var t=typeof e +if("object"!==t&&"symbol"!==t)return""+e +if("function"==typeof e.toString&&e.toString!==_)return e.toString() +var n=void 0,r=[] +for(var i in e)if(e.hasOwnProperty(i)){if("toString"===(n=e[i]))continue +"function"==typeof n&&(n="function() { ... }"),n&&"function"!=typeof n.toString?r.push(i+": "+_.call(n)):r.push(i+": "+n)}return"{"+r.join(", ")+"}"},e.lookupDescriptor=function(e,t){for(var n,r=e;r;){if(n=Object.getOwnPropertyDescriptor(r,t))return n +r=Object.getPrototypeOf(r)}return null},e.canInvoke=c,e.tryInvoke=function(e,t,n){var r +if(c(e,t))return r=e[t],r.apply(e,n)},e.makeArray=function(e){return null===e||void 0===e?[]:I(e)?e:[e]},e.getName=function(e){return w.get(e)},e.setName=function(e,t){(null!==e&&"object"==typeof e||"function"==typeof e)&&w.set(e,t)},e.toString=h,e.HAS_NATIVE_SYMBOL=k,e.HAS_NATIVE_PROXY=j,e.WeakSet=E,e.isProxy=function(e){return S.has(e)},e.setProxy=function(e){return S.add(e)}}),e("ember-views/index",["exports","ember-views/lib/system/jquery","ember-views/lib/system/utils","ember-views/lib/system/event_dispatcher","ember-views/lib/component_lookup","ember-views/lib/mixins/text_support","ember-views/lib/views/core_view","ember-views/lib/mixins/class_names_support","ember-views/lib/mixins/child_views_support","ember-views/lib/mixins/view_state_support","ember-views/lib/mixins/view_support","ember-views/lib/mixins/action_support","ember-views/lib/compat/attrs","ember-views/lib/system/lookup_partial","ember-views/lib/utils/lookup-component","ember-views/lib/system/action_manager","ember-views/lib/compat/fallback-view-registry"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m){"use strict" +Object.defineProperty(e,"jQuery",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"jQueryDisabled",{enumerable:!0,get:function(){return t.jQueryDisabled}}),Object.defineProperty(e,"addChildView",{enumerable:!0,get:function(){return n.addChildView}}),Object.defineProperty(e,"isSimpleClick",{enumerable:!0,get:function(){return n.isSimpleClick}}),Object.defineProperty(e,"getViewBounds",{enumerable:!0,get:function(){return n.getViewBounds}}),Object.defineProperty(e,"getViewClientRects",{enumerable:!0,get:function(){return n.getViewClientRects}}),Object.defineProperty(e,"getViewBoundingClientRect",{enumerable:!0,get:function(){return n.getViewBoundingClientRect}}),Object.defineProperty(e,"getRootViews",{enumerable:!0,get:function(){return n.getRootViews}}),Object.defineProperty(e,"getChildViews",{enumerable:!0,get:function(){return n.getChildViews}}),Object.defineProperty(e,"getViewId",{enumerable:!0,get:function(){return n.getViewId}}),Object.defineProperty(e,"getViewElement",{enumerable:!0,get:function(){return n.getViewElement}}),Object.defineProperty(e,"setViewElement",{enumerable:!0,get:function(){return n.setViewElement}}),Object.defineProperty(e,"constructStyleDeprecationMessage",{enumerable:!0,get:function(){return n.constructStyleDeprecationMessage}}),Object.defineProperty(e,"EventDispatcher",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"ComponentLookup",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"TextSupport",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"CoreView",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"ClassNamesSupport",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"ChildViewsSupport",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"ViewStateSupport",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"ViewMixin",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"ActionSupport",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"MUTABLE_CELL",{enumerable:!0,get:function(){return d.MUTABLE_CELL}}),Object.defineProperty(e,"lookupPartial",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"hasPartial",{enumerable:!0,get:function(){return p.hasPartial}}),Object.defineProperty(e,"lookupComponent",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"ActionManager",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(e,"fallbackViewRegistry",{enumerable:!0,get:function(){return m.default}})}),e("ember-views/lib/compat/attrs",["exports","ember-utils"],function(e,t){"use strict" +e.MUTABLE_CELL=void 0,e.MUTABLE_CELL=(0,t.symbol)("MUTABLE_CELL")}),e("ember-views/lib/compat/fallback-view-registry",["exports","ember-utils"],function(e,t){"use strict" +e.default=(0,t.dictionary)(null)}),e("ember-views/lib/component_lookup",["exports","ember-debug","ember-runtime"],function(e,t,n){"use strict" +e.default=n.Object.extend({componentFor:function(e,t,n){return t.factoryFor("component:"+e,n)},layoutFor:function(e,t,n){return t.lookup("template:components/"+e,n)}})}),e("ember-views/lib/mixins/action_support",["exports","ember-utils","ember-metal","ember-debug","ember-views/lib/compat/attrs"],function(e,t,n,r,i){"use strict" +function o(e,t){return t&&t[i.MUTABLE_CELL]&&(t=t.value),t}e.default=n.Mixin.create({sendAction:function(e){for(t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i] +var t,r,i,s=void 0 +void 0===e&&(e="action"),s=(0,n.get)(this,"attrs."+e)||(0,n.get)(this,e),void 0!==(s=o(this,s))&&("function"==typeof s?s.apply(void 0,r):this.triggerAction({action:s,actionContext:r}))},send:function(e){for(t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i] +var t,r,i,o=this.actions&&this.actions[e] +if(!o||!0===o.apply(this,r)){var s=(0,n.get)(this,"target") +s&&s.send.apply(s,arguments)}}})}),e("ember-views/lib/mixins/child_views_support",["exports","ember-metal","ember-views/lib/system/utils"],function(e,t,n){"use strict" +e.default=t.Mixin.create({childViews:(0,t.descriptor)({configurable:!1,enumerable:!1,get:function(){return(0,n.getChildViews)(this)}}),appendChild:function(e){(0,n.addChildView)(this,e)}})}),e("ember-views/lib/mixins/class_names_support",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict" +var r=Object.freeze([]) +e.default=t.Mixin.create({concatenatedProperties:["classNames","classNameBindings"],init:function(){this._super.apply(this,arguments)},classNames:r,classNameBindings:r})}),e("ember-views/lib/mixins/text_support",["exports","ember-metal","ember-runtime"],function(e,t,n){"use strict" +function r(e,n,r){var i=(0,t.get)(n,"attrs."+e)||(0,t.get)(n,e),o=(0,t.get)(n,"value") +n.sendAction(e,o),i&&!(0,t.get)(n,"bubbles")&&r.stopPropagation()}var i={13:"insertNewline",27:"cancel"} +e.default=t.Mixin.create(n.TargetActionSupport,{value:"",attributeBindings:["autocapitalize","autocorrect","autofocus","disabled","form","maxlength","minlength","placeholder","readonly","required","selectionDirection","spellcheck","tabindex","title"],placeholder:null,disabled:!1,maxlength:null,init:function(){this._super.apply(this,arguments),this.on("paste",this,this._elementValueDidChange),this.on("cut",this,this._elementValueDidChange),this.on("input",this,this._elementValueDidChange)},bubbles:!1,interpretKeyEvents:function(e){var t=i[e.keyCode] +if(this._elementValueDidChange(),t)return this[t](e)},_elementValueDidChange:function(){(0,t.set)(this,"value",this.element.value)},change:function(e){this._elementValueDidChange(e)},insertNewline:function(e){r("enter",this,e),r("insert-newline",this,e)},cancel:function(e){r("escape-press",this,e)},focusIn:function(e){r("focus-in",this,e)},focusOut:function(e){this._elementValueDidChange(e),r("focus-out",this,e)},keyPress:function(e){r("key-press",this,e)},keyUp:function(e){this.interpretKeyEvents(e),this.sendAction("key-up",(0,t.get)(this,"value"),e)},keyDown:function(e){this.sendAction("key-down",(0,t.get)(this,"value"),e)}})}),e("ember-views/lib/mixins/view_state_support",["exports","ember-metal"],function(e,t){"use strict" +e.default=t.Mixin.create({_transitionTo:function(e){var t=this._currentState,n=this._currentState=this._states[e] +this._state=e,t&&t.exit&&t.exit(this),n.enter&&n.enter(this)}})}),e("ember-views/lib/mixins/view_support",["exports","ember-utils","ember-metal","ember-debug","ember-environment","ember-views/lib/system/utils","ember-views/lib/system/jquery"],function(e,t,n,r,i,o,s){"use strict" +function a(){return this}e.default=n.Mixin.create({concatenatedProperties:["attributeBindings"],nearestOfType:function(e){for(var t=this.parentView,r=e instanceof n.Mixin?function(t){return e.detect(t)}:function(t){return e.detect(t.constructor)};t;){if(r(t))return t +t=t.parentView}},nearestWithProperty:function(e){for(var t=this.parentView;t;){if(e in t)return t +t=t.parentView}},rerender:function(){return this._currentState.rerender(this)},element:(0,n.descriptor)({configurable:!1,enumerable:!1,get:function(){return this.renderer.getElement(this)}}),$:function(e){if(this.element)return e?(0,s.default)(e,this.element):(0,s.default)(this.element)},appendTo:function(e){var t=this._environment||i.environment,n=void 0 +return n=t.hasDOM&&"string"==typeof e?document.querySelector(e):e,this.renderer.appendTo(this,n),this},append:function(){return this.appendTo(document.body)},elementId:null,findElementInParentElement:function(e){var t="#"+this.elementId +return(0,s.default)(t)[0]||(0,s.default)(t,e)[0]},willInsertElement:a,didInsertElement:a,willClearRender:a,destroy:function(){this._super.apply(this,arguments),this._currentState.destroy(this)},willDestroyElement:a,parentViewDidChange:a,tagName:null,init:function(){this._super.apply(this,arguments),this.elementId||""===this.tagName||(this.elementId=(0,t.guidFor)(this)),i.environment._ENABLE_DID_INIT_ATTRS_SUPPORT},handleEvent:function(e,t){return this._currentState.handleEvent(this,e,t)}})}),e("ember-views/lib/system/action_manager",["exports"],function(e){"use strict" +function t(){}e.default=t,t.registeredActions={}}),e("ember-views/lib/system/event_dispatcher",["exports","ember-utils","ember-debug","ember-metal","ember-runtime","ember-views/lib/system/jquery","ember-views/lib/system/action_manager","ember-views/lib/compat/fallback-view-registry"],function(e,t,n,r,i,o,s,a){"use strict" +var u=void 0!==o.default +e.default=i.Object.extend({events:{touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"},rootElement:"body",init:function(){this._super(),this._eventHandlers=Object.create(null)},setup:function(e,n){var i=void 0,s=void 0,a=this._finalEvents=(0,t.assign)({},(0,r.get)(this,"events"),e);(0,r.isNone)(n)||(0,r.set)(this,"rootElement",n) +var c=(0,r.get)(this,"rootElement") +if(u){if(s=(0,o.default)(c),s.addClass("ember-application"),!s.is(".ember-application"))throw new TypeError("Unable to add 'ember-application' class to root element ("+(s.selector||s[0].tagName)+"). Make sure you set rootElement to the body or an element in the body.")}else s="string"!=typeof c?c:document.querySelector(c),s.classList.add("ember-application") +var l=this._getViewRegistry() +for(i in a)a.hasOwnProperty(i)&&this.setupHandler(s,i,a[i],l)},setupHandler:function(e,t,n,r){var i,o,a +null!==n&&(u?(e.on(t+".ember",".ember-view",function(e){var t=r[this.id],i=!0 +return t&&(i=t.handleEvent(n,e)),i}),e.on(t+".ember","[data-ember-action]",function(e){var t,r,i,o,a=e.currentTarget.attributes,u=[] +for(t=0;t<a.length;t++)r=a.item(t),i=r.name,-1!==i.lastIndexOf("data-ember-action-",0)&&(o=s.default.registeredActions[r.value])&&o.eventName===n&&-1===u.indexOf(o)&&(o.handler(e),u.push(o))})):(i=function(e,t){var i=r[e.id],o=!0 +return i&&(o=i.handleEvent(n,t)),o},o=function(e,t){var r,i,o,a,u,c,l,h=e.getAttribute("data-ember-action"),d=s.default.registeredActions[h] +if(""===h)for(r=e.attributes,i=r.length,d=[],o=0;o<i;o++)a=r.item(o),u=a.name,0===u.indexOf("data-ember-action-")&&(d=d.concat(s.default.registeredActions[a.value])) +if(d)for(c=0;c<d.length;c++)if((l=d[c])&&l.eventName===n)return l.handler(t)},a=this._eventHandlers[t]=function(e){var t=e.target +do{if(r[t.id]){if(!1===i(t,e)){e.preventDefault(),e.stopPropagation() +break}}else if(t.hasAttribute("data-ember-action")&&!1===o(t,e))break +t=t.parentNode}while(t&&1===t.nodeType)},e.addEventListener(t,a)))},_getViewRegistry:function(){var e=(0,t.getOwner)(this) +return e&&e.lookup("-view-registry:main")||a.default},destroy:function(){var e=(0,r.get)(this,"rootElement"),t=void 0 +if(t=e.nodeType?e:document.querySelector(e)){if(u)(0,o.default)(e).off(".ember","**") +else for(var n in this._eventHandlers)t.removeEventListener(n,this._eventHandlers[n]) +return t.classList.remove("ember-application"),this._super.apply(this,arguments)}},toString:function(){return"(EventDispatcher)"}})}),e("ember-views/lib/system/jquery",["exports","ember-environment"],function(e,t){"use strict" +e.jQueryDisabled=void 0 +var n=void 0 +e.jQueryDisabled=!1 +t.environment.hasDOM&&(n=t.context.imports.jQuery,n?n.event.addProp?n.event.addProp("dataTransfer"):["dragstart","drag","dragenter","dragleave","dragover","drop","dragend"].forEach(function(e){n.event.fixHooks[e]={props:["dataTransfer"]}}):e.jQueryDisabled=!0),e.default=n}),e("ember-views/lib/system/lookup_partial",["exports","ember-debug"],function(e,t){"use strict" +function n(e){var t=e.split("/"),n=t[t.length-1] +return t[t.length-1]="_"+n,t.join("/")}function r(e,n,r){if(r){if(!e)throw new t.Error("Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA") +return e.lookup("template:"+n)||e.lookup("template:"+r)}}e.default=function(e,t){if(null!=e){var i=r(t,n(e),e) +return i}},e.hasPartial=function(e,r){if(!r)throw new t.Error("Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA") +return r.hasRegistration("template:"+n(e))||r.hasRegistration("template:"+e)}}),e("ember-views/lib/system/utils",["exports","ember-utils"],function(e,t){"use strict" +function n(e){return""!==e.tagName&&e.elementId?e.elementId:(0,t.guidFor)(e)}function r(e){var t=new Set +return u.set(e,t),t}function i(e,t){var n=[],r=u.get(e) +return void 0!==r&&r.forEach(function(e){var r=t[e] +!r||r.isDestroying||r.isDestroyed||n.push(r)}),n}function o(e){return e.renderer.getBounds(e)}function s(e){var t=o(e),n=document.createRange() +return n.setStartBefore(t.firstNode),n.setEndAfter(t.lastNode),n}e.elMatches=void 0,e.isSimpleClick=function(e){var t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,n=e.which>1 +return!t&&!n},e.constructStyleDeprecationMessage=function(e){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes. Style affected: "'+e+'"'},e.getRootViews=function(e){var t=e.lookup("-view-registry:main"),n=[] +return Object.keys(t).forEach(function(e){var r=t[e] +null===r.parentView&&n.push(r)}),n},e.getViewId=n,e.getViewElement=function(e){return e[a]},e.initViewElement=function(e){e[a]=null},e.setViewElement=function(e,t){return e[a]=t},e.getChildViews=function(e){return i(e,(0,t.getOwner)(e).lookup("-view-registry:main"))},e.initChildViews=r,e.addChildView=function(e,t){var i=u.get(e) +void 0===i&&(i=r(e)),i.add(n(t))},e.collectChildViews=i,e.getViewBounds=o,e.getViewRange=s,e.getViewClientRects=function(e){return s(e).getClientRects()},e.getViewBoundingClientRect=function(e){return s(e).getBoundingClientRect()},e.matches=function(e,t){return c.call(e,t)} +var a=(0,t.symbol)("VIEW_ELEMENT"),u=new WeakMap,c=e.elMatches="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector)}),e("ember-views/lib/utils/lookup-component",["exports"],function(e){"use strict" +function t(e,t,n,r){var i=e.componentFor(n,t,r) +return{layout:e.layoutFor(n,t,r),component:i}}e.default=function(e,n,r){var i,o=e.lookup("component-lookup:main") +return r&&(r.source||r.namespace)&&(i=t(o,e,n,r),i.component||i.layout)?i:t(o,e,n)}}),e("ember-views/lib/views/core_view",["exports","ember-runtime","ember-views/lib/system/utils","ember-views/lib/views/states"],function(e,t,n,r){"use strict" +var i=t.FrameworkObject.extend(t.Evented,t.ActionHandler,{isView:!0,_states:(0,r.cloneStates)(r.states),init:function(){if(this._super.apply(this,arguments),this._state="preRender",this._currentState=this._states.preRender,(0,n.initViewElement)(this),!this.renderer)throw new Error("Cannot instantiate a component without a renderer. Please ensure that you are creating "+this+" with a proper container/registry.")},parentView:null,instrumentDetails:function(e){return e.object=this.toString(),e.containerKey=this._debugContainerKey,e.view=this,e},trigger:function(e){for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +this._super.apply(this,arguments) +var t,n,r,i=this[e] +if("function"==typeof i)return i.apply(this,n)},has:function(e){return"function"==typeof this[e]||this._super(e)}}) +i.reopenClass({isViewFactory:!0}),e.default=i}),e("ember-views/lib/views/states",["exports","ember-utils","ember-views/lib/views/states/default","ember-views/lib/views/states/pre_render","ember-views/lib/views/states/has_element","ember-views/lib/views/states/in_dom","ember-views/lib/views/states/destroying"],function(e,t,n,r,i,o,s){"use strict" +e.states=void 0,e.cloneStates=function(e){var n={} +n._default={},n.preRender=Object.create(n._default),n.destroying=Object.create(n._default),n.hasElement=Object.create(n._default),n.inDOM=Object.create(n.hasElement) +for(var r in e)e.hasOwnProperty(r)&&(0,t.assign)(n[r],e[r]) +return n},e.states={_default:n.default,preRender:r.default,inDOM:o.default,hasElement:i.default,destroying:s.default}}),e("ember-views/lib/views/states/default",["exports","ember-debug"],function(e,t){"use strict" +e.default={appendChild:function(){throw new t.Error("You can't use appendChild outside of the rendering process")},handleEvent:function(){return!0},rerender:function(){},destroy:function(){}}}),e("ember-views/lib/views/states/destroying",["exports","ember-utils","ember-debug","ember-views/lib/views/states/default"],function(e,t,n,r){"use strict" +var i=Object.create(r.default);(0,t.assign)(i,{appendChild:function(){throw new n.Error("You can't call appendChild on a view being destroyed")},rerender:function(){throw new n.Error("You can't call rerender on a view being destroyed")}}),e.default=i}),e("ember-views/lib/views/states/has_element",["exports","ember-utils","ember-views/lib/views/states/default","ember-metal"],function(e,t,n,r){"use strict" +var i=Object.create(n.default);(0,t.assign)(i,{rerender:function(e){e.renderer.rerender(e)},destroy:function(e){e.renderer.remove(e)},handleEvent:function(e,t,n){return!e.has(t)||(0,r.flaggedInstrument)("interaction."+t,{event:n,view:e},function(){return(0,r.join)(e,e.trigger,t,n)})}}),e.default=i}),e("ember-views/lib/views/states/in_dom",["exports","ember-utils","ember-metal","ember-debug","ember-views/lib/views/states/has_element"],function(e,t,n,r,i){"use strict" +var o=Object.create(i.default);(0,t.assign)(o,{enter:function(e){e.renderer.register(e)},exit:function(e){e.renderer.unregister(e)}}),e.default=o}),e("ember-views/lib/views/states/pre_render",["exports","ember-views/lib/views/states/default"],function(e,t){"use strict" +e.default=Object.create(t.default)}),e("ember/features",["exports","ember-environment","ember-utils"],function(e,t,n){"use strict" +e.FEATURES=e.DEFAULT_FEATURES=void 0 +var r=e.DEFAULT_FEATURES={"features-stripped-test":!1,"ember-libraries-isregistered":!1,"ember-improved-instrumentation":!1,"ember-glimmer-named-arguments":!0,"ember-routing-router-service":!0,"ember-engines-mount-params":!0,"ember-module-unification":!1,"glimmer-custom-component-manager":!1,"ember-template-block-let-helper":!0,"ember-metal-tracked-properties":!1,"ember-glimmer-detect-backtracking-rerender":!1} +e.FEATURES=(0,n.assign)(r,t.ENV.FEATURES)}),e("ember/index",["exports","require","ember-environment","node-module","ember-utils","container","ember-metal","ember/features","ember-debug","backburner","ember-console","ember-runtime","ember-glimmer","ember/version","ember-views","ember-routing","ember-application","ember-extension-support"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m,v){"use strict" +var y,b="object"==typeof n.context.imports.Ember&&n.context.imports.Ember||{} +b.isNamespace=!0,b.toString=function(){return"Ember"},Object.defineProperty(b,"ENV",{get:n.getENV,enumerable:!1}),Object.defineProperty(b,"lookup",{get:n.getLookup,set:n.setLookup,enumerable:!1}),Object.defineProperty(b,"EXTEND_PROTOTYPES",{enumerable:!1,get:function(){return n.ENV.EXTEND_PROTOTYPES}}),b.getOwner=i.getOwner,b.setOwner=i.setOwner,b.generateGuid=i.generateGuid,b.GUID_KEY=i.GUID_KEY,b.guidFor=i.guidFor,b.inspect=i.inspect,b.makeArray=i.makeArray,b.canInvoke=i.canInvoke,b.tryInvoke=i.tryInvoke,b.wrap=i.wrap,b.uuid=i.uuid,b.assign=i.assign,b.NAME_KEY=i.NAME_KEY,b.Container=o.Container,b.Registry=o.Registry,b.assert=u.assert,b.warn=u.warn,b.debug=u.debug,b.deprecate=u.deprecate,b.deprecateFunc=u.deprecateFunc,b.runInDebug=u.runInDebug,b.Error=u.Error,b.Debug={registerDeprecationHandler:u.registerDeprecationHandler,registerWarnHandler:u.registerWarnHandler} +var C=s._globalsComputed +b.computed=C,C.alias=s.alias,b.ComputedProperty=s.ComputedProperty,b.cacheFor=s.getCachedValueFor,b.merge=s.merge,b.instrument=s.instrument,b.subscribe=s.instrumentationSubscribe,b.Instrumentation={instrument:s.instrument,subscribe:s.instrumentationSubscribe,unsubscribe:s.instrumentationUnsubscribe,reset:s.instrumentationReset},b.meta=s.meta,b.get=s.get,b.getWithDefault=s.getWithDefault,b._getPath=s._getPath,b.set=s.set,b.trySet=s.trySet,b.FEATURES=a.FEATURES,b.FEATURES.isEnabled=u.isFeatureEnabled,b._Cache=s.Cache,b.on=s.on,b.addListener=s.addListener,b.removeListener=s.removeListener,b.sendEvent=s.sendEvent,b.hasListeners=s.hasListeners,b.isNone=s.isNone,b.isEmpty=s.isEmpty,b.isBlank=s.isBlank,b.isPresent=s.isPresent,b.run=s._globalsRun,b.run.backburner=s.backburner,b.run.begin=s.begin,b.run.bind=s.bind +b.run.cancel=s.cancel,b.run.debounce=s.debounce,b.run.end=s.end,b.run.hasScheduledTimers=s.hasScheduledTimers,b.run.join=s.join,b.run.later=s.later,b.run.next=s.next,b.run.once=s.once,b.run.schedule=s.schedule,b.run.scheduleOnce=s.scheduleOnce,b.run.throttle=s.throttle,b.run.cancelTimers=s.cancelTimers,Object.defineProperty(b.run,"currentRunLoop",{get:s.getCurrentRunLoop,enumerable:!1}),b.propertyWillChange=s.propertyWillChange,b.propertyDidChange=s.propertyDidChange,b.notifyPropertyChange=s.notifyPropertyChange,b.overrideChains=s.overrideChains,b.beginPropertyChanges=s.beginPropertyChanges,b.endPropertyChanges=s.endPropertyChanges,b.changeProperties=s.changeProperties,b.platform={defineProperty:!0,hasPropertyAccessors:!0},b.defineProperty=s.defineProperty,b.watchKey=s.watchKey,b.unwatchKey=s.unwatchKey,b.removeChainWatcher=s.removeChainWatcher,b._ChainNode=s.ChainNode,b.finishChains=s.finishChains,b.watchPath=s.watchPath,b.unwatchPath=s.unwatchPath,b.watch=s.watch +b.isWatching=s.isWatching,b.unwatch=s.unwatch,b.destroy=s.deleteMeta,b.libraries=s.libraries,b.OrderedSet=s.OrderedSet,b.Map=s.Map,b.MapWithDefault=s.MapWithDefault,b.getProperties=s.getProperties,b.setProperties=s.setProperties,b.expandProperties=s.expandProperties,b.addObserver=s.addObserver,b.removeObserver=s.removeObserver,b.aliasMethod=s.aliasMethod,b.observer=s.observer,b.mixin=s.mixin,b.Mixin=s.Mixin,Object.defineProperty(b,"onerror",{get:s.getOnerror,set:s.setOnerror,enumerable:!1}),Object.defineProperty(b,"testing",{get:u.isTesting,set:u.setTesting,enumerable:!1}),b._Backburner=c.default,b.Logger=l.default,b.A=h.A,b.String=h.String,b.Object=h.Object,b._RegistryProxyMixin=h.RegistryProxyMixin,b._ContainerProxyMixin=h.ContainerProxyMixin,b.compare=h.compare,b.copy=h.copy,b.isEqual=h.isEqual,b.inject=h.inject,b.Array=h.Array +b.Comparable=h.Comparable,b.Enumerable=h.Enumerable,b.ArrayProxy=h.ArrayProxy,b.ObjectProxy=h.ObjectProxy,b.ActionHandler=h.ActionHandler,b.CoreObject=h.CoreObject,b.NativeArray=h.NativeArray,b.Copyable=h.Copyable,b.MutableEnumerable=h.MutableEnumerable,b.MutableArray=h.MutableArray,b.TargetActionSupport=h.TargetActionSupport,b.Evented=h.Evented,b.PromiseProxyMixin=h.PromiseProxyMixin,b.Observable=h.Observable,b.typeOf=h.typeOf,b.isArray=h.isArray,b.Object=h.Object,b.onLoad=h.onLoad,b.runLoadHooks=h.runLoadHooks,b.Controller=h.Controller,b.ControllerMixin=h.ControllerMixin,b.Service=h.Service,b._ProxyMixin=h._ProxyMixin,b.RSVP=h.RSVP,b.Namespace=h.Namespace,C.empty=h.empty,C.notEmpty=h.notEmpty,C.none=h.none,C.not=h.not,C.bool=h.bool +C.match=h.match,C.equal=h.equal,C.gt=h.gt,C.gte=h.gte,C.lt=h.lt,C.lte=h.lte,C.oneWay=h.oneWay,C.reads=h.oneWay,C.readOnly=h.readOnly,C.deprecatingAlias=h.deprecatingAlias,C.and=h.and,C.or=h.or,C.sum=h.sum,C.min=h.min,C.max=h.max,C.map=h.map,C.sort=h.sort,C.setDiff=h.setDiff,C.mapBy=h.mapBy,C.filter=h.filter,C.filterBy=h.filterBy,C.uniq=h.uniq,C.uniqBy=h.uniqBy,C.union=h.union,C.intersect=h.intersect,C.collect=h.collect,Object.defineProperty(b,"STRINGS",{configurable:!1,get:h.getStrings,set:h.setStrings}),Object.defineProperty(b,"BOOTED",{configurable:!1,enumerable:!1,get:s.isNamespaceSearchDisabled,set:s.setNamespaceSearchDisabled}),b.Component=d.Component,d.Helper.helper=d.helper +b.Helper=d.Helper,b.Checkbox=d.Checkbox,b.TextField=d.TextField,b.TextArea=d.TextArea,b.LinkComponent=d.LinkComponent,b._setComponentManager=d.componentManager,b.Handlebars={template:d.template,Utils:{escapeExpression:d.escapeExpression}},b.HTMLBars={template:d.template},n.ENV.EXTEND_PROTOTYPES.String&&(String.prototype.htmlSafe=function(){return(0,d.htmlSafe)(this)}),h.String.htmlSafe=d.htmlSafe,h.String.isHTMLSafe=d.isHTMLSafe,Object.defineProperty(b,"TEMPLATES",{get:d.getTemplates,set:d.setTemplates,configurable:!1,enumerable:!1}),b.VERSION=p.default,b.$=f.jQuery,b.ViewUtils={isSimpleClick:f.isSimpleClick,getViewElement:f.getViewElement,getViewBounds:f.getViewBounds,getViewClientRects:f.getViewClientRects,getViewBoundingClientRect:f.getViewBoundingClientRect,getRootViews:f.getRootViews,getChildViews:f.getChildViews,isSerializationFirstNode:d.isSerializationFirstNode},b.TextSupport=f.TextSupport,b.ComponentLookup=f.ComponentLookup,b.EventDispatcher=f.EventDispatcher,b.Location=g.Location,b.AutoLocation=g.AutoLocation,b.HashLocation=g.HashLocation,b.HistoryLocation=g.HistoryLocation,b.NoneLocation=g.NoneLocation,b.controllerFor=g.controllerFor,b.generateControllerFactory=g.generateControllerFactory,b.generateController=g.generateController,b.RouterDSL=g.RouterDSL,b.Router=g.Router,b.Route=g.Route,b.Application=m.Application +b.ApplicationInstance=m.ApplicationInstance,b.Engine=m.Engine,b.EngineInstance=m.EngineInstance,b.DefaultResolver=b.Resolver=m.Resolver,(0,h.runLoadHooks)("Ember.Application",m.Application),b.DataAdapter=v.DataAdapter,b.ContainerDebugAdapter=v.ContainerDebugAdapter,(0,t.has)("ember-template-compiler")&&(0,t.default)("ember-template-compiler"),(0,t.has)("ember-testing")&&(y=(0,t.default)("ember-testing"),b.Test=y.Test,b.Test.Adapter=y.Adapter,b.Test.QUnitAdapter=y.QUnitAdapter,b.setupForTesting=y.setupForTesting),(0,h.runLoadHooks)("Ember"),e.default=b,r.IS_NODE?r.module.exports=b:n.context.exports.Ember=n.context.exports.Em=b}),e("ember/version",["exports"],function(e){"use strict" +e.default="3.2.0"}),e("node-module",["exports"],function(e){var t="object"==typeof module&&"function"==typeof module.require +t?(e.require=module.require,e.module=module,e.IS_NODE=t):(e.require=null,e.module=null,e.IS_NODE=t)}) +e("route-recognizer",["exports"],function(e){"use strict" +function t(){var e=m(null) +return e.__=void 0,delete e.__,e}function n(e,t,r){return function(i,o){var s=e+i +if(!o)return new v(s,t,r) +o(n(s,t,r))}}function r(e,t,n){var r,i=0 +for(r=0;r<e.length;r++)i+=e[r].path.length +t=t.substr(i) +var o={path:t,handler:n} +e.push(o)}function i(e,t,n,o){var s,a,u,c,l=t.routes,h=Object.keys(l) +for(s=0;s<h.length;s++)a=h[s],u=e.slice(),r(u,a,l[a]),c=t.children[a],c?i(u,c,n,o):n.call(o,u)}function o(e){return e.split("/").map(s).join("/")}function s(e){return e.length<3||-1===e.indexOf("%")?e:decodeURIComponent(e).replace(b,encodeURIComponent)}function a(e){return encodeURIComponent(e).replace(C,decodeURIComponent)}function u(e,t){if("object"!=typeof e||null===e)throw new Error("You must pass an object as the second argument to `generate`.") +if(!I.call(e,t))throw new Error("You must provide param `"+t+"` to `generate`.") +var n=e[t],r="string"==typeof n?n:""+n +if(0===r.length)throw new Error("You must provide a param `"+t+"`.") +return r}function c(e,t,n){t.length>0&&47===t.charCodeAt(0)&&(t=t.substr(1)) +var r,i,o,a,u=t.split("/"),c=void 0,l=void 0 +for(r=0;r<u.length;r++)i=u[r],o=0,a=0,a=""===i?4:58===i.charCodeAt(0)?1:42===i.charCodeAt(0)?2:0,o=2<<a,12&o&&(i=i.slice(1),c=c||[],c.push(i),l=l||[],l.push(0!=(4&o))),14&o&&n[a]++,e.push({type:a,value:s(i)}) +return{names:c||E,shouldDecodes:l||E}}function l(e,t,n){return e.char===t&&e.negate===n}function h(e,t){return e.negate?e.char!==t&&-1!==e.char:e.char===t||-1===e.char}function d(e){return e.sort(function(e,t){var n=e.types||[0,0,0],r=n[0],i=n[1],o=n[2],s=t.types||[0,0,0],a=s[0],u=s[1],c=s[2] +if(o!==c)return o-c +if(o){if(r!==a)return a-r +if(i!==u)return u-i}return i!==u?i-u:r!==a?a-r:0})}function p(e,t){var n,r,i,o=[] +for(n=0,r=e.length;n<r;n++)i=e[n],o=o.concat(i.match(t)) +return o}function f(e,t,n){var r,i,o,s,a,u,c,l,h,d=e.handlers,p=e.regex() +if(!p||!d)throw new Error("state not initialized") +var f=t.match(p),g=1,m=new T(n) +for(m.length=d.length,r=0;r<d.length;r++){if(i=d[r],o=i.names,s=i.shouldDecodes,a=j,u=!1,o!==E&&s!==E)for(c=0;c<o.length;c++)u=!0,l=o[c],h=f&&f[g++],a===j&&(a={}),P.ENCODE_AND_DECODE_PATH_SEGMENTS&&s[c]?a[l]=h&&decodeURIComponent(h):a[l]=h +m[r]={handler:i.handler,params:a,isDynamic:u}}return m}function g(e){e=e.replace(/\+/gm,"%20") +var t +try{t=decodeURIComponent(e)}catch(e){t=""}return t}var m=Object.create,v=function(e,t,n){this.path=e,this.matcher=t,this.delegate=n} +v.prototype.to=function(e,t){var n=this.delegate +if(n&&n.willAddRoute&&(e=n.willAddRoute(this.matcher.target,e)),this.matcher.add(this.path,e),t){if(0===t.length)throw new Error("You must have an argument in the function passed to `to`") +this.matcher.addChild(this.path,e,t,this.delegate)}} +var y=function(e){this.routes=t(),this.children=t(),this.target=e} +y.prototype.add=function(e,t){this.routes[e]=t},y.prototype.addChild=function(e,t,r,i){var o=new y(t) +this.children[e]=o +var s=n(e,o,i) +i&&i.contextEntered&&i.contextEntered(t,s),r(s)} +var b=/%|\//g,C=/%(?:2(?:4|6|B|C)|3(?:B|D|A)|40)/g,A=/(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\)/g,_=Array.isArray,I=Object.prototype.hasOwnProperty,w=[] +w[0]=function(e,t){var n,r,i=t,o=e.value +for(n=0;n<o.length;n++)r=o.charCodeAt(n),i=i.put(r,!1,!1) +return i},w[1]=function(e,t){return t.put(47,!0,!0)},w[2]=function(e,t){return t.put(-1,!1,!0)},w[4]=function(e,t){return t} +var x=[] +x[0]=function(e){return e.value.replace(A,"\\$1")},x[1]=function(){return"([^/]+)"},x[2]=function(){return"(.+)"},x[4]=function(){return""} +var k=[] +k[0]=function(e){return e.value},k[1]=function(e,t){var n=u(t,e.value) +return P.ENCODE_AND_DECODE_PATH_SEGMENTS?a(n):n},k[2]=function(e,t){return u(t,e.value)},k[4]=function(){return""} +var j=Object.freeze({}),E=Object.freeze([]),S=function(e,t,n,r,i){this.states=e,this.id=t,this.char=n,this.negate=r,this.nextStates=i?t:null,this.pattern="",this._regex=void 0,this.handlers=void 0,this.types=void 0} +S.prototype.regex=function(){return this._regex||(this._regex=new RegExp(this.pattern)),this._regex},S.prototype.get=function(e,t){var n,r,i,o=this,s=this.nextStates +if(null!==s)if(_(s)){for(n=0;n<s.length;n++)if(r=o.states[s[n]],l(r,e,t))return r}else if(i=this.states[s],l(i,e,t))return i},S.prototype.put=function(e,t,n){var r +if(r=this.get(e,t))return r +var i=this.states +return r=new S(i,i.length,e,t,n),i[i.length]=r,null==this.nextStates?this.nextStates=r.id:_(this.nextStates)?this.nextStates.push(r.id):this.nextStates=[this.nextStates,r.id],r},S.prototype.match=function(e){var t,n,r,i=this,o=this.nextStates +if(!o)return[] +var s=[] +if(_(o))for(t=0;t<o.length;t++)n=i.states[o[t]],h(n,e)&&s.push(n) +else r=this.states[o],h(r,e)&&s.push(r) +return s} +var T=function(e){this.length=0,this.queryParams=e||{}} +T.prototype.splice=Array.prototype.splice,T.prototype.slice=Array.prototype.slice,T.prototype.push=Array.prototype.push +var P=function(){this.names=t() +var e=[],n=new S(e,0,-1,!0,!1) +e[0]=n,this.states=e,this.rootState=n} +P.prototype.add=function(e,t){var n,r,i,o,s,a,u=this.rootState,l="^",h=[0,0,0],d=new Array(e.length),p=[],f=!0,g=0 +for(n=0;n<e.length;n++){for(r=e[n],i=c(p,r.path,h),o=i.names,s=i.shouldDecodes;g<p.length;g++)a=p[g],4!==a.type&&(f=!1,u=u.put(47,!1,!1),l+="/",u=w[a.type](a,u),l+=x[a.type](a)) +d[n]={handler:r.handler,names:o,shouldDecodes:s}}f&&(u=u.put(47,!1,!1),l+="/"),u.handlers=d,u.pattern=l+"$",u.types=h +var m +"object"==typeof t&&null!==t&&t.as&&(m=t.as),m&&(this.names[m]={segments:p,handlers:d})},P.prototype.handlersFor=function(e){var t,n,r=this.names[e] +if(!r)throw new Error("There is no route named "+e) +var i=new Array(r.handlers.length) +for(t=0;t<r.handlers.length;t++)n=r.handlers[t],i[t]=n +return i},P.prototype.hasRoute=function(e){return!!this.names[e]},P.prototype.generate=function(e,t){var n,r,i=this.names[e],o="" +if(!i)throw new Error("There is no route named "+e) +var s=i.segments +for(n=0;n<s.length;n++)r=s[n],4!==r.type&&(o+="/",o+=k[r.type](r,t)) +return"/"!==o.charAt(0)&&(o="/"+o),t&&t.queryParams&&(o+=this.generateQueryString(t.queryParams)),o},P.prototype.generateQueryString=function(e){var t,n,r,i,o,s,a=[],u=Object.keys(e) +for(u.sort(),t=0;t<u.length;t++)if(n=u[t],null!=(r=e[n]))if(i=encodeURIComponent(n),_(r))for(o=0;o<r.length;o++)s=n+"[]="+encodeURIComponent(r[o]),a.push(s) +else i+="="+encodeURIComponent(r),a.push(i) +return 0===a.length?"":"?"+a.join("&")},P.prototype.parseQueryString=function(e){var t,n,r,i,o,s,a=e.split("&"),u={} +for(t=0;t<a.length;t++)n=a[t].split("="),r=g(n[0]),i=r.length,o=!1,s=void 0,1===n.length?s="true":(i>2&&"[]"===r.slice(i-2)&&(o=!0,r=r.slice(0,i-2),u[r]||(u[r]=[])),s=n[1]?g(n[1]):""),o?u[r].push(s):u[r]=s +return u},P.prototype.recognize=function(e){var t,n,r,i,s=[this.rootState],a={},u=!1,c=e.indexOf("#");-1!==c&&(e=e.substr(0,c)) +var l=e.indexOf("?");-1!==l&&(n=e.substr(l+1,e.length),e=e.substr(0,l),a=this.parseQueryString(n)),"/"!==e.charAt(0)&&(e="/"+e) +var h=e +P.ENCODE_AND_DECODE_PATH_SEGMENTS?e=o(e):(e=decodeURI(e),h=decodeURI(h)) +var g=e.length +for(g>1&&"/"===e.charAt(g-1)&&(e=e.substr(0,g-1),h=h.substr(0,h.length-1),u=!0),r=0;r<e.length&&(s=p(s,e.charCodeAt(r)),s.length);r++);var m=[] +for(i=0;i<s.length;i++)s[i].handlers&&m.push(s[i]) +s=d(m) +var v=m[0] +return v&&v.handlers&&(u&&v.pattern&&"(.+)$"===v.pattern.slice(-5)&&(h+="/"),t=f(v,h,a)),t},P.VERSION="0.3.3",P.ENCODE_AND_DECODE_PATH_SEGMENTS=!0,P.Normalizer={normalizeSegment:s,normalizePath:o,encodePathSegment:a},P.prototype.map=function(e,t){var r=new y +e(n("",r,this.delegate)),i([],r,function(e){t?t(this,e):this.add(e)},this)},e.default=P}),e("router",["exports","ember-babel","rsvp","route-recognizer"],function(e,t,n,r){"use strict" +function i(e){return("object"==typeof e&&null!==e||"function"==typeof e)&&"function"==typeof e.then}function o(e,t){for(var n in t)L.call(t,n)&&(e[n]=t[n])}function s(e){var t=e&&e.length,n=void 0,r=void 0 +return t&&t>0&&e[t-1]&&e[t-1].hasOwnProperty("queryParams")?(r=e[t-1].queryParams,n=M.call(e,0,t-1),[n,r]):[e,null]}function a(e){var t,n,r +for(var i in e)if("number"==typeof(t=e[i]))e[i]=""+t +else if(Array.isArray(t))for(n=0,r=t.length;n<r;n++)t[n]=""+t[n]}function u(e,t,n){e.log&&(3===arguments.length?e.log("Transition #"+t+": "+n):(n=t,e.log(n)))}function c(e){return"string"==typeof e||e instanceof String||"number"==typeof e||e instanceof Number}function l(e,t){var n,r +for(n=0,r=e.length;n<r&&!1!==t(e[n]);n++);}function h(e,t,n,r){function i(e,t,n){n.events[e].apply(n,t)}if(e.triggerEvent)return void e.triggerEvent(t,n,r) +var o,s,a,u=r.shift() +if(!t){if(n)return +throw new Error("Could not trigger event '"+u+"'. There are no active handlers")}var c=!1 +for(o=t.length-1;o>=0;o--)if(s=t[o],a=s.handler){if(a.events&&a.events[u]){if(!0!==a.events[u].apply(a,r))return +c=!0}}else s.handlerPromise.then(i.bind(null,u,r)) +if("error"===u&&"UnrecognizedURLError"===r[0].name)throw r[0] +if(!c&&!n)throw new Error("Nothing handled the event '"+u+"'.")}function d(e,t){var n,r,i=void 0,s={all:{},changed:{},removed:{}} +o(s.all,t) +var u=!1 +a(e),a(t) +for(i in e)L.call(e,i)&&(L.call(t,i)||(u=!0,s.removed[i]=e[i])) +for(i in t)if(L.call(t,i))if(Array.isArray(e[i])&&Array.isArray(t[i]))if(e[i].length!==t[i].length)s.changed[i]=t[i],u=!0 +else for(n=0,r=e[i].length;n<r;n++)e[i][n]!==t[i][n]&&(s.changed[i]=t[i],u=!0) +else e[i]!==t[i]&&(s.changed[i]=t[i],u=!0) +return u?s:void 0}function p(e){return"Router: "+e}function f(e,t){if(e){var n="_"+t +return e[n]&&n||e[t]&&t}}function g(e,t,n,r){var i=f(e,t) +return i&&e[i].call(e,n,r)}function m(e,t,n){var r=f(e,t) +if(r)return 0===n.length?e[r].call(e):1===n.length?e[r].call(e,n[0]):2===n.length?e[r].call(e,n[0],n[1]):e[r].apply(e,n)}function v(e){if(!(this instanceof v))return new v(e) +var t=Error.call(this,e) +Error.captureStackTrace?Error.captureStackTrace(this,v):this.stack=t.stack,this.description=t.description,this.fileName=t.fileName,this.lineNumber=t.lineNumber,this.message=t.message||"TransitionAborted",this.name="TransitionAborted",this.number=t.number,this.code=t.code}function y(e){return u(e.router,e.sequence,"detected abort."),new v}function b(e,t){if(!e^!t)return!1 +if(!e)return!0 +for(var n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1 +return!0}function C(e,t){var n=C.klasses[e],r=new n(t||{}) +return r.factory=C,r}function A(e){if(!(this instanceof A))return new A(e) +var t=Error.call(this,e) +Error.captureStackTrace?Error.captureStackTrace(this,A):this.stack=t.stack,this.description=t.description,this.fileName=t.fileName,this.lineNumber=t.lineNumber,this.message=t.message||"UnrecognizedURL",this.name="UnrecognizedURLError",this.number=t.number,this.code=t.code}function _(e,t){var n,r=!!this.activeTransition,i=r?this.activeTransition.state:this.state,o=e.applyToState(i,this.recognizer,this.getHandler,t,this.getSerializer),s=d(i.queryParams,o.queryParams) +return T(o.handlerInfos,i.handlerInfos)?s&&(n=this.queryParamsTransition(s,r,i,o))?(n.queryParamsOnly=!0,n):this.activeTransition||new z(this):t?void w(this,o):(n=new z(this,e,o,void 0,this.activeTransition),P(o.handlerInfos,i.handlerInfos)&&(n.queryParamsOnly=!0),this.activeTransition&&this.activeTransition.abort(),this.activeTransition=n,n.promise=n.promise.then(function(e){return E(n,e.state)},null,p("Settle transition promise when transition is finalized")),r||N(this,o,n),I(this,o,s),n)}function I(e,t,n){n&&(e._changedQueryParams=n.all,h(e,t.handlerInfos,!0,["queryParamsDidChange",n.changed,n.all,n.removed]),e._changedQueryParams=null)}function w(e,t,n){var r,i,o,s=k(e.state,t) +for(r=0,i=s.exited.length;r<i;r++)o=s.exited[r].handler,delete o.context,g(o,"reset",!0,n),g(o,"exit",n) +var a=e.oldState=e.state +e.state=t +var u=e.currentHandlerInfos=s.unchanged.slice() +try{for(r=0,i=s.reset.length;r<i;r++)o=s.reset[r].handler,g(o,"reset",!1,n) +for(r=0,i=s.updatedContext.length;r<i;r++)x(u,s.updatedContext[r],!1,n) +for(r=0,i=s.entered.length;r<i;r++)x(u,s.entered[r],!0,n)}catch(t){throw e.state=a,e.currentHandlerInfos=a.handlerInfos,t}e.state.queryParams=R(e,u,t.queryParams,n)}function x(e,t,n,r){function i(i){if(n&&g(i,"enter",r),r&&r.isAborted)throw new v +if(i.context=s,g(i,"contextDidChange"),g(i,"setup",s,r),r&&r.isAborted)throw new v +e.push(t)}var o=t.handler,s=t.context +return o?i(o):t.handlerPromise=t.handlerPromise.then(i),!0}function k(e,t){var n,r,i,o,s,a=e.handlerInfos,u=t.handlerInfos,c={updatedContext:[],exited:[],entered:[],unchanged:[],reset:void 0},l=!1 +for(o=0,s=u.length;o<s;o++)n=a[o],r=u[o],n&&n.handler===r.handler||(i=!0),i?(c.entered.push(r),n&&c.exited.unshift(n)):l||n.context!==r.context?(l=!0,c.updatedContext.push(r)):c.unchanged.push(n) +for(o=u.length,s=a.length;o<s;o++)c.exited.unshift(a[o]) +return c.reset=c.updatedContext.slice(),c.reset.reverse(),c}function j(e,t){var n,r,i,s,a,u,c,l=e.urlMethod +if(l){var h=e.router,d=t.handlerInfos,p=d[d.length-1].name,f={} +for(n=d.length-1;n>=0;--n)r=d[n],o(f,r.params),r.handler.inaccessibleByURL&&(l=null) +l&&(f.queryParams=e._visibleQueryParams||t.queryParams,i=h.recognizer.generate(p,f),s=e.isCausedByInitialTransition,a="replace"===l&&!e.isCausedByAbortingTransition,u=e.queryParamsOnly&&"replace"===l,c="replace"===l&&e.isCausedByAbortingReplaceTransition,s||a||u||c?h.replaceURL(i):h.updateURL(i))}}function E(e,t){var r,i,o +try{return u(e.router,e.sequence,"Resolved all models on destination route; finalizing transition."),(r=e.router,i=t.handlerInfos,w(r,t,e),e.isAborted)?(r.state.handlerInfos=r.currentHandlerInfos,n.Promise.reject(y(e))):(j(e,t,e.intent.url),e.isActive=!1,r.activeTransition=null,h(r,r.currentHandlerInfos,!0,["didTransition"]),r.didTransition&&r.didTransition(r.currentHandlerInfos),u(r,e.sequence,"TRANSITION COMPLETE."),i[i.length-1].handler)}catch(t){throw t instanceof v||(o=e.state.handlerInfos,e.trigger(!0,"error",t,e,o[o.length-1].handler),e.abort()),t}}function S(e,t,n){var r,i=t[0]||"/",o=t[t.length-1],s={} +o&&o.hasOwnProperty("queryParams")&&(s=Y.call(t).queryParams) +var a +return 0===t.length?(u(e,"Updating query params"),r=e.state.handlerInfos,a=new W({name:r[r.length-1].name,contexts:[],queryParams:s})):"/"===i.charAt(0)?(u(e,"Attempting URL transition to "+i),a=new G({url:i})):(u(e,"Attempting transition to "+i),a=new W({name:t[0],contexts:M.call(t,1),queryParams:s})),e.transitionByIntent(a,n)}function T(e,t){var n,r +if(e.length!==t.length)return!1 +for(n=0,r=e.length;n<r;++n)if(e[n]!==t[n])return!1 +return!0}function P(e,t){var n,r +if(e.length!==t.length)return!1 +for(n=0,r=e.length;n<r;++n){if(e[n].name!==t[n].name)return!1 +if(!O(e[n].params,t[n].params))return!1}return!0}function O(e,t){if(!e&&!t)return!0 +if(!e&&t||e&&!t)return!1 +var n,r,i,o=Object.keys(e),s=Object.keys(t) +if(o.length!==s.length)return!1 +for(n=0,r=o.length;n<r;++n)if(i=o[n],e[i]!==t[i])return!1 +return!0}function R(e,t,n,r){for(var i in n)n.hasOwnProperty(i)&&null===n[i]&&delete n[i] +var o,s,a,u=[] +h(e,t,!0,["finalizeQueryParamChange",n,u,r]),r&&(r._visibleQueryParams={}) +var c={} +for(o=0,s=u.length;o<s;++o)a=u[o],c[a.key]=a.value,r&&!1!==a.visible&&(r._visibleQueryParams[a.key]=a.value) +return c}function N(e,t,n){var r,i,o,s,a=e.state.handlerInfos +for(i=a.length,r=0;r<i&&(o=a[r],(s=t.handlerInfos[r])&&o.name===s.name);r++)s.isResolved +h(e,a,!0,["willTransition",n]),e.willTransition&&e.willTransition(a,t.handlerInfos,n)}e.Transition=void 0 +var M=Array.prototype.slice,L=Object.prototype.hasOwnProperty,D=function(){function e(){this.handlerInfos=[],this.queryParams={},this.params={}}return e.prototype.promiseLabel=function(e){var t="" +return l(this.handlerInfos,function(e){""!==t&&(t+="."),t+=e.name}),p("'"+t+"': "+e)},e.prototype.resolve=function(e){function t(){return n.Promise.resolve(e(),u.promiseLabel("Check if should continue")).catch(function(e){return c=!0,n.Promise.reject(e)},u.promiseLabel("Handle abort"))}function r(e){var t=u.handlerInfos,r=s.resolveIndex>=t.length?t.length-1:s.resolveIndex +return n.Promise.reject({error:e,handlerWithError:u.handlerInfos[r].handler,wasAborted:c,state:u})}function i(e){var n,r=u.handlerInfos[s.resolveIndex].isResolved +return u.handlerInfos[s.resolveIndex++]=e,r||(n=e.handler,g(n,"redirect",e.context,s)),t().then(o,null,u.promiseLabel("Resolve handler"))}function o(){return s.resolveIndex===u.handlerInfos.length?{error:null,state:u}:u.handlerInfos[s.resolveIndex].resolve(t,s).then(i,null,u.promiseLabel("Proceed"))}var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.params +l(this.handlerInfos,function(e){a[e.name]=e.params||{}}),s.resolveIndex=0 +var u=this,c=!1 +return n.Promise.resolve(null,this.promiseLabel("Start transition")).then(o,null,this.promiseLabel("Resolve handler")).catch(r,this.promiseLabel("Handle error"))},e}() +v.prototype=Object.create(Error.prototype) +var z=function(){function e(e,t,r,i,o){var s,a,u,c=this +if(this.state=r||e.state,this.intent=t,this.router=e,this.data=this.intent&&this.intent.data||{},this.resolvedModels={},this.queryParams={},this.promise=void 0,this.error=void 0,this.params=void 0,this.handlerInfos=void 0,this.targetName=void 0,this.pivotHandler=void 0,this.sequence=void 0,this.isAborted=!1,this.isActive=!0,this.urlMethod="update",this.resolveIndex=0,this.queryParamsOnly=!1,this.isTransition=!0,i)return this.promise=n.Promise.reject(i),void(this.error=i) +if(this.isCausedByAbortingTransition=!!o,this.isCausedByInitialTransition=o&&(o.isCausedByInitialTransition||0===o.sequence),this.isCausedByAbortingReplaceTransition=o&&"replace"==o.urlMethod&&(!o.isCausedByAbortingTransition||o.isCausedByAbortingReplaceTransition),r){for(this.params=r.params,this.queryParams=r.queryParams,this.handlerInfos=r.handlerInfos,s=r.handlerInfos.length,s&&(this.targetName=r.handlerInfos[s-1].name),a=0;a<s&&(u=r.handlerInfos[a],u.isResolved);++a)this.pivotHandler=u.handler +this.sequence=e.currentSequence++,this.promise=r.resolve(function(){if(c.isAborted)return n.Promise.reject(void 0,p("Transition aborted - reject"))},this).catch(function(e){return e.wasAborted||c.isAborted?n.Promise.reject(y(c)):(c.trigger("error",e.error,c,e.handlerWithError),c.abort(),n.Promise.reject(e.error))},p("Handle Abort"))}else this.promise=n.Promise.resolve(this.state),this.params={}}return e.prototype.isExiting=function(e){var t,n,r,i=this.handlerInfos +for(t=0,n=i.length;t<n;++t)if(r=i[t],r.name===e||r.handler===e)return!1 +return!0},e.prototype.then=function(e,t,n){return this.promise.then(e,t,n)},e.prototype.catch=function(e,t){return this.promise.catch(e,t)},e.prototype.finally=function(e,t){return this.promise.finally(e,t)},e.prototype.abort=function(){return this.isAborted?this:(u(this.router,this.sequence,this.targetName+": transition was aborted"),this.intent.preTransitionState=this.router.state,this.isAborted=!0,this.isActive=!1,this.router.activeTransition=null,this)},e.prototype.retry=function(){this.abort() +var e=this.router.transitionByIntent(this.intent,!1) +return null!==this.urlMethod&&e.method(this.urlMethod),e},e.prototype.method=function(e){return this.urlMethod=e,this},e.prototype.trigger=function(e){var t=M.call(arguments) +"boolean"==typeof e?t.shift():e=!1,h(this.router,this.state.handlerInfos.slice(0,this.resolveIndex+1),e,t)},e.prototype.followRedirects=function(){var e=this.router +return this.promise.catch(function(t){return e.activeTransition?e.activeTransition.followRedirects():n.Promise.reject(t)})},e.prototype.toString=function(){return"Transition (sequence "+this.sequence+")"},e.prototype.log=function(e){u(this.router,this.sequence,e)},e}() +z.prototype.send=z.prototype.trigger +var F=function(){this.data=this.data||{}},B=Object.freeze({}),H=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{} +this._handler=B,this._handlerPromise=null,this.factory=null,this.name=e.name +for(var t in e)"handler"===t?this._processHandler(e.handler):this[t]=e[t]}return e.prototype.getHandler=function(){},e.prototype.fetchHandler=function(){var e=this.getHandler(this.name) +return this._processHandler(e)},e.prototype._processHandler=function(e){var t=this +return this.handlerPromise=n.Promise.resolve(e),i(e)?(this.handlerPromise=this.handlerPromise.then(function(e){return t.updateHandler(e)}),this.handler=void 0):e?this.updateHandler(e):void 0},e.prototype.log=function(e,t){e.log&&e.log(this.name+": "+t)},e.prototype.promiseLabel=function(e){return p("'"+this.name+"' "+e)},e.prototype.getUnresolved=function(){return this},e.prototype.serialize=function(){return this.params||{}},e.prototype.updateHandler=function(e){return e._handlerName=this.name,this.handler=e},e.prototype.resolve=function(e,t){var r=this.checkForAbort.bind(this,e),i=this.runBeforeModelHook.bind(this,t),o=this.getModel.bind(this,t),s=this.runAfterModelHook.bind(this,t),a=this.becomeResolved.bind(this,t) +return n.Promise.resolve(this.handlerPromise,this.promiseLabel("Start handler")).then(r,null,this.promiseLabel("Check for abort")).then(i,null,this.promiseLabel("Before model")).then(r,null,this.promiseLabel("Check if aborted during 'beforeModel' hook")).then(o,null,this.promiseLabel("Model")).then(r,null,this.promiseLabel("Check if aborted in 'model' hook")).then(s,null,this.promiseLabel("After model")).then(r,null,this.promiseLabel("Check if aborted in 'afterModel' hook")).then(a,null,this.promiseLabel("Become resolved"))},e.prototype.runBeforeModelHook=function(e){return e.trigger&&e.trigger(!0,"willResolveModel",e,this.handler),this.runSharedModelHook(e,"beforeModel",[])},e.prototype.runAfterModelHook=function(e,t){var n=this.name +return this.stashResolvedModel(e,t),this.runSharedModelHook(e,"afterModel",[t]).then(function(){return e.resolvedModels[n]},null,this.promiseLabel("Ignore fulfillment value and return model value"))},e.prototype.runSharedModelHook=function(e,t,r){this.log(e,"calling "+t+" hook"),this.queryParams&&r.push(this.queryParams),r.push(e) +var i=m(this.handler,t,r) +return i&&i.isTransition&&(i=null),n.Promise.resolve(i,this.promiseLabel("Resolve value returned from one of the model hooks"))},e.prototype.getModel=function(){},e.prototype.checkForAbort=function(e,t){return n.Promise.resolve(e(),this.promiseLabel("Check for abort")).then(function(){return t},null,this.promiseLabel("Ignore fulfillment value and continue"))},e.prototype.stashResolvedModel=function(e,t){e.resolvedModels=e.resolvedModels||{},e.resolvedModels[this.name]=t},e.prototype.becomeResolved=function(e,t){var n=this.serialize(t) +e&&(this.stashResolvedModel(e,t),e.params=e.params||{},e.params[this.name]=n) +var r={name:this.name,handler:this.handler,params:n},i=t===this.context +return("context"in this||!i)&&(r.context=t),this.factory("resolved",r)},e.prototype.shouldSupercede=function(e){if(!e)return!0 +var t=e.context===this.context +return e.name!==this.name||"context"in this&&!t||this.hasOwnProperty("params")&&!b(this.params,e.params)},(0,t.createClass)(e,[{key:"handler",get:function(){return this._handler!==B?this._handler:this.fetchHandler()},set:function(e){return this._handler=e}},{key:"handlerPromise",get:function(){return null!==this._handlerPromise?this._handlerPromise:(this.fetchHandler(),this._handlerPromise)},set:function(e){return this._handlerPromise=e,e}}]),e}(),U=function(e){function r(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.isResolved=!0,r}return(0,t.inherits)(r,e),r.prototype.resolve=function(e,t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),n.Promise.resolve(this,this.promiseLabel("Resolve"))},r.prototype.getUnresolved=function(){return this.factory("param",{name:this.name,handler:this.handler,params:this.params})},r}(H),q=function(e){function r(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.names=r.names||[],r}return(0,t.inherits)(r,e),r.prototype.getModel=function(e){return this.log(e,this.name+": resolving provided model"),n.Promise.resolve(this.context)},r.prototype.serialize=function(e){var t=e||this.context,n=this.names,r={} +if(c(t))return r[n[0]]=t,r +if(this.serializer)return this.serializer.call(null,t,n) +if(this.handler&&this.handler.serialize)return this.handler.serialize(t,n) +if(1===n.length){var i=n[0] +return/_id$/.test(i)?r[i]=t.id:r[i]=t,r}},r}(H),V=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.params=r.params||{},r}return(0,t.inherits)(n,e),n.prototype.getModel=function(e){var t=this.params +e&&e.queryParams&&(t={},o(t,this.params),t.queryParams=e.queryParams) +var n=this.handler,r=f(n,"deserialize")||f(n,"model") +return this.runSharedModelHook(e,r,[t])},n}(H) +C.klasses={resolved:U,param:V,object:q} +var W=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.name=n.name,r.pivotHandler=n.pivotHandler,r.contexts=n.contexts||[],r.queryParams=n.queryParams,r}return(0,t.inherits)(n,e),n.prototype.applyToState=function(e,t,n,r,i){var o=s([this.name].concat(this.contexts)),a=o[0],u=t.handlersFor(a[0]),c=u[u.length-1].handler +return this.applyToHandlers(e,u,n,c,r,null,i)},n.prototype.applyToHandlers=function(e,t,n,r,i,s,a){var u,c,l,h,d,p,f,g,m,v=new D,y=this.contexts.slice(0),b=t.length +if(this.pivotHandler)for(u=0,c=t.length;u<c;++u)if(t[u].handler===this.pivotHandler._handlerName){b=u +break}for(u=t.length-1;u>=0;--u)l=t[u],h=l.handler,d=e.handlerInfos[u],p=null,l.names.length>0?u>=b?p=this.createParamHandlerInfo(h,n,l.names,y,d):(f=a(h),p=this.getHandlerInfoForDynamicSegment(h,n,l.names,y,d,r,u,f)):p=this.createParamHandlerInfo(h,n,l.names,y,d),s&&(p=p.becomeResolved(null,p.context),g=d&&d.context,l.names.length>0&&"context"in d&&p.context===g&&(p.params=d&&d.params),p.context=g),m=d,(u>=b||p.shouldSupercede(d))&&(b=Math.min(u,b),m=p),i&&!s&&(m=m.becomeResolved(null,m.context)),v.handlerInfos.unshift(m) +if(y.length>0)throw new Error("More context objects were passed than there are dynamic segments for the route: "+r) +return i||this.invalidateChildren(v.handlerInfos,b),o(v.queryParams,this.queryParams||{}),v},n.prototype.invalidateChildren=function(e,t){var n,r,i +for(n=t,r=e.length;n<r;++n)i=e[n],e[n]=i.getUnresolved()},n.prototype.getHandlerInfoForDynamicSegment=function(e,t,n,r,i,o,s,a){var u,l +if(r.length>0){if(u=r[r.length-1],c(u))return this.createParamHandlerInfo(e,t,n,r,i) +r.pop()}else{if(i&&i.name===e)return i +if(!this.preTransitionState)return i +l=this.preTransitionState.handlerInfos[s],u=l&&l.context}return C("object",{name:e,getHandler:t,serializer:a,context:u,names:n})},n.prototype.createParamHandlerInfo=function(e,t,n,r,i){for(var o,s,a,u={},l=n.length;l--;)if(o=i&&e===i.name&&i.params||{},s=r[r.length-1],a=n[l],c(s))u[a]=""+r.pop() +else{if(!o.hasOwnProperty(a))throw new Error("You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route "+e) +u[a]=o[a]}return C("param",{name:e,getHandler:t,params:u})},n}(F) +A.prototype=Object.create(Error.prototype) +var G=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n)) +return r.url=n.url,r}return(0,t.inherits)(n,e),n.prototype.applyToState=function(e,t,n){function r(e){if(e&&e.inaccessibleByURL)throw new A(g) +return e}var i,s,a,u,c,l,h,d=new D,p=t.recognize(this.url) +if(!p)throw new A(this.url) +var f=!1,g=this.url +for(l=0,h=p.length;l<h;++l)i=p[l],s=i.handler,a=C("param",{name:s,getHandler:n,params:i.params}),u=a.handler,u?r(u):a.handlerPromise=a.handlerPromise.then(r),c=e.handlerInfos[l],f||a.shouldSupercede(c)?(f=!0,d.handlerInfos[l]=a):d.handlerInfos[l]=c +return o(d.queryParams,p.queryParams),d},n}(F),Y=Array.prototype.pop,K=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{} +this.getHandler=e.getHandler||this.getHandler,this.getSerializer=e.getSerializer||this.getSerializer,this.updateURL=e.updateURL||this.updateURL,this.replaceURL=e.replaceURL||this.replaceURL,this.didTransition=e.didTransition||this.didTransition,this.willTransition=e.willTransition||this.willTransition,this.delegate=e.delegate||this.delegate,this.triggerEvent=e.triggerEvent||this.triggerEvent,this.log=e.log||this.log,this.dslCallBacks=[],this.state=void 0,this.activeTransition=void 0,this._changedQueryParams=void 0,this.oldState=void 0,this.currentHandlerInfos=void 0,this.currentSequence=0,this.recognizer=new r.default,this.reset()}return e.prototype.map=function(e){this.recognizer.delegate=this.delegate,this.recognizer.map(e,function(e,t){var n,r,i +for(n=t.length-1,r=!0;n>=0&&r;--n)i=t[n],e.add(t,{as:i.handler}),r="/"===i.path||""===i.path||".index"===i.handler.slice(-6)})},e.prototype.hasRoute=function(e){return this.recognizer.hasRoute(e)},e.prototype.getHandler=function(){},e.prototype.getSerializer=function(){},e.prototype.queryParamsTransition=function(e,t,n,r){var i,o=this +return I(this,r,e),!t&&this.activeTransition?this.activeTransition:(i=new z(this),i.queryParamsOnly=!0,n.queryParams=R(this,r.handlerInfos,r.queryParams,i),i.promise=i.promise.then(function(e){return j(i,n,!0),o.didTransition&&o.didTransition(o.currentHandlerInfos),e},null,p("Transition complete")),i)},e.prototype.transitionByIntent=function(e){try{return _.apply(this,arguments)}catch(t){return new z(this,e,null,t)}},e.prototype.reset=function(){this.state&&l(this.state.handlerInfos.slice().reverse(),function(e){g(e.handler,"exit")}),this.oldState=void 0,this.state=new D,this.currentHandlerInfos=null},e.prototype.handleURL=function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +var e,t,n,r=t[0] +return"/"!==r.charAt(0)&&(t[0]="/"+r),S(this,t).method(null)},e.prototype.updateURL=function(){throw new Error("updateURL is not implemented")},e.prototype.replaceURL=function(e){this.updateURL(e)},e.prototype.transitionTo=function(){return S(this,arguments)},e.prototype.intermediateTransitionTo=function(){return S(this,arguments,!0)},e.prototype.refresh=function(e){var t=this.activeTransition,n=t?t.state:this.state,r=n.handlerInfos +u(this,"Starting a refresh transition") +var i=new W({name:r[r.length-1].name,pivotHandler:e||r[0].handler,contexts:[],queryParams:this._changedQueryParams||n.queryParams||{}}),o=this.transitionByIntent(i,!1) +return t&&"replace"===t.urlMethod&&o.method(t.urlMethod),o},e.prototype.replaceWith=function(){return S(this,arguments).method("replace")},e.prototype.generate=function(e){var t,n,r,i,a=s(M.call(arguments,1)),u=a[0],c=a[1],l=new W({name:e,contexts:u}),h=l.applyToState(this.state,this.recognizer,this.getHandler,null,this.getSerializer),d={} +for(t=0,n=h.handlerInfos.length;t<n;++t)r=h.handlerInfos[t],i=r.serialize(),o(d,i) +return d.queryParams=c,this.recognizer.generate(e,d)},e.prototype.applyIntent=function(e,t){var n=new W({name:e,contexts:t}),r=this.activeTransition&&this.activeTransition.state||this.state +return n.applyToState(r,this.recognizer,this.getHandler,null,this.getSerializer)},e.prototype.isActiveIntent=function(e,t,n,r){var i=r||this.state,s=i.handlerInfos,a=void 0,u=void 0 +if(!s.length)return!1 +var c=s[s.length-1].name,l=this.recognizer.handlersFor(c),h=0 +for(u=l.length;h<u&&(a=s[h],a.name!==e);++h);if(h===l.length)return!1 +var p=new D +p.handlerInfos=s.slice(0,h+1),l=l.slice(0,h+1) +var f=new W({name:c,contexts:t}),g=f.applyToHandlers(p,l,this.getHandler,c,!0,!0,this.getSerializer),m=T(g.handlerInfos,p.handlerInfos) +if(!n||!m)return m +var v={} +o(v,n) +var y=i.queryParams +for(var b in y)y.hasOwnProperty(b)&&v.hasOwnProperty(b)&&(v[b]=y[b]) +return m&&!d(v,n)},e.prototype.isActive=function(e){for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r] +var t,n,r,i=s(n) +return this.isActiveIntent(e,i[0],i[1])},e.prototype.trigger=function(){var e,t,n +for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n] +h(this,this.currentHandlerInfos,!1,t)},e}() +e.default=K,e.Transition=z}),e("rsvp",["exports","ember-babel","node-module"],function(e,t,n){"use strict" +function r(e){var t=e._promiseCallbacks +return t||(t=e._promiseCallbacks={}),t}function i(e,t){if(2!==arguments.length)return te[e] +te[e]=t}function o(){setTimeout(function(){var e,t,n +for(e=0;e<ne.length;e++)t=ne[e],n=t.payload,n.guid=n.key+n.id,n.childGuid=n.key+n.childId,n.error&&(n.stack=n.error.stack),te.trigger(t.name,t.payload) +ne.length=0},50)}function s(e,t,n){1===ne.push({name:e,payload:{key:t._guidKey,id:t._id,eventName:e,detail:t._result,childId:n&&n._id,label:t._label,timeStamp:Date.now(),error:te["instrument-with-stack"]?new Error(t._label):null}})&&o()}function a(e,t){var n=this +if(e&&"object"==typeof e&&e.constructor===n)return e +var r=new n(l,t) +return v(r,e),r}function u(){return new TypeError("A promises callback cannot return that same promise.")}function c(e){var t=typeof e +return null!==e&&("object"===t||"function"===t)}function l(){}function h(e){try{return e.then}catch(e){return se.error=e,se}}function d(){var e +try{return e=ae,ae=null,e.apply(this,arguments)}catch(e){return se.error=e,se}}function p(e){return ae=e,d}function f(e,t,n){te.async(function(e){var r,i=!1,o=p(n).call(t,function(n){i||(i=!0,t===n?b(e,n):v(e,n))},function(t){i||(i=!0,C(e,t))},"Settle: "+(e._label||" unknown promise")) +i||o!==se||(i=!0,r=se.error,se.error=null,C(e,r))},e)}function g(e,t){t._state===ie?b(e,t._result):t._state===oe?(t._onError=null,C(e,t._result)):A(t,void 0,function(n){t===n?b(e,n):v(e,n)},function(t){return C(e,t)})}function m(e,t,n){var r,i=t.constructor===e.constructor&&n===x&&e.constructor.resolve===a +i?g(e,t):n===se?(r=se.error,se.error=null,C(e,r)):"function"==typeof n?f(e,t,n):b(e,t)}function v(e,t){e===t?b(e,t):c(t)?m(e,t,h(t)):b(e,t)}function y(e){e._onError&&e._onError(e._result),_(e)}function b(e,t){e._state===re&&(e._result=t,e._state=ie,0===e._subscribers.length?te.instrument&&s("fulfilled",e):te.async(_,e))}function C(e,t){e._state===re&&(e._state=oe,e._result=t,te.async(y,e))}function A(e,t,n,r){var i=e._subscribers,o=i.length +e._onError=null,i[o]=t,i[o+ie]=n,i[o+oe]=r,0===o&&e._state&&te.async(_,e)}function _(e){var t,n=e._subscribers,r=e._state +if(te.instrument&&s(r===ie?"fulfilled":"rejected",e),0!==n.length){var i=void 0,o=void 0,a=e._result +for(t=0;t<n.length;t+=3)i=n[t],o=n[t+r],i?I(r,i,o,a):o(a) +e._subscribers.length=0}}function I(e,t,n,r){var i,o="function"==typeof n,s=void 0 +s=o?p(n)(r):r,t._state!==re||(s===t?C(t,u()):s===se?(i=se.error,se.error=null,C(t,i)):o?v(t,s):e===ie?b(t,s):e===oe&&C(t,s))}function w(e,t){var n=!1 +try{t(function(t){n||(n=!0,v(e,t))},function(t){n||(n=!0,C(e,t))})}catch(t){C(e,t)}}function x(e,t,n){var r,i=this,o=i._state +if(o===ie&&!e||o===oe&&!t)return te.instrument&&s("chained",i,i),i +i._onError=null +var a=new i.constructor(l,n),u=i._result +return te.instrument&&s("chained",i,a),o===re?A(i,a,e,t):(r=o===ie?e:t,te.async(function(){return I(o,a,r,u)})),a}function k(e,t,n){this._remaining--,this._result[t]=e===ie?{state:"fulfilled",value:n}:{state:"rejected",reason:n}}function j(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function E(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function S(e,t){var n,r,i,o={},s=e.length,a=new Array(s) +for(n=0;n<s;n++)a[n]=e[n] +for(r=0;r<t.length;r++)i=t[r],o[i]=a[r+1] +return o}function T(e){var t,n=e.length,r=new Array(n-1) +for(t=1;t<n;t++)r[t-1]=e[t] +return r}function P(e,t){return{then:function(n,r){return e.call(t,n,r)}}}function O(e,n){var r=function(){var t,r,i,o,s=arguments.length,a=new Array(s+1),u=!1 +for(t=0;t<s;++t){if(r=arguments[t],!u){if((u=M(r))===se)return i=se.error,se.error=null,o=new he(l),C(o,i),o +u&&!0!==u&&(r=P(u,r))}a[t]=r}var c=new he(l) +return a[s]=function(e,t){e?C(c,e):void 0===n?v(c,t):!0===n?v(c,T(arguments)):Array.isArray(n)?v(c,S(arguments,n)):v(c,t)},u?N(c,a,e,this):R(c,a,e,this)} +return(0,t.defaults)(r,e),r}function R(e,t,n,r){var i,o=p(n).apply(r,t) +return o===se&&(i=se.error,se.error=null,C(e,i)),e}function N(e,t,n,r){return he.all(t).then(function(t){return R(e,t,n,r)})}function M(e){return null!==e&&"object"==typeof e&&(e.constructor===he||h(e))}function L(e,t){return he.all(e,t)}function D(e,t){return Array.isArray(e)?new de(he,e,t).promise:he.reject(new TypeError("Promise.allSettled must be called with an array"),t)}function z(e,t){return he.race(e,t)}function F(e,t){return null===e||"object"!=typeof e?he.reject(new TypeError("Promise.hash must be called with an object"),t):new pe(he,e,t).promise}function B(e,t){return null===e||"object"!=typeof e?he.reject(new TypeError("RSVP.hashSettled must be called with an object"),t):new fe(he,e,!1,t).promise}function H(e){throw setTimeout(function(){throw e}),e}function U(e){var t={resolve:void 0,reject:void 0} +return t.promise=new he(function(e,n){t.resolve=e,t.reject=n},e),t}function q(e,t,n){return Array.isArray(e)?"function"!=typeof t?he.reject(new TypeError("RSVP.map expects a function as a second argument"),n):new ge(he,e,t,n).promise:he.reject(new TypeError("RSVP.map must be called with an array"),n)}function V(e,t){return he.resolve(e,t)}function W(e,t){return he.reject(e,t)}function G(e,t,n){return"function"!=typeof t?he.reject(new TypeError("RSVP.filter expects function as a second argument"),n):he.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError("RSVP.filter must be called with an array") +return new ve(he,e,t,n).promise})}function Y(e,t){xe[ye]=e,xe[ye+1]=t,2===(ye+=2)&&ke()}function K(){return void 0!==be?function(){be(Z)}:Q()}function Q(){return function(){return setTimeout(Z,1)}}function Z(){var e,t,n +for(e=0;e<ye;e+=2)t=xe[e],n=xe[e+1],t(n),xe[e]=void 0,xe[e+1]=void 0 +ye=0}function X(){te.on.apply(te,arguments)}function J(){te.off.apply(te,arguments)}e.filter=e.async=e.map=e.reject=e.resolve=e.off=e.on=e.configure=e.denodeify=e.defer=e.rethrow=e.hashSettled=e.hash=e.race=e.allSettled=e.all=e.EventTarget=e.Promise=e.cast=e.asap=void 0 +var $,ee={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e._promiseCallbacks=void 0,e},on:function(e,t){if("function"!=typeof t)throw new TypeError("Callback must be a function") +var n=r(this),i=n[e] +i||(i=n[e]=[]),-1===i.indexOf(t)&&i.push(t)},off:function(e,t){var n=r(this) +if(!t)return void(n[e]=[]) +var i=n[e],o=i.indexOf(t);-1!==o&&i.splice(o,1)},trigger:function(e,t,n){var i,o=r(this),s=o[e] +if(s)for(void 0,i=0;i<s.length;i++)(0,s[i])(t,n)}},te={instrument:!1} +ee.mixin(te) +var ne=[],re=void 0,ie=1,oe=2,se={error:null},ae=void 0,ue=function(){function e(e,t,n,r){this._instanceConstructor=e,this.promise=new e(l,r),this._abortOnReject=n,this._isUsingOwnPromise=e===he,this._isUsingOwnResolve=e.resolve===a,this._init.apply(this,arguments)}return e.prototype._init=function(e,t){var n=t.length||0 +this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(t)},e.prototype._enumerate=function(e){var t,n=this.length,r=this.promise +for(t=0;r._state===re&&t<n;t++)this._eachEntry(e[t],t,!0) +this._checkFullfillment()},e.prototype._checkFullfillment=function(){var e +0===this._remaining&&(e=this._result,b(this.promise,e),this._result=null)},e.prototype._settleMaybeThenable=function(e,t,n){var r,i,o=this._instanceConstructor +this._isUsingOwnResolve?(r=h(e),r===x&&e._state!==re?(e._onError=null,this._settledAt(e._state,t,e._result,n)):"function"!=typeof r?this._settledAt(ie,t,e,n):this._isUsingOwnPromise?(i=new o(l),m(i,e,r),this._willSettleAt(i,t,n)):this._willSettleAt(new o(function(t){return t(e)}),t,n)):this._willSettleAt(o.resolve(e),t,n)},e.prototype._eachEntry=function(e,t,n){null!==e&&"object"==typeof e?this._settleMaybeThenable(e,t,n):this._setResultAt(ie,t,e,n)},e.prototype._settledAt=function(e,t,n,r){var i=this.promise +i._state===re&&(this._abortOnReject&&e===oe?C(i,n):(this._setResultAt(e,t,n,r),this._checkFullfillment()))},e.prototype._setResultAt=function(e,t,n){this._remaining--,this._result[t]=n},e.prototype._willSettleAt=function(e,t,n){var r=this +A(e,void 0,function(e){return r._settledAt(ie,t,e,n)},function(e){return r._settledAt(oe,t,e,n)})},e}(),ce="rsvp_"+Date.now()+"-",le=0,he=function(){function e(t,n){this._id=le++,this._label=n,this._state=void 0,this._result=void 0,this._subscribers=[],te.instrument&&s("created",this),l!==t&&("function"!=typeof t&&j(),this instanceof e?w(this,t):E())}return e.prototype._onError=function(e){var t=this +te.after(function(){t._onError&&te.trigger("error",e,t._label)})},e.prototype.catch=function(e,t){return this.then(void 0,e,t)},e.prototype.finally=function(e,t){var n=this,r=n.constructor +return n.then(function(t){return r.resolve(e()).then(function(){return t})},function(t){return r.resolve(e()).then(function(){throw t})},t)},e}() +he.cast=a,he.all=function(e,t){return Array.isArray(e)?new ue(this,e,!0,t).promise:this.reject(new TypeError("Promise.all must be called with an array"),t)},he.race=function(e,t){var n,r=this,i=new r(l,t) +if(!Array.isArray(e))return C(i,new TypeError("Promise.race must be called with an array")),i +for(n=0;i._state===re&&n<e.length;n++)A(r.resolve(e[n]),void 0,function(e){return v(i,e)},function(e){return C(i,e)}) +return i},he.resolve=a,he.reject=function(e,t){var n=this,r=new n(l,t) +return C(r,e),r},he.prototype._guidKey=ce,he.prototype.then=x +var de=function(e){function n(n,r,i){return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,!1,i))}return(0,t.inherits)(n,e),n}(ue) +de.prototype._setResultAt=k +var pe=function(e){function n(n,r){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=arguments[3] +return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,i,o))}return(0,t.inherits)(n,e),n.prototype._init=function(e,t){this._result={},this._enumerate(t)},n.prototype._enumerate=function(e){var t,n=Object.keys(e),r=n.length,i=this.promise +this._remaining=r +var o=void 0,s=void 0 +for(t=0;i._state===re&&t<r;t++)o=n[t],s=e[o],this._eachEntry(s,o,!0) +this._checkFullfillment()},n}(ue),fe=function(e){function n(n,r,i){return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,!1,i))}return(0,t.inherits)(n,e),n}(pe) +fe.prototype._setResultAt=k +var ge=function(e){function n(n,r,i,o){return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,!0,o,i))}return(0,t.inherits)(n,e),n.prototype._init=function(e,t,n,r,i){var o=t.length||0 +this.length=o,this._remaining=o,this._result=new Array(o),this._mapFn=i,this._enumerate(t)},n.prototype._setResultAt=function(e,t,n,r){var i +r?(i=p(this._mapFn)(n,t),i===se?this._settledAt(oe,t,i.error,!1):this._eachEntry(i,t,!1)):(this._remaining--,this._result[t]=n)},n}(ue),me={},ve=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype._checkFullfillment=function(){var e +0===this._remaining&&null!==this._result&&(e=this._result.filter(function(e){return e!==me}),b(this.promise,e),this._result=null)},n.prototype._setResultAt=function(e,t,n,r){var i +r?(this._result[t]=n,i=p(this._mapFn)(n,t),i===se?this._settledAt(oe,t,i.error,!1):this._eachEntry(i,t,!1)):(this._remaining--,n||(this._result[t]=me))},n}(ge),ye=0,be=void 0,Ce="undefined"!=typeof window?window:void 0,Ae=Ce||{},_e=Ae.MutationObserver||Ae.WebKitMutationObserver,Ie="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),we="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,xe=new Array(1e3),ke=void 0 +ke=Ie?function(){var e=process.nextTick,t=process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/) +return Array.isArray(t)&&"0"===t[1]&&"10"===t[2]&&(e=setImmediate),function(){return e(Z)}}():_e?function(){var e=0,t=new _e(Z),n=document.createTextNode("") +return t.observe(n,{characterData:!0}),function(){return n.data=e=++e%2}}():we?function(){var e=new MessageChannel +return e.port1.onmessage=Z,function(){return e.port2.postMessage(0)}}():void 0===Ce&&"function"==typeof n.require?function(){var e +try{return e=Function("return this")().require("vertx"),be=e.runOnLoop||e.runOnContext,K()}catch(e){return Q()}}():Q(),te.async=Y,te.after=function(e){return setTimeout(e,0)} +var je=V,Ee=function(e,t){return te.async(e,t)} +if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){$=window.__PROMISE_INSTRUMENTATION__,i("instrument",!0) +for(var Se in $)$.hasOwnProperty(Se)&&X(Se,$[Se])}e.default={asap:Y,cast:je,Promise:he,EventTarget:ee,all:L,allSettled:D,race:z,hash:F,hashSettled:B,rethrow:H,defer:U,denodeify:O,configure:i,on:X,off:J,resolve:V,reject:W,map:q,async:Ee,filter:G},e.asap=Y,e.cast=je,e.Promise=he,e.EventTarget=ee,e.all=L,e.allSettled=D,e.race=z,e.hash=F,e.hashSettled=B,e.rethrow=H,e.defer=U,e.denodeify=O,e.configure=i,e.on=X,e.off=J,e.resolve=V,e.reject=W,e.map=q,e.async=Ee,e.filter=G}),t("ember")}(),function(){define("ember-cli-shims/deprecations",[],function(){var e={"ember-application":{default:["@ember/application"]},"ember-array":{default:["@ember/array"]},"ember-array/mutable":{default:["@ember/array/mutable"]},"ember-array/utils":{A:["@ember/array","A"],isEmberArray:["@ember/array","isArray"],wrap:["@ember/array","makeArray"]},"ember-component":{default:["@ember/component"]},"ember-components/checkbox":{default:["@ember/component/checkbox"]},"ember-components/text-area":{default:["@ember/component/text-area"]},"ember-components/text-field":{default:["@ember/component/text-field"]},"ember-computed":{default:["@ember/object","computed"],alias:["@ember/object/computed","alias"],and:["@ember/object/computed","and"],bool:["@ember/object/computed","bool"],collect:["@ember/object/computed","collect"],deprecatingAlias:["@ember/object/computed","deprecatingAlias"],empty:["@ember/object/computed","empty"],equal:["@ember/object/computed","equal"],filter:["@ember/object/computed","filter"],filterBy:["@ember/object/computed","filterBy"],filterProperty:["@ember/object/computed","filterProperty"],gt:["@ember/object/computed","gt"],gte:["@ember/object/computed","gte"],intersect:["@ember/object/computed","intersect"],lt:["@ember/object/computed","lt"],lte:["@ember/object/computed","lte"],map:["@ember/object/computed","map"],mapBy:["@ember/object/computed","mapBy"],mapProperty:["@ember/object/computed","mapProperty"],match:["@ember/object/computed","match"],max:["@ember/object/computed","max"],min:["@ember/object/computed","min"],none:["@ember/object/computed","none"],not:["@ember/object/computed","not"],notEmpty:["@ember/object/computed","notEmpty"],oneWay:["@ember/object/computed","oneWay"],or:["@ember/object/computed","or"],readOnly:["@ember/object/computed","readOnly"],reads:["@ember/object/computed","reads"],setDiff:["@ember/object/computed","setDiff"],sort:["@ember/object/computed","sort"],sum:["@ember/object/computed","sum"],union:["@ember/object/computed","union"],uniq:["@ember/object/computed","uniq"]},"ember-controller":{default:["@ember/controller"]},"ember-controller/inject":{default:["@ember/controller","inject"]},"ember-controller/proxy":{default:["@ember/array/proxy"]},"ember-debug":{inspect:["@ember/debug","inspect"],log:["@ember/debug","debug"],run:["@ember/debug","runInDebug"],warn:["@ember/debug","warn"]},"ember-debug/container-debug-adapter":{default:["@ember/debug/container-debug-adapter"]},"ember-debug/data-adapter":{default:["@ember/debug/data-adapter"]},"ember-deprecations":{deprecate:["@ember/application/deprecations","deprecate"],deprecateFunc:["@ember/application/deprecations","deprecateFunc"]},"ember-enumerable":{default:["@ember/enumerable"]},"ember-evented":{default:["@ember/object/evented"]},"ember-evented/on":{default:["@ember/object/evented","on"]},"ember-globals-resolver":{default:["@ember/application/globals-resolver"]},"ember-helper":{default:["@ember/component/helper"],helper:["@ember/component/helper","helper"]},"ember-instrumentation":{instrument:["@ember/instrumentation","instrument"],reset:["@ember/instrumentation","reset"],subscribe:["@ember/instrumentation","subscribe"],unsubscribe:["@ember/instrumentation","unsubscribe"]},"ember-locations/hash":{default:["@ember/routing/hash-location"]},"ember-locations/history":{default:["@ember/routing/history-location"]},"ember-locations/none":{default:["@ember/routing/none-location"]},"ember-map":{default:["@ember/map"],withDefault:["@ember/map/with-default"]},"ember-metal/events":{addListener:["@ember/object/events","addListener"],removeListener:["@ember/object/events","removeListener"],send:["@ember/object/events","sendEvent"]},"ember-metal/get":{default:["@ember/object","get"],getProperties:["@ember/object","getProperties"]},"ember-metal/mixin":{default:["@ember/object/mixin"]},"ember-metal/observer":{default:["@ember/object","observer"],addObserver:["@ember/object/observers","addObserver"],removeObserver:["@ember/object/observers","removeObserver"]},"ember-metal/on-load":{default:["@ember/application","onLoad"],run:["@ember/application","runLoadHooks"]},"ember-metal/set":{default:["@ember/object","set"],setProperties:["@ember/object","setProperties"],trySet:["@ember/object","trySet"]},"ember-metal/utils":{aliasMethod:["@ember/object","aliasMethod"],assert:["@ember/debug","assert"],cacheFor:["@ember/object/internals","cacheFor"],copy:["@ember/object/internals","copy"],guidFor:["@ember/object/internals","guidFor"]},"ember-object":{default:["@ember/object"]},"ember-owner/get":{default:["@ember/application","getOwner"]},"ember-owner/set":{default:["@ember/application","setOwner"]},"ember-platform":{assign:["@ember/polyfills","assign"],create:["@ember/polyfills","create"],hasAccessors:["@ember/polyfills","hasPropertyAccessors"],keys:["@ember/polyfills","keys"]},"ember-route":{default:["@ember/routing/route"]},"ember-router":{default:["@ember/routing/router"]},"ember-runloop":{default:["@ember/runloop","run"],begin:["@ember/runloop","begin"],bind:["@ember/runloop","bind"],cancel:["@ember/runloop","cancel"],debounce:["@ember/runloop","debounce"],end:["@ember/runloop","end"],join:["@ember/runloop","join"],later:["@ember/runloop","later"],next:["@ember/runloop","next"],once:["@ember/runloop","once"],schedule:["@ember/runloop","schedule"],scheduleOnce:["@ember/runloop","scheduleOnce"],throttle:["@ember/runloop","throttle"]},"ember-service":{default:["@ember/service"]},"ember-service/inject":{default:["@ember/service","inject"]},"ember-string":{camelize:["@ember/string","camelize"],capitalize:["@ember/string","capitalize"],classify:["@ember/string","classify"],dasherize:["@ember/string","dasherize"],decamelize:["@ember/string","decamelize"],fmt:["@ember/string","fmt"],htmlSafe:["@ember/string","htmlSafe"],loc:["@ember/string","loc"],underscore:["@ember/string","underscore"],w:["@ember/string","w"]},"ember-test/adapter":{default:["@ember/test/adapter"]},"ember-utils":{isBlank:["@ember/utils","isBlank"],isEmpty:["@ember/utils","isEmpty"],isNone:["@ember/utils","isNone"],isPresent:["@ember/utils","isPresent"],tryInvoke:["@ember/utils","tryInvoke"],typeOf:["@ember/utils","typeOf"]}} +return Object.defineProperty(e,"__esModule",{value:!0}),e})}(),function(){function e(e,t,n){define(e,["ember-cli-shims/deprecations"],function(r){"use strict" +if(n){var i=r[e],o="Importing from the `"+e+"` module has been deprecated. " +i?(o+="Please use the new module imports:\n\n",Object.keys(i).forEach(function(e){var t=i[e] +if(t[1])o+="import { "+t[1]+" } from '"+t[0]+"'\n" +else{var n=Ember.String.classify(t[0].split("/").pop()) +o+="import "+n+" from '"+t[0]+"'\n"}}),o+="\n"):o+="Please use globals instead.",Ember.deprecate(o,!1,{id:"ember-cli-shims.deprecated-shims",until:"3.0.0",url:"https://github.com/emberjs/rfcs/blob/master/text/0176-javascript-module-api.md"})}return Object.defineProperty(t,"__esModule",{value:!0}),t})}e("ember",{default:Ember}),function(){var t={"ember-application":{default:Ember.Application},"ember-array":{default:Ember.Array},"ember-array/mutable":{default:Ember.MutableArray},"ember-array/utils":{A:Ember.A,isEmberArray:Ember.isArray,wrap:Ember.makeArray},"ember-component":{default:Ember.Component},"ember-components/checkbox":{default:Ember.Checkbox},"ember-components/text-area":{default:Ember.TextArea},"ember-components/text-field":{default:Ember.TextField},"ember-controller":{default:Ember.Controller},"ember-controller/inject":{default:Ember.inject.controller},"ember-controller/proxy":{default:Ember.ArrayProxy},"ember-controllers/sortable":{default:Ember.SortableMixin},"ember-debug":{log:Ember.debug,inspect:Ember.inspect,run:Ember.runInDebug,warn:Ember.warn},"ember-debug/container-debug-adapter":{default:Ember.ContainerDebugAdapter},"ember-debug/data-adapter":{default:Ember.DataAdapter},"ember-deprecations":{deprecate:Ember.deprecate,deprecateFunc:Ember.deprecateFunc},"ember-enumerable":{default:Ember.Enumerable},"ember-evented":{default:Ember.Evented},"ember-evented/on":{default:Ember.on},"ember-globals-resolver":{default:Ember.DefaultResolver},"ember-helper":{default:Ember.Helper,helper:Ember.Helper&&Ember.Helper.helper},"ember-instrumentation":{instrument:Ember.Instrumentation.instrument,reset:Ember.Instrumentation.reset,subscribe:Ember.Instrumentation.subscribe,unsubscribe:Ember.Instrumentation.unsubscribe},"ember-locations/hash":{default:Ember.HashLocation},"ember-locations/history":{default:Ember.HistoryLocation},"ember-locations/none":{default:Ember.NoneLocation},"ember-map":{default:Ember.Map,withDefault:Ember.MapWithDefault},"ember-metal/destroy":{default:Ember.destroy},"ember-metal/events":{addListener:Ember.addListener,removeListener:Ember.removeListener,send:Ember.sendEvent},"ember-metal/get":{default:Ember.get,getProperties:Ember.getProperties},"ember-metal/mixin":{default:Ember.Mixin},"ember-metal/observer":{default:Ember.observer,addObserver:Ember.addObserver,removeObserver:Ember.removeObserver},"ember-metal/on-load":{default:Ember.onLoad,run:Ember.runLoadHooks},"ember-metal/set":{default:Ember.set,setProperties:Ember.setProperties,trySet:Ember.trySet},"ember-metal/utils":{aliasMethod:Ember.aliasMethod,assert:Ember.assert,cacheFor:Ember.cacheFor,copy:Ember.copy,guidFor:Ember.guidFor},"ember-object":{default:Ember.Object},"ember-owner/get":{default:Ember.getOwner},"ember-owner/set":{default:Ember.setOwner},"ember-platform":{assign:Ember.assign||Ember.merge,create:Ember.create,defineProperty:Ember.platform.defineProperty,hasAccessors:Ember.platform.hasPropertyAccessors,keys:Ember.keys},"ember-route":{default:Ember.Route},"ember-router":{default:Ember.Router},"ember-runloop":{default:Ember.run,begin:Ember.run.begin,bind:Ember.run.bind,cancel:Ember.run.cancel,debounce:Ember.run.debounce,end:Ember.run.end,join:Ember.run.join,later:Ember.run.later,next:Ember.run.next,once:Ember.run.once,schedule:Ember.run.schedule,scheduleOnce:Ember.run.scheduleOnce,throttle:Ember.run.throttle},"ember-service":{default:Ember.Service},"ember-service/inject":{default:Ember.inject.service},"ember-set/ordered":{default:Ember.OrderedSet},"ember-string":{camelize:Ember.String.camelize,capitalize:Ember.String.capitalize,classify:Ember.String.classify,dasherize:Ember.String.dasherize,decamelize:Ember.String.decamelize,fmt:Ember.String.fmt,htmlSafe:Ember.String.htmlSafe,loc:Ember.String.loc,underscore:Ember.String.underscore,w:Ember.String.w},"ember-utils":{isBlank:Ember.isBlank,isEmpty:Ember.isEmpty,isNone:Ember.isNone,isPresent:Ember.isPresent,tryInvoke:Ember.tryInvoke,typeOf:Ember.typeOf}} +t["ember-computed"]={default:Ember.computed} +for(var n=["empty","notEmpty","none","not","bool","match","equal","gt","gte","lt","lte","alias","oneWay","reads","readOnly","deprecatingAlias","and","or","collect","sum","min","max","map","sort","setDiff","mapBy","mapProperty","filter","filterBy","filterProperty","uniq","union","intersect"],r=0,i=n.length;r<i;r++){var o=n[r] +t["ember-computed"][o]=Ember.computed[o]}for(var s in t)e(s,t[s],!0)}(),function(){if(Ember.Test){var t={"ember-test":{default:Ember.Test},"ember-test/adapter":{default:Ember.Test.Adapter},"ember-test/qunit-adapter":{default:Ember.Test.QUnitAdapter}} +for(var n in t)e(n,t[n])}}(),e("jquery",{default:self.jQuery}),e("rsvp",{default:Ember.RSVP})}(),createDeprecatedModule("ember/resolver"),createDeprecatedModule("resolver"),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){e.ui=e.ui||{},e.ui.version="1.12.1" +var t=0,n=Array.prototype.slice +e.cleanData=function(t){return function(n){var r,i,o +for(o=0;null!=(i=n[o]);o++)try{(r=e._data(i,"events"))&&r.remove&&e(i).triggerHandler("remove")}catch(e){}t(n)}}(e.cleanData),e.widget=function(t,n,r){var i,o,s,a={},u=t.split(".")[0] +t=t.split(".")[1] +var c=u+"-"+t +return r||(r=n,n=e.Widget),e.isArray(r)&&(r=e.extend.apply(null,[{}].concat(r))),e.expr[":"][c.toLowerCase()]=function(t){return!!e.data(t,c)},e[u]=e[u]||{},i=e[u][t],o=e[u][t]=function(e,t){return this._createWidget?void(arguments.length&&this._createWidget(e,t)):new o(e,t)},e.extend(o,i,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),s=new n,s.options=e.widget.extend({},s.options),e.each(r,function(t,r){return e.isFunction(r)?void(a[t]=function(){function e(){return n.prototype[t].apply(this,arguments)}function i(e){return n.prototype[t].apply(this,e)}return function(){var t,n=this._super,o=this._superApply +return this._super=e,this._superApply=i,t=r.apply(this,arguments),this._super=n,this._superApply=o,t}}()):void(a[t]=r)}),o.prototype=e.widget.extend(s,{widgetEventPrefix:i?s.widgetEventPrefix||t:t},a,{constructor:o,namespace:u,widgetName:t,widgetFullName:c}),i?(e.each(i._childConstructors,function(t,n){var r=n.prototype +e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete i._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var r,i,o=n.call(arguments,1),s=0,a=o.length;a>s;s++)for(r in o[s])i=o[s][r],o[s].hasOwnProperty(r)&&void 0!==i&&(t[r]=e.isPlainObject(i)?e.isPlainObject(t[r])?e.widget.extend({},t[r],i):e.widget.extend({},i):i) +return t},e.widget.bridge=function(t,r){var i=r.prototype.widgetFullName||t +e.fn[t]=function(o){var s="string"==typeof o,a=n.call(arguments,1),u=this +return s?this.length||"instance"!==o?this.each(function(){var n,r=e.data(this,i) +return"instance"===o?(u=r,!1):r?e.isFunction(r[o])&&"_"!==o.charAt(0)?(n=r[o].apply(r,a),n!==r&&void 0!==n?(u=n&&n.jquery?u.pushStack(n.get()):n,!1):void 0):e.error("no such method '"+o+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; attempted to call method '"+o+"'")}):u=void 0:(a.length&&(o=e.widget.extend.apply(null,[o].concat(a))),this.each(function(){var t=e.data(this,i) +t?(t.option(o||{}),t._init&&t._init()):e.data(this,i,new r(o,this))})),u}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(n,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),this.classesElementLookup={},r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){var t=this +this._destroy(),e.each(this.classesElementLookup,function(e,n){t._removeClass(n,e)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var r,i,o,s=t +if(0===arguments.length)return e.widget.extend({},this.options) +if("string"==typeof t)if(s={},r=t.split("."),t=r.shift(),r.length){for(i=s[t]=e.widget.extend({},this.options[t]),o=0;r.length-1>o;o++)i[r[o]]=i[r[o]]||{},i=i[r[o]] +if(t=r.pop(),1===arguments.length)return void 0===i[t]?null:i[t] +i[t]=n}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t] +s[t]=n}return this._setOptions(s),this},_setOptions:function(e){var t +for(t in e)this._setOption(t,e[t]) +return this},_setOption:function(e,t){return"classes"===e&&this._setOptionClasses(t),this.options[e]=t,"disabled"===e&&this._setOptionDisabled(t),this},_setOptionClasses:function(t){var n,r,i +for(n in t)i=this.classesElementLookup[n],t[n]!==this.options.classes[n]&&i&&i.length&&(r=e(i.get()),this._removeClass(i,n),r.addClass(this._classes({element:r,keys:n,classes:t,add:!0})))},_setOptionDisabled:function(e){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!e),e&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(t){function n(n,o){var s,a +for(a=0;n.length>a;a++)s=i.classesElementLookup[n[a]]||e(),s=e(t.add?e.unique(s.get().concat(t.element.get())):s.not(t.element).get()),i.classesElementLookup[n[a]]=s,r.push(n[a]),o&&t.classes[n[a]]&&r.push(t.classes[n[a]])}var r=[],i=this +return t=e.extend({element:this.element,classes:this.options.classes||{}},t),this._on(t.element,{remove:"_untrackClassesElement"}),t.keys&&n(t.keys.match(/\S+/g)||[],!0),t.extra&&n(t.extra.match(/\S+/g)||[]),r.join(" ")},_untrackClassesElement:function(t){var n=this +e.each(n.classesElementLookup,function(r,i){-1!==e.inArray(t.target,i)&&(n.classesElementLookup[r]=e(i.not(t.target).get()))})},_removeClass:function(e,t,n){return this._toggleClass(e,t,n,!1)},_addClass:function(e,t,n){return this._toggleClass(e,t,n,!0)},_toggleClass:function(e,t,n,r){r="boolean"==typeof r?r:n +var i="string"==typeof e||null===e,o={extra:i?t:n,keys:i?e:t,element:i?this.element:e,add:r} +return o.element.toggleClass(this._classes(o),r),this},_on:function(t,n,r){var i,o=this +"boolean"!=typeof t&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,s){function a(){return t||!0!==o.options.disabled&&!e(this).hasClass("ui-state-disabled")?("string"==typeof s?o[s]:s).apply(o,arguments):void 0}"string"!=typeof s&&(a.guid=s.guid=s.guid||a.guid||e.guid++) +var u=r.match(/^([\w:-]*)\s*(.*)$/),c=u[1]+o.eventNamespace,l=u[2] +l?i.on(c,l,a):n.on(c,a)})},_off:function(t,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(n).off(n),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function n(){return("string"==typeof e?r[e]:e).apply(r,arguments)}var r=this +return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(e(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(e(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(e(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(e(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,n,r){var i,o,s=this.options[t] +if(r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],o=n.originalEvent)for(i in o)i in n||(n[i]=o[i]) +return this.element.trigger(n,r),!(e.isFunction(s)&&!1===s.apply(this.element[0],[n].concat(r))||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,o){"string"==typeof i&&(i={effect:i}) +var s,a=i?!0===i||"number"==typeof i?n:i.effect||n:t +i=i||{},"number"==typeof i&&(i={duration:i}),s=!e.isEmptyObject(i),i.complete=o,i.delay&&r.delay(i.delay),s&&e.effects&&e.effects.effect[a]?r[t](i):a!==t&&r[a]?r[a](i.duration,i.easing,o):r.queue(function(n){e(this)[t](),o&&o.call(r[0]),n()})}}),e.widget,e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])}}),e.fn.extend({disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown" +return function(){return this.on(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),e.fn.scrollParent=function(t){var n=this.css("position"),r="absolute"===n,i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var t=e(this) +return(!r||"static"!==t.css("position"))&&i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0) +return"fixed"!==n&&o.length?o:e(this[0].ownerDocument||document)},e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()) +var r=!1 +e(document).on("mouseup",function(){r=!1}),e.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var t=this +this.element.on("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).on("click."+this.widgetName,function(n){return!0===e.data(n.target,t.widgetName+".preventClickEvent")?(e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!r){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t +var n=this,i=1===t.which,o=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&e(t.target).closest(this.options.cancel).length +return!(i&&!o&&this._mouseCapture(t))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){n.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return n._mouseMove(e)},this._mouseUpDelegate=function(e){return n._mouseUp(e)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),r=!0,!0))}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t) +if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0 +else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,r=!1,t.preventDefault()},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),e.ui.plugin={add:function(t,n,r){var i,o=e.ui[t].prototype +for(i in r)o.plugins[i]=o.plugins[i]||[],o.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,o=e.plugins[t] +if(o&&(r||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(i=0;o.length>i;i++)e.options[o[i][0]]&&o[i][1].apply(e.element,n)}},e.ui.safeActiveElement=function(e){var t +try{t=e.activeElement}catch(n){t=e.body}return t||(t=e.body),t.nodeName||(t=e.body),t},e.ui.safeBlur=function(t){t&&"body"!==t.nodeName.toLowerCase()&&e(t).trigger("blur")},e.widget("ui.draggable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(t){var n=this.options +return!(this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(t),!!this.handle&&(this._blurActiveElement(t),this._blockFrames(!0===n.iframeFix?"iframe":n.iframeFix),!0))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this) +return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=e.ui.safeActiveElement(this.document[0]) +e(t.target).closest(n).length||e.ui.safeBlur(n)},_mouseStart:function(t){var n=this.options +return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!n){var r=this._uiHash() +if(!1===this._trigger("drag",t,r))return this._mouseUp(new e.Event("mouseup",t)),!1 +this.position=r.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,r=!1 +return e.ui.ddmanager&&!this.options.dropBehaviour&&(r=e.ui.ddmanager.drop(this,t)),this.dropped&&(r=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!r||"valid"===this.options.revert&&r||!0===this.options.revert||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,r)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==n._trigger("stop",t)&&n._clear()}):!1!==this._trigger("stop",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.trigger("focus"),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new e.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!e(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper),i=r?e(n.helper.apply(this.element[0],[t])):"clone"===n.helper?this.element.clone().removeAttr("id"):this.element +return i.parents("body").length||i.appendTo("parent"===n.appendTo?this.element[0].parentNode:n.appendTo),r&&i[0]===this.element[0]&&this._setPositionRelative(),i[0]===this.element[0]||/(fixed|absolute)/.test(i.css("position"))||i.css("position","absolute"),i},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0] +return"absolute"===this.cssPosition&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0} +var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]) +return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options,o=this.document[0] +return this.relativeContainer=null,i.containment?"window"===i.containment?void(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===i.containment?void(this.containment=[0,0,e(o).width()-this.helperProportions.width-this.margins.left,(e(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):i.containment.constructor===Array?void(this.containment=i.containment):("parent"===i.containment&&(i.containment=this.helper[0].parentNode),n=e(i.containment),void((r=n[0])&&(t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n))):void(this.containment=null)},_convertPositionTo:function(e,t){t||(t=this.position) +var n="absolute"===e?1:-1,r=this._isRootNode(this.scrollParent[0]) +return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,r,i,o,s=this.options,a=this._isRootNode(this.scrollParent[0]),u=e.pageX,c=e.pageY +return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(r=this.relativeContainer.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,e.pageX-this.offset.click.left<n[0]&&(u=n[0]+this.offset.click.left),e.pageY-this.offset.click.top<n[1]&&(c=n[1]+this.offset.click.top),e.pageX-this.offset.click.left>n[2]&&(u=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(c=n[3]+this.offset.click.top)),s.grid&&(i=s.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,c=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-s.grid[1]:i+s.grid[1]:i,o=s.grid[0]?this.originalPageX+Math.round((u-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,u=n?o-this.offset.click.left>=n[0]||o-this.offset.click.left>n[2]?o:o-this.offset.click.left>=n[0]?o-s.grid[0]:o+s.grid[0]:o),"y"===s.axis&&(u=this.originalPageX),"x"===s.axis&&(c=this.originalPageY)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:u-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),r.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,r){var i=e.extend({},n,{item:r.element}) +r.sortables=[],e(r.options.connectToSortable).each(function(){var n=e(this).sortable("instance") +n&&!n.options.disabled&&(r.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,i))})},stop:function(t,n,r){var i=e.extend({},n,{item:r.element}) +r.cancelHelperRemoval=!1,e.each(r.sortables,function(){var e=this +e.isOver?(e.isOver=0,r.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(t,n,r){e.each(r.sortables,function(){var i=!1,o=this +o.positionAbs=r.positionAbs,o.helperProportions=r.helperProportions,o.offset.click=r.offset.click,o._intersectsWith(o.containerCache)&&(i=!0,e.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&e.contains(o.element[0],this.element[0])&&(i=!1),i})),i?(o.isOver||(o.isOver=1,r._parent=n.helper.parent(),o.currentItem=n.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return n.helper[0]},t.target=o.currentItem[0],o._mouseCapture(t,!0),o._mouseStart(t,!0,!0),o.offset.click.top=r.offset.click.top,o.offset.click.left=r.offset.click.left,o.offset.parent.left-=r.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=r.offset.parent.top-o.offset.parent.top,r._trigger("toSortable",t),r.dropped=o.element,e.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,o.fromOutside=r),o.currentItem&&(o._mouseDrag(t),n.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",t,o._uiHash(o)),o._mouseStop(t,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),n.helper.appendTo(r._parent),r._refreshOffsets(t),n.position=r._generatePosition(t,!0),r._trigger("fromSortable",t),r.dropped=!1,e.each(r.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,r){var i=e("body"),o=r.options +i.css("cursor")&&(o._cursor=i.css("cursor")),i.css("cursor",o.cursor)},stop:function(t,n,r){var i=r.options +i._cursor&&e("body").css("cursor",i._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,r){var i=e(n.helper),o=r.options +i.css("opacity")&&(o._opacity=i.css("opacity")),i.css("opacity",o.opacity)},stop:function(t,n,r){var i=r.options +i._opacity&&e(n.helper).css("opacity",i._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,r){var i=r.options,o=!1,s=r.scrollParentNotHidden[0],a=r.document[0] +s!==a&&"HTML"!==s.tagName?(i.axis&&"x"===i.axis||(r.overflowOffset.top+s.offsetHeight-t.pageY<i.scrollSensitivity?s.scrollTop=o=s.scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(s.scrollTop=o=s.scrollTop-i.scrollSpeed)),i.axis&&"y"===i.axis||(r.overflowOffset.left+s.offsetWidth-t.pageX<i.scrollSensitivity?s.scrollLeft=o=s.scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(s.scrollLeft=o=s.scrollLeft-i.scrollSpeed))):(i.axis&&"x"===i.axis||(t.pageY-e(a).scrollTop()<i.scrollSensitivity?o=e(a).scrollTop(e(a).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(a).scrollTop())<i.scrollSensitivity&&(o=e(a).scrollTop(e(a).scrollTop()+i.scrollSpeed))),i.axis&&"y"===i.axis||(t.pageX-e(a).scrollLeft()<i.scrollSensitivity?o=e(a).scrollLeft(e(a).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(a).scrollLeft())<i.scrollSensitivity&&(o=e(a).scrollLeft(e(a).scrollLeft()+i.scrollSpeed)))),!1!==o&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n,r){var i=r.options +r.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var t=e(this),n=t.offset() +this!==r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n,r){var i,o,s,a,u,c,l,h,d,p,f=r.options,g=f.snapTolerance,m=n.offset.left,v=m+r.helperProportions.width,y=n.offset.top,b=y+r.helperProportions.height +for(d=r.snapElements.length-1;d>=0;d--)u=r.snapElements[d].left-r.margins.left,c=u+r.snapElements[d].width,l=r.snapElements[d].top-r.margins.top,h=l+r.snapElements[d].height,u-g>v||m>c+g||l-g>b||y>h+g||!e.contains(r.snapElements[d].item.ownerDocument,r.snapElements[d].item)?(r.snapElements[d].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[d].item})),r.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(i=g>=Math.abs(l-b),o=g>=Math.abs(h-y),s=g>=Math.abs(u-v),a=g>=Math.abs(c-m),i&&(n.position.top=r._convertPositionTo("relative",{top:l-r.helperProportions.height,left:0}).top),o&&(n.position.top=r._convertPositionTo("relative",{top:h,left:0}).top),s&&(n.position.left=r._convertPositionTo("relative",{top:0,left:u-r.helperProportions.width}).left),a&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c}).left)),p=i||o||s||a,"outer"!==f.snapMode&&(i=g>=Math.abs(l-y),o=g>=Math.abs(h-b),s=g>=Math.abs(u-m),a=g>=Math.abs(c-v),i&&(n.position.top=r._convertPositionTo("relative",{top:l,left:0}).top),o&&(n.position.top=r._convertPositionTo("relative",{top:h-r.helperProportions.height,left:0}).top),s&&(n.position.left=r._convertPositionTo("relative",{top:0,left:u}).left),a&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c-r.helperProportions.width}).left)),!r.snapElements[d].snapping&&(i||o||s||a||p)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[d].item})),r.snapElements[d].snapping=i||o||s||a||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,r){var i,o=r.options,s=e.makeArray(e(o.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)}) +s.length&&(i=parseInt(e(s[0]).css("zIndex"),10)||0,e(s).each(function(t){e(this).css("zIndex",i+t)}),this.css("zIndex",i+s.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,r){var i=e(n.helper),o=r.options +i.css("zIndex")&&(o._zIndex=i.css("zIndex")),i.css("zIndex",o.zIndex)},stop:function(t,n,r){var i=r.options +i._zIndex&&e(n.helper).css("zIndex",i._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseFloat(e)||0},_isNumber:function(e){return!isNaN(parseFloat(e))},_hasScroll:function(t,n){if("hidden"===e(t).css("overflow"))return!1 +var r=n&&"left"===n?"scrollLeft":"scrollTop",i=!1 +return t[r]>0||(t[r]=1,i=t[r]>0,t[r]=0,i)},_create:function(){var t,n=this.options,r=this +this._addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),n.autoHide&&e(this.element).on("mouseenter",function(){n.disabled||(r._removeClass("ui-resizable-autohide"),r._handles.show())}).on("mouseleave",function(){n.disabled||r.resizing||(r._addClass("ui-resizable-autohide"),r._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy() +var t,n=function(t){e(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()} +return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_setOption:function(e,t){switch(this._super(e,t),e){case"handles":this._removeHandles(),this._setupHandles()}},_setupHandles:function(){var t,n,r,i,o,s=this.options,a=this +if(this.handles=s.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),r=this.handles.split(","),this.handles={},n=0;r.length>n;n++)t=e.trim(r[n]),i="ui-resizable-"+t,o=e("<div>"),this._addClass(o,"ui-resizable-handle "+i),o.css({zIndex:s.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(o) +this._renderAxis=function(t){var n,r,i,o +t=t||this.element +for(n in this.handles)this.handles[n].constructor===String?this.handles[n]=this.element.children(this.handles[n]).first().show():(this.handles[n].jquery||this.handles[n].nodeType)&&(this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(r=e(this.handles[n],this.element),o=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=o&&o[1]?o[1]:"se")}),s.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var n,r,i=!1 +for(n in this.handles)((r=e(this.handles[n])[0])===t.target||e.contains(r,t.target))&&(i=!0) +return!this.options.disabled&&i},_mouseStart:function(t){var n,r,i,o=this.options,s=this.element +return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),r=this._num(this.helper.css("top")),o.containment&&(n+=e(o.containment).scrollLeft()||0,r+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:r},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalPosition={left:n,top:r},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,i=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===i?this.axis+"-resize":i),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r,i=this.originalMousePosition,o=this.axis,s=t.pageX-i.left||0,a=t.pageY-i.top||0,u=this._change[o] +return this._updatePrevProperties(),!!u&&(n=u.apply(this,[t,s,a]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(n=this._updateRatio(n,t)),n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),r=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(r)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1)},_mouseStop:function(t){this.resizing=!1 +var n,r,i,o,s,a,u,c=this.options,l=this +return this._helper&&(n=this._proportionallyResizeElements,r=n.length&&/textarea/i.test(n[0].nodeName),i=r&&this._hasScroll(n[0],"left")?0:l.sizeDiff.height,o=r?0:l.sizeDiff.width,s={width:l.helper.width()-o,height:l.helper.height()-i},a=parseFloat(l.element.css("left"))+(l.position.left-l.originalPosition.left)||null,u=parseFloat(l.element.css("top"))+(l.position.top-l.originalPosition.top)||null,c.animate||this.element.css(e.extend(s,{top:u,left:a})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!c.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={} +return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,n,r,i,o,s=this.options +o={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0},(this._aspectRatio||e)&&(t=o.minHeight*this.aspectRatio,r=o.minWidth/this.aspectRatio,n=o.maxHeight*this.aspectRatio,i=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),r>o.minHeight&&(o.minHeight=r),o.maxWidth>n&&(o.maxWidth=n),o.maxHeight>i&&(o.maxHeight=i)),this._vBoundaries=o},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,n=this.size,r=this.axis +return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===r&&(e.left=t.left+(n.width-e.width),e.top=null),"nw"===r&&(e.top=t.top+(n.height-e.height),e.left=t.left+(n.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,n=this.axis,r=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,i=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,o=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,s=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,a=this.originalPosition.left+this.originalSize.width,u=this.originalPosition.top+this.originalSize.height,c=/sw|nw|w/.test(n),l=/nw|ne|n/.test(n) +return o&&(e.width=t.minWidth),s&&(e.height=t.minHeight),r&&(e.width=t.maxWidth),i&&(e.height=t.maxHeight),o&&c&&(e.left=a-t.minWidth),r&&c&&(e.left=a-t.maxWidth),s&&l&&(e.top=u-t.minHeight),i&&l&&(e.top=u-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,n=[],r=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],i=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)n[t]=parseFloat(r[t])||0,n[t]+=parseFloat(i[t])||0 +return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,n=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,n=this.options +this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize +return{left:this.originalPosition.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize +return{top:this.originalPosition.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),"resize"!==t&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),r=n.options,i=n._proportionallyResizeElements,o=i.length&&/textarea/i.test(i[0].nodeName),s=o&&n._hasScroll(i[0],"left")?0:n.sizeDiff.height,a=o?0:n.sizeDiff.width,u={width:n.size.width-a,height:n.size.height-s},c=parseFloat(n.element.css("left"))+(n.position.left-n.originalPosition.left)||null,l=parseFloat(n.element.css("top"))+(n.position.top-n.originalPosition.top)||null +n.element.animate(e.extend(u,l&&c?{top:l,left:c}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseFloat(n.element.css("width")),height:parseFloat(n.element.css("height")),top:parseFloat(n.element.css("top")),left:parseFloat(n.element.css("left"))} +i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,r,i,o,s,a,u=e(this).resizable("instance"),c=u.options,l=u.element,h=c.containment,d=h instanceof e?h.get(0):/parent/.test(h)?l.parent().get(0):h +d&&(u.containerElement=e(d),/document/.test(h)||h===document?(u.containerOffset={left:0,top:0},u.containerPosition={left:0,top:0},u.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(d),n=[],e(["Top","Right","Left","Bottom"]).each(function(e,r){n[e]=u._num(t.css("padding"+r))}),u.containerOffset=t.offset(),u.containerPosition=t.position(),u.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},r=u.containerOffset,i=u.containerSize.height,o=u.containerSize.width,s=u._hasScroll(d,"left")?d.scrollWidth:o,a=u._hasScroll(d)?d.scrollHeight:i,u.parentData={element:d,left:r.left,top:r.top,width:s,height:a}))},resize:function(t){var n,r,i,o,s=e(this).resizable("instance"),a=s.options,u=s.containerOffset,c=s.position,l=s._aspectRatio||t.shiftKey,h={top:0,left:0},d=s.containerElement,p=!0 +d[0]!==document&&/static/.test(d.css("position"))&&(h=u),c.left<(s._helper?u.left:0)&&(s.size.width=s.size.width+(s._helper?s.position.left-u.left:s.position.left-h.left),l&&(s.size.height=s.size.width/s.aspectRatio,p=!1),s.position.left=a.helper?u.left:0),c.top<(s._helper?u.top:0)&&(s.size.height=s.size.height+(s._helper?s.position.top-u.top:s.position.top),l&&(s.size.width=s.size.height*s.aspectRatio,p=!1),s.position.top=s._helper?u.top:0),i=s.containerElement.get(0)===s.element.parent().get(0),o=/relative|absolute/.test(s.containerElement.css("position")),i&&o?(s.offset.left=s.parentData.left+s.position.left,s.offset.top=s.parentData.top+s.position.top):(s.offset.left=s.element.offset().left,s.offset.top=s.element.offset().top),n=Math.abs(s.sizeDiff.width+(s._helper?s.offset.left-h.left:s.offset.left-u.left)),r=Math.abs(s.sizeDiff.height+(s._helper?s.offset.top-h.top:s.offset.top-u.top)),n+s.size.width>=s.parentData.width&&(s.size.width=s.parentData.width-n,l&&(s.size.height=s.size.width/s.aspectRatio,p=!1)),r+s.size.height>=s.parentData.height&&(s.size.height=s.parentData.height-r,l&&(s.size.width=s.size.height*s.aspectRatio,p=!1)),p||(s.position.left=s.prevPosition.left,s.position.top=s.prevPosition.top,s.size.width=s.prevSize.width,s.size.height=s.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,r=t.containerOffset,i=t.containerPosition,o=t.containerElement,s=e(t.helper),a=s.offset(),u=s.outerWidth()-t.sizeDiff.width,c=s.outerHeight()-t.sizeDiff.height +t._helper&&!n.animate&&/relative/.test(o.css("position"))&&e(this).css({left:a.left-i.left-r.left,width:u,height:c}),t._helper&&!n.animate&&/static/.test(o.css("position"))&&e(this).css({left:a.left-i.left-r.left,width:u,height:c})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),n=t.options +e(n.alsoResize).each(function(){var t=e(this) +t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,n){var r=e(this).resizable("instance"),i=r.options,o=r.originalSize,s=r.originalPosition,a={height:r.size.height-o.height||0,width:r.size.width-o.width||0,top:r.position.top-s.top||0,left:r.position.left-s.left||0} +e(i.alsoResize).each(function(){var t=e(this),r=e(this).data("ui-resizable-alsoresize"),i={},o=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"] +e.each(o,function(e,t){var n=(r[t]||0)+(a[t]||0) +n&&n>=0&&(i[t]=n||null)}),t.css(i)})},stop:function(){e(this).removeData("ui-resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.size +t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:n.height,width:n.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==e.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance") +t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance") +t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),r=n.options,i=n.size,o=n.originalSize,s=n.originalPosition,a=n.axis,u="number"==typeof r.grid?[r.grid,r.grid]:r.grid,c=u[0]||1,l=u[1]||1,h=Math.round((i.width-o.width)/c)*c,d=Math.round((i.height-o.height)/l)*l,p=o.width+h,f=o.height+d,g=r.maxWidth&&p>r.maxWidth,m=r.maxHeight&&f>r.maxHeight,v=r.minWidth&&r.minWidth>p,y=r.minHeight&&r.minHeight>f +r.grid=u,v&&(p+=c),y&&(f+=l),g&&(p-=c),m&&(f-=l),/^(se|s|e)$/.test(a)?(n.size.width=p,n.size.height=f):/^(ne)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.top=s.top-d):/^(sw)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.left=s.left-h):((0>=f-l||0>=p-c)&&(t=n._getPaddingPlusBorderDimensions(this)),f-l>0?(n.size.height=f,n.position.top=s.top-d):(f=l-t.height,n.size.height=f,n.position.top=s.top+o.height-f),p-c>0?(n.size.width=p,n.position.left=s.left-h):(p=c-t.width,n.size.width=p,n.position.left=s.left+o.width-p))}}),e.ui.resizable}),function(e){"use strict" +"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e,t){"use strict" +if(!e.jstree){var n=0,r=!1,i=!1,o=!1,s=[],a=e("script:last").attr("src"),u=window.document +e.jstree={version:"3.3.5",defaults:{plugins:[]},plugins:{},path:a&&-1!==a.indexOf("/")?a.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},e.jstree.create=function(t,r){var i=new e.jstree.core(++n),o=r +return r=e.extend(!0,{},e.jstree.defaults,r),o&&o.plugins&&(r.plugins=o.plugins),e.each(r.plugins,function(e,t){"core"!==e&&(i=i.plugin(t,r[t]))}),e(t).data("jstree",i),i.init(t,r),i},e.jstree.destroy=function(){e(".jstree:jstree").jstree("destroy"),e(u).off(".jstree")},e.jstree.core=function(e){this._id=e,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1,ellipsis:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},e.jstree.reference=function(t){var n=null,r=null +if(!t||!t.id||t.tagName&&t.nodeType||(t=t.id),!r||!r.length)try{r=e(t)}catch(e){}if(!r||!r.length)try{r=e("#"+t.replace(e.jstree.idregex,"\\$&"))}catch(e){}return r&&r.length&&(r=r.closest(".jstree")).length&&(r=r.data("jstree"))?n=r:e(".jstree").each(function(){var r=e(this).data("jstree") +return r&&r._model.data[t]?(n=r,!1):void 0}),n},e.fn.jstree=function(n){var r="string"==typeof n,i=Array.prototype.slice.call(arguments,1),o=null +return!(!0===n&&!this.length)&&(this.each(function(){var s=e.jstree.reference(this),a=r&&s?s[n]:null +return o=r&&a?a.apply(s,i):null,s||r||n!==t&&!e.isPlainObject(n)||e.jstree.create(this,n),(s&&!r||!0===n)&&(o=s||!1),(null===o||o===t)&&void 0}),null!==o&&o!==t?o:this)},e.expr.pseudos.jstree=e.expr.createPseudo(function(n){return function(n){return e(n).hasClass("jstree")&&e(n).data("jstree")!==t}}),e.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:e.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,ellipsis:!1,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0,loaded_state:!1,restore_focus:!0,keyboard:{"ctrl-space":function(t){t.type="click",e(t.currentTarget).trigger(t)},enter:function(t){t.type="click",e(t.currentTarget).trigger(t)},left:function(t){if(t.preventDefault(),this.is_open(t.currentTarget))this.close_node(t.currentTarget) +else{var n=this.get_parent(t.currentTarget) +n&&n.id!==e.jstree.root&&this.get_node(n,!0).children(".jstree-anchor").focus()}},up:function(e){e.preventDefault() +var t=this.get_prev_dom(e.currentTarget) +t&&t.length&&t.children(".jstree-anchor").focus()},right:function(t){if(t.preventDefault(),this.is_closed(t.currentTarget))this.open_node(t.currentTarget,function(e){this.get_node(e,!0).children(".jstree-anchor").focus()}) +else if(this.is_open(t.currentTarget)){var n=this.get_node(t.currentTarget,!0).children(".jstree-children")[0] +n&&e(this._firstChild(n)).children(".jstree-anchor").focus()}},down:function(e){e.preventDefault() +var t=this.get_next_dom(e.currentTarget) +t&&t.length&&t.children(".jstree-anchor").focus()},"*":function(e){this.open_all()},home:function(t){t.preventDefault() +var n=this._firstChild(this.get_container_ul()[0]) +n&&e(n).children(".jstree-anchor").filter(":visible").focus()},end:function(e){e.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus()},f2:function(e){e.preventDefault(),this.edit(e.currentTarget)}}},e.jstree.core.prototype={plugin:function(t,n){var r=e.jstree.plugins[t] +return r?(this._data[t]={},r.prototype=this,new r(n,this)):this},init:function(t,n){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[e.jstree.root]={id:e.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=e(t).addClass("jstree jstree-"+this._id),this.settings=n,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().outerHeight()||24,this._data.core.node=this._create_prototype_node(),this.trigger("loading"),this.load_node(e.jstree.root)},destroy:function(e){if(this.trigger("destroy"),this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(e){}e||this.element.empty(),this.teardown()},_create_prototype_node:function(){var e,t,n=u.createElement("LI") +return n.setAttribute("role","treeitem"),e=u.createElement("I"),e.className="jstree-icon jstree-ocl",e.setAttribute("role","presentation"),n.appendChild(e),e=u.createElement("A"),e.className="jstree-anchor",e.setAttribute("href","#"),e.setAttribute("tabindex","-1"),t=u.createElement("I"),t.className="jstree-icon jstree-themeicon",t.setAttribute("role","presentation"),e.appendChild(t),n.appendChild(e),e=t=null,n},_kbevent_to_func:function(e){var t={8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock",16:"Shift",17:"Ctrl",18:"Alt",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*",173:"-"},n=[] +e.ctrlKey&&n.push("ctrl"),e.altKey&&n.push("alt"),e.shiftKey&&n.push("shift"),n.push(t[e.which]||e.which),n=n.sort().join("-").toLowerCase() +var r,i,o=this.settings.core.keyboard +for(r in o)if(o.hasOwnProperty(r)&&(i=r,"-"!==i&&"+"!==i&&(i=i.replace("--","-MINUS").replace("+-","-MINUS").replace("++","-PLUS").replace("-+","-PLUS"),i=i.split(/-|\+/).sort().join("-").replace("MINUS","-").replace("PLUS","+").toLowerCase()),i===n))return o[r] +return null},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var t="",n=null,r=0 +this.element.on("dblclick.jstree",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0 +if(u.selection&&u.selection.empty)u.selection.empty() +else if(window.getSelection){var t=window.getSelection() +try{t.removeAllRanges(),t.collapse()}catch(e){}}}).on("mousedown.jstree",e.proxy(function(e){e.target===this.element[0]&&(e.preventDefault(),r=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(e){e.preventDefault()}).on("click.jstree",".jstree-ocl",e.proxy(function(e){this.toggle_node(e.target)},this)).on("dblclick.jstree",".jstree-anchor",e.proxy(function(e){return!(!e.target.tagName||"input"!==e.target.tagName.toLowerCase())||void(this.settings.core.dblclick_toggle&&this.toggle_node(e.target))},this)).on("click.jstree",".jstree-anchor",e.proxy(function(t){t.preventDefault(),t.currentTarget!==u.activeElement&&e(t.currentTarget).focus(),this.activate_node(t.currentTarget,t)},this)).on("keydown.jstree",".jstree-anchor",e.proxy(function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0 +this._data.core.rtl&&(37===e.which?e.which=39:39===e.which&&(e.which=37)) +var t=this._kbevent_to_func(e) +if(t){var n=t.call(this,e) +if(!1===n||!0===n)return n}},this)).on("load_node.jstree",e.proxy(function(t,n){n.status&&(n.node.id!==e.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(e.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var t,n,r=[] +for(t=0,n=this._data.core.selected.length;n>t;t++)r=r.concat(this._model.data[this._data.core.selected[t]].parents) +for(r=e.vakata.array_unique(r),t=0,n=r.length;n>t;t++)this.open_node(r[t],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",e.proxy(function(r){if(r.target.tagName&&"input"===r.target.tagName.toLowerCase())return!0 +n&&clearTimeout(n),n=setTimeout(function(){t=""},500) +var i=String.fromCharCode(r.which).toLowerCase(),o=this.element.find(".jstree-anchor").filter(":visible"),s=o.index(u.activeElement)||0,a=!1 +if(t+=i,t.length>1){if(o.slice(s).each(e.proxy(function(n,r){return 0===e(r).text().toLowerCase().indexOf(t)?(e(r).focus(),a=!0,!1):void 0},this)),a)return +if(o.slice(0,s).each(e.proxy(function(n,r){return 0===e(r).text().toLowerCase().indexOf(t)?(e(r).focus(),a=!0,!1):void 0},this)),a)return}if(new RegExp("^"+i.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(t)){if(o.slice(s+1).each(e.proxy(function(t,n){return e(n).text().toLowerCase().charAt(0)===i?(e(n).focus(),a=!0,!1):void 0},this)),a)return +if(o.slice(0,s+1).each(e.proxy(function(t,n){return e(n).text().toLowerCase().charAt(0)===i?(e(n).focus(),a=!0,!1):void 0},this)),a)return}},this)).on("init.jstree",e.proxy(function(){var e=this.settings.core.themes +this._data.core.themes.dots=e.dots,this._data.core.themes.stripes=e.stripes,this._data.core.themes.icons=e.icons,this._data.core.themes.ellipsis=e.ellipsis,this.set_theme(e.name||"default",e.url),this.set_theme_variant(e.variant)},this)).on("loading.jstree",e.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"](),this[this._data.core.themes.ellipsis?"show_ellipsis":"hide_ellipsis"]()},this)).on("blur.jstree",".jstree-anchor",e.proxy(function(t){this._data.core.focused=null,e(t.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",e.proxy(function(t){var n=this.get_node(t.currentTarget) +n&&n.id&&(this._data.core.focused=n.id),this.element.find(".jstree-hovered").not(t.currentTarget).mouseleave(),e(t.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",e.proxy(function(){if(+new Date-r>500&&!this._data.core.focused&&this.settings.core.restore_focus){r=0 +var e=this.get_node(this.element.attr("aria-activedescendant"),!0) +e&&e.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",e.proxy(function(e){this.hover_node(e.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",e.proxy(function(e){this.dehover_node(e.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),e(u).off(".jstree-"+this._id)},trigger:function(e,t){t||(t={}),t.instance=this,this.element.triggerHandler(e.replace(".jstree","")+".jstree",t)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(t){var n=this.settings.core.strings +return e.isFunction(n)?n.call(this,t):n&&n[t]?n[t]:t},_firstChild:function(e){for(e=e?e.firstChild:null;null!==e&&1!==e.nodeType;)e=e.nextSibling +return e},_nextSibling:function(e){for(e=e?e.nextSibling:null;null!==e&&1!==e.nodeType;)e=e.nextSibling +return e},_previousSibling:function(e){for(e=e?e.previousSibling:null;null!==e&&1!==e.nodeType;)e=e.previousSibling +return e},get_node:function(t,n){t&&t.id&&(t=t.id) +var r +try{if(this._model.data[t])t=this._model.data[t] +else if("string"==typeof t&&this._model.data[t.replace(/^#/,"")])t=this._model.data[t.replace(/^#/,"")] +else if("string"==typeof t&&(r=e("#"+t.replace(e.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[r.closest(".jstree-node").attr("id")])t=this._model.data[r.closest(".jstree-node").attr("id")] +else if((r=e(t,this.element)).length&&this._model.data[r.closest(".jstree-node").attr("id")])t=this._model.data[r.closest(".jstree-node").attr("id")] +else{if(!(r=e(t,this.element)).length||!r.hasClass("jstree"))return!1 +t=this._model.data[e.jstree.root]}return n&&(t=t.id===e.jstree.root?this.element:e("#"+t.id.replace(e.jstree.idregex,"\\$&"),this.element)),t}catch(e){return!1}},get_path:function(t,n,r){if(!(t=t.parents?t:this.get_node(t))||t.id===e.jstree.root||!t.parents)return!1 +var i,o,s=[] +for(s.push(r?t.id:t.text),i=0,o=t.parents.length;o>i;i++)s.push(r?t.parents[i]:this.get_text(t.parents[i])) +return s=s.reverse().slice(1),n?s.join(n):s},get_next_dom:function(t,n){var r +if(t=this.get_node(t,!0),t[0]===this.element[0]){for(r=this._firstChild(this.get_container_ul()[0]);r&&0===r.offsetHeight;)r=this._nextSibling(r) +return!!r&&e(r)}if(!t||!t.length)return!1 +if(n){r=t[0] +do{r=this._nextSibling(r)}while(r&&0===r.offsetHeight) +return!!r&&e(r)}if(t.hasClass("jstree-open")){for(r=this._firstChild(t.children(".jstree-children")[0]);r&&0===r.offsetHeight;)r=this._nextSibling(r) +if(null!==r)return e(r)}r=t[0] +do{r=this._nextSibling(r)}while(r&&0===r.offsetHeight) +return null!==r?e(r):t.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(t,n){var r +if(t=this.get_node(t,!0),t[0]===this.element[0]){for(r=this.get_container_ul()[0].lastChild;r&&0===r.offsetHeight;)r=this._previousSibling(r) +return!!r&&e(r)}if(!t||!t.length)return!1 +if(n){r=t[0] +do{r=this._previousSibling(r)}while(r&&0===r.offsetHeight) +return!!r&&e(r)}r=t[0] +do{r=this._previousSibling(r)}while(r&&0===r.offsetHeight) +if(null!==r){for(t=e(r);t.hasClass("jstree-open");)t=t.children(".jstree-children").first().children(".jstree-node:visible:last") +return t}return!(!(r=t[0].parentNode.parentNode)||!r.className||-1===r.className.indexOf("jstree-node"))&&e(r)},get_parent:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.parent},get_children_dom:function(e){return e=this.get_node(e,!0),e[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):!(!e||!e.length)&&e.children(".jstree-children").children(".jstree-node")},is_parent:function(e){return(e=this.get_node(e))&&(!1===e.state.loaded||e.children.length>0)},is_loaded:function(e){return(e=this.get_node(e))&&e.state.loaded},is_loading:function(e){return(e=this.get_node(e))&&e.state&&e.state.loading},is_open:function(e){return(e=this.get_node(e))&&e.state.opened},is_closed:function(e){return(e=this.get_node(e))&&this.is_parent(e)&&!e.state.opened},is_leaf:function(e){return!this.is_parent(e)},load_node:function(t,n){var r,i,o,s,a +if(e.isArray(t))return this._load_nodes(t.slice(),n),!0 +if(!(t=this.get_node(t)))return n&&n.call(this,t,!1),!1 +if(t.state.loaded){for(t.state.loaded=!1,o=0,s=t.parents.length;s>o;o++)this._model.data[t.parents[o]].children_d=e.vakata.array_filter(this._model.data[t.parents[o]].children_d,function(n){return-1===e.inArray(n,t.children_d)}) +for(r=0,i=t.children_d.length;i>r;r++)this._model.data[t.children_d[r]].state.selected&&(a=!0),delete this._model.data[t.children_d[r]] +a&&(this._data.core.selected=e.vakata.array_filter(this._data.core.selected,function(n){return-1===e.inArray(n,t.children_d)})),t.children=[],t.children_d=[],a&&this.trigger("changed",{action:"load_node",node:t,selected:this._data.core.selected})}return t.state.failed=!1,t.state.loading=!0,this.get_node(t,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(t,e.proxy(function(e){t=this._model.data[t.id],t.state.loading=!1,t.state.loaded=e,t.state.failed=!t.state.loaded +var r=this.get_node(t,!0),i=0,o=0,s=this._model.data,a=!1 +for(i=0,o=t.children.length;o>i;i++)if(s[t.children[i]]&&!s[t.children[i]].state.hidden){a=!0 +break}t.state.loaded&&r&&r.length&&(r.removeClass("jstree-closed jstree-open jstree-leaf"),a?"#"!==t.id&&r.addClass(t.state.opened?"jstree-open":"jstree-closed"):r.addClass("jstree-leaf")),r.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:t,status:e}),n&&n.call(this,t,e)},this)),!0},_load_nodes:function(e,t,n,r){var i,o,s=!0,a=function(){this._load_nodes(e,t,!0)},u=this._model.data,c=[] +for(i=0,o=e.length;o>i;i++)u[e[i]]&&(!u[e[i]].state.loaded&&!u[e[i]].state.failed||!n&&r)&&(this.is_loading(e[i])||this.load_node(e[i],a),s=!1) +if(s){for(i=0,o=e.length;o>i;i++)u[e[i]]&&u[e[i]].state.loaded&&c.push(e[i]) +t&&!t.done&&(t.call(this,c),t.done=!0)}},load_all:function(t,n){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1 +var r,i,o=[],s=this._model.data,a=s[t.id].children_d +for(t.state&&!t.state.loaded&&o.push(t.id),r=0,i=a.length;i>r;r++)s[a[r]]&&s[a[r]].state&&!s[a[r]].state.loaded&&o.push(a[r]) +o.length?this._load_nodes(o,function(){this.load_all(t,n)}):(n&&n.call(this,t),this.trigger("load_all",{node:t}))},_load_node:function(t,n){var r,i=this.settings.core.data,o=function(){return 3!==this.nodeType&&8!==this.nodeType} +return i?e.isFunction(i)?i.call(this,t,e.proxy(function(r){!1===r?n.call(this,!1):this["string"==typeof r?"_append_html_data":"_append_json_data"](t,"string"==typeof r?e(e.parseHTML(r)).filter(o):r,function(e){n.call(this,e)})},this)):"object"==typeof i?i.url?(i=e.extend(!0,{},i),e.isFunction(i.url)&&(i.url=i.url.call(this,t)),e.isFunction(i.data)&&(i.data=i.data.call(this,t)),e.ajax(i).done(e.proxy(function(r,i,s){var a=s.getResponseHeader("Content-Type") +return a&&-1!==a.indexOf("json")||"object"==typeof r?this._append_json_data(t,r,function(e){n.call(this,e)}):a&&-1!==a.indexOf("html")||"string"==typeof r?this._append_html_data(t,e(e.parseHTML(r)).filter(o),function(e){n.call(this,e)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:t.id,xhr:s})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1))},this)).fail(e.proxy(function(e){this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:t.id,xhr:e})},n.call(this,!1),this.settings.core.error.call(this,this._data.core.last_error)},this))):(r=e.isArray(i)?e.extend(!0,[],i):e.isPlainObject(i)?e.extend(!0,{},i):i,t.id===e.jstree.root?this._append_json_data(t,r,function(e){n.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:t.id})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1))):"string"==typeof i?t.id===e.jstree.root?this._append_html_data(t,e(e.parseHTML(i)).filter(o),function(e){n.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:t.id})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1)):n.call(this,!1):t.id===e.jstree.root?this._append_html_data(t,this._data.core.original_container_html.clone(!0),function(e){n.call(this,e)}):n.call(this,!1)},_node_changed:function(t){(t=this.get_node(t))&&-1===e.inArray(t.id,this._model.changed)&&this._model.changed.push(t.id)},_append_html_data:function(t,n,r){t=this.get_node(t),t.children=[],t.children_d=[] +var i,o,s,a=n.is("ul")?n.children():n,u=t.id,c=[],l=[],h=this._model.data,d=h[u],p=this._data.core.selected.length +for(a.each(e.proxy(function(t,n){(i=this._parse_model_from_html(e(n),u,d.parents.concat()))&&(c.push(i),l.push(i),h[i].children_d.length&&(l=l.concat(h[i].children_d)))},this)),d.children=c,d.children_d=l,o=0,s=d.parents.length;s>o;o++)h[d.parents[o]].children_d=h[d.parents[o]].children_d.concat(l) +this.trigger("model",{nodes:l,parent:u}),u!==e.jstree.root?(this._node_changed(u),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==p&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),r.call(this,!0)},_append_json_data:function(t,n,r,i){if(null!==this.element){t=this.get_node(t),t.children=[],t.children_d=[],n.d&&"string"==typeof(n=n.d)&&(n=JSON.parse(n)),e.isArray(n)||(n=[n]) +var o=null,s={df:this._model.default_state,dat:n,par:t.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},a=function(e,t){e.data&&(e=e.data) +var n,r,i,o,s=e.dat,a=e.par,u=[],c=[],l=[],h=e.df,d=e.t_id,p=e.t_cnt,f=e.m,g=f[a],m=e.sel,v=function(e,n,r){r=r?r.concat():[],n&&r.unshift(n) +var i,o,s,a,u=e.id.toString(),c={id:u,text:e.text||"",icon:e.icon===t||e.icon,parent:n,parents:r,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1} +for(i in h)h.hasOwnProperty(i)&&(c.state[i]=h[i]) +if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(c.icon=e.data.jstree.icon),(c.icon===t||null===c.icon||""===c.icon)&&(c.icon=!0),e&&e.data&&(c.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(c.state[i]=e.data.jstree[i]) +if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(c.state[i]=e.state[i]) +if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(c.li_attr[i]=e.li_attr[i]) +if(c.li_attr.id||(c.li_attr.id=u),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(c.a_attr[i]=e.a_attr[i]) +for(e&&e.children&&!0===e.children&&(c.state.loaded=!1,c.children=[],c.children_d=[]),f[c.id]=c,i=0,o=c.children.length;o>i;i++)s=v(f[c.children[i]],c.id,r),a=f[s],c.children_d.push(s),a.children_d.length&&(c.children_d=c.children_d.concat(a.children_d)) +return delete e.data,delete e.children,f[c.id].original=e,c.state.selected&&l.push(c.id),c.id},y=function(e,n,r){r=r?r.concat():[],n&&r.unshift(n) +var i,o,s,a,u,c=!1 +do{c="j"+d+"_"+ ++p}while(f[c]) +u={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===t||e.icon,parent:n,parents:r,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1} +for(i in h)h.hasOwnProperty(i)&&(u.state[i]=h[i]) +if(e&&e.id&&(u.id=e.id.toString()),e&&e.text&&(u.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(u.icon=e.data.jstree.icon),(u.icon===t||null===u.icon||""===u.icon)&&(u.icon=!0),e&&e.data&&(u.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(u.state[i]=e.data.jstree[i]) +if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(u.state[i]=e.state[i]) +if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(u.li_attr[i]=e.li_attr[i]) +if(u.li_attr.id&&!u.id&&(u.id=u.li_attr.id.toString()),u.id||(u.id=c),u.li_attr.id||(u.li_attr.id=u.id),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(u.a_attr[i]=e.a_attr[i]) +if(e&&e.children&&e.children.length){for(i=0,o=e.children.length;o>i;i++)s=y(e.children[i],u.id,r),a=f[s],u.children.push(s),a.children_d.length&&(u.children_d=u.children_d.concat(a.children_d)) +u.children_d=u.children_d.concat(u.children)}return e&&e.children&&!0===e.children&&(u.state.loaded=!1,u.children=[],u.children_d=[]),delete e.data,delete e.children,u.original=e,f[u.id]=u,u.state.selected&&l.push(u.id),u.id} +if(s.length&&s[0].id!==t&&s[0].parent!==t){for(r=0,i=s.length;i>r;r++)s[r].children||(s[r].children=[]),s[r].state||(s[r].state={}),f[s[r].id.toString()]=s[r] +for(r=0,i=s.length;i>r;r++)f[s[r].parent.toString()]?(f[s[r].parent.toString()].children.push(s[r].id.toString()),g.children_d.push(s[r].id.toString())):(this._data.core.last_error={error:"parse",plugin:"core",id:"core_07",reason:"Node with invalid parent",data:JSON.stringify({id:s[r].id.toString(),parent:s[r].parent.toString()})},this.settings.core.error.call(this,this._data.core.last_error)) +for(r=0,i=g.children.length;i>r;r++)n=v(f[g.children[r]],a,g.parents.concat()),c.push(n),f[n].children_d.length&&(c=c.concat(f[n].children_d)) +for(r=0,i=g.parents.length;i>r;r++)f[g.parents[r]].children_d=f[g.parents[r]].children_d.concat(c) +o={cnt:p,mod:f,sel:m,par:a,dpc:c,add:l}}else{for(r=0,i=s.length;i>r;r++)(n=y(s[r],a,g.parents.concat()))&&(u.push(n),c.push(n),f[n].children_d.length&&(c=c.concat(f[n].children_d))) +for(g.children=u,g.children_d=c,r=0,i=g.parents.length;i>r;r++)f[g.parents[r]].children_d=f[g.parents[r]].children_d.concat(c) +o={cnt:p,mod:f,sel:m,par:a,dpc:c,add:l}}return"undefined"!=typeof window&&void 0!==window.document?o:void postMessage(o)},u=function(t,n){if(null!==this.element){this._cnt=t.cnt +var i,o=this._model.data +for(i in o)o.hasOwnProperty(i)&&o[i].state&&o[i].state.loading&&t.mod[i]&&(t.mod[i].state.loading=!0) +if(this._model.data=t.mod,n){var s,a=t.add,u=t.sel,c=this._data.core.selected.slice() +if(o=this._model.data,u.length!==c.length||e.vakata.array_unique(u.concat(c)).length!==u.length){for(i=0,s=u.length;s>i;i++)-1===e.inArray(u[i],a)&&-1===e.inArray(u[i],c)&&(o[u[i]].state.selected=!1) +for(i=0,s=c.length;s>i;i++)-1===e.inArray(c[i],u)&&(o[c[i]].state.selected=!0)}}t.add.length&&(this._data.core.selected=this._data.core.selected.concat(t.add)),this.trigger("model",{nodes:t.dpc,parent:t.par}),t.par!==e.jstree.root?(this._node_changed(t.par),this.redraw()):this.redraw(!0),t.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),r.call(this,!0)}} +if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+a.toString()],{type:"text/javascript"}))),!this._data.core.working||i?(this._data.core.working=!0,o=new window.Worker(this._wrk),o.onmessage=e.proxy(function(e){u.call(this,e.data,!0) +try{o.terminate(),o=null}catch(e){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),s.par?o.postMessage(s):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([t,n,r,!0])}catch(e){u.call(this,a(s),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else u.call(this,a(s),!1)}},_parse_model_from_html:function(n,r,i){i=i?[].concat(i):[],r&&i.unshift(r) +var o,s,a,u,c,l=this._model.data,h={id:!1,text:!1,icon:!0,parent:r,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1} +for(a in this._model.default_state)this._model.default_state.hasOwnProperty(a)&&(h.state[a]=this._model.default_state[a]) +if(u=e.vakata.attributes(n,!0),e.each(u,function(t,n){return n=e.trim(n),!n.length||(h.li_attr[t]=n,void("id"===t&&(h.id=n.toString())))}),u=n.children("a").first(),u.length&&(u=e.vakata.attributes(u,!0),e.each(u,function(t,n){n=e.trim(n),n.length&&(h.a_attr[t]=n)})),u=n.children("a").first().length?n.children("a").first().clone():n.clone(),u.children("ins, i, ul").remove(),u=u.html(),u=e("<div />").html(u),h.text=this.settings.core.force_text?u.text():u.html(),u=n.data(),h.data=u?e.extend(!0,{},u):null,h.state.opened=n.hasClass("jstree-open"),h.state.selected=n.children("a").hasClass("jstree-clicked"),h.state.disabled=n.children("a").hasClass("jstree-disabled"),h.data&&h.data.jstree)for(a in h.data.jstree)h.data.jstree.hasOwnProperty(a)&&(h.state[a]=h.data.jstree[a]) +u=n.children("a").children(".jstree-themeicon"),u.length&&(h.icon=!u.hasClass("jstree-themeicon-hidden")&&u.attr("rel")),h.state.icon!==t&&(h.icon=h.state.icon),(h.icon===t||null===h.icon||""===h.icon)&&(h.icon=!0),u=n.children("ul").children("li") +do{c="j"+this._id+"_"+ ++this._cnt}while(l[c]) +return h.id=h.li_attr.id?h.li_attr.id.toString():c,u.length?(u.each(e.proxy(function(t,n){o=this._parse_model_from_html(e(n),h.id,i),s=this._model.data[o],h.children.push(o),s.children_d.length&&(h.children_d=h.children_d.concat(s.children_d))},this)),h.children_d=h.children_d.concat(h.children)):n.hasClass("jstree-closed")&&(h.state.loaded=!1),h.li_attr.class&&(h.li_attr.class=h.li_attr.class.replace("jstree-closed","").replace("jstree-open","")),h.a_attr.class&&(h.a_attr.class=h.a_attr.class.replace("jstree-clicked","").replace("jstree-disabled","")),l[h.id]=h,h.state.selected&&this._data.core.selected.push(h.id),h.id},_parse_model_from_flat_json:function(e,n,r){r=r?r.concat():[],n&&r.unshift(n) +var i,o,s,a,u=e.id.toString(),c=this._model.data,l=this._model.default_state,h={id:u,text:e.text||"",icon:e.icon===t||e.icon,parent:n,parents:r,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1} +for(i in l)l.hasOwnProperty(i)&&(h.state[i]=l[i]) +if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(h.icon=e.data.jstree.icon),(h.icon===t||null===h.icon||""===h.icon)&&(h.icon=!0),e&&e.data&&(h.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(h.state[i]=e.data.jstree[i]) +if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(h.state[i]=e.state[i]) +if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(h.li_attr[i]=e.li_attr[i]) +if(h.li_attr.id||(h.li_attr.id=u),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(h.a_attr[i]=e.a_attr[i]) +for(e&&e.children&&!0===e.children&&(h.state.loaded=!1,h.children=[],h.children_d=[]),c[h.id]=h,i=0,o=h.children.length;o>i;i++)s=this._parse_model_from_flat_json(c[h.children[i]],h.id,r),a=c[s],h.children_d.push(s),a.children_d.length&&(h.children_d=h.children_d.concat(a.children_d)) +return delete e.data,delete e.children,c[h.id].original=e,h.state.selected&&this._data.core.selected.push(h.id),h.id},_parse_model_from_json:function(e,n,r){r=r?r.concat():[],n&&r.unshift(n) +var i,o,s,a,u,c=!1,l=this._model.data,h=this._model.default_state +do{c="j"+this._id+"_"+ ++this._cnt}while(l[c]) +u={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===t||e.icon,parent:n,parents:r,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1} +for(i in h)h.hasOwnProperty(i)&&(u.state[i]=h[i]) +if(e&&e.id&&(u.id=e.id.toString()),e&&e.text&&(u.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(u.icon=e.data.jstree.icon),(u.icon===t||null===u.icon||""===u.icon)&&(u.icon=!0),e&&e.data&&(u.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(u.state[i]=e.data.jstree[i]) +if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(u.state[i]=e.state[i]) +if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(u.li_attr[i]=e.li_attr[i]) +if(u.li_attr.id&&!u.id&&(u.id=u.li_attr.id.toString()),u.id||(u.id=c),u.li_attr.id||(u.li_attr.id=u.id),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(u.a_attr[i]=e.a_attr[i]) +if(e&&e.children&&e.children.length){for(i=0,o=e.children.length;o>i;i++)s=this._parse_model_from_json(e.children[i],u.id,r),a=l[s],u.children.push(s),a.children_d.length&&(u.children_d=u.children_d.concat(a.children_d)) +u.children_d=u.children_d.concat(u.children)}return e&&e.children&&!0===e.children&&(u.state.loaded=!1,u.children=[],u.children_d=[]),delete e.data,delete e.children,u.original=e,l[u.id]=u,u.state.selected&&this._data.core.selected.push(u.id),u.id},_redraw:function(){var t,n,r,i=this._model.force_full_redraw?this._model.data[e.jstree.root].children.concat([]):this._model.changed.concat([]),o=u.createElement("UL"),s=this._data.core.focused +for(n=0,r=i.length;r>n;n++)(t=this.redraw_node(i[n],!0,this._model.force_full_redraw))&&this._model.force_full_redraw&&o.appendChild(t) +this._model.force_full_redraw&&(o.className=this.get_container_ul()[0].className,o.setAttribute("role","group"),this.element.empty().append(o)),null!==s&&(t=this.get_node(s,!0),t&&t.length&&t.children(".jstree-anchor")[0]!==u.activeElement?t.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:i})},redraw:function(e){e&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(t){var n=this.get_node(t),r=!1,i=!1,o=!1,s=u +if(!n)return!1 +if(n.id===e.jstree.root)return this.redraw(!0) +if(!(t=this.get_node(t,!0))||!t.length)return!1 +if(t.children(".jstree-children").remove(),t=t[0],n.children.length&&n.state.loaded){for(o=s.createElement("UL"),o.setAttribute("role","group"),o.className="jstree-children",r=0,i=n.children.length;i>r;r++)o.appendChild(this.redraw_node(n.children[r],!0,!0)) +t.appendChild(o)}},redraw_node:function(t,n,r,i){var o=this.get_node(t),s=!1,a=!1,c=!1,l=!1,h=!1,d=!1,p="",f=u,g=this._model.data,m=!1,v=null,y=0,b=0,C=!1,A=!1 +if(!o)return!1 +if(o.id===e.jstree.root)return this.redraw(!0) +if(n=n||0===o.children.length,t=u.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(o.id[0])?"\\3"+o.id[0]+" "+o.id.substr(1).replace(e.jstree.idregex,"\\$&"):o.id.replace(e.jstree.idregex,"\\$&"))):u.getElementById(o.id))t=e(t),r||(s=t.parent().parent()[0],s===this.element[0]&&(s=null),a=t.index()),n||!o.children.length||t.children(".jstree-children").length||(n=!0),n||(c=t.children(".jstree-children")[0]),m=t.children(".jstree-anchor")[0]===u.activeElement,t.remove() +else if(n=!0,!r){if(!(null===(s=o.parent!==e.jstree.root?e("#"+o.parent.replace(e.jstree.idregex,"\\$&"),this.element)[0]:null)||s&&g[o.parent].state.opened))return!1 +a=e.inArray(o.id,null===s?g[e.jstree.root].children:g[o.parent].children)}t=this._data.core.node.cloneNode(!0),p="jstree-node " +for(l in o.li_attr)if(o.li_attr.hasOwnProperty(l)){if("id"===l)continue +"class"!==l?t.setAttribute(l,o.li_attr[l]):p+=o.li_attr[l]}for(o.a_attr.id||(o.a_attr.id=o.id+"_anchor"),t.setAttribute("aria-selected",!!o.state.selected),t.setAttribute("aria-level",o.parents.length),t.setAttribute("aria-labelledby",o.a_attr.id),o.state.disabled&&t.setAttribute("aria-disabled",!0),l=0,h=o.children.length;h>l;l++)if(!g[o.children[l]].state.hidden){C=!0 +break}if(null!==o.parent&&g[o.parent]&&!o.state.hidden&&(l=e.inArray(o.id,g[o.parent].children),A=o.id,-1!==l))for(l++,h=g[o.parent].children.length;h>l&&(g[g[o.parent].children[l]].state.hidden||(A=g[o.parent].children[l]),A===o.id);l++);o.state.hidden&&(p+=" jstree-hidden"),o.state.loading&&(p+=" jstree-loading"),o.state.loaded&&!C?p+=" jstree-leaf":(p+=o.state.opened&&o.state.loaded?" jstree-open":" jstree-closed",t.setAttribute("aria-expanded",o.state.opened&&o.state.loaded)),A===o.id&&(p+=" jstree-last"),t.id=o.id,t.className=p,p=(o.state.selected?" jstree-clicked":"")+(o.state.disabled?" jstree-disabled":"") +for(h in o.a_attr)if(o.a_attr.hasOwnProperty(h)){if("href"===h&&"#"===o.a_attr[h])continue +"class"!==h?t.childNodes[1].setAttribute(h,o.a_attr[h]):p+=" "+o.a_attr[h]}if(p.length&&(t.childNodes[1].className="jstree-anchor "+p),(o.icon&&!0!==o.icon||!1===o.icon)&&(!1===o.icon?t.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===o.icon.indexOf("/")&&-1===o.icon.indexOf(".")?t.childNodes[1].childNodes[0].className+=" "+o.icon+" jstree-themeicon-custom":(t.childNodes[1].childNodes[0].style.backgroundImage='url("'+o.icon+'")',t.childNodes[1].childNodes[0].style.backgroundPosition="center center",t.childNodes[1].childNodes[0].style.backgroundSize="auto",t.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?t.childNodes[1].appendChild(f.createTextNode(o.text)):t.childNodes[1].innerHTML+=o.text,n&&o.children.length&&(o.state.opened||i)&&o.state.loaded){for(d=f.createElement("UL"),d.setAttribute("role","group"),d.className="jstree-children",l=0,h=o.children.length;h>l;l++)d.appendChild(this.redraw_node(o.children[l],n,!0)) +t.appendChild(d)}if(c&&t.appendChild(c),!r){for(s||(s=this.element[0]),l=0,h=s.childNodes.length;h>l;l++)if(s.childNodes[l]&&s.childNodes[l].className&&-1!==s.childNodes[l].className.indexOf("jstree-children")){v=s.childNodes[l] +break}v||(v=f.createElement("UL"),v.setAttribute("role","group"),v.className="jstree-children",s.appendChild(v)),s=v,a<s.childNodes.length?s.insertBefore(t,s.childNodes[a]):s.appendChild(t),m&&(y=this.element[0].scrollTop,b=this.element[0].scrollLeft,t.childNodes[1].focus(),this.element[0].scrollTop=y,this.element[0].scrollLeft=b)}return o.state.opened&&!o.state.loaded&&(o.state.opened=!1,setTimeout(e.proxy(function(){this.open_node(o.id,!1,0)},this),0)),t},open_node:function(n,r,i){var o,s,a,u +if(e.isArray(n)){for(n=n.slice(),o=0,s=n.length;s>o;o++)this.open_node(n[o],r,i) +return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(i=i===t?this.settings.core.animation:i,this.is_closed(n)?this.is_loaded(n)?(a=this.get_node(n,!0),u=this,a.length&&(i&&a.children(".jstree-children").length&&a.children(".jstree-children").stop(!0,!0),n.children.length&&!this._firstChild(a.children(".jstree-children")[0])&&this.draw_children(n),i?(this.trigger("before_open",{node:n}),a.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(i,function(){this.style.display="",u.element&&u.trigger("after_open",{node:n})})):(this.trigger("before_open",{node:n}),a[0].className=a[0].className.replace("jstree-closed","jstree-open"),a[0].setAttribute("aria-expanded",!0))),n.state.opened=!0,r&&r.call(this,n,!0),a.length||this.trigger("before_open",{node:n}),this.trigger("open_node",{node:n}),i&&a.length||this.trigger("after_open",{node:n}),!0):this.is_loading(n)?setTimeout(e.proxy(function(){this.open_node(n,r,i)},this),500):void this.load_node(n,function(e,t){return t?this.open_node(e,r,i):!!r&&r.call(this,e,!1)}):(r&&r.call(this,n,!1),!1))},_open_to:function(t){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1 +var n,r,i=t.parents +for(n=0,r=i.length;r>n;n+=1)n!==e.jstree.root&&this.open_node(i[n],!1,0) +return e("#"+t.id.replace(e.jstree.idregex,"\\$&"),this.element)},close_node:function(n,r){var i,o,s,a +if(e.isArray(n)){for(n=n.slice(),i=0,o=n.length;o>i;i++)this.close_node(n[i],r) +return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(!this.is_closed(n)&&(r=r===t?this.settings.core.animation:r,s=this,a=this.get_node(n,!0),n.state.opened=!1,this.trigger("close_node",{node:n}),void(a.length?r?a.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(r,function(){this.style.display="",a.children(".jstree-children").remove(),s.element&&s.trigger("after_close",{node:n})}):(a[0].className=a[0].className.replace("jstree-open","jstree-closed"),a.attr("aria-expanded",!1).children(".jstree-children").remove(),this.trigger("after_close",{node:n})):this.trigger("after_close",{node:n}))))},toggle_node:function(t){var n,r +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.toggle_node(t[n]) +return!0}return this.is_closed(t)?this.open_node(t):this.is_open(t)?this.close_node(t):void 0},open_all:function(t,n,r){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1 +var i,o,s,a=t.id===e.jstree.root?this.get_container_ul():this.get_node(t,!0) +if(!a.length){for(i=0,o=t.children_d.length;o>i;i++)this.is_closed(this._model.data[t.children_d[i]])&&(this._model.data[t.children_d[i]].state.opened=!0) +return this.trigger("open_all",{node:t})}r=r||a,s=this,a=this.is_closed(t)?a.find(".jstree-closed").addBack():a.find(".jstree-closed"),a.each(function(){s.open_node(this,function(e,t){t&&this.is_parent(e)&&this.open_all(e,n,r)},n||0)}),0===r.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(r)})},close_all:function(t,n){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1 +var r,i,o=t.id===e.jstree.root?this.get_container_ul():this.get_node(t,!0),s=this +for(o.length&&(o=this.is_open(t)?o.find(".jstree-open").addBack():o.find(".jstree-open"),e(o.get().reverse()).each(function(){s.close_node(this,n||0)})),r=0,i=t.children_d.length;i>r;r++)this._model.data[t.children_d[r]].state.opened=!1 +this.trigger("close_all",{node:t})},is_disabled:function(e){return(e=this.get_node(e))&&e.state&&e.state.disabled},enable_node:function(t){var n,r +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.enable_node(t[n]) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.state.disabled=!1,this.get_node(t,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:t}))},disable_node:function(t){var n,r +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.disable_node(t[n]) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.state.disabled=!0,this.get_node(t,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:t}))},is_hidden:function(e){return e=this.get_node(e),!0===e.state.hidden},hide_node:function(t,n){var r,i +if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.hide_node(t[r],!0) +return n||this.redraw(),!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&void(t.state.hidden||(t.state.hidden=!0,this._node_changed(t.parent),n||this.redraw(),this.trigger("hide_node",{node:t})))},show_node:function(t,n){var r,i +if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.show_node(t[r],!0) +return n||this.redraw(),!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&void(t.state.hidden&&(t.state.hidden=!1,this._node_changed(t.parent),n||this.redraw(),this.trigger("show_node",{node:t})))},hide_all:function(t){var n,r=this._model.data,i=[] +for(n in r)r.hasOwnProperty(n)&&n!==e.jstree.root&&!r[n].state.hidden&&(r[n].state.hidden=!0,i.push(n)) +return this._model.force_full_redraw=!0,t||this.redraw(),this.trigger("hide_all",{nodes:i}),i},show_all:function(t){var n,r=this._model.data,i=[] +for(n in r)r.hasOwnProperty(n)&&n!==e.jstree.root&&r[n].state.hidden&&(r[n].state.hidden=!1,i.push(n)) +return this._model.force_full_redraw=!0,t||this.redraw(),this.trigger("show_all",{nodes:i}),i},activate_node:function(e,n){if(this.is_disabled(e))return!1 +if(n&&"object"==typeof n||(n={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==t?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(n.metaKey||n.ctrlKey||n.shiftKey)&&(!n.shiftKey||this._data.core.last_clicked&&this.get_parent(e)&&this.get_parent(e)===this._data.core.last_clicked.parent))if(n.shiftKey){var r,i,o=this.get_node(e).id,s=this._data.core.last_clicked.id,a=this.get_node(this._data.core.last_clicked.parent).children,u=!1 +for(r=0,i=a.length;i>r;r+=1)a[r]===o&&(u=!u),a[r]===s&&(u=!u),this.is_disabled(a[r])||!u&&a[r]!==o&&a[r]!==s?this.deselect_node(a[r],!0,n):this.is_hidden(a[r])||this.select_node(a[r],!0,!1,n) +this.trigger("changed",{action:"select_node",node:this.get_node(e),selected:this._data.core.selected,event:n})}else this.is_selected(e)?this.deselect_node(e,!1,n):this.select_node(e,!1,!1,n) +else!this.settings.core.multiple&&(n.metaKey||n.ctrlKey||n.shiftKey)&&this.is_selected(e)?this.deselect_node(e,!1,n):(this.deselect_all(!0),this.select_node(e,!1,!1,n),this._data.core.last_clicked=this.get_node(e)) +this.trigger("activate_node",{node:this.get_node(e),event:n})},hover_node:function(e){if(!(e=this.get_node(e,!0))||!e.length||e.children(".jstree-hovered").length)return!1 +var t=this.element.find(".jstree-hovered"),n=this.element +t&&t.length&&this.dehover_node(t),e.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(e)}),setTimeout(function(){n.attr("aria-activedescendant",e[0].id)},0)},dehover_node:function(e){return!!((e=this.get_node(e,!0))&&e.length&&e.children(".jstree-hovered").length)&&(e.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(e)}))},select_node:function(t,n,r,i){var o,s,a +if(e.isArray(t)){for(t=t.slice(),s=0,a=t.length;a>s;s++)this.select_node(t[s],n,r,i) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=this.get_node(t,!0),void(t.state.selected||(t.state.selected=!0,this._data.core.selected.push(t.id),r||(o=this._open_to(t)),o&&o.length&&o.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:t,selected:this._data.core.selected,event:i}),n||this.trigger("changed",{action:"select_node",node:t,selected:this._data.core.selected,event:i}))))},deselect_node:function(t,n,r){var i,o,s +if(e.isArray(t)){for(t=t.slice(),i=0,o=t.length;o>i;i++)this.deselect_node(t[i],n,r) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(s=this.get_node(t,!0),void(t.state.selected&&(t.state.selected=!1,this._data.core.selected=e.vakata.array_remove_item(this._data.core.selected,t.id),s.length&&s.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:t,selected:this._data.core.selected,event:r}),n||this.trigger("changed",{action:"deselect_node",node:t,selected:this._data.core.selected,event:r}))))},select_all:function(t){var n,r,i=this._data.core.selected.concat([]) +for(this._data.core.selected=this._model.data[e.jstree.root].children_d.concat(),n=0,r=this._data.core.selected.length;r>n;n++)this._model.data[this._data.core.selected[n]]&&(this._model.data[this._data.core.selected[n]].state.selected=!0) +this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),t||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:i})},deselect_all:function(e){var t,n,r=this._data.core.selected.concat([]) +for(t=0,n=this._data.core.selected.length;n>t;t++)this._model.data[this._data.core.selected[t]]&&(this._model.data[this._data.core.selected[t]].state.selected=!1) +this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:r}),e||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:r})},is_selected:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.state.selected},get_selected:function(t){return t?e.map(this._data.core.selected,e.proxy(function(e){return this.get_node(e)},this)):this._data.core.selected.slice()},get_top_selected:function(t){var n,r,i,o,s=this.get_selected(!0),a={} +for(n=0,r=s.length;r>n;n++)a[s[n].id]=s[n] +for(n=0,r=s.length;r>n;n++)for(i=0,o=s[n].children_d.length;o>i;i++)a[s[n].children_d[i]]&&delete a[s[n].children_d[i]] +s=[] +for(n in a)a.hasOwnProperty(n)&&s.push(n) +return t?e.map(s,e.proxy(function(e){return this.get_node(e)},this)):s},get_bottom_selected:function(t){var n,r,i=this.get_selected(!0),o=[] +for(n=0,r=i.length;r>n;n++)i[n].children.length||o.push(i[n].id) +return t?e.map(o,e.proxy(function(e){return this.get_node(e)},this)):o},get_state:function(){var t,n={core:{open:[],loaded:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}} +for(t in this._model.data)this._model.data.hasOwnProperty(t)&&t!==e.jstree.root&&(this._model.data[t].state.loaded&&this.settings.core.loaded_state&&n.core.loaded.push(t),this._model.data[t].state.opened&&n.core.open.push(t),this._model.data[t].state.selected&&n.core.selected.push(t)) +return n},set_state:function(n,r){if(n){if(n.core&&n.core.selected&&n.core.initial_selection===t&&(n.core.initial_selection=this._data.core.selected.concat([]).sort().join(",")),n.core){var i,o +if(n.core.loaded)return this.settings.core.loaded_state&&e.isArray(n.core.loaded)&&n.core.loaded.length?this._load_nodes(n.core.loaded,function(e){delete n.core.loaded,this.set_state(n,r)}):(delete n.core.loaded,this.set_state(n,r)),!1 +if(n.core.open)return e.isArray(n.core.open)&&n.core.open.length?this._load_nodes(n.core.open,function(e){this.open_node(e,!1,0),delete n.core.open,this.set_state(n,r)}):(delete n.core.open,this.set_state(n,r)),!1 +if(n.core.scroll)return n.core.scroll&&n.core.scroll.left!==t&&this.element.scrollLeft(n.core.scroll.left),n.core.scroll&&n.core.scroll.top!==t&&this.element.scrollTop(n.core.scroll.top),delete n.core.scroll,this.set_state(n,r),!1 +if(n.core.selected)return i=this,(n.core.initial_selection===t||n.core.initial_selection===this._data.core.selected.concat([]).sort().join(","))&&(this.deselect_all(),e.each(n.core.selected,function(e,t){i.select_node(t,!1,!0)})),delete n.core.initial_selection,delete n.core.selected,this.set_state(n,r),!1 +for(o in n)n.hasOwnProperty(o)&&"core"!==o&&-1===e.inArray(o,this.settings.plugins)&&delete n[o] +if(e.isEmptyObject(n.core))return delete n.core,this.set_state(n,r),!1}return!e.isEmptyObject(n)||(n=null,r&&r.call(this),this.trigger("set_state"),!1)}return!1},refresh:function(t,n){this._data.core.state=!0===n?{}:this.get_state(),n&&e.isFunction(n)&&(this._data.core.state=n.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[e.jstree.root]={id:e.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null +var r=this.get_container_ul()[0].className +t||(this.element.html("<ul class='"+r+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(e.jstree.root,function(t,n){n&&(this.get_container_ul()[0].className=r,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(e.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(t){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1 +var n=[],r=[],i=this._data.core.selected.concat([]) +r.push(t.id),!0===t.state.opened&&n.push(t.id),this.get_node(t,!0).find(".jstree-open").each(function(){r.push(this.id),n.push(this.id)}),this._load_nodes(r,e.proxy(function(e){this.open_node(n,!1,0),this.select_node(i),this.trigger("refresh_node",{node:t,nodes:e})},this),!1,!0)},set_id:function(t,n){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1 +var r,i,o=this._model.data,s=t.id +for(n=n.toString(),o[t.parent].children[e.inArray(t.id,o[t.parent].children)]=n,r=0,i=t.parents.length;i>r;r++)o[t.parents[r]].children_d[e.inArray(t.id,o[t.parents[r]].children_d)]=n +for(r=0,i=t.children.length;i>r;r++)o[t.children[r]].parent=n +for(r=0,i=t.children_d.length;i>r;r++)o[t.children_d[r]].parents[e.inArray(t.id,o[t.children_d[r]].parents)]=n +return r=e.inArray(t.id,this._data.core.selected),-1!==r&&(this._data.core.selected[r]=n),r=this.get_node(t.id,!0),r&&(r.attr("id",n),this.element.attr("aria-activedescendant")===t.id&&this.element.attr("aria-activedescendant",n)),delete o[t.id],t.id=n,t.li_attr.id=n,o[n]=t,this.trigger("set_id",{node:t,new:t.id,old:s}),!0},get_text:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.text},set_text:function(t,n){var r,i +if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.set_text(t[r],n) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.text=n,this.get_node(t,!0).length&&this.redraw_node(t.id),this.trigger("set_text",{obj:t,text:n}),!0)},get_json:function(t,n,r){if(!(t=this.get_node(t||e.jstree.root)))return!1 +n&&n.flat&&!r&&(r=[]) +var i,o,s={id:t.id,text:t.text,icon:this.get_icon(t),li_attr:e.extend(!0,{},t.li_attr),a_attr:e.extend(!0,{},t.a_attr),state:{},data:(!n||!n.no_data)&&e.extend(!0,e.isArray(t.data)?[]:{},t.data)} +if(n&&n.flat?s.parent=t.parent:s.children=[],n&&n.no_state)delete s.state +else for(i in t.state)t.state.hasOwnProperty(i)&&(s.state[i]=t.state[i]) +if(n&&n.no_li_attr&&delete s.li_attr,n&&n.no_a_attr&&delete s.a_attr,n&&n.no_id&&(delete s.id,s.li_attr&&s.li_attr.id&&delete s.li_attr.id,s.a_attr&&s.a_attr.id&&delete s.a_attr.id),n&&n.flat&&t.id!==e.jstree.root&&r.push(s),!n||!n.no_children)for(i=0,o=t.children.length;o>i;i++)n&&n.flat?this.get_json(t.children[i],n,r):s.children.push(this.get_json(t.children[i],n)) +return n&&n.flat?r:t.id===e.jstree.root?s.children:s},create_node:function(n,r,i,o,s){if(null===n&&(n=e.jstree.root),!(n=this.get_node(n)))return!1 +if(i=i===t?"last":i,!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(n))return this.load_node(n,function(){this.create_node(n,r,i,o,!0)}) +r||(r={text:this.get_string("New node")}),r="string"==typeof r?{text:r}:e.extend(!0,{},r),r.text===t&&(r.text=this.get_string("New node")) +var a,u,c,l +switch(n.id===e.jstree.root&&("before"===i&&(i="first"),"after"===i&&(i="last")),i){case"before":a=this.get_node(n.parent),i=e.inArray(n.id,a.children),n=a +break +case"after":a=this.get_node(n.parent),i=e.inArray(n.id,a.children)+1,n=a +break +case"inside":case"first":i=0 +break +case"last":i=n.children.length +break +default:i||(i=0)}if(i>n.children.length&&(i=n.children.length),r.id||(r.id=!0),!this.check("create_node",r,n,i))return this.settings.core.error.call(this,this._data.core.last_error),!1 +if(!0===r.id&&delete r.id,!(r=this._parse_model_from_json(r,n.id,n.parents.concat())))return!1 +for(a=this.get_node(r),u=[],u.push(r),u=u.concat(a.children_d),this.trigger("model",{nodes:u,parent:n.id}),n.children_d=n.children_d.concat(u),c=0,l=n.parents.length;l>c;c++)this._model.data[n.parents[c]].children_d=this._model.data[n.parents[c]].children_d.concat(u) +for(r=a,a=[],c=0,l=n.children.length;l>c;c++)a[c>=i?c+1:c]=n.children[c] +return a[i]=r.id,n.children=a,this.redraw_node(n,!0),this.trigger("create_node",{node:this.get_node(r),parent:n.id,position:i}),o&&o.call(this,this.get_node(r)),r.id},rename_node:function(t,n){var r,i,o +if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.rename_node(t[r],n) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=t.text,this.check("rename_node",t,this.get_parent(t),n)?(this.set_text(t,n),this.trigger("rename_node",{node:t,text:n,old:o}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1))},delete_node:function(t){var n,r,i,o,s,a,u,c,l,h,d,p +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.delete_node(t[n]) +return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1 +if(i=this.get_node(t.parent),o=e.inArray(t.id,i.children),h=!1,!this.check("delete_node",t,i,o))return this.settings.core.error.call(this,this._data.core.last_error),!1 +for(-1!==o&&(i.children=e.vakata.array_remove(i.children,o)),s=t.children_d.concat([]),s.push(t.id),a=0,u=t.parents.length;u>a;a++)this._model.data[t.parents[a]].children_d=e.vakata.array_filter(this._model.data[t.parents[a]].children_d,function(t){return-1===e.inArray(t,s)}) +for(c=0,l=s.length;l>c;c++)if(this._model.data[s[c]].state.selected){h=!0 +break}for(h&&(this._data.core.selected=e.vakata.array_filter(this._data.core.selected,function(t){return-1===e.inArray(t,s)})),this.trigger("delete_node",{node:t,parent:i.id}),h&&this.trigger("changed",{action:"delete_node",node:t,selected:this._data.core.selected,parent:i.id}),c=0,l=s.length;l>c;c++)delete this._model.data[s[c]] +return-1!==e.inArray(this._data.core.focused,s)&&(this._data.core.focused=null,d=this.element[0].scrollTop,p=this.element[0].scrollLeft,i.id===e.jstree.root?this._model.data[e.jstree.root].children[0]&&this.get_node(this._model.data[e.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(i,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=d,this.element[0].scrollLeft=p),this.redraw_node(i,!0),!0},check:function(t,n,r,i,o){n=n&&n.id?n:this.get_node(n),r=r&&r.id?r:this.get_node(r) +var s=t.match(/^move_node|copy_node|create_node$/i)?r:n,a=this.settings.core.check_callback +return"move_node"!==t&&"copy_node"!==t||o&&o.is_multi||n.id!==r.id&&("move_node"!==t||e.inArray(n.id,r.children)!==i)&&-1===e.inArray(r.id,n.children_d)?(s&&s.data&&(s=s.data),s&&s.functions&&(!1===s.functions[t]||!0===s.functions[t])?(!1===s.functions[t]&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+t,data:JSON.stringify({chk:t,pos:i,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})}),s.functions[t]):!(!1===a||e.isFunction(a)&&!1===a.call(this,t,n,r,i,o)||a&&!1===a[t])||(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+t,data:JSON.stringify({chk:t,pos:i,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})},!1)):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:t,pos:i,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(n,r,i,o,s,a,u){var c,l,h,d,p,f,g,m,v,y,b,C,A,_ +if(r=this.get_node(r),i=i===t?0:i,!r)return!1 +if(!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(r))return this.load_node(r,function(){this.move_node(n,r,i,o,!0,!1,u)}) +if(e.isArray(n)){if(1!==n.length){for(c=0,l=n.length;l>c;c++)(v=this.move_node(n[c],r,i,o,s,!1,u))&&(r=v,i="after") +return this.redraw(),!0}n=n[0]}if(!(n=n&&n.id?n:this.get_node(n))||n.id===e.jstree.root)return!1 +if(h=(n.parent||e.jstree.root).toString(),p=i.toString().match(/^(before|after)$/)&&r.id!==e.jstree.root?this.get_node(r.parent):r,f=u||(this._model.data[n.id]?this:e.jstree.reference(n.id)),g=!f||!f._id||this._id!==f._id,d=f&&f._id&&h&&f._model.data[h]&&f._model.data[h].children?e.inArray(n.id,f._model.data[h].children):-1,f&&f._id&&(n=f._model.data[n.id]),g)return!!(v=this.copy_node(n,r,i,o,s,!1,u))&&(f&&f.delete_node(n),v) +switch(r.id===e.jstree.root&&("before"===i&&(i="first"),"after"===i&&(i="last")),i){case"before":i=e.inArray(r.id,p.children) +break +case"after":i=e.inArray(r.id,p.children)+1 +break +case"inside":case"first":i=0 +break +case"last":i=p.children.length +break +default:i||(i=0)}if(i>p.children.length&&(i=p.children.length),!this.check("move_node",n,p,i,{core:!0,origin:u,is_multi:f&&f._id&&f._id!==this._id,is_foreign:!f||!f._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1 +if(n.parent===p.id){for(m=p.children.concat(),v=e.inArray(n.id,m),-1!==v&&(m=e.vakata.array_remove(m,v),i>v&&i--),v=[],y=0,b=m.length;b>y;y++)v[y>=i?y+1:y]=m[y] +v[i]=n.id,p.children=v,this._node_changed(p.id),this.redraw(p.id===e.jstree.root)}else{for(v=n.children_d.concat(),v.push(n.id),y=0,b=n.parents.length;b>y;y++){for(m=[],_=f._model.data[n.parents[y]].children_d,C=0,A=_.length;A>C;C++)-1===e.inArray(_[C],v)&&m.push(_[C]) +f._model.data[n.parents[y]].children_d=m}for(f._model.data[h].children=e.vakata.array_remove_item(f._model.data[h].children,n.id),y=0,b=p.parents.length;b>y;y++)this._model.data[p.parents[y]].children_d=this._model.data[p.parents[y]].children_d.concat(v) +for(m=[],y=0,b=p.children.length;b>y;y++)m[y>=i?y+1:y]=p.children[y] +for(m[i]=n.id,p.children=m,p.children_d.push(n.id),p.children_d=p.children_d.concat(n.children_d),n.parent=p.id,v=p.parents.concat(),v.unshift(p.id),_=n.parents.length,n.parents=v,v=v.concat(),y=0,b=n.children_d.length;b>y;y++)this._model.data[n.children_d[y]].parents=this._model.data[n.children_d[y]].parents.slice(0,-1*_),Array.prototype.push.apply(this._model.data[n.children_d[y]].parents,v);(h===e.jstree.root||p.id===e.jstree.root)&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(h),this._node_changed(p.id)),a||this.redraw()}return o&&o.call(this,n,p,i),this.trigger("move_node",{node:n,parent:p.id,position:i,old_parent:h,old_position:d,is_multi:f&&f._id&&f._id!==this._id,is_foreign:!f||!f._id,old_instance:f,new_instance:this}),n.id},copy_node:function(n,r,i,o,s,a,u){var c,l,h,d,p,f,g,m,v,y +if(r=this.get_node(r),i=i===t?0:i,!r)return!1 +if(!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(r))return this.load_node(r,function(){this.copy_node(n,r,i,o,!0,!1,u)}) +if(e.isArray(n)){if(1!==n.length){for(c=0,l=n.length;l>c;c++)(d=this.copy_node(n[c],r,i,o,s,!0,u))&&(r=d,i="after") +return this.redraw(),!0}n=n[0]}if(!(n=n&&n.id?n:this.get_node(n))||n.id===e.jstree.root)return!1 +switch(m=(n.parent||e.jstree.root).toString(),v=i.toString().match(/^(before|after)$/)&&r.id!==e.jstree.root?this.get_node(r.parent):r,y=u||(this._model.data[n.id]?this:e.jstree.reference(n.id)),!y||!y._id||this._id!==y._id,y&&y._id&&(n=y._model.data[n.id]),r.id===e.jstree.root&&("before"===i&&(i="first"),"after"===i&&(i="last")),i){case"before":i=e.inArray(r.id,v.children) +break +case"after":i=e.inArray(r.id,v.children)+1 +break +case"inside":case"first":i=0 +break +case"last":i=v.children.length +break +default:i||(i=0)}if(i>v.children.length&&(i=v.children.length),!this.check("copy_node",n,v,i,{core:!0,origin:u,is_multi:y&&y._id&&y._id!==this._id,is_foreign:!y||!y._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1 +if(!(g=y?y.get_json(n,{no_id:!0,no_data:!0,no_state:!0}):n))return!1 +if(!0===g.id&&delete g.id,!(g=this._parse_model_from_json(g,v.id,v.parents.concat())))return!1 +for(d=this.get_node(g),n&&n.state&&!1===n.state.loaded&&(d.state.loaded=!1),h=[],h.push(g),h=h.concat(d.children_d),this.trigger("model",{nodes:h,parent:v.id}),p=0,f=v.parents.length;f>p;p++)this._model.data[v.parents[p]].children_d=this._model.data[v.parents[p]].children_d.concat(h) +for(h=[],p=0,f=v.children.length;f>p;p++)h[p>=i?p+1:p]=v.children[p] +return h[i]=d.id,v.children=h,v.children_d.push(d.id),v.children_d=v.children_d.concat(d.children_d),v.id===e.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(v.id),a||this.redraw(v.id===e.jstree.root),o&&o.call(this,d,v,i),this.trigger("copy_node",{node:d,original:n,parent:v.id,position:i,old_parent:m,old_position:y&&y._id&&m&&y._model.data[m]&&y._model.data[m].children?e.inArray(n.id,y._model.data[m].children):-1,is_multi:y&&y._id&&y._id!==this._id,is_foreign:!y||!y._id,old_instance:y,new_instance:this}),d.id},cut:function(t){if(t||(t=this._data.core.selected.concat()),e.isArray(t)||(t=[t]),!t.length)return!1 +var n,s,a,u=[] +for(s=0,a=t.length;a>s;s++)(n=this.get_node(t[s]))&&n.id&&n.id!==e.jstree.root&&u.push(n) +return!!u.length&&(r=u,o=this,i="move_node",void this.trigger("cut",{node:t}))},copy:function(t){if(t||(t=this._data.core.selected.concat()),e.isArray(t)||(t=[t]),!t.length)return!1 +var n,s,a,u=[] +for(s=0,a=t.length;a>s;s++)(n=this.get_node(t[s]))&&n.id&&n.id!==e.jstree.root&&u.push(n) +return!!u.length&&(r=u,o=this,i="copy_node",void this.trigger("copy",{node:t}))},get_buffer:function(){return{mode:i,node:r,inst:o}},can_paste:function(){return!1!==i&&!1!==r},paste:function(e,t){return!!((e=this.get_node(e))&&i&&i.match(/^(copy_node|move_node)$/)&&r)&&(this[i](r,e,t,!1,!1,!1,o)&&this.trigger("paste",{parent:e.id,node:r,mode:i}),r=!1,i=!1,void(o=!1))},clear_buffer:function(){r=!1,i=!1,o=!1,this.trigger("clear_buffer")},edit:function(t,n,r){var i,o,s,a,c,l,h,d,p,f=!1 +return!!(t=this.get_node(t))&&(this.check("edit",t,this.get_parent(t))?(p=t,n="string"==typeof n?n:t.text,this.set_text(t,""),t=this._open_to(t),p.text=n,i=this._data.core.rtl,o=this.element.width(),this._data.core.focused=p.id,s=t.children(".jstree-anchor").focus(),a=e("<span>"),c=n,l=e("<div />",{css:{position:"absolute",top:"-200px",left:i?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),h=e("<input />",{value:c,class:"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:e.proxy(function(n){n.stopImmediatePropagation(),n.preventDefault() +var i,o=a.children(".jstree-rename-input"),u=o.val(),d=this.settings.core.force_text +""===u&&(u=c),l.remove(),a.replaceWith(s),a.remove(),c=d?c:e("<div></div>").append(e.parseHTML(c)).html(),this.set_text(t,c),i=!!this.rename_node(t,d?e("<div></div>").text(u).text():e("<div></div>").append(e.parseHTML(u)).html()),i||this.set_text(t,c),this._data.core.focused=p.id,setTimeout(e.proxy(function(){var e=this.get_node(p.id,!0) +e.length&&(this._data.core.focused=p.id,e.children(".jstree-anchor").focus())},this),0),r&&r.call(this,p,i,f),h=null},this),keydown:function(e){var t=e.which +27===t&&(f=!0,this.value=c),(27===t||13===t||37===t||38===t||39===t||40===t||32===t)&&e.stopImmediatePropagation(),(27===t||13===t)&&(e.preventDefault(),this.blur())},click:function(e){e.stopImmediatePropagation()},mousedown:function(e){e.stopImmediatePropagation()},keyup:function(e){h.width(Math.min(l.text("pW"+this.value).width(),o))},keypress:function(e){return 13!==e.which&&void 0}}),d={fontFamily:s.css("fontFamily")||"",fontSize:s.css("fontSize")||"",fontWeight:s.css("fontWeight")||"",fontStyle:s.css("fontStyle")||"",fontStretch:s.css("fontStretch")||"",fontVariant:s.css("fontVariant")||"",letterSpacing:s.css("letterSpacing")||"",wordSpacing:s.css("wordSpacing")||""},a.attr("class",s.attr("class")).append(s.contents().clone()).append(h),s.replaceWith(a),l.css(d),h.css(d).width(Math.min(l.text("pW"+h[0].value).width(),o))[0].select(),void e(u).one("mousedown.jstree touchstart.jstree dnd_start.vakata",function(t){h&&t.target!==h&&e(h).blur()})):(this.settings.core.error.call(this,this._data.core.last_error),!1))},set_theme:function(t,n){if(!t)return!1 +if(!0===n){var r=this.settings.core.themes.dir +r||(r=e.jstree.path+"/themes"),n=r+"/"+t+"/style.css"}n&&-1===e.inArray(n,s)&&(e("head").append('<link rel="stylesheet" href="'+n+'" type="text/css" />'),s.push(n)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=t,this.element.addClass("jstree-"+t),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+t+"-responsive"),this.trigger("set_theme",{theme:t})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(e){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=e,e&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped"),this.trigger("show_stripes")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped"),this.trigger("hide_stripes")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots"),this.trigger("show_dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots"),this.trigger("hide_dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons"),this.trigger("show_icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons"),this.trigger("hide_icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},show_ellipsis:function(){this._data.core.themes.ellipsis=!0,this.get_container_ul().addClass("jstree-ellipsis"),this.trigger("show_ellipsis")},hide_ellipsis:function(){this._data.core.themes.ellipsis=!1,this.get_container_ul().removeClass("jstree-ellipsis"),this.trigger("hide_ellipsis")},toggle_ellipsis:function(){this._data.core.themes.ellipsis?this.hide_ellipsis():this.show_ellipsis()},set_icon:function(n,r){var i,o,s,a +if(e.isArray(n)){for(n=n.slice(),i=0,o=n.length;o>i;i++)this.set_icon(n[i],r) +return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(a=n.icon,n.icon=!0===r||null===r||r===t||""===r||r,s=this.get_node(n,!0).children(".jstree-anchor").children(".jstree-themeicon"),!1===r?(s.removeClass("jstree-themeicon-custom "+a).css("background","").removeAttr("rel"),this.hide_icon(n)):!0===r||null===r||r===t||""===r?(s.removeClass("jstree-themeicon-custom "+a).css("background","").removeAttr("rel"),!1===a&&this.show_icon(n)):-1===r.indexOf("/")&&-1===r.indexOf(".")?(s.removeClass(a).css("background",""),s.addClass(r+" jstree-themeicon-custom").attr("rel",r),!1===a&&this.show_icon(n)):(s.removeClass(a).css("background",""),s.addClass("jstree-themeicon-custom").css("background","url('"+r+"') center center no-repeat").attr("rel",r),!1===a&&this.show_icon(n)),!0)},get_icon:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.icon},hide_icon:function(t){var n,r +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.hide_icon(t[n]) +return!0}return!(!(t=this.get_node(t))||t===e.jstree.root)&&(t.icon=!1,this.get_node(t,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0)},show_icon:function(t){var n,r,i +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.show_icon(t[n]) +return!0}return!(!(t=this.get_node(t))||t===e.jstree.root)&&(i=this.get_node(t,!0),t.icon=!i.length||i.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"),t.icon||(t.icon=!0),i.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0)}},e.vakata={},e.vakata.attributes=function(t,n){t=e(t)[0] +var r=n?{}:[] +return t&&t.attributes&&e.each(t.attributes,function(t,i){-1===e.inArray(i.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==i.value&&""!==e.trim(i.value)&&(n?r[i.name]=i.value:r.push(i.name))}),r},e.vakata.array_unique=function(e){var n,r,i=[],o={} +for(n=0,r=e.length;r>n;n++)o[e[n]]===t&&(i.push(e[n]),o[e[n]]=!0) +return i},e.vakata.array_remove=function(e,t){return e.splice(t,1),e},e.vakata.array_remove_item=function(t,n){var r=e.inArray(n,t) +return-1!==r?e.vakata.array_remove(t,r):t},e.vakata.array_filter=function(e,t,n,r,i){if(e.filter)return e.filter(t,n) +r=[] +for(i in e)~~i+""==i+""&&i>=0&&t.call(n,e[i],+i,e)&&r.push(e[i]) +return r},e.jstree.plugins.changed=function(e,t){var n=[] +this.trigger=function(e,r){var i,o +if(r||(r={}),"changed"===e.replace(".jstree","")){r.changed={selected:[],deselected:[]} +var s={} +for(i=0,o=n.length;o>i;i++)s[n[i]]=1 +for(i=0,o=r.selected.length;o>i;i++)s[r.selected[i]]?s[r.selected[i]]=2:r.changed.selected.push(r.selected[i]) +for(i=0,o=n.length;o>i;i++)1===s[n[i]]&&r.changed.deselected.push(n[i]) +n=r.selected.slice()}t.trigger.call(this,e,r)},this.refresh=function(e,r){return n=[],t.refresh.apply(this,arguments)}} +var c=u.createElement("I") +c.className="jstree-icon jstree-checkbox",c.setAttribute("role","presentation"),e.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0,cascade_to_disabled:!0,cascade_to_hidden:!0},e.jstree.plugins.checkbox=function(n,r){this.bind=function(){r.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",e.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",e.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",e.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(e.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",e.proxy(function(e,t){var n,r,i=this._model.data,o=(i[t.parent],t.nodes) +for(n=0,r=o.length;r>n;n++)i[o[n]].state.checked=i[o[n]].state.checked||i[o[n]].original&&i[o[n]].original.state&&i[o[n]].original.state.checked,i[o[n]].state.checked&&this._data.checkbox.selected.push(o[n])},this)),(-1!==this.settings.checkbox.cascade.indexOf("up")||-1!==this.settings.checkbox.cascade.indexOf("down"))&&this.element.on("model.jstree",e.proxy(function(t,n){var r,i,o,s,a,u,c=this._model.data,l=c[n.parent],h=n.nodes,d=[],p=this.settings.checkbox.cascade,f=this.settings.checkbox.tie_selection +if(-1!==p.indexOf("down"))if(l.state[f?"selected":"checked"]){for(i=0,o=h.length;o>i;i++)c[h[i]].state[f?"selected":"checked"]=!0 +this._data[f?"core":"checkbox"].selected=this._data[f?"core":"checkbox"].selected.concat(h)}else for(i=0,o=h.length;o>i;i++)if(c[h[i]].state[f?"selected":"checked"]){for(s=0,a=c[h[i]].children_d.length;a>s;s++)c[c[h[i]].children_d[s]].state[f?"selected":"checked"]=!0 +this._data[f?"core":"checkbox"].selected=this._data[f?"core":"checkbox"].selected.concat(c[h[i]].children_d)}if(-1!==p.indexOf("up")){for(i=0,o=l.children_d.length;o>i;i++)c[l.children_d[i]].children.length||d.push(c[l.children_d[i]].parent) +for(d=e.vakata.array_unique(d),s=0,a=d.length;a>s;s++)for(l=c[d[s]];l&&l.id!==e.jstree.root;){for(r=0,i=0,o=l.children.length;o>i;i++)r+=c[l.children[i]].state[f?"selected":"checked"] +if(r!==o)break +l.state[f?"selected":"checked"]=!0,this._data[f?"core":"checkbox"].selected.push(l.id),u=this.get_node(l,!0),u&&u.length&&u.attr("aria-selected",!0).children(".jstree-anchor").addClass(f?"jstree-clicked":"jstree-checked"),l=this.get_node(l.parent)}}this._data[f?"core":"checkbox"].selected=e.vakata.array_unique(this._data[f?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",e.proxy(function(t,n){var r,i,o,s,a=n.node,u=this._model.data,c=this.get_node(a.parent),l=this.settings.checkbox.cascade,h=this.settings.checkbox.tie_selection,d={},p=this._data[h?"core":"checkbox"].selected +for(r=0,i=p.length;i>r;r++)d[p[r]]=!0 +if(-1!==l.indexOf("down")){var f=this._cascade_new_checked_state(a.id,!0),g=a.children_d.concat(a.id) +for(r=0,i=g.length;i>r;r++)f.indexOf(g[r])>-1?d[g[r]]=!0:delete d[g[r]]}if(-1!==l.indexOf("up"))for(;c&&c.id!==e.jstree.root;){for(o=0,r=0,i=c.children.length;i>r;r++)o+=u[c.children[r]].state[h?"selected":"checked"] +if(o!==i)break +c.state[h?"selected":"checked"]=!0,d[c.id]=!0,s=this.get_node(c,!0),s&&s.length&&s.attr("aria-selected",!0).children(".jstree-anchor").addClass(h?"jstree-clicked":"jstree-checked"),c=this.get_node(c.parent)}p=[] +for(r in d)d.hasOwnProperty(r)&&p.push(r) +this._data[h?"core":"checkbox"].selected=p},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",e.proxy(function(t,n){var r,i,o,s=this.get_node(e.jstree.root),a=this._model.data +for(r=0,i=s.children_d.length;i>r;r++)(o=a[s.children_d[r]])&&o.original&&o.original.state&&o.original.state.undetermined&&(o.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",e.proxy(function(e,t){var n,r,i,o=t.node,s=(this.get_node(o,!0),this.settings.checkbox.cascade),a=this.settings.checkbox.tie_selection,u=this._data[a?"core":"checkbox"].selected,c=o.children_d.concat(o.id) +if(-1!==s.indexOf("down")){var l=this._cascade_new_checked_state(o.id,!1) +u=u.filter(function(e){return-1===c.indexOf(e)||l.indexOf(e)>-1})}if(-1!==s.indexOf("up")&&-1===u.indexOf(o.id)){for(n=0,r=o.parents.length;r>n;n++)i=this._model.data[o.parents[n]],i.state[a?"selected":"checked"]=!1,i&&i.original&&i.original.state&&i.original.state.undetermined&&(i.original.state.undetermined=!1),(i=this.get_node(o.parents[n],!0))&&i.length&&i.attr("aria-selected",!1).children(".jstree-anchor").removeClass(a?"jstree-clicked":"jstree-checked") +u=u.filter(function(e){return-1===o.parents.indexOf(e)})}this._data[a?"core":"checkbox"].selected=u},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",e.proxy(function(t,n){for(var r,i,o,s,a=this.get_node(n.parent),u=this._model.data,c=this.settings.checkbox.tie_selection;a&&a.id!==e.jstree.root&&!a.state[c?"selected":"checked"];){for(o=0,r=0,i=a.children.length;i>r;r++)o+=u[a.children[r]].state[c?"selected":"checked"] +if(!(i>0&&o===i))break +a.state[c?"selected":"checked"]=!0,this._data[c?"core":"checkbox"].selected.push(a.id),s=this.get_node(a,!0),s&&s.length&&s.attr("aria-selected",!0).children(".jstree-anchor").addClass(c?"jstree-clicked":"jstree-checked"),a=this.get_node(a.parent)}},this)).on("move_node.jstree",e.proxy(function(t,n){var r,i,o,s,a,u=n.is_multi,c=n.old_parent,l=this.get_node(n.parent),h=this._model.data,d=this.settings.checkbox.tie_selection +if(!u)for(r=this.get_node(c);r&&r.id!==e.jstree.root&&!r.state[d?"selected":"checked"];){for(i=0,o=0,s=r.children.length;s>o;o++)i+=h[r.children[o]].state[d?"selected":"checked"] +if(!(s>0&&i===s))break +r.state[d?"selected":"checked"]=!0,this._data[d?"core":"checkbox"].selected.push(r.id),a=this.get_node(r,!0),a&&a.length&&a.attr("aria-selected",!0).children(".jstree-anchor").addClass(d?"jstree-clicked":"jstree-checked"),r=this.get_node(r.parent)}for(r=l;r&&r.id!==e.jstree.root;){for(i=0,o=0,s=r.children.length;s>o;o++)i+=h[r.children[o]].state[d?"selected":"checked"] +if(i===s)r.state[d?"selected":"checked"]||(r.state[d?"selected":"checked"]=!0,this._data[d?"core":"checkbox"].selected.push(r.id),(a=this.get_node(r,!0))&&a.length&&a.attr("aria-selected",!0).children(".jstree-anchor").addClass(d?"jstree-clicked":"jstree-checked")) +else{if(!r.state[d?"selected":"checked"])break +r.state[d?"selected":"checked"]=!1,this._data[d?"core":"checkbox"].selected=e.vakata.array_remove_item(this._data[d?"core":"checkbox"].selected,r.id),(a=this.get_node(r,!0))&&a.length&&a.attr("aria-selected",!1).children(".jstree-anchor").removeClass(d?"jstree-clicked":"jstree-checked")}r=this.get_node(r.parent)}},this))},this.get_undetermined=function(n){if(-1===this.settings.checkbox.cascade.indexOf("undetermined"))return[] +var r,i,o,s,a={},u=this._model.data,c=this.settings.checkbox.tie_selection,l=this._data[c?"core":"checkbox"].selected,h=[],d=this,p=[] +for(r=0,i=l.length;i>r;r++)if(u[l[r]]&&u[l[r]].parents)for(o=0,s=u[l[r]].parents.length;s>o&&a[u[l[r]].parents[o]]===t;o++)u[l[r]].parents[o]!==e.jstree.root&&(a[u[l[r]].parents[o]]=!0,h.push(u[l[r]].parents[o])) +for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var n,c=d.get_node(this) +if(c)if(c.state.loaded){for(r=0,i=c.children_d.length;i>r;r++)if(n=u[c.children_d[r]],!n.state.loaded&&n.original&&n.original.state&&n.original.state.undetermined&&!0===n.original.state.undetermined)for(a[n.id]===t&&n.id!==e.jstree.root&&(a[n.id]=!0,h.push(n.id)),o=0,s=n.parents.length;s>o;o++)a[n.parents[o]]===t&&n.parents[o]!==e.jstree.root&&(a[n.parents[o]]=!0,h.push(n.parents[o]))}else if(c.original&&c.original.state&&c.original.state.undetermined&&!0===c.original.state.undetermined)for(a[c.id]===t&&c.id!==e.jstree.root&&(a[c.id]=!0,h.push(c.id)),o=0,s=c.parents.length;s>o;o++)a[c.parents[o]]===t&&c.parents[o]!==e.jstree.root&&(a[c.parents[o]]=!0,h.push(c.parents[o]))}),r=0,i=h.length;i>r;r++)u[h[r]].state[c?"selected":"checked"]||p.push(n?u[h[r]]:h[r]) +return p},this._undetermined=function(){if(null!==this.element){var e,t,n,r=this.get_undetermined(!1) +for(this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),e=0,t=r.length;t>e;e++)(n=this.get_node(r[e],!0))&&n.length&&n.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined")}},this.redraw_node=function(t,n,i,o){if(t=r.redraw_node.apply(this,arguments)){var s,a,u=null,l=null +for(s=0,a=t.childNodes.length;a>s;s++)if(t.childNodes[s]&&t.childNodes[s].className&&-1!==t.childNodes[s].className.indexOf("jstree-anchor")){u=t.childNodes[s] +break}u&&(!this.settings.checkbox.tie_selection&&this._model.data[t.id].state.checked&&(u.className+=" jstree-checked"),l=c.cloneNode(!1),this._model.data[t.id].state.checkbox_disabled&&(l.className+=" jstree-checkbox-disabled"),u.insertBefore(l,u.childNodes[0]))}return i||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(e.proxy(this._undetermined,this),50)),t},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(t){t=this.get_node(t) +var n,r,i=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection,s=this._data[o?"core":"checkbox"].selected,a=this._model.data +if(!t||!0===t.state[o?"selected":"checked"]||-1===i.indexOf("undetermined")||-1===i.indexOf("down")&&-1===i.indexOf("up"))return!1 +if(!t.state.loaded&&!0===t.original.state.undetermined)return!0 +for(n=0,r=t.children_d.length;r>n;n++)if(-1!==e.inArray(t.children_d[n],s)||!a[t.children_d[n]].state.loaded&&a[t.children_d[n]].original.state.undetermined)return!0 +return!1},this.disable_checkbox=function(t){var n,r,i +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.disable_checkbox(t[n]) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(i=this.get_node(t,!0),void(t.state.checkbox_disabled||(t.state.checkbox_disabled=!0,i&&i.length&&i.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:t}))))},this.enable_checkbox=function(t){var n,r,i +if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.enable_checkbox(t[n]) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(i=this.get_node(t,!0),void(t.state.checkbox_disabled&&(t.state.checkbox_disabled=!1,i&&i.length&&i.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:t}))))},this.activate_node=function(t,n){return!e(n.target).hasClass("jstree-checkbox-disabled")&&(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||e(n.target).hasClass("jstree-checkbox"))&&(n.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!e(n.target).hasClass("jstree-checkbox")?r.activate_node.call(this,t,n):!this.is_disabled(t)&&(this.is_checked(t)?this.uncheck_node(t,n):this.check_node(t,n),void this.trigger("activate_node",{node:this.get_node(t)})))},this._cascade_new_checked_state=function(e,t){var n,r,i,o=this,s=this.settings.checkbox.tie_selection,a=this._model.data[e],u=[],c=[] +if(!this.settings.checkbox.cascade_to_disabled&&a.state.disabled||!this.settings.checkbox.cascade_to_hidden&&a.state.hidden)i=this.get_checked_descendants(e),a.state[s?"selected":"checked"]&&i.push(a.id),u=u.concat(i) +else{if(a.children)for(n=0,r=a.children.length;r>n;n++){var l=a.children[n] +i=o._cascade_new_checked_state(l,t),u=u.concat(i),i.indexOf(l)>-1&&c.push(l)}var h=o.get_node(a,!0),d=c.length>0&&c.length<a.children.length +a.original&&a.original.state&&a.original.state.undetermined&&(a.original.state.undetermined=d),d?(a.state[s?"selected":"checked"]=!1,h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(s?"jstree-clicked":"jstree-checked")):t&&c.length===a.children.length?(a.state[s?"selected":"checked"]=t,u.push(a.id),h.attr("aria-selected",!0).children(".jstree-anchor").addClass(s?"jstree-clicked":"jstree-checked")):(a.state[s?"selected":"checked"]=!1,h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(s?"jstree-clicked":"jstree-checked"))}return u},this.get_checked_descendants=function(e){var t=this,n=t.settings.checkbox.tie_selection +return t._model.data[e].children_d.filter(function(e){return t._model.data[e].state[n?"selected":"checked"]})},this.check_node=function(t,n){if(this.settings.checkbox.tie_selection)return this.select_node(t,!1,!0,n) +var r,i,o +if(e.isArray(t)){for(t=t.slice(),i=0,o=t.length;o>i;i++)this.check_node(t[i],n) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(r=this.get_node(t,!0),void(t.state.checked||(t.state.checked=!0,this._data.checkbox.selected.push(t.id),r&&r.length&&r.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:t,selected:this._data.checkbox.selected,event:n}))))},this.uncheck_node=function(t,n){if(this.settings.checkbox.tie_selection)return this.deselect_node(t,!1,n) +var r,i,o +if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.uncheck_node(t[r],n) +return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=this.get_node(t,!0),void(t.state.checked&&(t.state.checked=!1,this._data.checkbox.selected=e.vakata.array_remove_item(this._data.checkbox.selected,t.id),o.length&&o.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:t,selected:this._data.checkbox.selected,event:n}))))},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all() +var t,n +this._data.checkbox.selected.concat([]) +for(this._data.checkbox.selected=this._model.data[e.jstree.root].children_d.concat(),t=0,n=this._data.checkbox.selected.length;n>t;t++)this._model.data[this._data.checkbox.selected[t]]&&(this._model.data[this._data.checkbox.selected[t]].state.checked=!0) +this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all() +var e,t,n=this._data.checkbox.selected.concat([]) +for(e=0,t=this._data.checkbox.selected.length;t>e;e++)this._model.data[this._data.checkbox.selected[e]]&&(this._model.data[this._data.checkbox.selected[e]].state.checked=!1) +this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:n})},this.is_checked=function(t){return this.settings.checkbox.tie_selection?this.is_selected(t):!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.state.checked},this.get_checked=function(t){return this.settings.checkbox.tie_selection?this.get_selected(t):t?e.map(this._data.checkbox.selected,e.proxy(function(e){return this.get_node(e)},this)):this._data.checkbox.selected},this.get_top_checked=function(t){if(this.settings.checkbox.tie_selection)return this.get_top_selected(t) +var n,r,i,o,s=this.get_checked(!0),a={} +for(n=0,r=s.length;r>n;n++)a[s[n].id]=s[n] +for(n=0,r=s.length;r>n;n++)for(i=0,o=s[n].children_d.length;o>i;i++)a[s[n].children_d[i]]&&delete a[s[n].children_d[i]] +s=[] +for(n in a)a.hasOwnProperty(n)&&s.push(n) +return t?e.map(s,e.proxy(function(e){return this.get_node(e)},this)):s},this.get_bottom_checked=function(t){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(t) +var n,r,i=this.get_checked(!0),o=[] +for(n=0,r=i.length;r>n;n++)i[n].children.length||o.push(i[n].id) +return t?e.map(o,e.proxy(function(e){return this.get_node(e)},this)):o},this.load_node=function(t,n){var i,o,s +if(!e.isArray(t)&&!this.settings.checkbox.tie_selection&&(s=this.get_node(t))&&s.state.loaded)for(i=0,o=s.children_d.length;o>i;i++)this._model.data[s.children_d[i]].state.checked&&(!0,this._data.checkbox.selected=e.vakata.array_remove_item(this._data.checkbox.selected,s.children_d[i])) +return r.load_node.apply(this,arguments)},this.get_state=function(){var e=r.get_state.apply(this,arguments) +return this.settings.checkbox.tie_selection?e:(e.checkbox=this._data.checkbox.selected.slice(),e)},this.set_state=function(t,n){var i=r.set_state.apply(this,arguments) +if(i&&t.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all() +var o=this +e.each(t.checkbox,function(e,t){o.check_node(t)})}return delete t.checkbox,this.set_state(t,n),!1}return i},this.refresh=function(e,t){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),r.refresh.apply(this,arguments)}},e.jstree.defaults.conditionalselect=function(){return!0},e.jstree.plugins.conditionalselect=function(e,t){this.activate_node=function(e,n){return this.settings.conditionalselect.call(this,this.get_node(e),n)?t.activate_node.call(this,e,n):void 0}},e.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(t,n){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference) +n.create_node(r,{},"last",function(e){try{n.edit(e)}catch(t){setTimeout(function(){n.edit(e)},0)}})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference) +n.edit(r)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference) +n.is_selected(r)?n.delete_node(n.get_selected()):n.delete_node(r)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference) +n.is_selected(r)?n.cut(n.get_top_selected()):n.cut(r)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference) +n.is_selected(r)?n.copy(n.get_top_selected()):n.copy(r)}},paste:{separator_before:!1,icon:!1,_disabled:function(t){return!e.jstree.reference(t.reference).can_paste()},separator_after:!1,label:"Paste",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference) +n.paste(r)}}}}}}},e.jstree.plugins.contextmenu=function(n,r){this.bind=function(){r.bind.call(this) +var t,n,i=0,o=null +this.element.on("init.jstree loading.jstree ready.jstree",e.proxy(function(){this.get_container_ul().addClass("jstree-contextmenu")},this)).on("contextmenu.jstree",".jstree-anchor",e.proxy(function(e,t){"input"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),i=e.ctrlKey?+new Date:0,(t||o)&&(i=+new Date+1e4),o&&clearTimeout(o),this.is_loading(e.currentTarget)||this.show_contextmenu(e.currentTarget,e.pageX,e.pageY,e))},this)).on("click.jstree",".jstree-anchor",e.proxy(function(t){this._data.contextmenu.visible&&(!i||+new Date-i>250)&&e.vakata.context.hide(),i=0},this)).on("touchstart.jstree",".jstree-anchor",function(r){r.originalEvent&&r.originalEvent.changedTouches&&r.originalEvent.changedTouches[0]&&(t=r.originalEvent.changedTouches[0].clientX,n=r.originalEvent.changedTouches[0].clientY,o=setTimeout(function(){e(r.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(r){o&&r.originalEvent&&r.originalEvent.changedTouches&&r.originalEvent.changedTouches[0]&&(Math.abs(t-r.originalEvent.changedTouches[0].clientX)>10||Math.abs(n-r.originalEvent.changedTouches[0].clientY)>10)&&(clearTimeout(o),e.vakata.context.hide())}).on("touchend.vakata.jstree",function(e){o&&clearTimeout(o)}),e(u).on("context_hide.vakata.jstree",e.proxy(function(t,n){this._data.contextmenu.visible=!1,e(n.reference).removeClass("jstree-context")},this))},this.teardown=function(){this._data.contextmenu.visible&&e.vakata.context.hide(),r.teardown.call(this)},this.show_contextmenu=function(n,r,i,o){if(!(n=this.get_node(n))||n.id===e.jstree.root)return!1 +var s=this.settings.contextmenu,a=this.get_node(n,!0),u=a.children(".jstree-anchor"),c=!1,l=!1;(s.show_at_node||r===t||i===t)&&(c=u.offset(),r=c.left,i=c.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(n)&&this.activate_node(n,o),l=s.items,e.isFunction(l)&&(l=l.call(this,n,e.proxy(function(e){this._show_contextmenu(n,r,i,e)},this))),e.isPlainObject(l)&&this._show_contextmenu(n,r,i,l)},this._show_contextmenu=function(t,n,r,i){var o=this.get_node(t,!0),s=o.children(".jstree-anchor") +e(u).one("context_show.vakata.jstree",e.proxy(function(t,n){var r="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu" +e(n.element).addClass(r),s.addClass("jstree-context")},this)),this._data.contextmenu.visible=!0,e.vakata.context.show(s,{x:n,y:r},i),this.trigger("show_contextmenu",{node:t,x:n,y:r})}},function(e){var t=!1,n={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1} +e.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(t){e(u).triggerHandler("context_"+t+".vakata",{reference:n.reference,element:n.element,position:{x:n.position_x,y:n.position_y}})},_execute:function(t){return!(!(t=n.items[t])||t._disabled&&(!e.isFunction(t._disabled)||t._disabled({item:t,reference:n.reference,element:n.element}))||!t.action)&&t.action.call(null,{item:t,reference:n.reference,element:n.element,position:{x:n.position_x,y:n.position_y}})},_parse:function(t,r){if(!t)return!1 +r||(n.html="",n.items=[]) +var i,o="",s=!1 +return r&&(o+="<ul>"),e.each(t,function(t,r){return!r||(n.items.push(r),!s&&r.separator_before&&(o+="<li class='vakata-context-separator'><a href='#' "+(e.vakata.context.settings.icons?"":'style="margin-left:0px;"')+"> </a></li>"),s=!1,o+="<li class='"+(r._class||"")+(!0===r._disabled||e.isFunction(r._disabled)&&r._disabled({item:r,reference:n.reference,element:n.element})?" vakata-contextmenu-disabled ":"")+"' "+(r.shortcut?" data-shortcut='"+r.shortcut+"' ":"")+">",o+="<a href='#' rel='"+(n.items.length-1)+"' "+(r.title?"title='"+r.title+"'":"")+">",e.vakata.context.settings.icons&&(o+="<i ",r.icon&&(o+=-1!==r.icon.indexOf("/")||-1!==r.icon.indexOf(".")?" style='background:url(\""+r.icon+"\") center center no-repeat' ":" class='"+r.icon+"' "),o+="></i><span class='vakata-contextmenu-sep'> </span>"),o+=(e.isFunction(r.label)?r.label({item:t,reference:n.reference,element:n.element}):r.label)+(r.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+r.shortcut+'">'+(r.shortcut_label||"")+"</span>":"")+"</a>",r.submenu&&(i=e.vakata.context._parse(r.submenu,!0))&&(o+=i),o+="</li>",void(r.separator_after&&(o+="<li class='vakata-context-separator'><a href='#' "+(e.vakata.context.settings.icons?"":'style="margin-left:0px;"')+"> </a></li>",s=!0)))}),o=o.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),r&&(o+="</ul>"),r||(n.html=o,e.vakata.context._trigger("parse")),o.length>10&&o},_show_submenu:function(n){if(n=e(n),n.length&&n.children("ul").length){var r=n.children("ul"),i=n.offset().left,o=i+n.outerWidth(),s=n.offset().top,a=r.width(),u=r.height(),c=e(window).width()+e(window).scrollLeft(),l=e(window).height()+e(window).scrollTop() +t?n[o-(a+10+n.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):n[o+a>c&&i>c-o?"addClass":"removeClass"]("vakata-context-right"),s+u+10>l&&r.css("bottom","-1px"),n.hasClass("vakata-context-right")?a>i&&r.css("margin-right",i-a):a>c-o&&r.css("margin-left",c-o-a),r.show()}},show:function(r,i,o){var s,a,u,c,l,h,d,p +switch(n.element&&n.element.length&&n.element.width(""),!0){case!i&&!r:return!1 +case!!i&&!!r:n.reference=r,n.position_x=i.x,n.position_y=i.y +break +case!i&&!!r:n.reference=r,s=r.offset(),n.position_x=s.left+r.outerHeight(),n.position_y=s.top +break +case!!i&&!r:n.position_x=i.x,n.position_y=i.y}r&&!o&&e(r).data("vakata_contextmenu")&&(o=e(r).data("vakata_contextmenu")),e.vakata.context._parse(o)&&n.element.html(n.html),n.items.length&&(n.element.appendTo("body"),a=n.element,u=n.position_x,c=n.position_y,l=a.width(),h=a.height(),d=e(window).width()+e(window).scrollLeft(),p=e(window).height()+e(window).scrollTop(),t&&(u-=a.outerWidth()-e(r).outerWidth())<e(window).scrollLeft()+20&&(u=e(window).scrollLeft()+20),u+l+20>d&&(u=d-(l+20)),c+h+20>p&&(c=p-(h+20)),n.element.css({left:u,top:c}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),n.is_visible=!0,e.vakata.context._trigger("show"))},hide:function(){n.is_visible&&(n.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),n.is_visible=!1,e.vakata.context._trigger("hide"))}},e(function(){t="rtl"===e("body").css("direction") +var r=!1 +n.element=e("<ul class='vakata-context'></ul>"),n.element.on("mouseenter","li",function(t){t.stopImmediatePropagation(),e.contains(this,t.relatedTarget)||(r&&clearTimeout(r),n.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),e(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),e.vakata.context._show_submenu(this))}).on("mouseleave","li",function(t){e.contains(this,t.relatedTarget)||e(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(t){e(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),e.vakata.context.settings.hide_onmouseleave&&(r=setTimeout(function(t){return function(){e.vakata.context.hide()}}(),e.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(t){t.preventDefault(),e(this).blur().parent().hasClass("vakata-context-disabled")||!1===e.vakata.context._execute(e(this).attr("rel"))||e.vakata.context.hide()}).on("keydown","a",function(t){var r=null +switch(t.which){case 13:case 32:t.type="click",t.preventDefault(),e(t.currentTarget).trigger(t) +break +case 37:n.is_visible&&(n.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),t.stopImmediatePropagation(),t.preventDefault()) +break +case 38:n.is_visible&&(r=n.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(),r.length||(r=n.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),r.addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault()) +break +case 39:n.is_visible&&(n.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault()) +break +case 40:n.is_visible&&(r=n.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),r.length||(r=n.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),r.addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault()) +break +case 27:e.vakata.context.hide(),t.preventDefault()}}).on("keydown",function(e){e.preventDefault() +var t=n.element.find(".vakata-contextmenu-shortcut-"+e.which).parent() +t.parent().not(".vakata-context-disabled")&&t.click()}),e(u).on("mousedown.vakata.jstree",function(t){n.is_visible&&n.element[0]!==t.target&&!e.contains(n.element[0],t.target)&&e.vakata.context.hide()}).on("context_show.vakata.jstree",function(e,r){n.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),t&&n.element.addClass("vakata-context-rtl").css("direction","rtl"),n.element.find("ul").hide().end()})})}(e),e.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1,use_html5:!1} +var l,h +e.jstree.plugins.dnd=function(t,n){this.init=function(e,t){n.init.call(this,e,t),this.settings.dnd.use_html5=this.settings.dnd.use_html5&&"draggable"in u.createElement("span")},this.bind=function(){n.bind.call(this),this.element.on(this.settings.dnd.use_html5?"dragstart.jstree":"mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",e.proxy(function(t){if(this.settings.dnd.large_drag_target&&e(t.target).closest(".jstree-node")[0]!==t.currentTarget)return!0 +if("touchstart"===t.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0 +var n=this.get_node(t.target),r=this.is_selected(n)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,i=r>1?r+" "+this.get_string("nodes"):this.get_text(t.currentTarget) +if(this.settings.core.force_text&&(i=e.vakata.html.escape(i)),n&&n.id&&n.id!==e.jstree.root&&(1===t.which||"touchstart"===t.type||"dragstart"===t.type)&&(!0===this.settings.dnd.is_draggable||e.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,r>1?this.get_top_selected(!0):[n],t))){if(l={jstree:!0,origin:this,obj:this.get_node(n,!0),nodes:r>1?this.get_top_selected():[n.id]},h=t.currentTarget,!this.settings.dnd.use_html5)return this.element.trigger("mousedown.jstree"),e.vakata.dnd.start(t,l,'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+i+'<ins class="jstree-copy" style="display:none;">+</ins></div>') +e.vakata.dnd._trigger("start",t,{helper:e(),element:h,data:l})}},this)),this.settings.dnd.use_html5&&this.element.on("dragover.jstree",function(t){return t.preventDefault(),e.vakata.dnd._trigger("move",t,{helper:e(),element:h,data:l}),!1}).on("drop.jstree",e.proxy(function(t){return t.preventDefault(),e.vakata.dnd._trigger("stop",t,{helper:e(),element:h,data:l}),!1},this))},this.redraw_node=function(e,t,r,i){if((e=n.redraw_node.apply(this,arguments))&&this.settings.dnd.use_html5)if(this.settings.dnd.large_drag_target)e.setAttribute("draggable",!0) +else{var o,s,a=null +for(o=0,s=e.childNodes.length;s>o;o++)if(e.childNodes[o]&&e.childNodes[o].className&&-1!==e.childNodes[o].className.indexOf("jstree-anchor")){a=e.childNodes[o] +break}a&&a.setAttribute("draggable",!0)}return e}},e(function(){var n=!1,r=!1,i=!1,o=!1,s=e('<div id="jstree-marker"> </div>').hide() +e(u).on("dnd_start.vakata.jstree",function(e,t){n=!1,i=!1,t&&t.data&&t.data.jstree&&s.appendTo("body")}).on("dnd_move.vakata.jstree",function(a,u){var c=u.event.target!==i.target +if(o&&(!u.event||"dragover"!==u.event.type||c)&&clearTimeout(o),u&&u.data&&u.data.jstree&&(!u.event.target.id||"jstree-marker"!==u.event.target.id)){i=u.event +var l,h,d,p,f,g,m,v,y,b,C,A,_,I,w,x,k=e.jstree.reference(u.event.target),j=!1,E=!1,S=!1 +if(k&&k._data&&k._data.dnd)if(s.attr("class","jstree-"+k.get_theme()+(k.settings.core.themes.responsive?" jstree-dnd-responsive":"")),w=u.data.origin&&(u.data.origin.settings.dnd.always_copy||u.data.origin.settings.dnd.copy&&(u.event.metaKey||u.event.ctrlKey)),u.helper.children().attr("class","jstree-"+k.get_theme()+" jstree-"+k.get_theme()+"-"+k.get_theme_variant()+" "+(k.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[w?"show":"hide"](),u.event.target!==k.element[0]&&u.event.target!==k.get_container_ul()[0]||0!==k.get_container_ul().children().length){if((j=k.settings.dnd.large_drop_target?e(u.event.target).closest(".jstree-node").children(".jstree-anchor"):e(u.event.target).closest(".jstree-anchor"))&&j.length&&j.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(E=j.offset(),S=(u.event.pageY!==t?u.event.pageY:u.event.originalEvent.pageY)-E.top,d=j.outerHeight(),g=d/3>S?["b","i","a"]:S>d-d/3?["a","i","b"]:S>d/2?["i","a","b"]:["i","b","a"],e.each(g,function(t,i){switch(i){case"b":l=E.left-6,h=E.top,p=k.get_parent(j),f=j.parent().index() +break +case"i":_=k.settings.dnd.inside_pos,I=k.get_node(j.parent()),l=E.left-2,h=E.top+d/2+1,p=I.id,f="first"===_?0:"last"===_?I.children.length:Math.min(_,I.children.length) +break +case"a":l=E.left-6,h=E.top+d,p=k.get_parent(j),f=j.parent().index()+1}for(m=!0,v=0,y=u.data.nodes.length;y>v;v++)if(b=u.data.origin&&(u.data.origin.settings.dnd.always_copy||u.data.origin.settings.dnd.copy&&(u.event.metaKey||u.event.ctrlKey))?"copy_node":"move_node",C=f,"move_node"===b&&"a"===i&&u.data.origin&&u.data.origin===k&&p===k.get_parent(u.data.nodes[v])&&(A=k.get_node(p),C>e.inArray(u.data.nodes[v],A.children)&&(C-=1)),!(m=m&&(k&&k.settings&&k.settings.dnd&&!1===k.settings.dnd.check_while_dragging||k.check(b,u.data.origin&&u.data.origin!==k?u.data.origin.get_node(u.data.nodes[v]):u.data.nodes[v],p,C,{dnd:!0,ref:k.get_node(j.parent()),pos:i,origin:u.data.origin,is_multi:u.data.origin&&u.data.origin!==k,is_foreign:!u.data.origin})))){k&&k.last_error&&(r=k.last_error()) +break}return"i"===i&&j.parent().is(".jstree-closed")&&k.settings.dnd.open_timeout&&(!u.event||"dragover"!==u.event.type||c)&&(o&&clearTimeout(o),o=setTimeout(function(e,t){return function(){e.open_node(t)}}(k,j),k.settings.dnd.open_timeout)),m?(x=k.get_node(p,!0),x.hasClass(".jstree-dnd-parent")||(e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),x.addClass("jstree-dnd-parent")),n={ins:k,par:p,pos:"i"!==i||"last"!==_||0!==f||k.is_loaded(I)?f:"last"},s.css({left:l+"px",top:h+"px"}).show(),u.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),u.event.originalEvent&&u.event.originalEvent.dataTransfer&&(u.event.originalEvent.dataTransfer.dropEffect=w?"copy":"move"),r={},g=!0,!1):void 0}),!0===g))return}else{for(m=!0,v=0,y=u.data.nodes.length;y>v&&(m=m&&k.check(u.data.origin&&(u.data.origin.settings.dnd.always_copy||u.data.origin.settings.dnd.copy&&(u.event.metaKey||u.event.ctrlKey))?"copy_node":"move_node",u.data.origin&&u.data.origin!==k?u.data.origin.get_node(u.data.nodes[v]):u.data.nodes[v],e.jstree.root,"last",{dnd:!0,ref:k.get_node(e.jstree.root),pos:"i",origin:u.data.origin,is_multi:u.data.origin&&u.data.origin!==k,is_foreign:!u.data.origin}));v++);if(m)return n={ins:k,par:e.jstree.root,pos:"last"},s.hide(),u.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),void(u.event.originalEvent&&u.event.originalEvent.dataTransfer&&(u.event.originalEvent.dataTransfer.dropEffect=w?"copy":"move"))}e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),n=!1,u.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),u.event.originalEvent&&u.event.originalEvent.dataTransfer&&(u.event.originalEvent.dataTransfer.dropEffect="none"),s.hide()}}).on("dnd_scroll.vakata.jstree",function(e,t){t&&t.data&&t.data.jstree&&(s.hide(),n=!1,i=!1,t.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(t,a){if(e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),o&&clearTimeout(o),a&&a.data&&a.data.jstree){s.hide().detach() +var u,c,l=[] +if(n){for(u=0,c=a.data.nodes.length;c>u;u++)l[u]=a.data.origin?a.data.origin.get_node(a.data.nodes[u]):a.data.nodes[u] +n.ins[a.data.origin&&(a.data.origin.settings.dnd.always_copy||a.data.origin.settings.dnd.copy&&(a.event.metaKey||a.event.ctrlKey))?"copy_node":"move_node"](l,n.par,n.pos,!1,!1,!1,a.data.origin)}else u=e(a.event.target).closest(".jstree"),u.length&&r&&r.error&&"check"===r.error&&(u=u.jstree(!0))&&u.settings.core.error.call(this,r) +i=!1,n=!1}}).on("keyup.jstree keydown.jstree",function(t,a){(a=e.vakata.dnd._get())&&a.data&&a.data.jstree&&("keyup"===t.type&&27===t.which?(o&&clearTimeout(o),n=!1,r=!1,i=!1,o=!1,s.hide().detach(),e.vakata.dnd._clean()):(a.helper.find(".jstree-copy").first()[a.data.origin&&(a.data.origin.settings.dnd.always_copy||a.data.origin.settings.dnd.copy&&(t.metaKey||t.ctrlKey))?"show":"hide"](),i&&(i.metaKey=t.metaKey,i.ctrlKey=t.ctrlKey,e.vakata.dnd._trigger("move",i))))})}),function(e){e.vakata.html={div:e("<div />"),escape:function(t){return e.vakata.html.div.text(t).html()},strip:function(t){return e.vakata.html.div.empty().append(e.parseHTML(t)).text()}} +var n={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1} +e.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:10},_trigger:function(n,r,i){i===t&&(i=e.vakata.dnd._get()),i.event=r,e(u).triggerHandler("dnd_"+n+".vakata",i)},_get:function(){return{data:n.data,element:n.element,helper:n.helper}},_clean:function(){n.helper&&n.helper.remove(),n.scroll_i&&(clearInterval(n.scroll_i),n.scroll_i=!1),n={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},e(u).off("mousemove.vakata.jstree touchmove.vakata.jstree",e.vakata.dnd.drag),e(u).off("mouseup.vakata.jstree touchend.vakata.jstree",e.vakata.dnd.stop)},_scroll:function(t){if(!n.scroll_e||!n.scroll_l&&!n.scroll_t)return n.scroll_i&&(clearInterval(n.scroll_i),n.scroll_i=!1),!1 +if(!n.scroll_i)return n.scroll_i=setInterval(e.vakata.dnd._scroll,100),!1 +if(!0===t)return!1 +var r=n.scroll_e.scrollTop(),i=n.scroll_e.scrollLeft() +n.scroll_e.scrollTop(r+n.scroll_t*e.vakata.dnd.settings.scroll_speed),n.scroll_e.scrollLeft(i+n.scroll_l*e.vakata.dnd.settings.scroll_speed),(r!==n.scroll_e.scrollTop()||i!==n.scroll_e.scrollLeft())&&e.vakata.dnd._trigger("scroll",n.scroll_e)},start:function(t,r,i){"touchstart"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=u.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_drag&&e.vakata.dnd.stop({}) +try{t.currentTarget.unselectable="on",t.currentTarget.onselectstart=function(){return!1},t.currentTarget.style&&(t.currentTarget.style.touchAction="none",t.currentTarget.style.msTouchAction="none",t.currentTarget.style.MozUserSelect="none")}catch(e){}return n.init_x=t.pageX,n.init_y=t.pageY,n.data=r,n.is_down=!0,n.element=t.currentTarget,n.target=t.target,n.is_touch="touchstart"===t.type,!1!==i&&(n.helper=e("<div id='vakata-dnd'></div>").html(i).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),e(u).on("mousemove.vakata.jstree touchmove.vakata.jstree",e.vakata.dnd.drag),e(u).on("mouseup.vakata.jstree touchend.vakata.jstree",e.vakata.dnd.stop),!1},drag:function(t){if("touchmove"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=u.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_down){if(!n.is_drag){if(!(Math.abs(t.pageX-n.init_x)>(n.is_touch?e.vakata.dnd.settings.threshold_touch:e.vakata.dnd.settings.threshold)||Math.abs(t.pageY-n.init_y)>(n.is_touch?e.vakata.dnd.settings.threshold_touch:e.vakata.dnd.settings.threshold)))return +n.helper&&(n.helper.appendTo("body"),n.helper_w=n.helper.outerWidth()),n.is_drag=!0,e(n.target).one("click.vakata",!1),e.vakata.dnd._trigger("start",t)}var r=!1,i=!1,o=!1,s=!1,a=!1,c=!1,l=!1,h=!1,d=!1,p=!1 +return n.scroll_t=0,n.scroll_l=0,n.scroll_e=!1,e(e(t.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(e(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var r=e(this),i=r.offset() +return this.scrollHeight>this.offsetHeight&&(i.top+r.height()-t.pageY<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=1),t.pageY-i.top<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(i.left+r.width()-t.pageX<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=1),t.pageX-i.left<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=-1)),n.scroll_t||n.scroll_l?(n.scroll_e=e(this),!1):void 0}),n.scroll_e||(r=e(u),i=e(window),o=r.height(),s=i.height(),a=r.width(),c=i.width(),l=r.scrollTop(),h=r.scrollLeft(),o>s&&t.pageY-l<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=-1),o>s&&s-(t.pageY-l)<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=1),a>c&&t.pageX-h<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=-1),a>c&&c-(t.pageX-h)<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=1),(n.scroll_t||n.scroll_l)&&(n.scroll_e=r)),n.scroll_e&&e.vakata.dnd._scroll(!0),n.helper&&(d=parseInt(t.pageY+e.vakata.dnd.settings.helper_top,10),p=parseInt(t.pageX+e.vakata.dnd.settings.helper_left,10),o&&d+25>o&&(d=o-50),a&&p+n.helper_w>a&&(p=a-(n.helper_w+2)),n.helper.css({left:p+"px",top:d+"px"})),e.vakata.dnd._trigger("move",t),!1}},stop:function(t){if("touchend"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=u.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_drag)t.target!==n.target&&e(n.target).off("click.vakata"),e.vakata.dnd._trigger("stop",t) +else if("touchend"===t.type&&t.target===n.target){var r=setTimeout(function(){e(t.target).click()},100) +e(t.target).one("click",function(){r&&clearTimeout(r)})}return e.vakata.dnd._clean(),!1}}}(e),e.jstree.defaults.massload=null,e.jstree.plugins.massload=function(t,n){this.init=function(e,t){this._data.massload={},n.init.call(this,e,t)},this._load_nodes=function(t,r,i,o){var s,a,u,c=this.settings.massload,l=(JSON.stringify(t),[]),h=this._model.data +if(!i){for(s=0,a=t.length;a>s;s++)(!h[t[s]]||!h[t[s]].state.loaded&&!h[t[s]].state.failed||o)&&(l.push(t[s]),(u=this.get_node(t[s],!0))&&u.length&&u.addClass("jstree-loading").attr("aria-busy",!0)) +if(this._data.massload={},l.length){if(e.isFunction(c))return c.call(this,l,e.proxy(function(e){var s,a +if(e)for(s in e)e.hasOwnProperty(s)&&(this._data.massload[s]=e[s]) +for(s=0,a=t.length;a>s;s++)(u=this.get_node(t[s],!0))&&u.length&&u.removeClass("jstree-loading").attr("aria-busy",!1) +n._load_nodes.call(this,t,r,i,o)},this)) +if("object"==typeof c&&c&&c.url)return c=e.extend(!0,{},c),e.isFunction(c.url)&&(c.url=c.url.call(this,l)),e.isFunction(c.data)&&(c.data=c.data.call(this,l)),e.ajax(c).done(e.proxy(function(e,s,a){var c,l +if(e)for(c in e)e.hasOwnProperty(c)&&(this._data.massload[c]=e[c]) +for(c=0,l=t.length;l>c;c++)(u=this.get_node(t[c],!0))&&u.length&&u.removeClass("jstree-loading").attr("aria-busy",!1) +n._load_nodes.call(this,t,r,i,o)},this)).fail(e.proxy(function(e){n._load_nodes.call(this,t,r,i,o)},this))}}return n._load_nodes.call(this,t,r,i,o)},this._load_node=function(t,r){var i,o=this._data.massload[t.id],s=null +return o?(s=this["string"==typeof o?"_append_html_data":"_append_json_data"](t,"string"==typeof o?e(e.parseHTML(o)).filter(function(){return 3!==this.nodeType}):o,function(e){r.call(this,e)}),i=this.get_node(t.id,!0),i&&i.length&&i.removeClass("jstree-loading").attr("aria-busy",!1),delete this._data.massload[t.id],s):n._load_node.call(this,t,r)}},e.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},e.jstree.plugins.search=function(n,r){this.bind=function(){r.bind.call(this),this._data.search.str="",this._data.search.dom=e(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",e.proxy(function(t,n){if(this._data.search.som&&n.res.length){var r,i,o,s,a=this._model.data,u=[] +for(r=0,i=n.res.length;i>r;r++)if(a[n.res[r]]&&!a[n.res[r]].state.hidden&&(u.push(n.res[r]),u=u.concat(a[n.res[r]].parents),this._data.search.smc))for(o=0,s=a[n.res[r]].children_d.length;s>o;o++)a[a[n.res[r]].children_d[o]]&&!a[a[n.res[r]].children_d[o]].state.hidden&&u.push(a[n.res[r]].children_d[o]) +u=e.vakata.array_remove_item(e.vakata.array_unique(u),e.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(u,!0),this.redraw(!0)}},this)).on("clear_search.jstree",e.proxy(function(e,t){this._data.search.som&&t.res.length&&(this.show_node(this._data.search.hdn,!0),this.redraw(!0))},this))},this.search=function(n,r,i,o,s,a){if(!1===n||""===e.trim(n.toString()))return this.clear_search() +o=this.get_node(o),o=o&&o.id?o.id:null,n=n.toString() +var u,c,l=this.settings.search,h=!!l.ajax&&l.ajax,d=this._model.data,p=null,f=[],g=[] +if(this._data.search.res.length&&!s&&this.clear_search(),i===t&&(i=l.show_only_matches),a===t&&(a=l.show_only_matches_children),!r&&!1!==h)return e.isFunction(h)?h.call(this,n,e.proxy(function(t){t&&t.d&&(t=t.d),this._load_nodes(e.isArray(t)?e.vakata.array_unique(t):[],function(){this.search(n,!0,i,o,s,a)})},this),o):(h=e.extend({},h),h.data||(h.data={}),h.data.str=n,o&&(h.data.inside=o),this._data.search.lastRequest&&this._data.search.lastRequest.abort(),this._data.search.lastRequest=e.ajax(h).fail(e.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(h)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(e.proxy(function(t){t&&t.d&&(t=t.d),this._load_nodes(e.isArray(t)?e.vakata.array_unique(t):[],function(){this.search(n,!0,i,o,s,a)})},this)),this._data.search.lastRequest) +if(s||(this._data.search.str=n,this._data.search.dom=e(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=i,this._data.search.smc=a),p=new e.vakata.search(n,!0,{caseSensitive:l.case_sensitive,fuzzy:l.fuzzy}),e.each(d[o||e.jstree.root].children_d,function(e,t){var r=d[t] +r.text&&!r.state.hidden&&(!l.search_leaves_only||r.state.loaded&&0===r.children.length)&&(l.search_callback&&l.search_callback.call(this,n,r)||!l.search_callback&&p.search(r.text).isMatch)&&(f.push(t),g=g.concat(r.parents))}),f.length){for(g=e.vakata.array_unique(g),u=0,c=g.length;c>u;u++)g[u]!==e.jstree.root&&d[g[u]]&&!0===this.open_node(g[u],null,0)&&this._data.search.opn.push(g[u]) +s?(this._data.search.dom=this._data.search.dom.add(e(this.element[0].querySelectorAll("#"+e.map(f,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=e.vakata.array_unique(this._data.search.res.concat(f))):(this._data.search.dom=e(this.element[0].querySelectorAll("#"+e.map(f,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=f),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:n,res:this._data.search.res,show_only_matches:i})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=e(this.element[0].querySelectorAll("#"+e.map(this._data.search.res,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=e()},this.redraw_node=function(t,n,i,o){if((t=r.redraw_node.apply(this,arguments))&&-1!==e.inArray(t.id,this._data.search.res)){var s,a,u=null +for(s=0,a=t.childNodes.length;a>s;s++)if(t.childNodes[s]&&t.childNodes[s].className&&-1!==t.childNodes[s].className.indexOf("jstree-anchor")){u=t.childNodes[s] +break}u&&(u.className+=" jstree-search")}return t}},function(e){e.vakata.search=function(t,n,r){r=r||{},r=e.extend({},e.vakata.search.defaults,r),!1!==r.fuzzy&&(r.fuzzy=!0),t=r.caseSensitive?t:t.toLowerCase() +var i,o,s,a,u=r.location,c=r.distance,l=r.threshold,h=t.length +return h>32&&(r.fuzzy=!1),r.fuzzy&&(i=1<<h-1,o=function(){var e={},n=0 +for(n=0;h>n;n++)e[t.charAt(n)]=0 +for(n=0;h>n;n++)e[t.charAt(n)]|=1<<h-n-1 +return e}(),s=function(e,t){var n=e/h,r=Math.abs(u-t) +return c?n+r/c:r?1:n}),a=function(e){if(e=r.caseSensitive?e:e.toLowerCase(),t===e||-1!==e.indexOf(t))return{isMatch:!0,score:0} +if(!r.fuzzy)return{isMatch:!1,score:1} +var n,a,c,d,p,f,g,m,v,y=e.length,b=l,C=e.indexOf(t,u),A=h+y,_=1,I=[] +for(-1!==C&&(b=Math.min(s(0,C),b),-1!==(C=e.lastIndexOf(t,u+h))&&(b=Math.min(s(0,C),b))),C=-1,n=0;h>n;n++){for(c=0,d=A;d>c;)s(n,u+d)<=b?c=d:A=d,d=Math.floor((A-c)/2+c) +for(A=d,f=Math.max(1,u-d+1),g=Math.min(u+d,y)+h,m=new Array(g+2),m[g+1]=(1<<n)-1,a=g;a>=f;a--)if(v=o[e.charAt(a-1)],m[a]=0===n?(m[a+1]<<1|1)&v:(m[a+1]<<1|1)&v|(p[a+1]|p[a])<<1|1|p[a+1],m[a]&i&&(_=s(n,a-1),b>=_)){if(b=_,C=a-1,I.push(C),!(C>u))break +f=Math.max(1,2*u-C)}if(s(n+1,u)>b)break +p=m}return{isMatch:C>=0,score:_}},!0===n?{search:a}:a(n)},e.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(e),e.jstree.defaults.sort=function(e,t){return this.get_text(e)>this.get_text(t)?1:-1},e.jstree.plugins.sort=function(t,n){this.bind=function(){n.bind.call(this),this.element.on("model.jstree",e.proxy(function(e,t){this.sort(t.parent,!0)},this)).on("rename_node.jstree create_node.jstree",e.proxy(function(e,t){this.sort(t.parent||t.node.parent,!1),this.redraw_node(t.parent||t.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",e.proxy(function(e,t){this.sort(t.parent,!1),this.redraw_node(t.parent,!0)},this))},this.sort=function(t,n){var r,i +if((t=this.get_node(t))&&t.children&&t.children.length&&(t.children.sort(e.proxy(this.settings.sort,this)),n))for(r=0,i=t.children_d.length;i>r;r++)this.sort(t.children_d[r],!1)}} +var d=!1 +e.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1,preserve_loaded:!1},e.jstree.plugins.state=function(t,n){this.bind=function(){n.bind.call(this) +var t=e.proxy(function(){this.element.on(this.settings.state.events,e.proxy(function(){d&&clearTimeout(d),d=setTimeout(e.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this) +this.element.on("ready.jstree",e.proxy(function(e,n){this.element.one("restore_state.jstree",t),this.restore_state()||t()},this))},this.save_state=function(){var t=this.get_state() +this.settings.state.preserve_loaded||delete t.core.loaded +var n={state:t,ttl:this.settings.state.ttl,sec:+new Date} +e.vakata.storage.set(this.settings.state.key,JSON.stringify(n))},this.restore_state=function(){var t=e.vakata.storage.get(this.settings.state.key) +if(t)try{t=JSON.parse(t)}catch(e){return!1}return!(t&&t.ttl&&t.sec&&+new Date-t.sec>t.ttl)&&(t&&t.state&&(t=t.state),t&&e.isFunction(this.settings.state.filter)&&(t=this.settings.state.filter.call(this,t)),!!t&&(this.settings.state.preserve_loaded||delete t.core.loaded,this.element.one("set_state.jstree",function(n,r){r.instance.trigger("restore_state",{state:e.extend(!0,{},t)})}),this.set_state(t),!0))},this.clear_state=function(){return e.vakata.storage.del(this.settings.state.key)}},function(e,t){e.vakata.storage={set:function(e,t){return window.localStorage.setItem(e,t)},get:function(e){return window.localStorage.getItem(e)},del:function(e){return window.localStorage.removeItem(e)}}}(e),e.jstree.defaults.types={default:{}},e.jstree.defaults.types[e.jstree.root]={},e.jstree.plugins.types=function(n,r){this.init=function(n,i){var o,s +if(i&&i.types&&i.types.default)for(o in i.types)if("default"!==o&&o!==e.jstree.root&&i.types.hasOwnProperty(o))for(s in i.types.default)i.types.default.hasOwnProperty(s)&&i.types[o][s]===t&&(i.types[o][s]=i.types.default[s]) +r.init.call(this,n,i),this._model.data[e.jstree.root].type=e.jstree.root},this.refresh=function(t,n){r.refresh.call(this,t,n),this._model.data[e.jstree.root].type=e.jstree.root},this.bind=function(){this.element.on("model.jstree",e.proxy(function(n,r){var i,o,s,a=this._model.data,u=r.nodes,c=this.settings.types,l="default" +for(i=0,o=u.length;o>i;i++){if(l="default",a[u[i]].original&&a[u[i]].original.type&&c[a[u[i]].original.type]&&(l=a[u[i]].original.type),a[u[i]].data&&a[u[i]].data.jstree&&a[u[i]].data.jstree.type&&c[a[u[i]].data.jstree.type]&&(l=a[u[i]].data.jstree.type),a[u[i]].type=l,!0===a[u[i]].icon&&c[l].icon!==t&&(a[u[i]].icon=c[l].icon),c[l].li_attr!==t&&"object"==typeof c[l].li_attr)for(s in c[l].li_attr)if(c[l].li_attr.hasOwnProperty(s)){if("id"===s)continue +a[u[i]].li_attr[s]===t?a[u[i]].li_attr[s]=c[l].li_attr[s]:"class"===s&&(a[u[i]].li_attr.class=c[l].li_attr.class+" "+a[u[i]].li_attr.class)}if(c[l].a_attr!==t&&"object"==typeof c[l].a_attr)for(s in c[l].a_attr)if(c[l].a_attr.hasOwnProperty(s)){if("id"===s)continue +a[u[i]].a_attr[s]===t?a[u[i]].a_attr[s]=c[l].a_attr[s]:"href"===s&&"#"===a[u[i]].a_attr[s]?a[u[i]].a_attr.href=c[l].a_attr.href:"class"===s&&(a[u[i]].a_attr.class=c[l].a_attr.class+" "+a[u[i]].a_attr.class)}}a[e.jstree.root].type=e.jstree.root},this)),r.bind.call(this)},this.get_json=function(t,n,i){var o,s,a=this._model.data,u=n?e.extend(!0,{},n,{no_id:!1}):{},c=r.get_json.call(this,t,u,i) +if(!1===c)return!1 +if(e.isArray(c))for(o=0,s=c.length;s>o;o++)c[o].type=c[o].id&&a[c[o].id]&&a[c[o].id].type?a[c[o].id].type:"default",n&&n.no_id&&(delete c[o].id,c[o].li_attr&&c[o].li_attr.id&&delete c[o].li_attr.id,c[o].a_attr&&c[o].a_attr.id&&delete c[o].a_attr.id) +else c.type=c.id&&a[c.id]&&a[c.id].type?a[c.id].type:"default",n&&n.no_id&&(c=this._delete_ids(c)) +return c},this._delete_ids=function(t){if(e.isArray(t)){for(var n=0,r=t.length;r>n;n++)t[n]=this._delete_ids(t[n]) +return t}return delete t.id,t.li_attr&&t.li_attr.id&&delete t.li_attr.id,t.a_attr&&t.a_attr.id&&delete t.a_attr.id,t.children&&e.isArray(t.children)&&(t.children=this._delete_ids(t.children)),t},this.check=function(n,i,o,s,a){if(!1===r.check.call(this,n,i,o,s,a))return!1 +i=i&&i.id?i:this.get_node(i),o=o&&o.id?o:this.get_node(o) +var u,c,l,h,d=i&&i.id?a&&a.origin?a.origin:e.jstree.reference(i.id):null +switch(d=d&&d._model&&d._model.data?d._model.data:null,n){case"create_node":case"move_node":case"copy_node":if("move_node"!==n||-1===e.inArray(i.id,o.children)){if(u=this.get_rules(o),u.max_children!==t&&-1!==u.max_children&&u.max_children===o.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+n,data:JSON.stringify({chk:n,pos:s,obj:!(!i||!i.id)&&i.id,par:!(!o||!o.id)&&o.id})},!1 +if(u.valid_children!==t&&-1!==u.valid_children&&-1===e.inArray(i.type||"default",u.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+n,data:JSON.stringify({chk:n,pos:s,obj:!(!i||!i.id)&&i.id,par:!(!o||!o.id)&&o.id})},!1 +if(d&&i.children_d&&i.parents){for(c=0,l=0,h=i.children_d.length;h>l;l++)c=Math.max(c,d[i.children_d[l]].parents.length) +c=c-i.parents.length+1}(0>=c||c===t)&&(c=1) +do{if(u.max_depth!==t&&-1!==u.max_depth&&u.max_depth<c)return this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+n,data:JSON.stringify({chk:n,pos:s,obj:!(!i||!i.id)&&i.id,par:!(!o||!o.id)&&o.id})},!1 +o=this.get_node(o.parent),u=this.get_rules(o),c++}while(o)}}return!0},this.get_rules=function(e){if(!(e=this.get_node(e)))return!1 +var n=this.get_type(e,!0) +return n.max_depth===t&&(n.max_depth=-1),n.max_children===t&&(n.max_children=-1),n.valid_children===t&&(n.valid_children=-1),n},this.get_type=function(t,n){return!!(t=this.get_node(t))&&(n?e.extend({type:t.type},this.settings.types[t.type]):t.type)},this.set_type=function(n,r){var i,o,s,a,u,c,l,h,d=this._model.data +if(e.isArray(n)){for(n=n.slice(),o=0,s=n.length;s>o;o++)this.set_type(n[o],r) +return!0}if(i=this.settings.types,n=this.get_node(n),!i[r]||!n)return!1 +if(l=this.get_node(n,!0),l&&l.length&&(h=l.children(".jstree-anchor")),a=n.type,u=this.get_icon(n),n.type=r,(!0===u||!i[a]||i[a].icon!==t&&u===i[a].icon)&&this.set_icon(n,i[r].icon===t||i[r].icon),i[a]&&i[a].li_attr!==t&&"object"==typeof i[a].li_attr)for(c in i[a].li_attr)if(i[a].li_attr.hasOwnProperty(c)){if("id"===c)continue +"class"===c?(d[n.id].li_attr.class=(d[n.id].li_attr.class||"").replace(i[a].li_attr[c],""),l&&l.removeClass(i[a].li_attr[c])):d[n.id].li_attr[c]===i[a].li_attr[c]&&(d[n.id].li_attr[c]=null,l&&l.removeAttr(c))}if(i[a]&&i[a].a_attr!==t&&"object"==typeof i[a].a_attr)for(c in i[a].a_attr)if(i[a].a_attr.hasOwnProperty(c)){if("id"===c)continue +"class"===c?(d[n.id].a_attr.class=(d[n.id].a_attr.class||"").replace(i[a].a_attr[c],""),h&&h.removeClass(i[a].a_attr[c])):d[n.id].a_attr[c]===i[a].a_attr[c]&&("href"===c?(d[n.id].a_attr[c]="#",h&&h.attr("href","#")):(delete d[n.id].a_attr[c],h&&h.removeAttr(c)))}if(i[r].li_attr!==t&&"object"==typeof i[r].li_attr)for(c in i[r].li_attr)if(i[r].li_attr.hasOwnProperty(c)){if("id"===c)continue +d[n.id].li_attr[c]===t?(d[n.id].li_attr[c]=i[r].li_attr[c],l&&("class"===c?l.addClass(i[r].li_attr[c]):l.attr(c,i[r].li_attr[c]))):"class"===c&&(d[n.id].li_attr.class=i[r].li_attr[c]+" "+d[n.id].li_attr.class,l&&l.addClass(i[r].li_attr[c]))}if(i[r].a_attr!==t&&"object"==typeof i[r].a_attr)for(c in i[r].a_attr)if(i[r].a_attr.hasOwnProperty(c)){if("id"===c)continue +d[n.id].a_attr[c]===t?(d[n.id].a_attr[c]=i[r].a_attr[c],h&&("class"===c?h.addClass(i[r].a_attr[c]):h.attr(c,i[r].a_attr[c]))):"href"===c&&"#"===d[n.id].a_attr[c]?(d[n.id].a_attr.href=i[r].a_attr.href,h&&h.attr("href",i[r].a_attr.href)):"class"===c&&(d[n.id].a_attr.class=i[r].a_attr.class+" "+d[n.id].a_attr.class,h&&h.addClass(i[r].a_attr[c]))}return!0}},e.jstree.defaults.unique={case_sensitive:!1,trim_whitespace:!1,duplicate:function(e,t){return e+" ("+t+")"}},e.jstree.plugins.unique=function(n,r){this.check=function(t,n,i,o,s){if(!1===r.check.call(this,t,n,i,o,s))return!1 +if(n=n&&n.id?n:this.get_node(n),!(i=i&&i.id?i:this.get_node(i))||!i.children)return!0 +var a,u,c,l="rename_node"===t?o:n.text,h=[],d=this.settings.unique.case_sensitive,p=this.settings.unique.trim_whitespace,f=this._model.data +for(a=0,u=i.children.length;u>a;a++)c=f[i.children[a]].text,d||(c=c.toLowerCase()),p&&(c=c.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),h.push(c) +switch(d||(l=l.toLowerCase()),p&&(l=l.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),t){case"delete_node":return!0 +case"rename_node":return c=n.text||"",d||(c=c.toLowerCase()),p&&(c=c.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),a=-1===e.inArray(l,h)||n.text&&c===l,a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a +case"create_node":return a=-1===e.inArray(l,h),a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a +case"copy_node":return a=-1===e.inArray(l,h),a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a +case"move_node":return a=n.parent===i.id&&(!s||!s.is_multi)||-1===e.inArray(l,h),a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a}return!0},this.create_node=function(n,i,o,s,a){if(!i||i.text===t){if(null===n&&(n=e.jstree.root),!(n=this.get_node(n)))return r.create_node.call(this,n,i,o,s,a) +if(o=o===t?"last":o,!o.toString().match(/^(before|after)$/)&&!a&&!this.is_loaded(n))return r.create_node.call(this,n,i,o,s,a) +i||(i={}) +var u,c,l,h,d,p,f=this._model.data,g=this.settings.unique.case_sensitive,m=this.settings.unique.trim_whitespace,v=this.settings.unique.duplicate +for(c=u=this.get_string("New node"),l=[],h=0,d=n.children.length;d>h;h++)p=f[n.children[h]].text,g||(p=p.toLowerCase()),m&&(p=p.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),l.push(p) +for(h=1,p=c,g||(p=p.toLowerCase()),m&&(p=p.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""));-1!==e.inArray(p,l);)c=v.call(this,u,++h).toString(),p=c,g||(p=p.toLowerCase()),m&&(p=p.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")) +i.text=c}return r.create_node.call(this,n,i,o,s,a)}} +var p=u.createElement("DIV") +if(p.setAttribute("unselectable","on"),p.setAttribute("role","presentation"),p.className="jstree-wholerow",p.innerHTML=" ",e.jstree.plugins.wholerow=function(t,n){this.bind=function(){n.bind.call(this),this.element.on("ready.jstree set_state.jstree",e.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",e.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",e.proxy(function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",e.proxy(function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked") +var n,r,i=!1 +for(n=0,r=t.selected.length;r>n;n++)(i=this.get_node(t.selected[n],!0))&&i.length&&i.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",e.proxy(function(e,t){this.get_node(t.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",e.proxy(function(e,t){"hover_node"===e.type&&this.is_disabled(t.node)||this.get_node(t.node,!0).children(".jstree-wholerow")["hover_node"===e.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",e.proxy(function(t){if(this._data.contextmenu){t.preventDefault() +var n=e.Event("contextmenu",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,pageX:t.pageX,pageY:t.pageY}) +e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n)}},this)).on("click.jstree",".jstree-wholerow",function(t){t.stopImmediatePropagation() +var n=e.Event("click",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey}) +e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()}).on("dblclick.jstree",".jstree-wholerow",function(t){t.stopImmediatePropagation() +var n=e.Event("dblclick",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey}) +e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",e.proxy(function(t){t.stopImmediatePropagation() +var n=e.Event("click",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey}) +e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",e.proxy(function(e){return e.stopImmediatePropagation(),this.is_disabled(e.currentTarget)||this.hover_node(e.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",e.proxy(function(e){this.dehover_node(e.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),n.teardown.call(this)},this.redraw_node=function(t,r,i,o){if(t=n.redraw_node.apply(this,arguments)){var s=p.cloneNode(!0);-1!==e.inArray(t.id,this._data.core.selected)&&(s.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===t.id&&(s.className+=" jstree-wholerow-hovered"),t.insertBefore(s,t.childNodes[0])}return t}},u.registerElement&&Object&&Object.create){var f=Object.create(HTMLElement.prototype) +f.createdCallback=function(){var t,n={core:{},plugins:[]} +for(t in e.jstree.plugins)e.jstree.plugins.hasOwnProperty(t)&&this.attributes[t]&&(n.plugins.push(t),this.getAttribute(t)&&JSON.parse(this.getAttribute(t))&&(n[t]=JSON.parse(this.getAttribute(t)))) +for(t in e.jstree.defaults.core)e.jstree.defaults.core.hasOwnProperty(t)&&this.attributes[t]&&(n.core[t]=JSON.parse(this.getAttribute(t))||this.getAttribute(t)) +e(this).jstree(n)} +try{u.registerElement("vakata-jstree",{prototype:f})}catch(e){}}}}),function(){function e(e){"use strict" +var t={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex: <div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",type:"boolean"},completeHTMLDocument:{defaultValue:!1,description:"Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",type:"boolean"},metadata:{defaultValue:!1,description:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,description:"Split adjacent blockquote blocks",type:"boolean"}} +if(!1===e)return JSON.parse(JSON.stringify(t)) +var n={} +for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r].defaultValue) +return n}function t(e,t){"use strict" +var n=t?"Error in "+t+" extension->":"Error in unnamed extension",i={valid:!0,error:""} +r.helper.isArray(e)||(e=[e]) +for(var o=0;o<e.length;++o){var s=n+" sub-extension "+o+": ",a=e[o] +if("object"!=typeof a)return i.valid=!1,i.error=s+"must be an object, but "+typeof a+" given",i +if(!r.helper.isString(a.type))return i.valid=!1,i.error=s+'property "type" must be a string, but '+typeof a.type+" given",i +var u=a.type=a.type.toLowerCase() +if("language"===u&&(u=a.type="lang"),"html"===u&&(u=a.type="output"),"lang"!==u&&"output"!==u&&"listener"!==u)return i.valid=!1,i.error=s+"type "+u+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',i +if("listener"===u){if(r.helper.isUndefined(a.listeners))return i.valid=!1,i.error=s+'. Extensions of type "listener" must have a property called "listeners"',i}else if(r.helper.isUndefined(a.filter)&&r.helper.isUndefined(a.regex))return i.valid=!1,i.error=s+u+' extensions must define either a "regex" property or a "filter" method',i +if(a.listeners){if("object"!=typeof a.listeners)return i.valid=!1,i.error=s+'"listeners" property must be an object but '+typeof a.listeners+" given",i +for(var c in a.listeners)if(a.listeners.hasOwnProperty(c)&&"function"!=typeof a.listeners[c])return i.valid=!1,i.error=s+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+c+" must be a function but "+typeof a.listeners[c]+" given",i}if(a.filter){if("function"!=typeof a.filter)return i.valid=!1,i.error=s+'"filter" must be a function, but '+typeof a.filter+" given",i}else if(a.regex){if(r.helper.isString(a.regex)&&(a.regex=new RegExp(a.regex,"g")),!(a.regex instanceof RegExp))return i.valid=!1,i.error=s+'"regex" property must either be a string or a RegExp object, but '+typeof a.regex+" given",i +if(r.helper.isUndefined(a.replace))return i.valid=!1,i.error=s+'"regex" extensions must implement a replace string or function',i}}return i}function n(e,t){"use strict" +return"¨E"+t.charCodeAt(0)+"E"}var r={},i={},o={},s=e(!0),a="vanilla",u={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:function(){"use strict" +var t=e(!0),n={} +for(var r in t)t.hasOwnProperty(r)&&(n[r]=!0) +return n}()} +r.helper={},r.extensions={},r.setOption=function(e,t){"use strict" +return s[e]=t,this},r.getOption=function(e){"use strict" +return s[e]},r.getOptions=function(){"use strict" +return s},r.resetOptions=function(){"use strict" +s=e(!0)},r.setFlavor=function(e){"use strict" +if(!u.hasOwnProperty(e))throw Error(e+" flavor was not found") +r.resetOptions() +var t=u[e] +a=e +for(var n in t)t.hasOwnProperty(n)&&(s[n]=t[n])},r.getFlavor=function(){"use strict" +return a},r.getFlavorOptions=function(e){"use strict" +if(u.hasOwnProperty(e))return u[e]},r.getDefaultOptions=function(t){"use strict" +return e(t)},r.subParser=function(e,t){"use strict" +if(r.helper.isString(e)){if(void 0===t){if(i.hasOwnProperty(e))return i[e] +throw Error("SubParser named "+e+" not registered!")}i[e]=t}},r.extension=function(e,n){"use strict" +if(!r.helper.isString(e))throw Error("Extension 'name' must be a string") +if(e=r.helper.stdExtName(e),r.helper.isUndefined(n)){if(!o.hasOwnProperty(e))throw Error("Extension named "+e+" is not registered!") +return o[e]}"function"==typeof n&&(n=n()),r.helper.isArray(n)||(n=[n]) +var i=t(n,e) +if(!i.valid)throw Error(i.error) +o[e]=n},r.getAllExtensions=function(){"use strict" +return o},r.removeExtension=function(e){"use strict" +delete o[e]},r.resetExtensions=function(){"use strict" +o={}},r.validateExtension=function(e){"use strict" +var n=t(e,null) +return!!n.valid||(console.warn(n.error),!1)},r.hasOwnProperty("helper")||(r.helper={}),r.helper.isString=function(e){"use strict" +return"string"==typeof e||e instanceof String},r.helper.isFunction=function(e){"use strict" +return e&&"[object Function]"==={}.toString.call(e)},r.helper.isArray=function(e){"use strict" +return Array.isArray(e)},r.helper.isUndefined=function(e){"use strict" +return void 0===e},r.helper.forEach=function(e,t){"use strict" +if(r.helper.isUndefined(e))throw new Error("obj param is required") +if(r.helper.isUndefined(t))throw new Error("callback param is required") +if(!r.helper.isFunction(t))throw new Error("callback param must be a function/closure") +if("function"==typeof e.forEach)e.forEach(t) +else if(r.helper.isArray(e))for(var n=0;n<e.length;n++)t(e[n],n,e) +else{if("object"!=typeof e)throw new Error("obj does not seem to be an array or an iterable object") +for(var i in e)e.hasOwnProperty(i)&&t(e[i],i,e)}},r.helper.stdExtName=function(e){"use strict" +return e.replace(/[_?*+\/\\.^-]/g,"").replace(/\s/g,"").toLowerCase()},r.helper.escapeCharactersCallback=n,r.helper.escapeCharacters=function(e,t,r){"use strict" +var i="(["+t.replace(/([\[\]\\])/g,"\\$1")+"])" +r&&(i="\\\\"+i) +var o=new RegExp(i,"g") +return e=e.replace(o,n)} +var c=function(e,t,n,r){"use strict" +var i,o,s,a,u,c=r||"",l=c.indexOf("g")>-1,h=new RegExp(t+"|"+n,"g"+c.replace(/g/g,"")),d=new RegExp(t,c.replace(/g/g,"")),p=[] +do{for(i=0;s=h.exec(e);)if(d.test(s[0]))i++||(a=(o=h.lastIndex)-s[0].length) +else if(i&&!--i){u=s.index+s[0].length +var f={left:{start:a,end:o},match:{start:o,end:s.index},right:{start:s.index,end:u},wholeMatch:{start:a,end:u}} +if(p.push(f),!l)return p}}while(i&&(h.lastIndex=o)) +return p} +r.helper.matchRecursiveRegExp=function(e,t,n,r){"use strict" +for(var i=c(e,t,n,r),o=[],s=0;s<i.length;++s)o.push([e.slice(i[s].wholeMatch.start,i[s].wholeMatch.end),e.slice(i[s].match.start,i[s].match.end),e.slice(i[s].left.start,i[s].left.end),e.slice(i[s].right.start,i[s].right.end)]) +return o},r.helper.replaceRecursiveRegExp=function(e,t,n,i,o){"use strict" +if(!r.helper.isFunction(t)){var s=t +t=function(){return s}}var a=c(e,n,i,o),u=e,l=a.length +if(l>0){var h=[] +0!==a[0].wholeMatch.start&&h.push(e.slice(0,a[0].wholeMatch.start)) +for(var d=0;d<l;++d)h.push(t(e.slice(a[d].wholeMatch.start,a[d].wholeMatch.end),e.slice(a[d].match.start,a[d].match.end),e.slice(a[d].left.start,a[d].left.end),e.slice(a[d].right.start,a[d].right.end))),d<l-1&&h.push(e.slice(a[d].wholeMatch.end,a[d+1].wholeMatch.start)) +a[l-1].wholeMatch.end<e.length&&h.push(e.slice(a[l-1].wholeMatch.end)),u=h.join("")}return u},r.helper.regexIndexOf=function(e,t,n){"use strict" +if(!r.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string" +if(t instanceof RegExp==0)throw"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp" +var i=e.substring(n||0).search(t) +return i>=0?i+(n||0):i},r.helper.splitAtIndex=function(e,t){"use strict" +if(!r.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string" +return[e.substring(0,t),e.substring(t)]},r.helper.encodeEmailAddress=function(e){"use strict" +var t=[function(e){return"&#"+e.charCodeAt(0)+";"},function(e){return"&#x"+e.charCodeAt(0).toString(16)+";"},function(e){return e}] +return e=e.replace(/./g,function(e){if("@"===e)e=t[Math.floor(2*Math.random())](e) +else{var n=Math.random() +e=n>.9?t[2](e):n>.45?t[1](e):t[0](e)}return e})},"undefined"==typeof console&&(console={warn:function(e){"use strict" +alert(e)},log:function(e){"use strict" +alert(e)},error:function(e){"use strict" +throw e}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'<img width="20" height="20" align="absmiddle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAOwUlEQVR42uVbCVyO6RbPmn0sw9gZS0aZO4y5GTEUE2ObxjZjrbHEJVy3sWS5pkaWxjLEkCVDSbSgFLdESaWSLIVUSIi4kvb9f895vi/zbbR+yZ339/tbnu99n/ec/3Oe85xznufV0CjDBaAdwZqwnzCJ0FXjHV70/i8J5oQDhCFV8cJdq1atwqxZs+Ds7Iz4+HhqwgXCLELNKlK6G2Ej4e6lS5ewZcsWzJgxA+fOnWNZFqvzxT1v3boF/qcsBg0ahP3796OwsJAFWKYuIqjfPoS9cXFxWL58Obp06SInh5aWFr//jjoJWLlu3TolAorRuXNn7Ny5k4W4Spgj81xrgj5hLmED4RDhlNRygglBhADCSakpWxFMCHoETUJTwrYHDx7A1NT0je9nPHz4kN/fXl0EeI0aNeqtAjB69+4NPz8/FsSdlXvy5An8/f1hZ2cHCwsLGBsbY/To0cJy9PT0MGDAAAwePBhGRkbClNesWYODBw8iODgYOTk53M/d9evXo27duiW++8iRI3z/ZHURENOjR48ShSjGuHHjhHJ16tQp9TOKaNWqlZKpvw1MHluQOpSvk5eXh5YtW5ZbmarAvHnzmIBd6iCgXnZ2Npo1a1atCWAfwY5SHQTUKCoqQocOHao1AebmHBJgi7p8QBDP6epMwKFDvMDAWF0ELLS1ta3WBNy9e5cJMFIXAdvt7e2rNQHDhw9nAv5D+KKylV9y8+bNCi1pVYWZM2cyCfaVTcDdsqzH7xpBQRxcwqyylLdi5/K+KM/Q0dFhAqIri4Bn1T0AUgVpdmhYUeVHnD59+r1TnjF27Fgm4HhFCThoYmLyXhLQoEGD4mRKsyIE3OrZs+d7SQCDCyZcNSqv8k1evXoFTU3NUr+wzUcfYqRBf8yb/C2WzfoBFoTF08fBdMIITDD8CsP1+kL30x7Q6dYZH7drjfZ0f4fWLdG1Q1t81qMLBvTRwejB/TBl1BDMnzQGS2dMxKo5k7Fs9iSY/jAaBvR8Pc26pZaH02quLZSXgO6xsbGlelGnli1wZKcVMqN8gKcRwItrf+K/VB95doXaLwOJIVSzOU/+2Re5kV7IuuyJrIhTyLt6mmztLBBPNZLHoUAy9fE8UvJ8ikxfj8PwJPQErJeYlkquTZs2MQFLykuANgc/Jb2kn3Z3ZMaQUrmxwO1zyAo7gfRAJ6RfOIyMEFdkXj5F8BTK5lzxQv610yi8QcFatI8gQoCIK7x+hojwRnaE5H4JTiEj9Pjr/rJDqcZyn9b4ovu45LYbdWvXeqtsXMHiSlZ5CegRExPz1hd83PYj5POo0QinXyLFg48hnZTOiQ1Dzr1IZEaeQRoJn0HKZIR7lA2kfHrQUerXHTlx4ZL+rnjjFRGRGeYB5MUj2GnbW+XbuJFrp1heXgI6JCYmvvUFN1x3Aek3SWkapRAXMeJFGS8ge2Xfuog0toaykED3Mpk8+shOk+sv68Y50V9WuKewBKt5094o39atW/mRf5WXgIYZGRlo3Lixys4nj6A6Z1YMcqRCpwU4ouDlUyHk/QA/hNttR25Wlvh/ZthJUsil9ATQ/axkYbqEzDgfL0Ts/x35+aLyTES7IY36Q6w/+Q4/tP6wuUoZ9+7dy7ebVmQZjO/atavKzn32rAdeXkd6KCkXdAxZ13yFcLFnvPD73zrDVrsdTs6eggKSuSjjORHkUGoC0i86Iyc6QPQX7eqMnTodYNuzHU4vnosiaitMSUSavwMy6d3IvEUrzViVMrq5uXEX4ytCgL++vr5Sx7Vr1cIDX0dKkQJfj37Rs3jw1sBxkwlwGD4Ax3+ciN1faCHW76xQRFgAOcjSEMBkIe0x8nLzcez7kTg8Rh/uxuOxR/cTJISFSfq7eATpZCk8CAfXLVFJwIULXHnHoIoQYLtw4UKljps2aogXQcQuef/XAiMDKY+S4DhyEFwpDnCj9f+Afl8EbbWRTANaAdihlYoAMn8aZzyNuYODX/eD29TvRH/7v+qN8H27JdOAyWQfQQ74xPafVRLAPox9WUlK6hIGEgx4f00Kg2JcvHhRqeP6FIwknXemyen/2gLIIeC/CYk49M0AuE4xgtu0sThg8AUCN62TEuBdRgJo2Y+Kxh9D/k59SQiwH9QHobt3SAk4KSGA4oWjm1YqyVi8U6Soj4yOrHM/jTAyKVby/PnzIoNi8L+L4eXlpXoFcLcTgc1rAlISkJeXDxeK2A6P1hdTwI6mQPTJE+WbAlnJyE7PhNO3Q3BkrKGYWtxfHMkkmQLO0ilwA7+vXqAkn66urtBLUZ9iHfm30NBQaPAf165dA0d9vP2UlJSEp0+f4vHjx3j06JH4e+rUqUovcNmyGkiNEkLwklXsBG+ecMUOnfbYod1emG5uboFKJ8jPFVD0l0dBUHqoPDHpQeQEb0qc4FUHe3KAbYUT9JgzDbwOFL5MfN0fXkXhJ5PxSvLt2LFD1Ah5u4z1YJ14l4qnBe8v3rhxAzz4PAVG8nLHivIP0dHRiIiIQGRkpEgmrl69ClW1QBMjQ7LDW8hmU+RRI69ckJIkhL7jfRJBm62R+TJVYq6h0jhBRslsivqenT2MF/7OyI70VmkFhWnPJaS6OyPkt43IycqR9EfWlH7JDQUUTuNhCHR7Ke9YcRp/5coVoQPrcvnyZURFRYmBZlLS0kR8MVLD29sbnp6e8PHxQUBAgCgn8YO8E3z79m3BGKeVc+bMkXuBZt06SA12F/F5Go0gR4C8HBalPZMPXKL8lQKhPAqF+f97KXFyNx6HQsoPsshJ/kmAp2TKkJLISpXvjyxNhMYcDVLOEO+lPDi8B5mamipkZx1YF9YpJCRErAy+vr5CZ9ZdWABhDGEYYTBhAOFz3g4nfMJelNCbkNCpUye5F034mvxIPi1/FM+zQCw0k5B9O0iEr5kRXkqhMJOVf9NXIHjtT7hmaymSoBzKETimkAuFpaF1dkwI9RcmIYaXv3BJXoGCuyIgk5WpefPmKCgoYK46SmX/RKoL69Sfl0WuFEl1HlmWJXE5z6WmTZvKJxxmxkIQ3AuU5APk6NICj4hRT6eITTEEzqWk55HHPjz3cxJhNF5cxeNT9kj2cRDTQjEkzpDtjyyCic5l5fEA7uSHFEefR5pPsahrb2B9QkICFHeJ51HunkdLIg0VLY0BFKdLwllVHp4dHyvst3QuEiiju21vA/+VZkiluIKt4I3RIfWXQ4QgKUxkni47LJWUP3PmjHo2RxVI+CebmKJP6EiFDVurxUgmExe5PHlnPAkn8w4QqW62NCVmYopozid5H0CI9RKE21ggJeAYEeMnfitOnRn5XCfgeJ+VTosWQU8MOc6ZE0cqnUm4fv165SrPBVHCfMI4TowUfmOfsIcdJh92kBWmUcP6GDt8EDZbzIffH5tx3/ewSFjw5LKk0MEFEkZenDBjgew7Yiog5brkt+QrknvJmhIp4Apw/A1bVpjhG/0v5d7Vrl07bNu2TelUSqUoz8uI3Z49OEtBAy+TdP1CqKtwHzvQUxxgTJs2TeX5gdq1a0ObSmCjh+jB+NuvRamL1+3ls77HCip1rTSdJP5eNnMizKndjMLoH42G4bthX+FzHS3UVVEC69evH3799VeKMXJZrlWKclUGAZ5jxoxB02ZNsNlxH74aagBHZyex986HlVTczyGmI58h4CjL2toa48ePFxsUPEotWrQoc0GT0/C2bduiY8eO4ISMcxLeoOFYhS6qm2EpoZG65jmbv+dPSyRZlt5QfVjvtX19AOFNL+aDFNI4m0eFc9Ho5ORkaGtrl5kAVp6DMOk88efEjLe++ZhclZwHTJHEHbs4YOCmLj2645fdvwnTK42zoXtaEHwNDQ3LXdZm5yad3/2r+gQmDsRnIF5KAldX6zdsgG/GG8F44Vzcu3eP2y1K6GPr2rVrK1zbnz59Or/LoaoJCPZ4kCZsjw9GECL79OmDj9q2wb+320C3/5fgPQO6Vrzh+fpcDqxXr16lbHBwgkZXm6okYJr0ECMrX5vraiJ1lArEjrEnzWuOqemiYj9spGd2ee478XkiPsJakmJ83qA05/8qXNurJFLiunXrhpo1a6LxB02wyHIFZpovgOHwYfjZ0hK2lH5u2rwZ5suWYv5ycyUlmjRpgl69eimlrFy3kwuoyOvXr19frm3RokVMwPZ3TYC57E6xVq+e6KzVDSaL/oEp82Zh8IhhWLjGAp/p9oX5ujVKBNjY2MDV1VWuzd3dXaTesm2biUQuZ8u28elSPmKr8a4vdog8GnJpcT1N1KHUuBbt0jSgWuGbzJh3mVhh2TYHBwdxjFa2jVcZnvPVlQBOLXdZWlqW2ZFxNYYVlm07fPgwAgMD5dr4OD5HeHLFFxM+O42DGtXhIkFaMQlcUjIzM0P37t1Ro0YNpZPjPJcVK7SOjo5ybU5OTqIAo0gAh97VlgAZIj4l8Pn4WFaO64ocuXG6zJtDbMqySnC7IgF8uptLVrJtq1evFuWqak+A4j4i4TNpltiJ8LPiNFFFwNGjRyWFyfedAFUny/joekkEuLi4KK0CfykCeFnkiu1flgBeFtl3/D8SsMbKykpOifv37ysRcPz4cVHKUiSA8wwNdR9/VTMBSh9Y8S4Nf2qnSICiBbDzVCRg9uzZTMC+94kAv6FDh8opwRsVHPjItnl4eEDxHNLKlStFXV+2javQ/M1SpZe+1KA4L4G7WDG57fSm/OUbXiqG0ewAFYOeYcN4fwZhvLkp2y4tftrxcltdlf/w+fPn4qNGxTCYU2m6nrRu3VqunT/EoiuZvw6TTZHpyuNNmEaNGsndP3fu3OJAq1N1JOAHDmyKheVtNP4OkE2crULRAW7fvl20EyyLy24a8p+/7WISFixYIMLt4t82bNhQYjXqXREgPq3j74mlX3AmSL8E1eOPIBXnuVT5OsVZpuLnOMeOHeN7vifwiYhYzhC5IpwlOXj1QXWdBmy/XWU/X+UqMZfKBw4cKAobHPlJlZe9h6tOu+7cuSN2dg0MDMSSyZUpmXvaSD+crq/xvl0k9BTCRa7qEPq+5T4t6ffF52WVV+f1P6zyLG30bsU4AAAAAElFTkSuQmCC">', +showdown:'<img width="20" height="20" align="absmiddle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAECtaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTAtMjRUMTM6MzE6MzArMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHBob3Rvc2hvcDpMYXllck5hbWU+UyAtPC9waG90b3Nob3A6TGF5ZXJOYW1lPgogICAgICAgICAgICAgICAgICA8cGhvdG9zaG9wOkxheWVyVGV4dD5TIC08L3Bob3Rvc2hvcDpMYXllclRleHQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6N2NkMzQxNzctOWYyZi0yNDRiLWEyYjQtMzU1MzJkY2Y1MWJiPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6M2E1YzgxYmYtYjhiNy0xMWU3LTk0NDktYTQ2MzdlZjJkNjMzPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEwLTI0VDEzOjMxOjMwKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjdjZDM0MTc3LTlmMmYtMjQ0Yi1hMmI0LTM1NTMyZGNmNTFiYjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjYwQzVBRTY1RjY5Q0U0MTE5NDVBODU1RTNCQ0E3RUVCPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pse7bzcAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA1JJREFUeNrsm1+OmlAUhz+aeS9dwZggJn1AnRUMO6jpBgZXULuC2hWUWUGZBTSxKyiuoA4mfUBMnB04K5g+9DihRBHlyh/lJLwIXLgf99xzzu9etZeXFy7Z3nDh1gBoAFy4XeVtQNO0zNcapmUDfUBPnFoBfhQGq6IBaHmjwD4Ahmk5wAD4kKG5J8CNwsAFaHe6DvA9cc0wCgOv8gDka3vA9RHNPgo0D7hNnJtGYWBXxgV2dH4MfMnRRA+Y1WIO2NJ5F/ikoKm3tYsChmkNFHW+fmHQMC1dfHaXPQP3wM1yMdc2B/AOGALTWobBmI1Shu0UGCwX83XyRBQGawHntTtdG5gUNfxVu4CTNqNv6/wWGL7kCc+1AmCYVisl3I2ydD4GYZUCs7IjoLXrxHIx9w9tLAqDCfBwDrXAY457x+cAoCfuwRGjYFUnAGk+PsjR7s8Dn1VeLWCYVlpDw+VivjVHSHt+u9PVJbzGzZXQWTkAkz0V31fATUaEsjVJlQBs4FeGcteLgzgbAALBA+4y3voAeJL8nA0AHfClnM1qm1HhnYUidCSE+KzvSSJUTwAxCOMcpfETMFYpfRUKIAbCFhC3OTJJJwqDWS0BxED0JZ4Pjix1P2+E0loCSMBwyK4S/xc1ojBwag8gMU84cvTKGgmlAYhngu1O9xAXuVE5J1QCQCz3bwHuHvdQui5QKQAxEO6eEKpsFCgTRSXkvdoxSlBMCxhJJbgrrbZRtHCiShN0pRB6PeQ3ckBw2K0oKXMBVYJIP+Nvh9qulFivGoBt1lLQxowT2ykBXCfnhZIglgYACWmqXQv+baioBYCeiCQHm+QEg1O7RhF7hO4OhSAhcJKSFU7qBGADwZeqMMuXn6TUBw8qlaMrirNb4LdhWlP+SWD+cjFfxTpuS2GUpik+o3jFSEkqbJiWn0P0OMSGqlWiOu0TvD+FRHZKAE+oW+cfRmEwqlsesJJEJs8y91QqP+9UL6lqEtz2gpuNEY5sm9sIHln2DRa2aFKGJtiXkZEMiWtgVvRKUSUFkSKt2S7fAGgAXLYpmQQXf36MUChTZdUa2u8/rkvPA6Tz30r4eH3ybcBS5gJ6SaNXb+aABkA1AMxKenclBZLW/He4cYEGwEXb3wEASelexk6LIIIAAAAASUVORK5CYII=">'},r.Converter=function(e){"use strict" +function n(e,n){if(n=n||null,r.helper.isString(e)){if(e=r.helper.stdExtName(e),n=e,r.extensions[e])return console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void function(e,n){"function"==typeof e&&(e=e(new r.Converter)),r.helper.isArray(e)||(e=[e]) +var i=t(e,n) +if(!i.valid)throw Error(i.error) +for(var o=0;o<e.length;++o)switch(e[o].type){case"lang":l.push(e[o]) +break +case"output":h.push(e[o]) +break +default:throw Error("Extension loader error: Type unrecognized!!!")}}(r.extensions[e],e) +if(r.helper.isUndefined(o[e]))throw Error('Extension "'+e+'" could not be loaded. It was either not found or is not a valid extension.') +e=o[e]}"function"==typeof e&&(e=e()),r.helper.isArray(e)||(e=[e]) +var s=t(e,n) +if(!s.valid)throw Error(s.error) +for(var a=0;a<e.length;++a){switch(e[a].type){case"lang":l.push(e[a]) +break +case"output":h.push(e[a])}if(e[a].hasOwnProperty("listeners"))for(var u in e[a].listeners)e[a].listeners.hasOwnProperty(u)&&i(u,e[a].listeners[u])}}function i(e,t){if(!r.helper.isString(e))throw Error("Invalid argument in converter.listen() method: name must be a string, but "+typeof e+" given") +if("function"!=typeof t)throw Error("Invalid argument in converter.listen() method: callback must be a function, but "+typeof t+" given") +d.hasOwnProperty(e)||(d[e]=[]),d[e].push(t)}var c={},l=[],h=[],d={},p=a,f={parsed:{},raw:"",format:""} +!function(){e=e||{} +for(var t in s)s.hasOwnProperty(t)&&(c[t]=s[t]) +if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.") +for(var i in e)e.hasOwnProperty(i)&&(c[i]=e[i]) +c.extensions&&r.helper.forEach(c.extensions,n)}(),this._dispatch=function(e,t,n,r){if(d.hasOwnProperty(e))for(var i=0;i<d[e].length;++i){var o=d[e][i](e,t,this,n,r) +o&&void 0!==o&&(t=o)}return t},this.listen=function(e,t){return i(e,t),this},this.makeHtml=function(e){if(!e)return e +var t={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:l,outputModifiers:h,converter:this,ghCodeBlocks:[],metadata:{parsed:{},raw:"",format:""}} +return e=e.replace(/¨/g,"¨T"),e=e.replace(/\$/g,"¨D"),e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/\u00A0/g," "),c.smartIndentationFix&&(e=function(e){var t=e.match(/^\s*/)[0].length,n=new RegExp("^\\s{0,"+t+"}","gm") +return e.replace(n,"")}(e)),e="\n\n"+e+"\n\n",e=r.subParser("detab")(e,c,t),e=e.replace(/^[ \t]+$/gm,""),r.helper.forEach(l,function(n){e=r.subParser("runExtension")(n,e,c,t)}),e=r.subParser("metadata")(e,c,t),e=r.subParser("hashPreCodeTags")(e,c,t),e=r.subParser("githubCodeBlocks")(e,c,t),e=r.subParser("hashHTMLBlocks")(e,c,t),e=r.subParser("hashCodeTags")(e,c,t),e=r.subParser("stripLinkDefinitions")(e,c,t),e=r.subParser("blockGamut")(e,c,t),e=r.subParser("unhashHTMLSpans")(e,c,t),e=r.subParser("unescapeSpecialChars")(e,c,t),e=e.replace(/¨D/g,"$$"),e=e.replace(/¨T/g,"¨"),e=r.subParser("completeHTMLDocument")(e,c,t),r.helper.forEach(h,function(n){e=r.subParser("runExtension")(n,e,c,t)}),f=t.metadata,e},this.setOption=function(e,t){c[e]=t},this.getOption=function(e){return c[e]},this.getOptions=function(){return c},this.addExtension=function(e,t){n(e,t=t||null)},this.useExtension=function(e){n(e)},this.setFlavor=function(e){if(!u.hasOwnProperty(e))throw Error(e+" flavor was not found") +var t=u[e] +p=e +for(var n in t)t.hasOwnProperty(n)&&(c[n]=t[n])},this.getFlavor=function(){return p},this.removeExtension=function(e){r.helper.isArray(e)||(e=[e]) +for(var t=0;t<e.length;++t){for(var n=e[t],i=0;i<l.length;++i)l[i]===n&&l[i].splice(i,1) +for(;0<h.length;++i)h[0]===n&&h[0].splice(i,1)}},this.getAllExtensions=function(){return{language:l,output:h}},this.getMetadata=function(e){return e?f.raw:f.parsed},this.getMetadataFormat=function(){return f.format},this._setMetadataPair=function(e,t){f.parsed[e]=t},this._setMetadataFormat=function(e){f.format=e},this._setMetadataRaw=function(e){f.raw=e}},r.subParser("anchors",function(e,t,n){"use strict" +var i=function(e,i,o,s,a,u,c){if(r.helper.isUndefined(c)&&(c=""),o=o.toLowerCase(),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)s="" +else if(!s){if(o||(o=i.toLowerCase().replace(/ ?\n/g," ")),s="#"+o,r.helper.isUndefined(n.gUrls[o]))return e +s=n.gUrls[o],r.helper.isUndefined(n.gTitles[o])||(c=n.gTitles[o])}var l='<a href="'+(s=s.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'"' +return""!==c&&null!==c&&(l+=' title="'+(c=(c=c.replace(/"/g,""")).replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'"'),t.openLinksInNewWindow&&!/^#/.test(s)&&(l+=' target="¨E95Eblank"'),l+=">"+i+"</a>"} +return e=(e=n.converter._dispatch("anchors.before",e,t,n)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,i),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,i),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,i),e=e.replace(/\[([^\[\]]+)]()()()()()/g,i),t.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gim,function(e,n,i,o,s){if("\\"===i)return n+o +if(!r.helper.isString(t.ghMentionsLink))throw new Error("ghMentionsLink option must be a string") +var a=t.ghMentionsLink.replace(/\{u}/g,s),u="" +return t.openLinksInNewWindow&&(u=' target="¨E95Eblank"'),n+'<a href="'+a+'"'+u+">"+o+"</a>"})),e=n.converter._dispatch("anchors.after",e,t,n)}) +var l=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,h=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,d=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,p=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-\/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,f=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,g=function(e){"use strict" +return function(t,n,i,o,s,a,u){var c=i=i.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback),l="",h="",d=n||"",p=u||"" +return/^www\./i.test(i)&&(i=i.replace(/^www\./i,"http://www.")),e.excludeTrailingPunctuationFromURLs&&a&&(l=a),e.openLinksInNewWindow&&(h=' target="¨E95Eblank"'),d+'<a href="'+i+'"'+h+">"+c+"</a>"+l+p}},m=function(e,t){"use strict" +return function(n,i,o){var s="mailto:" +return i=i||"",o=r.subParser("unescapeSpecialChars")(o,e,t),e.encodeEmails?(s=r.helper.encodeEmailAddress(s+o),o=r.helper.encodeEmailAddress(o)):s+=o,i+'<a href="'+s+'">'+o+"</a>"}} +r.subParser("autoLinks",function(e,t,n){"use strict" +return e=n.converter._dispatch("autoLinks.before",e,t,n),e=e.replace(d,g(t)),e=e.replace(f,m(t,n)),e=n.converter._dispatch("autoLinks.after",e,t,n)}),r.subParser("simplifiedAutoLinks",function(e,t,n){"use strict" +return t.simplifiedAutoLink?(e=n.converter._dispatch("simplifiedAutoLinks.before",e,t,n),e=t.excludeTrailingPunctuationFromURLs?e.replace(h,g(t)):e.replace(l,g(t)),e=e.replace(p,m(t,n)),e=n.converter._dispatch("simplifiedAutoLinks.after",e,t,n)):e}),r.subParser("blockGamut",function(e,t,n){"use strict" +return e=n.converter._dispatch("blockGamut.before",e,t,n),e=r.subParser("blockQuotes")(e,t,n),e=r.subParser("headers")(e,t,n),e=r.subParser("horizontalRule")(e,t,n),e=r.subParser("lists")(e,t,n),e=r.subParser("codeBlocks")(e,t,n),e=r.subParser("tables")(e,t,n),e=r.subParser("hashHTMLBlocks")(e,t,n),e=r.subParser("paragraphs")(e,t,n),e=n.converter._dispatch("blockGamut.after",e,t,n)}),r.subParser("blockQuotes",function(e,t,n){"use strict" +e=n.converter._dispatch("blockQuotes.before",e,t,n),e+="\n\n" +var i=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm +return t.splitAdjacentBlockquotes&&(i=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=e.replace(i,function(e){return e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/¨0/g,""),e=e.replace(/^[ \t]+$/gm,""),e=r.subParser("githubCodeBlocks")(e,t,n),e=r.subParser("blockGamut")(e,t,n),e=e.replace(/(^|\n)/g,"$1 "),e=e.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(e,t){var n=t +return n=n.replace(/^ /gm,"¨0"),n=n.replace(/¨0/g,"")}),r.subParser("hashBlock")("<blockquote>\n"+e+"\n</blockquote>",t,n)}),e=n.converter._dispatch("blockQuotes.after",e,t,n)}),r.subParser("codeBlocks",function(e,t,n){"use strict" +return e=n.converter._dispatch("codeBlocks.before",e,t,n),e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,i,o){var s=i,a=o,u="\n" +return s=r.subParser("outdent")(s,t,n),s=r.subParser("encodeCode")(s,t,n),s=r.subParser("detab")(s,t,n),s=s.replace(/^\n+/g,""),s=s.replace(/\n+$/g,""),t.omitExtraWLInCodeBlocks&&(u=""),s="<pre><code>"+s+u+"</code></pre>",r.subParser("hashBlock")(s,t,n)+a}),e=e.replace(/¨0/,""),e=n.converter._dispatch("codeBlocks.after",e,t,n)}),r.subParser("codeSpans",function(e,t,n){"use strict" +return void 0===(e=n.converter._dispatch("codeSpans.before",e,t,n))&&(e=""),e=e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,i,o,s){var a=s +return a=a.replace(/^([ \t]*)/g,""),a=a.replace(/[ \t]*$/g,""),a=r.subParser("encodeCode")(a,t,n),a=i+"<code>"+a+"</code>",a=r.subParser("hashHTMLSpans")(a,t,n)}),e=n.converter._dispatch("codeSpans.after",e,t,n)}),r.subParser("completeHTMLDocument",function(e,t,n){"use strict" +if(!t.completeHTMLDocument)return e +e=n.converter._dispatch("completeHTMLDocument.before",e,t,n) +var r="html",i="<!DOCTYPE HTML>\n",o="",s='<meta charset="utf-8">\n',a="",u="" +void 0!==n.metadata.parsed.doctype&&(i="<!DOCTYPE "+n.metadata.parsed.doctype+">\n","html"!==(r=n.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==r||(s='<meta charset="utf-8">')) +for(var c in n.metadata.parsed)if(n.metadata.parsed.hasOwnProperty(c))switch(c.toLowerCase()){case"doctype":break +case"title":o="<title>"+n.metadata.parsed.title+"</title>\n" +break +case"charset":s="html"===r||"html5"===r?'<meta charset="'+n.metadata.parsed.charset+'">\n':'<meta name="charset" content="'+n.metadata.parsed.charset+'">\n' +break +case"language":case"lang":a=' lang="'+n.metadata.parsed[c]+'"',u+='<meta name="'+c+'" content="'+n.metadata.parsed[c]+'">\n' +break +default:u+='<meta name="'+c+'" content="'+n.metadata.parsed[c]+'">\n'}return e=i+"<html"+a+">\n<head>\n"+o+s+u+"</head>\n<body>\n"+e.trim()+"\n</body>\n</html>",e=n.converter._dispatch("completeHTMLDocument.after",e,t,n)}),r.subParser("detab",function(e,t,n){"use strict" +return e=n.converter._dispatch("detab.before",e,t,n),e=e.replace(/\t(?=\t)/g," "),e=e.replace(/\t/g,"¨A¨B"),e=e.replace(/¨B(.+?)¨A/g,function(e,t){for(var n=t,r=4-n.length%4,i=0;i<r;i++)n+=" " +return n}),e=e.replace(/¨A/g," "),e=e.replace(/¨B/g,""),e=n.converter._dispatch("detab.after",e,t,n)}),r.subParser("ellipsis",function(e,t,n){"use strict" +return e=n.converter._dispatch("ellipsis.before",e,t,n),e=e.replace(/\.\.\./g,"…"),e=n.converter._dispatch("ellipsis.after",e,t,n)}),r.subParser("emoji",function(e,t,n){"use strict" +return t.emoji?(e=(e=n.converter._dispatch("emoji.before",e,t,n)).replace(/:([\S]+?):/g,function(e,t){return r.helper.emojis.hasOwnProperty(t)?r.helper.emojis[t]:e}),e=n.converter._dispatch("emoji.after",e,t,n)):e}),r.subParser("encodeAmpsAndAngles",function(e,t,n){"use strict" +return e=n.converter._dispatch("encodeAmpsAndAngles.before",e,t,n),e=e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),e=e.replace(/<(?![a-z\/?$!])/gi,"<"),e=e.replace(/</g,"<"),e=e.replace(/>/g,">"),e=n.converter._dispatch("encodeAmpsAndAngles.after",e,t,n)}),r.subParser("encodeBackslashEscapes",function(e,t,n){"use strict" +return e=n.converter._dispatch("encodeBackslashEscapes.before",e,t,n),e=e.replace(/\\(\\)/g,r.helper.escapeCharactersCallback),e=e.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,r.helper.escapeCharactersCallback),e=n.converter._dispatch("encodeBackslashEscapes.after",e,t,n)}),r.subParser("encodeCode",function(e,t,n){"use strict" +return e=n.converter._dispatch("encodeCode.before",e,t,n),e=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/([*_{}\[\]\\=~-])/g,r.helper.escapeCharactersCallback),e=n.converter._dispatch("encodeCode.after",e,t,n)}),r.subParser("escapeSpecialCharsWithinTagAttributes",function(e,t,n){"use strict" +return e=(e=n.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,t,n)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,r.helper.escapeCharactersCallback)}),e=e.replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,r.helper.escapeCharactersCallback)}),e=n.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,t,n)}),r.subParser("githubCodeBlocks",function(e,t,n){"use strict" +return t.ghCodeBlocks?(e=n.converter._dispatch("githubCodeBlocks.before",e,t,n),e+="¨0",e=e.replace(/(?:^|\n)(```+|~~~+)([^\s`~]*)\n([\s\S]*?)\n\1/g,function(e,i,o,s){var a=t.omitExtraWLInCodeBlocks?"":"\n" +return s=r.subParser("encodeCode")(s,t,n),s=r.subParser("detab")(s,t,n),s=s.replace(/^\n+/g,""),s=s.replace(/\n+$/g,""),s="<pre><code"+(o?' class="'+o+" language-"+o+'"':"")+">"+s+a+"</code></pre>",s=r.subParser("hashBlock")(s,t,n),"\n\n¨G"+(n.ghCodeBlocks.push({text:e,codeblock:s})-1)+"G\n\n"}),e=e.replace(/¨0/,""),n.converter._dispatch("githubCodeBlocks.after",e,t,n)):e}),r.subParser("hashBlock",function(e,t,n){"use strict" +return e=n.converter._dispatch("hashBlock.before",e,t,n),e=e.replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n",e=n.converter._dispatch("hashBlock.after",e,t,n)}),r.subParser("hashCodeTags",function(e,t,n){"use strict" +return e=n.converter._dispatch("hashCodeTags.before",e,t,n),e=r.helper.replaceRecursiveRegExp(e,function(e,i,o,s){var a=o+r.subParser("encodeCode")(i,t,n)+s +return"¨C"+(n.gHtmlSpans.push(a)-1)+"C"},"<code\\b[^>]*>","</code>","gim"),e=n.converter._dispatch("hashCodeTags.after",e,t,n)}),r.subParser("hashElement",function(e,t,n){"use strict" +return function(e,t){var r=t +return r=r.replace(/\n\n/g,"\n"),r=r.replace(/^\n/,""),r=r.replace(/\n+$/g,""),r="\n\n¨K"+(n.gHtmlBlocks.push(r)-1)+"K\n\n"}}),r.subParser("hashHTMLBlocks",function(e,t,n){"use strict" +e=n.converter._dispatch("hashHTMLBlocks.before",e,t,n) +var i=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],o=function(e,t,r,i){var o=e +return-1!==r.search(/\bmarkdown\b/)&&(o=r+n.converter.makeHtml(t)+i),"\n\n¨K"+(n.gHtmlBlocks.push(o)-1)+"K\n\n"} +t.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,t){return"<"+t+">"})) +for(var s=0;s<i.length;++s)for(var a,u=new RegExp("^ {0,3}(<"+i[s]+"\\b[^>]*>)","im"),c="<"+i[s]+"\\b[^>]*>",l="</"+i[s]+">";-1!==(a=r.helper.regexIndexOf(e,u));){var h=r.helper.splitAtIndex(e,a),d=r.helper.replaceRecursiveRegExp(h[1],o,c,l,"im") +if(d===h[1])break +e=h[0].concat(d)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,r.subParser("hashElement")(e,t,n)),e=r.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm"),e=e.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,r.subParser("hashElement")(e,t,n)),e=n.converter._dispatch("hashHTMLBlocks.after",e,t,n)}),r.subParser("hashHTMLSpans",function(e,t,n){"use strict" +function r(e){return"¨C"+(n.gHtmlSpans.push(e)-1)+"C"}return e=n.converter._dispatch("hashHTMLSpans.before",e,t,n),e=e.replace(/<[^>]+?\/>/gi,function(e){return r(e)}),e=e.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(e){return r(e)}),e=e.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(e){return r(e)}),e=e.replace(/<[^>]+?>/gi,function(e){return r(e)}),e=n.converter._dispatch("hashHTMLSpans.after",e,t,n)}),r.subParser("unhashHTMLSpans",function(e,t,n){"use strict" +e=n.converter._dispatch("unhashHTMLSpans.before",e,t,n) +for(var r=0;r<n.gHtmlSpans.length;++r){for(var i=n.gHtmlSpans[r],o=0;/¨C(\d+)C/.test(i);){var s=RegExp.$1 +if(i=i.replace("¨C"+s+"C",n.gHtmlSpans[s]),10===o){console.error("maximum nesting of 10 spans reached!!!") +break}++o}e=e.replace("¨C"+r+"C",i)}return e=n.converter._dispatch("unhashHTMLSpans.after",e,t,n)}),r.subParser("hashPreCodeTags",function(e,t,n){"use strict" +return e=n.converter._dispatch("hashPreCodeTags.before",e,t,n),e=r.helper.replaceRecursiveRegExp(e,function(e,i,o,s){var a=o+r.subParser("encodeCode")(i,t,n)+s +return"\n\n¨G"+(n.ghCodeBlocks.push({text:e,codeblock:a})-1)+"G\n\n"},"^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^ {0,3}</code>\\s*</pre>","gim"),e=n.converter._dispatch("hashPreCodeTags.after",e,t,n)}),r.subParser("headers",function(e,t,n){"use strict" +function i(e){var i,o +if(t.customizedHeaderId){var s=e.match(/\{([^{]+?)}\s*$/) +s&&s[1]&&(e=s[1])}return i=e,o=r.helper.isString(t.prefixHeaderId)?t.prefixHeaderId:!0===t.prefixHeaderId?"section-":"",t.rawPrefixHeaderId||(i=o+i),i=t.ghCompatibleHeaderId?i.replace(/ /g,"-").replace(/&/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,"").toLowerCase():t.rawHeaderId?i.replace(/ /g,"-").replace(/&/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-").toLowerCase():i.replace(/[^\w]/g,"").toLowerCase(),t.rawPrefixHeaderId&&(i=o+i),n.hashLinkCounts[i]?i=i+"-"+n.hashLinkCounts[i]++:n.hashLinkCounts[i]=1,i}e=n.converter._dispatch("headers.before",e,t,n) +var o=isNaN(parseInt(t.headerLevelStart))?1:parseInt(t.headerLevelStart),s=t.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,a=t.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm +e=(e=e.replace(s,function(e,s){var a=r.subParser("spanGamut")(s,t,n),u=t.noHeaderId?"":' id="'+i(s)+'"',c="<h"+o+u+">"+a+"</h"+o+">" +return r.subParser("hashBlock")(c,t,n)})).replace(a,function(e,s){var a=r.subParser("spanGamut")(s,t,n),u=t.noHeaderId?"":' id="'+i(s)+'"',c=o+1,l="<h"+c+u+">"+a+"</h"+c+">" +return r.subParser("hashBlock")(l,t,n)}) +var u=t.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm +return e=e.replace(u,function(e,s,a){var u=a +t.customizedHeaderId&&(u=a.replace(/\s?\{([^{]+?)}\s*$/,"")) +var c=r.subParser("spanGamut")(u,t,n),l=t.noHeaderId?"":' id="'+i(a)+'"',h=o-1+s.length,d="<h"+h+l+">"+c+"</h"+h+">" +return r.subParser("hashBlock")(d,t,n)}),e=n.converter._dispatch("headers.after",e,t,n)}),r.subParser("horizontalRule",function(e,t,n){"use strict" +e=n.converter._dispatch("horizontalRule.before",e,t,n) +var i=r.subParser("hashBlock")("<hr />",t,n) +return e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,i),e=e.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,i),e=e.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,i),e=n.converter._dispatch("horizontalRule.after",e,t,n)}),r.subParser("images",function(e,t,n){"use strict" +function i(e,t,i,o,s,a,u,c){var l=n.gUrls,h=n.gTitles,d=n.gDimensions +if(i=i.toLowerCase(),c||(c=""),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)o="" +else if(""===o||null===o){if(""!==i&&null!==i||(i=t.toLowerCase().replace(/ ?\n/g," ")),o="#"+i,r.helper.isUndefined(l[i]))return e +o=l[i],r.helper.isUndefined(h[i])||(c=h[i]),r.helper.isUndefined(d[i])||(s=d[i].width,a=d[i].height)}t=t.replace(/"/g,""").replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback) +var p='<img src="'+(o=o.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'" alt="'+t+'"' +return c&&(p+=' title="'+(c=c.replace(/"/g,""").replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'"'),s&&a&&(p+=' width="'+(s="*"===s?"auto":s)+'"',p+=' height="'+(a="*"===a?"auto":a)+'"'),p+=" />"}return e=(e=n.converter._dispatch("images.before",e,t,n)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,i),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+\/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,t,n,r,o,s,a,u){return r=r.replace(/\s/g,""),i(e,t,n,r,o,s,0,u)}),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,i),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,i),e=e.replace(/!\[([^\[\]]+)]()()()()()/g,i),e=n.converter._dispatch("images.after",e,t,n)}),r.subParser("italicsAndBold",function(e,t,n){"use strict" +function r(e,t,n){return t+e+n}return e=n.converter._dispatch("italicsAndBold.before",e,t,n),e=t.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*)___\b/g,function(e,t){return r(t,"<strong><em>","</em></strong>")})).replace(/\b__(\S[\s\S]*)__\b/g,function(e,t){return r(t,"<strong>","</strong>")})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,t){return r(t,"<em>","</em>")}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,t){return/\S$/.test(t)?r(t,"<strong><em>","</em></strong>"):e})).replace(/__(\S[\s\S]*?)__/g,function(e,t){return/\S$/.test(t)?r(t,"<strong>","</strong>"):e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,t){return/\S$/.test(t)?r(t,"<em>","</em>"):e}),e=t.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g,function(e,t,n){return r(n,t+"<strong><em>","</em></strong>")})).replace(/([^*]|^)\B\*\*(\S[\s\S]+?)\*\*\B(?!\*)/g,function(e,t,n){return r(n,t+"<strong>","</strong>")})).replace(/([^*]|^)\B\*(\S[\s\S]+?)\*\B(?!\*)/g,function(e,t,n){return r(n,t+"<em>","</em>")}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,t){return/\S$/.test(t)?r(t,"<strong><em>","</em></strong>"):e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,t){return/\S$/.test(t)?r(t,"<strong>","</strong>"):e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,t){return/\S$/.test(t)?r(t,"<em>","</em>"):e}),e=n.converter._dispatch("italicsAndBold.after",e,t,n)}),r.subParser("lists",function(e,t,n){"use strict" +function i(e,i){n.gListLevel++,e=e.replace(/\n{2,}$/,"\n") +var o=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,s=/\n[ \t]*\n(?!¨0)/.test(e+="¨0") +return t.disableForced4SpacesIndentedSublists&&(o=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=e.replace(o,function(e,i,o,a,u,c,l){l=l&&""!==l.trim() +var h=r.subParser("outdent")(u,t,n),d="" +return c&&t.tasklists&&(d=' class="task-list-item" style="list-style-type: none;"',h=h.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"' +return l&&(e+=" checked"),e+=">"})),h=h.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g,function(e){return"¨A"+e}),i||h.search(/\n{2,}/)>-1?(h=r.subParser("githubCodeBlocks")(h,t,n),h=r.subParser("blockGamut")(h,t,n)):(h=(h=r.subParser("lists")(h,t,n)).replace(/\n$/,""),h=(h=r.subParser("hashHTMLBlocks")(h,t,n)).replace(/\n\n+/g,"\n\n"),h=s?r.subParser("paragraphs")(h,t,n):r.subParser("spanGamut")(h,t,n)),h=h.replace("¨A",""),h="<li"+d+">"+h+"</li>\n"}),e=e.replace(/¨0/g,""),n.gListLevel--,i&&(e=e.replace(/\s+$/,"")),e}function o(e,t){if("ol"===t){var n=e.match(/^ *(\d+)\./) +if(n&&"1"!==n[1])return' start="'+n[1]+'"'}return""}function s(e,n,r){var s=t.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,a=t.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,u="ul"===n?s:a,c="" +if(-1!==e.search(u))!function t(l){var h=l.search(u),d=o(e,n);-1!==h?(c+="\n\n<"+n+d+">\n"+i(l.slice(0,h),!!r)+"</"+n+">\n",u="ul"==(n="ul"===n?"ol":"ul")?s:a,t(l.slice(h))):c+="\n\n<"+n+d+">\n"+i(l,!!r)+"</"+n+">\n"}(e) +else{var l=o(e,n) +c="\n\n<"+n+l+">\n"+i(e,!!r)+"</"+n+">\n"}return c}return e=n.converter._dispatch("lists.before",e,t,n),e+="¨0",e=n.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,t,n){return s(t,n.search(/[*+-]/g)>-1?"ul":"ol",!0)}):e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,t,n,r){return s(n,r.search(/[*+-]/g)>-1?"ul":"ol",!1)}),e=e.replace(/¨0/,""),e=n.converter._dispatch("lists.after",e,t,n)}),r.subParser("metadata",function(e,t,n){"use strict" +function r(e){n.metadata.raw=e,(e=(e=e.replace(/&/g,"&").replace(/"/g,""")).replace(/\n {4}/g," ")).replace(/^([\S ]+): +([\s\S]+?)$/gm,function(e,t,r){return n.metadata.parsed[t]=r,""})}return t.metadata?(e=n.converter._dispatch("metadata.before",e,t,n),e=e.replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/,function(e,t,n){return r(n),"¨M"}),e=e.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/,function(e,t,i){return t&&(n.metadata.format=t),r(i),"¨M"}),e=e.replace(/¨M/g,""),e=n.converter._dispatch("metadata.after",e,t,n)):e}),r.subParser("outdent",function(e,t,n){"use strict" +return e=n.converter._dispatch("outdent.before",e,t,n),e=e.replace(/^(\t|[ ]{1,4})/gm,"¨0"),e=e.replace(/¨0/g,""),e=n.converter._dispatch("outdent.after",e,t,n)}),r.subParser("paragraphs",function(e,t,n){"use strict" +for(var i=(e=(e=(e=n.converter._dispatch("paragraphs.before",e,t,n)).replace(/^\n+/g,"")).replace(/\n+$/g,"")).split(/\n{2,}/g),o=[],s=i.length,a=0;a<s;a++){var u=i[a] +u.search(/¨(K|G)(\d+)\1/g)>=0?o.push(u):u.search(/\S/)>=0&&(u=(u=r.subParser("spanGamut")(u,t,n)).replace(/^([ \t]*)/g,"<p>"),u+="</p>",o.push(u))}for(s=o.length,a=0;a<s;a++){for(var c="",l=o[a],h=!1;/¨(K|G)(\d+)\1/.test(l);){var d=RegExp.$1,p=RegExp.$2 +c=(c="K"===d?n.gHtmlBlocks[p]:h?r.subParser("encodeCode")(n.ghCodeBlocks[p].text,t,n):n.ghCodeBlocks[p].codeblock).replace(/\$/g,"$$$$"),l=l.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/,c),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(l)&&(h=!0)}o[a]=l}return e=o.join("\n"),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),n.converter._dispatch("paragraphs.after",e,t,n)}),r.subParser("runExtension",function(e,t,n,r){"use strict" +if(e.filter)t=e.filter(t,r.converter,n) +else if(e.regex){var i=e.regex +i instanceof RegExp||(i=new RegExp(i,"g")),t=t.replace(i,e.replace)}return t}),r.subParser("spanGamut",function(e,t,n){"use strict" +return e=n.converter._dispatch("spanGamut.before",e,t,n),e=r.subParser("codeSpans")(e,t,n),e=r.subParser("escapeSpecialCharsWithinTagAttributes")(e,t,n),e=r.subParser("encodeBackslashEscapes")(e,t,n),e=r.subParser("images")(e,t,n),e=r.subParser("anchors")(e,t,n),e=r.subParser("autoLinks")(e,t,n),e=r.subParser("simplifiedAutoLinks")(e,t,n),e=r.subParser("emoji")(e,t,n),e=r.subParser("underline")(e,t,n),e=r.subParser("italicsAndBold")(e,t,n),e=r.subParser("strikethrough")(e,t,n),e=r.subParser("ellipsis")(e,t,n),e=r.subParser("hashHTMLSpans")(e,t,n),e=r.subParser("encodeAmpsAndAngles")(e,t,n),t.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"<br />\n")):e=e.replace(/ +\n/g,"<br />\n"),e=n.converter._dispatch("spanGamut.after",e,t,n)}),r.subParser("strikethrough",function(e,t,n){"use strict" +return t.strikethrough&&(e=(e=n.converter._dispatch("strikethrough.before",e,t,n)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,i){return function(e){return t.simplifiedAutoLink&&(e=r.subParser("simplifiedAutoLinks")(e,t,n)),"<del>"+e+"</del>"}(i)}),e=n.converter._dispatch("strikethrough.after",e,t,n)),e}),r.subParser("stripLinkDefinitions",function(e,t,n){"use strict" +var i=function(e,i,o,s,a,u,c){return i=i.toLowerCase(),o.match(/^data:.+?\/.+?;base64,/)?n.gUrls[i]=o.replace(/\s/g,""):n.gUrls[i]=r.subParser("encodeAmpsAndAngles")(o,t,n),u?u+c:(c&&(n.gTitles[i]=c.replace(/"|'/g,""")),t.parseImgDimensions&&s&&a&&(n.gDimensions[i]={width:s,height:a}),"")} +return e=(e+="¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+\/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,i),e=e.replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,i),e=e.replace(/¨0/,"")}),r.subParser("tables",function(e,t,n){"use strict" +function i(e){return/^:[ \t]*--*$/.test(e)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(e)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(e)?' style="text-align:center;"':""}function o(e,i){var o="" +return e=e.trim(),(t.tablesHeaderId||t.tableHeaderId)&&(o=' id="'+e.replace(/ /g,"_").toLowerCase()+'"'),e=r.subParser("spanGamut")(e,t,n),"<th"+o+i+">"+e+"</th>\n"}function s(e,i){return"<td"+i+">"+r.subParser("spanGamut")(e,t,n)+"</td>\n"}function a(e){var a,u=e.split("\n") +for(a=0;a<u.length;++a)/^ {0,3}\|/.test(u[a])&&(u[a]=u[a].replace(/^ {0,3}\|/,"")),/\|[ \t]*$/.test(u[a])&&(u[a]=u[a].replace(/\|[ \t]*$/,"")),u[a]=r.subParser("codeSpans")(u[a],t,n) +var c=u[0].split("|").map(function(e){return e.trim()}),l=u[1].split("|").map(function(e){return e.trim()}),h=[],d=[],p=[],f=[] +for(u.shift(),u.shift(),a=0;a<u.length;++a)""!==u[a].trim()&&h.push(u[a].split("|").map(function(e){return e.trim()})) +if(c.length<l.length)return e +for(a=0;a<l.length;++a)p.push(i(l[a])) +for(a=0;a<c.length;++a)r.helper.isUndefined(p[a])&&(p[a]=""),d.push(o(c[a],p[a])) +for(a=0;a<h.length;++a){for(var g=[],m=0;m<d.length;++m)r.helper.isUndefined(h[a][m]),g.push(s(h[a][m],p[m])) +f.push(g)}return function(e,t){for(var n="<table>\n<thead>\n<tr>\n",r=e.length,i=0;i<r;++i)n+=e[i] +for(n+="</tr>\n</thead>\n<tbody>\n",i=0;i<t.length;++i){n+="<tr>\n" +for(var o=0;o<r;++o)n+=t[i][o] +n+="</tr>\n"}return n+="</tbody>\n</table>\n"}(d,f)}return t.tables?(e=n.converter._dispatch("tables.before",e,t,n),e=e.replace(/\\(\|)/g,r.helper.escapeCharactersCallback),e=e.replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,a),e=e.replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,a),e=n.converter._dispatch("tables.after",e,t,n)):e}),r.subParser("underline",function(e,t,n){"use strict" +return t.underline?(e=n.converter._dispatch("underline.before",e,t,n),e=t.literalMidWordUnderscores?e.replace(/\b_?__(\S[\s\S]*)___?\b/g,function(e,t){return"<u>"+t+"</u>"}):e.replace(/_?__(\S[\s\S]*?)___?/g,function(e,t){return/\S$/.test(t)?"<u>"+t+"</u>":e}),e=e.replace(/(_)/g,r.helper.escapeCharactersCallback),e=n.converter._dispatch("underline.after",e,t,n)):e}),r.subParser("unescapeSpecialChars",function(e,t,n){"use strict" +return e=n.converter._dispatch("unescapeSpecialChars.before",e,t,n),e=e.replace(/¨E(\d+)E/g,function(e,t){var n=parseInt(t) +return String.fromCharCode(n)}),e=n.converter._dispatch("unescapeSpecialChars.after",e,t,n)}) +"function"==typeof define&&define.amd?define(function(){"use strict" +return r}):"undefined"!=typeof module&&module.exports?module.exports=r:this.showdown=r}.call(this),define("ember-cli-app-version/initializer-factory",["exports"],function(e){"use strict" +function t(e,t){var r=!1 +return function(){if(!r&&e&&t){var i=Ember.String.classify(e) +n.register(i,t),r=!0}}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t +var n=Ember.libraries}),define("ember-cli-app-version/utils/regexp",["exports"],function(e){"use strict" +Object.defineProperty(e,"__esModule",{value:!0}) +e.versionRegExp=/\d+[.]\d+[.]\d+/,e.versionExtendedRegExp=/\d+[.]\d+[.]\d+-[a-z]*([.]\d+)?/,e.shaRegExp=/[a-z\d]{8}$/}),define("ember-load-initializers/index",["exports"],function(e){"use strict" +function t(e){var t=require(e,null,null,!0) +if(!t)throw new Error(e+" must export an initializer.") +var n=t.default +return n.name||(n.name=e.slice(e.lastIndexOf("/")+1)),n}function n(e,n){for(var r=0;r<n.length;r++)e.initializer(t(n[r]))}function r(e,n){for(var r=0;r<n.length;r++)e.instanceInitializer(t(n[r]))}function i(e,t){return-1!==e.indexOf(t,e.length-t.length)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){for(var o=t+"/initializers/",s=t+"/instance-initializers/",a=[],u=[],c=Object.keys(requirejs._eak_seen),l=0;l<c.length;l++){var h=c[l] +0===h.lastIndexOf(o,0)?i(h,"-test")||a.push(h):0===h.lastIndexOf(s,0)&&(i(h,"-test")||u.push(h))}n(e,a),r(e,u)}}),define("ember-radio-button/components/labeled-radio-button",["exports","ember-radio-button/templates/components/labeled-radio-button"],function(e,t){"use strict" +Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"label",layout:t.default,attributeBindings:["for"],classNameBindings:["_checkedClass"],classNames:["ember-radio-button"],defaultLayout:null,checkedClass:"checked",_checkedClass:Ember.computed("checked","checkedClass",function(){return this.get("checked")?this.get("checkedClass"):""}),checked:Ember.computed("groupValue","value",function(){return Ember.isEqual(this.get("groupValue"),this.get("value"))}).readOnly(),for:Ember.computed.readOnly("radioId"),actions:{innerRadioChanged:function(e){this.sendAction("changed",e)}}})}),define("ember-radio-button/components/radio-button-input",["exports"],function(e){"use strict" +Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"input",type:"radio",defaultLayout:null,attributeBindings:["autofocus","checked","disabled","name","required","tabindex","type","value","ariaLabelledby:aria-labelledby","ariaDescribedby:aria-describedby","checked:aria-checked"],checked:Ember.computed("groupValue","value",function(){return Ember.isEqual(this.get("groupValue"),this.get("value"))}).readOnly(),sendChangedAction:function(){this.sendAction("changed",this.get("value"))},change:function(){var e=this.get("value") +this.get("groupValue")!==e&&(this.set("groupValue",e),Ember.run.once(this,"sendChangedAction"))}})}),define("ember-radio-button/components/radio-button",["exports","ember-radio-button/templates/components/radio-button"],function(e,t){"use strict" +Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"",layout:t.default,hasBlock:Ember.computed.bool("template").readOnly(),joinedClassNames:Ember.computed("classNames",function(){var e=this.get("classNames") +return e&&e.length&&e.join?e.join(" "):e}),defaultLayout:null,checkedClass:"checked",checked:Ember.computed("groupValue","value",function(){return Ember.isEqual(this.get("groupValue"),this.get("value"))}).readOnly(),actions:{changed:function(e){this.sendAction("changed",e)}}})}),define("ember-radio-button/templates/components/labeled-radio-button",["exports"],function(e){"use strict" +e.__esModule=!0,e.default=Ember.HTMLBars.template({id:"1UntrEkb",block:'{"symbols":["&default"],"statements":[[1,[26,"radio-button",null,[["radioClass","radioId","changed","disabled","groupValue","name","required","value"],[[22,["radioClass"]],[22,["radioId"]],"innerRadioChanged",[22,["disabled"]],[22,["groupValue"]],[22,["name"]],[22,["required"]],[22,["value"]]]]],false],[0,"\\n\\n"],[13,1],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"ember-radio-button/templates/components/labeled-radio-button.hbs"}})}),define("ember-radio-button/templates/components/radio-button-input",["exports"],function(e){"use strict" +e.__esModule=!0,e.default=Ember.HTMLBars.template({id:"3/rWZEpA",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"ember-radio-button/templates/components/radio-button-input.hbs"}})}),define("ember-radio-button/templates/components/radio-button",["exports"],function(e){"use strict" +e.__esModule=!0,e.default=Ember.HTMLBars.template({id:"MNnQlikJ",block:'{"symbols":["&default"],"statements":[[4,"if",[[23,1]],null,{"statements":[[0," "],[6,"label"],[11,"class",[27,["ember-radio-button ",[26,"if",[[22,["checked"]],[22,["checkedClass"]]],null]," ",[20,"joinedClassNames"]]]],[11,"for",[20,"radioId"]],[8],[0,"\\n "],[1,[26,"radio-button-input",null,[["class","id","autofocus","disabled","name","required","tabindex","groupValue","value","ariaLabelledby","ariaDescribedby","changed"],[[22,["radioClass"]],[22,["radioId"]],[22,["autofocus"]],[22,["disabled"]],[22,["name"]],[22,["required"]],[22,["tabindex"]],[22,["groupValue"]],[22,["value"]],[22,["ariaLabelledby"]],[22,["ariaDescribedby"]],"changed"]]],false],[0,"\\n\\n "],[13,1],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"radio-button-input",null,[["class","id","autofocus","disabled","name","required","tabindex","groupValue","value","ariaLabelledby","ariaDescribedby","changed"],[[22,["radioClass"]],[22,["radioId"]],[22,["autofocus"]],[22,["disabled"]],[22,["name"]],[22,["required"]],[22,["tabindex"]],[22,["groupValue"]],[22,["value"]],[22,["ariaLabelledby"]],[22,["ariaDescribedby"]],"changed"]]],false],[0,"\\n"]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"ember-radio-button/templates/components/radio-button.hbs"}})}),define("ember-resolver/features",[],function(){"use strict"}),define("ember-resolver/index",["exports","ember-resolver/resolvers/classic"],function(e,t){"use strict" +Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ember-resolver/resolver",["exports","ember-resolver/resolvers/classic"],function(e,t){"use strict" +Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ember-resolver/resolvers/classic/container-debug-adapter",["exports","ember-resolver/resolvers/classic/index"],function(e,t){"use strict" +function n(e,t,n){var r=t.match(new RegExp("^/?"+n+"/(.+)/"+e+"$")) +if(null!==r)return r[1]}Object.defineProperty(e,"__esModule",{value:!0}) +var r=Ember.ContainerDebugAdapter +e.default=r.extend({_moduleRegistry:null,init:function(){this._super.apply(this,arguments),this._moduleRegistry||(this._moduleRegistry=new t.ModuleRegistry)},canCatalogEntriesByType:function(e){return"model"===e||this._super.apply(this,arguments)},catalogEntriesByType:function(e){for(var t=this._moduleRegistry.moduleNames(),r=Ember.A(),i=this.namespace.modulePrefix,o=0,s=t.length;o<s;o++){var a=t[o] +if(-1!==a.indexOf(e)){var u=n(e,a,this.namespace.podModulePrefix||i) +u||(u=a.split(e+"s/").pop()),r.addObject(u)}}return r}})}),define("ember-resolver/resolvers/classic/index",["exports","ember-resolver/utils/class-factory","ember-resolver/utils/make-dictionary"],function(e,t,n){"use strict" +function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){if(!0===e.parsedName)return e +var t=void 0,n=void 0,r=void 0,i=e.split("@") +if("helper:@content-helper"!==e&&2===i.length){var o=i[0].split(":") +if(2===o.length)t=o[1],n=o[0],r=i[1] +else{var s=i[1].split(":") +t=i[0],n=s[0],r=s[1]}"template"===n&&0===t.lastIndexOf("components/",0)&&(r="components/"+r,t=t.slice(11))}else i=e.split(":"),n=i[0],r=i[1] +var a=r,u=h(this,"namespace"),l=u +return{parsedName:!0,fullName:e,prefix:t||this.prefix({type:n}),type:n,fullNameWithoutType:a,name:r,root:l,resolveMethodName:"resolve"+c(n)}}function o(e){Ember.assert("`modulePrefix` must be defined",this.namespace.modulePrefix) +var n=this.findModuleName(e) +if(n){var r=this._extractDefaultExport(n,e) +if(void 0===r)throw new Error(" Expected to find: '"+e.fullName+"' within '"+n+"' but got 'undefined'. Did you forget to 'export default' within '"+n+"'?") +return this.shouldWrapInClassFactory(r,e)&&(r=(0,t.default)(r)),r}return this._super(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.ModuleRegistry=void 0,void 0===requirejs.entries&&(requirejs.entries=requirejs._eak_seen) +var s=e.ModuleRegistry=function(){function e(t){r(this,e),this._entries=t||requirejs.entries}return e.prototype.moduleNames=function(){return Object.keys(this._entries)},e.prototype.has=function(e){return e in this._entries},e.prototype.get=function(e){return require(e)},e}(),a=Ember.String,u=a.underscore,c=a.classify,l=a.dasherize,h=Ember.get,d=Ember.DefaultResolver,p=d.extend({resolveOther:o,parseName:i,resolveTemplate:o,pluralizedTypes:null,moduleRegistry:null,makeToString:function(e,t){return this.namespace.modulePrefix+"@"+t+":"},shouldWrapInClassFactory:function(){return!1},init:function(){this._super(),this.moduleBasedResolver=!0,this._moduleRegistry||(this._moduleRegistry=new s),this._normalizeCache=(0,n.default)(),this.pluralizedTypes=this.pluralizedTypes||(0,n.default)(),this.pluralizedTypes.config||(this.pluralizedTypes.config="config"),this._deprecatedPodModulePrefix=!1},normalize:function(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this._normalize(e))},_normalize:function(e){var t=e.split(":") +return t.length>1?"helper"===t[0]?t[0]+":"+t[1].replace(/_/g,"-"):t[0]+":"+l(t[1].replace(/\./g,"/")):e},pluralize:function(e){return this.pluralizedTypes[e]||(this.pluralizedTypes[e]=e+"s")},podBasedLookupWithPrefix:function(e,t){var n=t.fullNameWithoutType +return"template"===t.type&&(n=n.replace(/^components\//,"")),e+"/"+n+"/"+t.type},podBasedModuleName:function(e){var t=this.namespace.podModulePrefix||this.namespace.modulePrefix +return this.podBasedLookupWithPrefix(t,e)},podBasedComponentsInSubdir:function(e){var t=this.namespace.podModulePrefix||this.namespace.modulePrefix +if(t+="/components","component"===e.type||/^components/.test(e.fullNameWithoutType))return this.podBasedLookupWithPrefix(t,e)},resolveEngine:function(e){var t=e.fullNameWithoutType,n=t+"/engine" +if(this._moduleRegistry.has(n))return this._extractDefaultExport(n)},resolveRouteMap:function(e){var t=e.fullNameWithoutType,n=t+"/routes" +if(this._moduleRegistry.has(n)){var r=this._extractDefaultExport(n) +return Ember.assert("The route map for "+t+" should be wrapped by 'buildRoutes' before exporting.",r.isRouteMap),r}},mainModuleName:function(e){if("main"===e.fullNameWithoutType)return e.prefix+"/"+e.type},defaultModuleName:function(e){return e.prefix+"/"+this.pluralize(e.type)+"/"+e.fullNameWithoutType},prefix:function(e){var t=this.namespace.modulePrefix +return this.namespace[e.type+"Prefix"]&&(t=this.namespace[e.type+"Prefix"]),t},moduleNameLookupPatterns:Ember.computed(function(){return[this.podBasedModuleName,this.podBasedComponentsInSubdir,this.mainModuleName,this.defaultModuleName]}).readOnly(),findModuleName:function(e,t){for(var n=this.get("moduleNameLookupPatterns"),r=void 0,i=0,o=n.length;i<o;i++){var s=n[i],a=s.call(this,e) +if(a&&(a=this.chooseModuleName(a,e)),a&&this._moduleRegistry.has(a)&&(r=a),t||this._logLookup(r,e,a),r)return r}},chooseModuleName:function(e,t){var n=this,r=u(e) +if(e!==r&&this._moduleRegistry.has(e)&&this._moduleRegistry.has(r))throw new TypeError("Ambiguous module names: '"+e+"' and '"+r+"'") +if(this._moduleRegistry.has(e))return e +if(this._moduleRegistry.has(r))return r +var i=e.replace(/\/-([^\/]*)$/,"/_$1") +if(this._moduleRegistry.has(i))return Ember.deprecate('Modules should not contain underscores. Attempted to lookup "'+e+'" which was not found. Please rename "'+i+'" to "'+e+'" instead.',!1,{id:"ember-resolver.underscored-modules",until:"3.0.0"}),i +Ember.runInDebug(function(){"helper"===t.type&&/[a-z]+[A-Z]+/.test(e)&&(n._camelCaseHelperWarnedNames=n._camelCaseHelperWarnedNames||[],!(n._camelCaseHelperWarnedNames.indexOf(t.fullName)>-1)&&n._moduleRegistry.has(l(e))&&(n._camelCaseHelperWarnedNames.push(t.fullName),Ember.warn('Attempted to lookup "'+t.fullName+'" which was not found. In previous versions of ember-resolver, a bug would have caused the module at "'+l(e)+'" to be returned for this camel case helper name. This has been fixed. Use the dasherized name to resolve the module that would have been returned in previous versions.',!1,{id:"ember-resolver.camelcase-helper-names",until:"3.0.0"})))})},lookupDescription:function(e){var t=this.parseName(e) +return this.findModuleName(t,!0)},_logLookup:function(e,t,n){if(Ember.ENV.LOG_MODULE_RESOLVER||t.root.LOG_RESOLVER){var r=void 0,i=e?"[✓]":"[ ]" +r=t.fullName.length>60?".":new Array(60-t.fullName.length).join("."),n||(n=this.lookupDescription(t)),console&&console.info&&console.info(i,t.fullName,r,n)}},knownForType:function(e){for(var t=this._moduleRegistry.moduleNames(),r=(0,n.default)(),i=0,o=t.length;i<o;i++){var s=t[i],a=this.translateToContainerFullname(e,s) +a&&(r[a]=!0)}return r},translateToContainerFullname:function(e,t){var n=this.prefix({type:e}),r=n+"/",i="/"+e,o=t.indexOf(r),s=t.indexOf(i) +if(0===o&&s===t.length-i.length&&t.length>r.length+i.length)return e+":"+t.slice(o+r.length,s) +var a=this.pluralize(e),u=n+"/"+a+"/" +return 0===t.indexOf(u)&&t.length>u.length?e+":"+t.slice(u.length):void 0},_extractDefaultExport:function(e){var t=require(e,null,null,!0) +return t&&t.default&&(t=t.default),t}}) +p.reopenClass({moduleBasedResolver:!0}),e.default=p}),define("ember-resolver/utils/class-factory",["exports"],function(e){"use strict" +function t(e){return{create:function(t){return"function"==typeof e.extend?e.extend(t):e}}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t}),define("ember-resolver/utils/make-dictionary",["exports"],function(e){"use strict" +function t(){var e=Object.create(null) +return e._dict=null,delete e._dict,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t}),define("ember-truth-helpers/helpers/and",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict" +function n(e){for(var n=0,r=e.length;n<r;n++)if(!1===(0,t.default)(e[n]))return e[n] +return e[e.length-1]}Object.defineProperty(e,"__esModule",{value:!0}),e.and=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/helpers/equal",["exports"],function(e){"use strict" +function t(e){return e[0]===e[1]}Object.defineProperty(e,"__esModule",{value:!0}),e.equal=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/gt",["exports"],function(e){"use strict" +function t(e,t){var n=e[0],r=e[1] +return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n>r}Object.defineProperty(e,"__esModule",{value:!0}),e.gt=t,e.default=Ember.Helper.helper(t)}) +define("ember-truth-helpers/helpers/gte",["exports"],function(e){"use strict" +function t(e,t){var n=e[0],r=e[1] +return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n>=r}Object.defineProperty(e,"__esModule",{value:!0}),e.gte=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/is-array",["exports"],function(e){"use strict" +function t(e){for(var t=0,n=e.length;t<n;t++)if(!1===Ember.isArray(e[t]))return!1 +return!0}Object.defineProperty(e,"__esModule",{value:!0}),e.isArray=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/is-equal",["exports"],function(e){"use strict" +function t(e){var t=n(e,2),r=t[0],i=t[1] +return Ember.isEqual(r,i)}Object.defineProperty(e,"__esModule",{value:!0}),e.isEqual=t +var n=function(){function e(e,t){var n=[],r=!0,i=!1,o=void 0 +try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&a.return&&a.return()}finally{if(i)throw o}}return n}return function(t,n){if(Array.isArray(t))return t +if(Symbol.iterator in Object(t))return e(t,n) +throw new TypeError("Invalid attempt to destructure non-iterable instance")}}() +e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/lt",["exports"],function(e){"use strict" +function t(e,t){var n=e[0],r=e[1] +return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n<r}Object.defineProperty(e,"__esModule",{value:!0}),e.lt=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/lte",["exports"],function(e){"use strict" +function t(e,t){var n=e[0],r=e[1] +return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n<=r}Object.defineProperty(e,"__esModule",{value:!0}),e.lte=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/not-equal",["exports"],function(e){"use strict" +function t(e){return e[0]!==e[1]}Object.defineProperty(e,"__esModule",{value:!0}),e.notEqualHelper=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/not",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict" +function n(e){for(var n=0,r=e.length;n<r;n++)if(!0===(0,t.default)(e[n]))return!1 +return!0}Object.defineProperty(e,"__esModule",{value:!0}),e.not=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/helpers/or",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict" +function n(e){for(var n=0,r=e.length;n<r;n++)if(!0===(0,t.default)(e[n]))return e[n] +return e[e.length-1]}Object.defineProperty(e,"__esModule",{value:!0}),e.or=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/helpers/xor",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict" +function n(e){return(0,t.default)(e[0])!==(0,t.default)(e[1])}Object.defineProperty(e,"__esModule",{value:!0}),e.xor=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/utils/truth-convert",["exports"],function(e){"use strict" +function t(e){var t=e&&Ember.get(e,"isTruthy") +return"boolean"==typeof t?t:Ember.isArray(e)?0!==Ember.get(e,"length"):!!e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t}) diff --git a/javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css b/javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css new file mode 100644 index 0000000..17824ea --- /dev/null +++ b/javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css @@ -0,0 +1,3 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */.jstree-anchor:focus,.vakata-context li>a:focus{outline:0}.jstree-anchor,.jstree-node{white-space:nowrap}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.jstree-children,.jstree-container-ul,.jstree-node{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-anchor,.jstree-icon,.jstree-icon:empty{display:inline-block;margin:0;vertical-align:top}.jstree-anchor{padding:0 4px 0 1px}.jstree-anchor,.jstree-anchor:active,.jstree-anchor:hover,.jstree-anchor:link,.jstree-anchor:visited{text-decoration:none;color:inherit}.jstree-icon,.jstree-icon:empty{text-decoration:none;padding:0;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children,.jstree-anchor>.jstree-themeicon-hidden,.jstree-hidden,.jstree-no-icons .jstree-themeicon,.jstree-node.jstree-hidden{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jstree-contextmenu .jstree-anchor{-webkit-user-select:none;-webkit-touch-callout:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context .vakata-context-hover>a,.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a>i,.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-copy,#jstree-dnd .jstree-icon{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default .jstree-icon,.jstree-default .jstree-node{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-animated,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-context,.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{color:#666}.jstree-default .jstree-disabled.jstree-hovered{box-shadow:none}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top}.jstree-default>.jstree-wholerow-ul .jstree-clicked,.jstree-default>.jstree-wholerow-ul .jstree-hovered{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:24px}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px;background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon,.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon,.jstree-default .jstree-node{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png)}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default>.jstree-no-dots .jstree-node{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled,.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default .jstree-checked>.jstree-checkbox,.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-228px -4px}.jstree-default .jstree-checked>.jstree-checkbox:hover,.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px;background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber-62be6ed2b189444b472b8000dc187240.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-er,#jstree-dnd.jstree-default .jstree-ok{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default .jstree-ellipsis{overflow:hidden}.jstree-default .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}#jstree-dnd.jstree-default-small i,.jstree-default-small .jstree-icon,.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px;background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-icon,.jstree-default-small .jstree-node{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png)}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-small>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled,.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small .jstree-checked>.jstree-checkbox,.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small .jstree-checked>.jstree-checkbox:hover,.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px;background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber-62be6ed2b189444b472b8000dc187240.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-er,#jstree-dnd.jstree-default-small .jstree-ok{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small .jstree-ellipsis{overflow:hidden}.jstree-default-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}#jstree-dnd.jstree-default-large i,.jstree-default-large .jstree-icon,.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px;background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-icon,.jstree-default-large .jstree-node{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png)}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-large>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled,.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large .jstree-checked>.jstree-checkbox,.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large .jstree-checked>.jstree-checkbox:hover,.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px;background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber-62be6ed2b189444b472b8000dc187240.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-er,#jstree-dnd.jstree-default-large .jstree-ok{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large .jstree-ellipsis{overflow:hidden}.jstree-default-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px-51286e68b083696edaf4f9fc577e2a2d.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px-51286e68b083696edaf4f9fc577e2a2d.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive .jstree-node{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon{background-image:url(40px-51286e68b083696edaf4f9fc577e2a2d.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px-51286e68b083696edaf4f9fc577e2a2d.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px-51286e68b083696edaf4f9fc577e2a2d.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#d6d6d6;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}
\ No newline at end of file diff --git a/javascript/release/index.html b/javascript/release/index.html new file mode 100644 index 0000000..36588ec --- /dev/null +++ b/javascript/release/index.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>Haskell code explorer</title> + <meta name="description" content="Haskell code explorer"> + <meta name="google" content="notranslate"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + +<meta name="haskell-code-explorer/config/environment" content="%7B%22modulePrefix%22%3A%22haskell-code-explorer%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22/%22%2C%22locationType%22%3A%22auto%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%7D%7D%2C%22pace%22%3A%7B%22theme%22%3A%22minimal%22%2C%22color%22%3A%22silver%22%2C%22target%22%3A%22body%22%2C%22elements%22%3A%7B%22checkInterval%22%3A100%2C%22selectors%22%3A%5B%22body%22%2C%22.ember-view%22%5D%7D%2C%22ajax%22%3Afalse%2C%22catchupTime%22%3A50%2C%22initialRate%22%3A0.01%2C%22minTime%22%3A100%2C%22ghostTime%22%3A50%2C%22maxProgressPerFrame%22%3A20%2C%22easeFactor%22%3A1.25%2C%22startOnPageLoad%22%3Atrue%2C%22restartOnPushState%22%3Atrue%2C%22restartOnRequestAfter%22%3A500%2C%22eventLag%22%3A%7B%22minSamples%22%3A10%2C%22sampleCount%22%3A3%2C%22lagThreshold%22%3A3%7D%7D%2C%22APP%22%3A%7B%22staticUrlPrefix%22%3A%22/files%22%2C%22apiUrlPrefix%22%3A%22/api%22%2C%22haskellCodeExplorerDirectory%22%3A%22.haskell-code-explorer%22%2C%22title%22%3A%22Haskell%20code%20explorer%22%2C%22name%22%3A%22haskell-code-explorer%22%2C%22version%22%3A%220.0.1+cdeabaf8%22%7D%2C%22exportApplicationGlobal%22%3Afalse%7D" /> +<script type="text/javascript" data-pace-options='{"color":"silver","theme":"minimal","catchupTime":50,"initialRate":0.01,"minTime":100,"ghostTime":50,"maxProgressPerFrame":20,"easeFactor":1.25,"startOnPageLoad":true,"restartOnPushState":true,"restartOnRequestAfter":500,"target":"body","elements":{"checkInterval":100,"selectors":["body",".ember-view"]},"eventLag":{"minSamples":10,"sampleCount":3,"lagThreshold":3},"ajax":false}'>(function(){var t,e,n,r,s,o,i,u,a,c,l,p,h,f,d,g,m,y,v,w,b,k,S,q,L,x,P,T,R,j,E,O,M,A,N,_,F,C,U,W,X,D,H,I,z,G,B,J,K,Q=[].slice,V={}.hasOwnProperty,Y=function(t,e){function n(){this.constructor=t}for(var r in e)V.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},Z=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1};for(b={catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},R=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,w=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==E&&(E=function(t){return setTimeout(t,50)},w=function(t){return clearTimeout(t)}),M=function(t){var e,n;return e=R(),(n=function(){var r;return r=R()-e,r>=33?(e=R(),t(r,function(){return E(n)})):setTimeout(n,33-r)})()},O=function(){var t,e,n;return n=arguments[0],e=arguments[1],t=3<=arguments.length?Q.call(arguments,2):[],"function"==typeof n[e]?n[e].apply(n,t):n[e]},k=function(){var t,e,n,r,s,o,i;for(e=arguments[0],r=2<=arguments.length?Q.call(arguments,1):[],o=0,i=r.length;o<i;o++)if(n=r[o])for(t in n)V.call(n,t)&&(s=n[t],null!=e[t]&&"object"==typeof e[t]&&null!=s&&"object"==typeof s?k(e[t],s):e[t]=s);return e},m=function(t){var e,n,r,s,o;for(n=e=0,s=0,o=t.length;s<o;s++)r=t[s],n+=Math.abs(r),e++;return n/e},q=function(t,e){var n,r,s;if(null==t&&(t="options"),null==e&&(e=!0),s=document.querySelector("[data-pace-"+t+"]")){if(n=s.getAttribute("data-pace-"+t),!e)return n;try{return JSON.parse(n)}catch(t){return r=t,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",r):void 0}}},i=function(){function t(){}return t.prototype.on=function(t,e,n,r){var s;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(s=this.bindings)[t]&&(s[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},t.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},t.prototype.off=function(t,e){var n,r,s;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,s=[];n<this.bindings[t].length;)this.bindings[t][n].handler===e?s.push(this.bindings[t].splice(n,1)):s.push(n++);return s}},t.prototype.trigger=function(){var t,e,n,r,s,o,i,u,a;if(n=arguments[0],t=2<=arguments.length?Q.call(arguments,1):[],null!=(i=this.bindings)?i[n]:void 0){for(s=0,a=[];s<this.bindings[n].length;)u=this.bindings[n][s],r=u.handler,e=u.ctx,o=u.once,r.apply(null!=e?e:this,t),o?a.push(this.bindings[n].splice(s,1)):a.push(s++);return a}},t}(),c=window.Pace||{},window.Pace=c,k(c,i.prototype),j=c.options=k({},b,window.paceOptions,q()),B=["ajax","document","eventLag","elements"],H=0,z=B.length;H<z;H++)F=B[H],!0===j[F]&&(j[F]=b[F]);a=function(t){function e(){return J=e.__super__.constructor.apply(this,arguments)}return Y(e,t),e}(Error),e=function(){function t(){this.progress=0}return t.prototype.getElement=function(){var t;if(null==this.el){if(!(t=document.querySelector(j.target)))throw new a;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='<div class="pace-progress">\n <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=t.firstChild?t.insertBefore(this.el,t.firstChild):t.appendChild(this.el)}return this.el},t.prototype.finish=function(){var t;return t=this.getElement(),t.className=t.className.replace("pace-active",""),t.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},t.prototype.update=function(t){return this.progress=t,this.render()},t.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(t){a=t}return this.el=void 0},t.prototype.render=function(){var t,e,n,r,s,o,i;if(null==document.querySelector(j.target))return!1;for(t=this.getElement(),r="translate3d("+this.progress+"%, 0, 0)",i=["webkitTransform","msTransform","transform"],s=0,o=i.length;s<o;s++)e=i[s],t.children[0].style[e]=r;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(t.children[0].setAttribute("data-progress-text",(0|this.progress)+"%"),this.progress>=100?n="99":(n=this.progress<10?"0":"",n+=0|this.progress),t.children[0].setAttribute("data-progress",""+n)),this.lastRenderedProgress=this.progress},t.prototype.done=function(){return this.progress>=100},t}(),u=function(){function t(){this.bindings={}}return t.prototype.trigger=function(t,e){var n,r,s,o,i;if(null!=this.bindings[t]){for(o=this.bindings[t],i=[],r=0,s=o.length;r<s;r++)n=o[r],i.push(n.call(this,e));return i}},t.prototype.on=function(t,e){var n;return null==(n=this.bindings)[t]&&(n[t]=[]),this.bindings[t].push(e)},t}(),D=window.XMLHttpRequest,X=window.XDomainRequest,W=window.WebSocket,S=function(t,e){var n,r;r=[];for(n in e.prototype)try{null==t[n]&&"function"!=typeof e[n]?"function"==typeof Object.defineProperty?r.push(Object.defineProperty(t,n,{get:function(){return e.prototype[n]},configurable:!0,enumerable:!0})):r.push(t[n]=e.prototype[n]):r.push(void 0)}catch(t){t}return r},P=[],c.ignore=function(){var t,e,n;return e=arguments[0],t=2<=arguments.length?Q.call(arguments,1):[],P.unshift("ignore"),n=e.apply(null,t),P.shift(),n},c.track=function(){var t,e,n;return e=arguments[0],t=2<=arguments.length?Q.call(arguments,1):[],P.unshift("track"),n=e.apply(null,t),P.shift(),n},_=function(t){var e;if(null==t&&(t="GET"),"track"===P[0])return"force";if(!P.length&&j.ajax){if("socket"===t&&j.ajax.trackWebSockets)return!0;if(e=t.toUpperCase(),Z.call(j.ajax.trackMethods,e)>=0)return!0}return!1},l=function(t){function e(){var t,n=this;e.__super__.constructor.apply(this,arguments),t=function(t){var e;return e=t.open,t.open=function(r,s,o){return _(r)&&n.trigger("request",{type:r,url:s,request:t}),e.apply(t,arguments)}},window.XMLHttpRequest=function(e){var n;return n=new D(e),t(n),n};try{S(window.XMLHttpRequest,D)}catch(t){}if(null!=X){window.XDomainRequest=function(){var e;return e=new X,t(e),e};try{S(window.XDomainRequest,X)}catch(t){}}if(null!=W&&j.ajax.trackWebSockets){window.WebSocket=function(t,e){var r;return r=null!=e?new W(t,e):new W(t),_("socket")&&n.trigger("request",{type:"socket",url:t,protocols:e,request:r}),r};try{S(window.WebSocket,W)}catch(t){}}}return Y(e,t),e}(u),I=null,L=function(){return null==I&&(I=new l),I},N=function(t){var e,n,r,s;for(s=j.ajax.ignoreURLs,n=0,r=s.length;n<r;n++)if("string"==typeof(e=s[n])){if(-1!==t.indexOf(e))return!0}else if(e.test(t))return!0;return!1},L().on("request",function(e){var n,r,s,o,i;if(o=e.type,s=e.request,i=e.url,!N(i))return c.running||!1===j.restartOnRequestAfter&&"force"!==_(o)?void 0:(r=arguments,n=j.restartOnRequestAfter||0,"boolean"==typeof n&&(n=0),setTimeout(function(){var e,n,i,u,a;if("socket"===o?s.readyState<2:0<(i=s.readyState)&&i<4){for(c.restart(),u=c.sources,a=[],e=0,n=u.length;e<n;e++){if((F=u[e])instanceof t){F.watch.apply(F,r);break}a.push(void 0)}return a}},n))}),t=function(){function t(){var t=this;this.elements=[],L().on("request",function(){return t.watch.apply(t,arguments)})}return t.prototype.watch=function(t){var e,n,r,s;if(r=t.type,e=t.request,s=t.url,!N(s))return n="socket"===r?new f(e):new d(e),this.elements.push(n)},t}(),d=function(){function t(t){var e,n,r,s,o,i=this;if(this.progress=0,null!=window.ProgressEvent)for(null,t.addEventListener("progress",function(t){return t.lengthComputable?i.progress=100*t.loaded/t.total:i.progress=i.progress+(100-i.progress)/2},!1),o=["load","abort","timeout","error"],n=0,r=o.length;n<r;n++)e=o[n],t.addEventListener(e,function(){return i.progress=100},!1);else s=t.onreadystatechange,t.onreadystatechange=function(){var e;return 0===(e=t.readyState)||4===e?i.progress=100:3===t.readyState&&(i.progress=50),"function"==typeof s?s.apply(null,arguments):void 0}}return t}(),f=function(){function t(t){var e,n,r,s,o=this;for(this.progress=0,s=["error","open"],n=0,r=s.length;n<r;n++)e=s[n],t.addEventListener(e,function(){return o.progress=100},!1)}return t}(),r=function(){function t(t){var e,n,r,o;for(null==t&&(t={}),this.elements=[],null==t.selectors&&(t.selectors=[]),o=t.selectors,n=0,r=o.length;n<r;n++)e=o[n],this.elements.push(new s(e))}return t}(),s=function(){function t(t){this.selector=t,this.progress=0,this.check()}return t.prototype.check=function(){var t=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return t.check()},j.elements.checkInterval)},t.prototype.done=function(){return this.progress=100},t}(),n=function(){function t(){var t,e,n=this;this.progress=null!=(e=this.states[document.readyState])?e:100,t=document.onreadystatechange,document.onreadystatechange=function(){return null!=n.states[document.readyState]&&(n.progress=n.states[document.readyState]),"function"==typeof t?t.apply(null,arguments):void 0}}return t.prototype.states={loading:0,interactive:50,complete:100},t}(),o=function(){function t(){var t,e,n,r,s,o=this;this.progress=0,t=0,s=[],r=0,n=R(),e=setInterval(function(){var i;return i=R()-n-50,n=R(),s.push(i),s.length>j.eventLag.sampleCount&&s.shift(),t=m(s),++r>=j.eventLag.minSamples&&t<j.eventLag.lagThreshold?(o.progress=100,clearInterval(e)):o.progress=3/(t+3)*100},50)}return t}(),h=function(){function t(t){this.source=t,this.last=this.sinceLastUpdate=0,this.rate=j.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=O(this.source,"progress"))}return t.prototype.tick=function(t,e){var n;return null==e&&(e=O(this.source,"progress")),e>=100&&(this.done=!0),e===this.last?this.sinceLastUpdate+=t:(this.sinceLastUpdate&&(this.rate=(e-this.last)/this.sinceLastUpdate),this.catchup=(e-this.progress)/j.catchupTime,this.sinceLastUpdate=0,this.last=e),e>this.progress&&(this.progress+=this.catchup*t),n=1-Math.pow(this.progress/100,j.easeFactor),this.progress+=n*this.rate*t,this.progress=Math.min(this.lastProgress+j.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},t}(),C=null,A=null,y=null,U=null,g=null,v=null,c.running=!1,x=function(){if(j.restartOnPushState)return c.restart()},null!=window.history.pushState&&(G=window.history.pushState,window.history.pushState=function(){return x(),G.apply(window.history,arguments)}),null!=window.history.replaceState&&(K=window.history.replaceState,window.history.replaceState=function(){return x(),K.apply(window.history,arguments)}),p={ajax:t,elements:r,document:n,eventLag:o},(T=function(){var t,n,r,s,o,i,u,a;for(c.sources=C=[],i=["ajax","elements","document","eventLag"],n=0,s=i.length;n<s;n++)t=i[n],!1!==j[t]&&C.push(new p[t](j[t]));for(a=null!=(u=j.extraSources)?u:[],r=0,o=a.length;r<o;r++)F=a[r],C.push(new F(j));return c.bar=y=new e,A=[],U=new h})(),c.stop=function(){return c.trigger("stop"),c.running=!1,y.destroy(),v=!0,null!=g&&("function"==typeof w&&w(g),g=null),T()},c.restart=function(){return c.trigger("restart"),c.stop(),c.start()},c.go=function(){var t;return c.running=!0,y.render(),t=R(),v=!1,g=M(function(e,n){var r,s,o,i,u,a,l,p,f,d,g,m,w,b,k;for(100-y.progress,s=d=0,o=!0,a=g=0,w=C.length;g<w;a=++g)for(F=C[a],f=null!=A[a]?A[a]:A[a]=[],u=null!=(k=F.elements)?k:[F],l=m=0,b=u.length;m<b;l=++m)i=u[l],p=null!=f[l]?f[l]:f[l]=new h(i),o&=p.done,p.done||(s++,d+=p.tick(e));return r=d/s,y.update(U.tick(e,r)),y.done()||o||v?(y.update(100),c.trigger("done"),setTimeout(function(){return y.finish(),c.running=!1,c.trigger("hide")},Math.max(j.ghostTime,Math.max(j.minTime-(R()-t),0)))):n()})},c.start=function(t){k(j,t),c.running=!0;try{y.render()}catch(t){a=t}return document.querySelector(".pace")?(c.trigger("start"),c.go()):setTimeout(c.start,50)},"function"==typeof define&&define.amd?define(["pace"],function(){return c}):"object"==typeof exports?module.exports=c:j.startOnPageLoad&&c.start()}).call(this);; +!function(){var t,e=[],n=function(){var e=document.querySelectorAll("script[pace-src]"),n=e.length;t=n;for(var o=0;o<n;o++)c.call(this,o,e[o].getAttribute("pace-src"),a);e=null},a=function(n,a){if(t--,e[n]=a||"",0===t){var c=document.createElement("script");c.type="text/javascript",c.text=e.join(";\n\n"),document.querySelector("body").appendChild(c),e=null,c=null,t=null}},c=function(t,e,n){var a=new XMLHttpRequest;a.open("GET",e,!0),a.onreadystatechange=function(){if(4===this.readyState)if(this.status>=200&&this.status<400){var e=this.responseURL,a=this.responseText;a=a.replace(/sourceMappingURL\=/gm,function(t){return t+e+"/../"}),n(t,a)}else n(t)},a.send(),a=null};!function(t){"loading"!==document.readyState?t():document.addEventListener?document.addEventListener("DOMContentLoaded",t):document.attachEvent("onreadystatechange",function(){"loading"!==document.readyState&&t()})}(n)}();</script> + <link rel="stylesheet" href="/assets/vendor-61c2b6995db771bb0e33f39a71767638.css" integrity="sha256-wK08h79IqBqu0uM+pvcl3TdHB7oUQ8DDFhoqrlG4gh4= sha512-mKU1E7GiRYspQ0BldW76zmBhlH63gSan099aN8R/AVah3UZI/EdaSWVILTiMYDj48eywGA1mkvT9NKebkMXrpw==" > + <link rel="stylesheet" href="/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css" integrity="sha256-cnyY7YNhL2/eUA936wah5OgxQnt9ULBa33AeAV5kH3c= sha512-pemUX61XdGAq4ZBotErE0kP6V7RA9OfCSr531CvPbN6XCIXKtL1iQyn4z2bygTttKNbUj1tMOUvsdyAknPJMCA==" > + + </head> + <body> + + <script pace-src="/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js"></script> + <script pace-src="/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js"></script> + + <noscript>You need to enable JavaScript to run this app.</noscript> + </body> +</html> diff --git a/javascript/release/robots.txt b/javascript/release/robots.txt new file mode 100644 index 0000000..f591645 --- /dev/null +++ b/javascript/release/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/javascript/server/.eslintrc.js b/javascript/server/.eslintrc.js new file mode 100644 index 0000000..1147d29 --- /dev/null +++ b/javascript/server/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + node: true + } +}; diff --git a/javascript/server/index.js b/javascript/server/index.js new file mode 100644 index 0000000..eadf932 --- /dev/null +++ b/javascript/server/index.js @@ -0,0 +1,30 @@ +/* eslint-env node */ +'use strict'; + +//https://discuss.emberjs.com/t/how-to-disable-http-mock-server-within-environment-config-file/6660/9 + +//To use http mocks from server/mocks for testing: +//ember server +//To use real server: +//ember server --proxy=http://localhost:8080/ + +function usingProxy() { + return !!process.argv.filter(function (arg) { + return arg.indexOf('--proxy') === 0; + }).length; +} + +module.exports = function(app) { + if (usingProxy()) { return; } + + const globSync = require('glob').sync; + const mocks = globSync('./mocks/**/*.js', { cwd: __dirname }).map(require); + const proxies = globSync('./proxies/**/*.js', { cwd: __dirname }).map(require); + + // Log proxy requests + const morgan = require('morgan'); + app.use(morgan('dev')); + + mocks.forEach(route => route(app)); + proxies.forEach(route => route(app)); +}; diff --git a/javascript/server/mocks/packages.js b/javascript/server/mocks/packages.js new file mode 100644 index 0000000..5da80b2 --- /dev/null +++ b/javascript/server/mocks/packages.js @@ -0,0 +1,397 @@ +/* eslint-env node */ +'use strict'; + +const packages = [ + { + "versions": [ + "0.1.0.0" + ], + "name": "test-package" + } +]; + +const testPackage = { + "directoryTree": { + "tag": "Dir", + "contents": [ + { + "tag": "File", + "path": "Setup.hs", + "isHaskellModule": false, + "name": "Setup.hs" + }, + { + "tag": "File", + "path": "stack-8.0.2.yaml", + "isHaskellModule": false, + "name": "stack-8.0.2.yaml" + }, + { + "tag": "File", + "path": "stack.yaml", + "isHaskellModule": false, + "name": "stack.yaml" + }, + { + "tag": "Dir", + "contents": [ + { + "tag": "File", + "path": "src/Lib.hs", + "isHaskellModule": true, + "name": "Lib.hs" + }, + { + "tag": "File", + "path": "src/Types.hs", + "isHaskellModule": true, + "name": "Types.hs" + } + ], + "name": "src" + }, + { + "tag": "Dir", + "contents": [ + { + "tag": "File", + "path": "app/Main.hs", + "isHaskellModule": true, + "name": "Main.hs" + } + ], + "name": "app" + }, + { + "tag": "Dir", + "contents": [ + { + "tag": "File", + "path": "test/Spec.hs", + "isHaskellModule": true, + "name": "Spec.hs" + } + ], + "name": "test" + }, + { + "tag": "File", + "path": "package.yaml", + "isHaskellModule": false, + "name": "package.yaml" + }, + { + "tag": "File", + "path": "test-package.cabal", + "isHaskellModule": false, + "name": "test-package.cabal" + } + ], + "name": "test-package" + }, + "modules": { + "app/Main.hs": [], + "src/Types.hs": [], + "test/Spec.hs": [], + "src/Lib.hs": [] + }, + "id": "test-package-0.1.0.0" +}; + +const testModuleInfo = { + "occurrences": { + "3-8-11": { + "sort": { + "tag": "ModuleId", + "contents": { + "packageId": { + "name": "test-package", + "version": "0.1.0.0" + }, + "tag": "ApproximateLocation", + "moduleName": "Lib", + "name": "Lib", + "componentId": "exe-test-package-exe", + "entity": "Mod" + } + }, + "description": "ImportDecl" + }, + "6-8-16": { + "internalId": "4", + "sort": { + "tag": "ValueId" + }, + "description": "HsVar" + }, + "5-1-5": { + "internalId": "0", + "sort": { + "tag": "ValueId" + }, + "description": "TypeSig" + }, + "5-9-11": { + "internalId": "2", + "sort": { + "tag": "TypeId" + }, + "description": "HsTyVar" + }, + "6-1-5": { + "isBinder": true, + "internalId": "0", + "sort": { + "tag": "ValueId" + }, + "description": "Match" + }, + "5-12-14": { + "internalId": "3", + "sort": { + "tag": "TypeId" + }, + "description": "HsTupleTy" + } + }, + "identifiers": { + "7": { + "isExported": false, + "idType": { + "components": [ + { + "tag": "TyCon", + "name": "RuntimeRep", + "internalId": "6" + } + ] + }, + "locationInfo": { + "packageId": { + "name": "ghc-prim", + "version": "0.5.1.1" + }, + "tag": "ApproximateLocation", + "haddockAnchorId": "LiftedRep", + "moduleName": "GHC.Types", + "name": "LiftedRep", + "componentId": "lib", + "entity": "Val" + }, + "nameSpace": "DataName", + "internalId": "7", + "sort": "External", + "occName": "LiftedRep", + "externalId": "ghc-prim-0.5.1.1|GHC.Types|Val|LiftedRep", + "demangledOccName": "LiftedRep" + }, + "0": { + "isExported": true, + "idType": { + "components": [ + { + "tag": "TyCon", + "name": "IO", + "internalId": "2" + }, + { + "tag": "Text", + "contents": " ()" + } + ] + }, + "locationInfo": { + "packageId": { + "name": "test-package", + "version": "0.1.0.0" + }, + "tag": "ExactLocation", + "moduleName": "Main", + "startLine": 6, + "endLine": 6, + "modulePath": "app/Main.hs", + "startColumn": 1, + "endColumn": 5 + }, + "nameSpace": "VarName", + "internalId": "0", + "details": "VanillaId", + "sort": "External", + "occName": "main", + "externalId": "test-package-0.1.0.0|Main|Val|main", + "demangledOccName": "main" + }, + "4": { + "isExported": false, + "idType": { + "components": [ + { + "tag": "TyCon", + "name": "IO", + "internalId": "2" + }, + { + "tag": "Text", + "contents": " ()" + } + ] + }, + "doc": "<p><span>someFunc documentation</span></p>", + "locationInfo": { + "packageId": { + "name": "test-package", + "version": "0.1.0.0" + }, + "tag": "ExactLocation", + "moduleName": "Lib", + "startLine": 9, + "endLine": 9, + "modulePath": "src/Lib.hs", + "startColumn": 1, + "endColumn": 9 + }, + "nameSpace": "VarName", + "internalId": "4", + "details": "VanillaId", + "sort": "External", + "occName": "someFunc", + "externalId": "test-package-0.1.0.0|Lib|Val|someFunc", + "demangledOccName": "someFunc" + }, + "2": { + "isExported": false, + "idType": { + "components": [ + { + "tag": "Text", + "contents": "* -> *" + } + ] + }, + "locationInfo": { + "packageId": { + "name": "ghc-prim", + "version": "0.5.1.1" + }, + "tag": "ApproximateLocation", + "haddockAnchorId": "IO", + "moduleName": "GHC.Types", + "name": "IO", + "componentId": "lib", + "entity": "Typ" + }, + "nameSpace": "TcClsName", + "internalId": "2", + "sort": "External", + "occName": "IO", + "externalId": "ghc-prim-0.5.1.1|GHC.Types|Typ|IO", + "demangledOccName": "IO" + }, + "5": { + "isExported": false, + "idType": { + "components": [ + { + "tag": "TyCon", + "name": "RuntimeRep", + "internalId": "6" + }, + { + "tag": "Text", + "contents": " -> *" + } + ] + }, + "locationInfo": { + "packageId": { + "name": "ghc-prim", + "version": "0.5.1.1" + }, + "tag": "ApproximateLocation", + "haddockAnchorId": "TYPE", + "moduleName": "GHC.Prim", + "name": "TYPE", + "componentId": "lib", + "entity": "Typ" + }, + "nameSpace": "TcClsName", + "internalId": "5", + "sort": "External", + "occName": "TYPE", + "externalId": "ghc-prim-0.5.1.1|GHC.Prim|Typ|TYPE", + "demangledOccName": "TYPE" + }, + "3": { + "isExported": false, + "idType": { + "components": [ + { + "tag": "Text", + "contents": "*" + } + ] + }, + "locationInfo": { + "packageId": { + "name": "ghc-prim", + "version": "0.5.1.1" + }, + "tag": "ApproximateLocation", + "haddockAnchorId": "-40--41-", + "moduleName": "GHC.Tuple", + "name": "()", + "componentId": "lib", + "entity": "Typ" + }, + "nameSpace": "TcClsName", + "internalId": "3", + "sort": "External", + "occName": "()", + "externalId": "ghc-prim-0.5.1.1|GHC.Tuple|Typ|()", + "demangledOccName": "()" + } + }, + "name": "Main", + "sourceCodeHtml": "<table class=\"source-code\"><tbody><tr><td class=\"line-number\" id=\"LN1\">1</td><td class=\"line-content\" data-line=\"1\" id=\"LC1\"><span data-start=\"1\" data-end=\"18\">module Main where</span></td></tr><tr><td class=\"line-number\" id=\"LN2\">2</td><td class=\"line-content\" data-line=\"2\" id=\"LC2\"><span data-start=\"1\" data-end=\"1\"></span></td></tr><tr><td class=\"line-number\" id=\"LN3\">3</td><td class=\"line-content\" data-line=\"3\" id=\"LC3\"><span data-start=\"1\" data-end=\"8\">import </span><span class=\"identifier\" id=\"\" data-occurrence=\"3-8-11\" data-identifier=\"\" data-start=\"8\" data-end=\"11\">Lib</span></td></tr><tr><td class=\"line-number\" id=\"LN4\">4</td><td class=\"line-content\" data-line=\"4\" id=\"LC4\"><span data-start=\"1\" data-end=\"1\"></span></td></tr><tr><td class=\"line-number\" id=\"LN5\">5</td><td class=\"line-content\" data-line=\"5\" id=\"LC5\"><span class=\"identifier\" id=\"1\" data-occurrence=\"5-1-5\" data-identifier=\"0\" data-start=\"1\" data-end=\"5\">main</span><span data-start=\"5\" data-end=\"9\"> :: </span><span class=\"identifier\" id=\"2\" data-occurrence=\"5-9-11\" data-identifier=\"2\" data-start=\"9\" data-end=\"11\">IO</span><span data-start=\"11\" data-end=\"12\"> </span><span class=\"identifier\" id=\"3\" data-occurrence=\"5-12-14\" data-identifier=\"3\" data-start=\"12\" data-end=\"14\">()</span></td></tr><tr><td class=\"line-number\" id=\"LN6\">6</td><td class=\"line-content\" data-line=\"6\" id=\"LC6\"><span class=\"identifier\" id=\"1\" data-occurrence=\"6-1-5\" data-identifier=\"0\" data-start=\"1\" data-end=\"5\">main</span><span data-start=\"5\" data-end=\"8\"> = </span><span class=\"identifier\" id=\"4\" data-occurrence=\"6-8-16\" data-identifier=\"4\" data-start=\"8\" data-end=\"16\">someFunc</span></td></tr><tr><td class=\"line-number\" id=\"LN7\">7</td><td class=\"line-content\" data-line=\"7\" id=\"LC7\"><span data-start=\"1\" data-end=\"1\"></span></td></tr><tr><td class=\"line-number\" id=\"LN8\">8</td><td class=\"line-content\" data-line=\"8\" id=\"LC8\"><span data-start=\"1\" data-end=\"1\"></span></td></tr></tbody></table>", + "id": "app/Main.hs", + "declarations": [ + { + "isExported": true, + "lineNumber": 6, + "declType": { + "components": [ + { + "tag": "TyCon", + "name": "IO", + "internalId": "2" + }, + { + "tag": "Text", + "contents": " ()" + } + ] + }, + "name": "main", + "sort": "ValD" + } + ] +}; + +module.exports = function(app) { + const express = require('express'); + let packagesRouter = express.Router(); + + packagesRouter.get('/api/packages', function(req, res) { + res.send(packages); + }); + + packagesRouter.get('/files/test-package-0.1.0.0/.haskell-code-explorer/packageInfo.json', function(req, res) { + res.send(testPackage); + }); + + packagesRouter.get('/files/test-package-0.1.0.0/.haskell-code-explorer/app%252FMain.hs.json', function(req, res) { + res.send(testModuleInfo); + }); + + app.use('/', packagesRouter); +}; diff --git a/javascript/testem.js b/javascript/testem.js new file mode 100644 index 0000000..d7710c2 --- /dev/null +++ b/javascript/testem.js @@ -0,0 +1,24 @@ +/* eslint-env node */ +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: [ + 'Chrome' + ], + launch_in_dev: [ + 'Chrome' + ], + browser_args: { + Chrome: { + mode: 'ci', + args: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.TRAVIS ? '--no-sandbox' : null, + '--disable-gpu', + '--headless', + '--remote-debugging-port=0', + '--window-size=1440,900' + ].filter(Boolean) + } + } +}; diff --git a/javascript/tests/.eslintrc.js b/javascript/tests/.eslintrc.js new file mode 100644 index 0000000..fbf2555 --- /dev/null +++ b/javascript/tests/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + embertest: true + } +}; diff --git a/javascript/tests/acceptance/haskell-module-test.js b/javascript/tests/acceptance/haskell-module-test.js new file mode 100644 index 0000000..939c0dd --- /dev/null +++ b/javascript/tests/acceptance/haskell-module-test.js @@ -0,0 +1,28 @@ +import { module, test } from 'qunit'; +import { visit, currentURL, find } from '@ember/test-helpers'; +import { setupApplicationTest } from 'ember-qunit'; + + +module('Acceptance | haskell-module', function(hooks) { + setupApplicationTest(hooks); + + //Test data is in 'server/mocks/packages.js' + test('visiting /package/test-package-0.1.0.0/show/app/Main.hs', async function(assert) { + await visit('/package/test-package-0.1.0.0/show/app/Main.hs'); + + assert.equal(currentURL(), '/package/test-package-0.1.0.0/show/app/Main.hs'); + + const lines = Array.from(find('tbody').children).map((tr) => { + return tr.children[1].innerText; + }); + + assert.deepEqual(lines,["module Main where", + "", + "import Lib", + "", + "main :: IO ()", + "main = someFunc", + "", + ""]); + }); +}); diff --git a/javascript/tests/acceptance/package-test.js b/javascript/tests/acceptance/package-test.js new file mode 100644 index 0000000..bdb1fef --- /dev/null +++ b/javascript/tests/acceptance/package-test.js @@ -0,0 +1,23 @@ +import { module, test } from 'qunit'; +import { visit, currentURL, find } from '@ember/test-helpers'; +import { setupApplicationTest } from 'ember-qunit'; + + +module('Acceptance | package', function(hooks) { + setupApplicationTest(hooks); + + //Test data is in 'server/mocks/packages.js' + test('visiting /package/test-package-0.1.0.0', async function(assert) { + await visit('/package/test-package-0.1.0.0'); + assert.equal(currentURL(), '/package/test-package-0.1.0.0'); + + const moduleNames = Array.from(find('ul.modules').children).map((li) => { + return [li.innerText,li.children[0].getAttribute('href')]; + }); + + assert.deepEqual(moduleNames,[["app/Main.hs","/package/test-package-0.1.0.0/show/app/Main.hs"], + ["src/Lib.hs","/package/test-package-0.1.0.0/show/src/Lib.hs"], + ["src/Types.hs","/package/test-package-0.1.0.0/show/src/Types.hs"], + ["test/Spec.hs","/package/test-package-0.1.0.0/show/test/Spec.hs"]]); + }); +}); diff --git a/javascript/tests/acceptance/packages-test.js b/javascript/tests/acceptance/packages-test.js new file mode 100644 index 0000000..4c970b1 --- /dev/null +++ b/javascript/tests/acceptance/packages-test.js @@ -0,0 +1,16 @@ +import { module, test } from 'qunit'; +import { visit, currentURL, find } from '@ember/test-helpers'; +import { setupApplicationTest } from 'ember-qunit'; + +module('Acceptance | packages', function(hooks) { + setupApplicationTest(hooks); + + //Test data is in file 'server/mocks/packages.js' + test('visiting /', async function(assert) { + await visit('/'); + assert.equal(currentURL(), '/'); + const linkToPackage = find('ul a:first-child'); + assert.equal(linkToPackage.innerText, 'test-package-0.1.0.0'); + assert.equal(linkToPackage.getAttribute('href'), '/package/test-package-0.1.0.0'); + }); +}); diff --git a/javascript/tests/helpers/.gitkeep b/javascript/tests/helpers/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/tests/helpers/.gitkeep diff --git a/javascript/tests/index.html b/javascript/tests/index.html new file mode 100644 index 0000000..19f55cc --- /dev/null +++ b/javascript/tests/index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>HaskellCodeExplorer Tests</title> + <meta name="description" content=""> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + {{content-for "head"}} + {{content-for "test-head"}} + + <link rel="stylesheet" href="{{rootURL}}assets/vendor.css"> + <link rel="stylesheet" href="{{rootURL}}assets/haskell-code-explorer.css"> + <link rel="stylesheet" href="{{rootURL}}assets/test-support.css"> + + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + </head> + <body> + {{content-for "body"}} + {{content-for "test-body"}} + + <script src="/testem.js" integrity=""></script> + <script src="{{rootURL}}assets/vendor.js"></script> + <script src="{{rootURL}}assets/test-support.js"></script> + <script src="{{rootURL}}assets/haskell-code-explorer.js"></script> + <script src="{{rootURL}}assets/tests.js"></script> + + {{content-for "body-footer"}} + {{content-for "test-body-footer"}} + </body> +</html> diff --git a/javascript/tests/integration/.gitkeep b/javascript/tests/integration/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/tests/integration/.gitkeep diff --git a/javascript/tests/integration/components/.gitkeep b/javascript/tests/integration/components/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/tests/integration/components/.gitkeep diff --git a/javascript/tests/test-helper.js b/javascript/tests/test-helper.js new file mode 100644 index 0000000..0382a84 --- /dev/null +++ b/javascript/tests/test-helper.js @@ -0,0 +1,8 @@ +import Application from '../app'; +import config from '../config/environment'; +import { setApplication } from '@ember/test-helpers'; +import { start } from 'ember-qunit'; + +setApplication(Application.create(config.APP)); + +start(); diff --git a/javascript/vendor/.gitkeep b/javascript/vendor/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/javascript/vendor/.gitkeep diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt b/javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt new file mode 100644 index 0000000..a75056b --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt @@ -0,0 +1,333 @@ +Authors ordered by first contribution +A list of current team members is available at http://jqueryui.com/about + +Paul Bakaus <paul.bakaus@gmail.com> +Richard Worth <rdworth@gmail.com> +Yehuda Katz <wycats@gmail.com> +Sean Catchpole <sean@sunsean.com> +John Resig <jeresig@gmail.com> +Tane Piper <piper.tane@gmail.com> +Dmitri Gaskin <dmitrig01@gmail.com> +Klaus Hartl <klaus.hartl@gmail.com> +Stefan Petre <stefan.petre@gmail.com> +Gilles van den Hoven <gilles@webunity.nl> +Micheil Bryan Smith <micheil@brandedcode.com> +Jörn Zaefferer <joern.zaefferer@gmail.com> +Marc Grabanski <m@marcgrabanski.com> +Keith Wood <kbwood@iinet.com.au> +Brandon Aaron <brandon.aaron@gmail.com> +Scott González <scott.gonzalez@gmail.com> +Eduardo Lundgren <eduardolundgren@gmail.com> +Aaron Eisenberger <aaronchi@gmail.com> +Joan Piedra <theneojp@gmail.com> +Bruno Basto <b.basto@gmail.com> +Remy Sharp <remy@leftlogic.com> +Bohdan Ganicky <bohdan.ganicky@gmail.com> +David Bolter <david.bolter@gmail.com> +Chi Cheng <cloudream@gmail.com> +Ca-Phun Ung <pazu2k@gmail.com> +Ariel Flesler <aflesler@gmail.com> +Maggie Wachs <maggie@filamentgroup.com> +Scott Jehl <scottjehl@gmail.com> +Todd Parker <todd@filamentgroup.com> +Andrew Powell <andrew@shellscape.org> +Brant Burnett <btburnett3@gmail.com> +Douglas Neiner <doug@dougneiner.com> +Paul Irish <paul.irish@gmail.com> +Ralph Whitbeck <ralph.whitbeck@gmail.com> +Thibault Duplessis <thibault.duplessis@gmail.com> +Dominique Vincent <dominique.vincent@toitl.com> +Jack Hsu <jack.hsu@gmail.com> +Adam Sontag <ajpiano@ajpiano.com> +Carl Fürstenberg <carl@excito.com> +Kevin Dalman <development@allpro.net> +Alberto Fernández Capel <afcapel@gmail.com> +Jacek Jędrzejewski (http://jacek.jedrzejewski.name) +Ting Kuei <ting@kuei.com> +Samuel Cormier-Iijima <sam@chide.it> +Jon Palmer <jonspalmer@gmail.com> +Ben Hollis <bhollis@amazon.com> +Justin MacCarthy <Justin@Rubystars.biz> +Eyal Kobrigo <kobrigo@hotmail.com> +Tiago Freire <tiago.freire@gmail.com> +Diego Tres <diegotres@gmail.com> +Holger Rüprich <holger@rueprich.de> +Ziling Zhao <zilingzhao@gmail.com> +Mike Alsup <malsup@gmail.com> +Robson Braga Araujo <robsonbraga@gmail.com> +Pierre-Henri Ausseil <ph.ausseil@gmail.com> +Christopher McCulloh <cmcculloh@gmail.com> +Andrew Newcomb <ext.github@preceptsoftware.co.uk> +Lim Chee Aun <cheeaun@gmail.com> +Jorge Barreiro <yortx.barry@gmail.com> +Daniel Steigerwald <daniel@steigerwald.cz> +John Firebaugh <john_firebaugh@bigfix.com> +John Enters <github@darkdark.net> +Andrey Kapitcyn <ru.m157y@gmail.com> +Dmitry Petrov <dpetroff@gmail.com> +Eric Hynds <eric@hynds.net> +Chairat Sunthornwiphat <pipo@sixhead.com> +Josh Varner <josh.varner@gmail.com> +Stéphane Raimbault <stephane.raimbault@gmail.com> +Jay Merrifield <fracmak@gmail.com> +J. Ryan Stinnett <jryans@gmail.com> +Peter Heiberg <peter@heiberg.se> +Alex Dovenmuehle <adovenmuehle@gmail.com> +Jamie Gegerson <git@jamiegegerson.com> +Raymond Schwartz <skeetergraphics@gmail.com> +Phillip Barnes <philbar@gmail.com> +Kyle Wilkinson <kai@wikyd.org> +Khaled AlHourani <me@khaledalhourani.com> +Marian Rudzynski <mr@impaled.org> +Jean-Francois Remy <jeff@melix.org> +Doug Blood <dougblood@gmail.com> +Filippo Cavallarin <filippo.cavallarin@codseq.it> +Heiko Henning <heiko@thehennings.ch> +Aliaksandr Rahalevich <saksmlz@gmail.com> +Mario Visic <mario@mariovisic.com> +Xavi Ramirez <xavi.rmz@gmail.com> +Max Schnur <max.schnur@gmail.com> +Saji Nediyanchath <saji89@gmail.com> +Corey Frang <gnarf37@gmail.com> +Aaron Peterson <aaronp123@yahoo.com> +Ivan Peters <ivan@ivanpeters.com> +Mohamed Cherif Bouchelaghem <cherifbouchelaghem@yahoo.fr> +Marcos Sousa <falecomigo@marcossousa.com> +Michael DellaNoce <mdellanoce@mailtrust.com> +George Marshall <echosx@gmail.com> +Tobias Brunner <tobias@strongswan.org> +Martin Solli <msolli@gmail.com> +David Petersen <public@petersendidit.com> +Dan Heberden <danheberden@gmail.com> +William Kevin Manire <williamkmanire@gmail.com> +Gilmore Davidson <gilmoreorless@gmail.com> +Michael Wu <michaelmwu@gmail.com> +Adam Parod <mystic414@gmail.com> +Guillaume Gautreau <guillaume+github@ghusse.com> +Marcel Toele <EleotleCram@gmail.com> +Dan Streetman <ddstreet@ieee.org> +Matt Hoskins <matt@nipltd.com> +Giovanni Giacobbi <giovanni@giacobbi.net> +Kyle Florence <kyle.florence@gmail.com> +Pavol Hluchý <lopo@losys.sk> +Hans Hillen <hans.hillen@gmail.com> +Mark Johnson <virgofx@live.com> +Trey Hunner <treyhunner@gmail.com> +Shane Whittet <whittet@gmail.com> +Edward A Faulkner <ef@alum.mit.edu> +Adam Baratz <adam@adambaratz.com> +Kato Kazuyoshi <kato.kazuyoshi@gmail.com> +Eike Send <eike.send@gmail.com> +Kris Borchers <kris.borchers@gmail.com> +Eddie Monge <eddie@eddiemonge.com> +Israel Tsadok <itsadok@gmail.com> +Carson McDonald <carson@ioncannon.net> +Jason Davies <jason@jasondavies.com> +Garrison Locke <gplocke@gmail.com> +David Murdoch <david@davidmurdoch.com> +Benjamin Scott Boyle <benjamins.boyle@gmail.com> +Jesse Baird <jebaird@gmail.com> +Jonathan Vingiano <jvingiano@gmail.com> +Dylan Just <dev@ephox.com> +Hiroshi Tomita <tomykaira@gmail.com> +Glenn Goodrich <glenn.goodrich@gmail.com> +Tarafder Ashek-E-Elahi <mail.ashek@gmail.com> +Ryan Neufeld <ryan@neufeldmail.com> +Marc Neuwirth <marc.neuwirth@gmail.com> +Philip Graham <philip.robert.graham@gmail.com> +Benjamin Sterling <benjamin.sterling@kenzomedia.com> +Wesley Walser <waw325@gmail.com> +Kouhei Sutou <kou@clear-code.com> +Karl Kirch <karlkrch@gmail.com> +Chris Kelly <ckdake@ckdake.com> +Jason Oster <jay@kodewerx.org> +Felix Nagel <info@felixnagel.com> +Alexander Polomoshnov <alex.polomoshnov@gmail.com> +David Leal <dgleal@gmail.com> +Igor Milla <igor.fsp.milla@gmail.com> +Dave Methvin <dave.methvin@gmail.com> +Florian Gutmann <f.gutmann@chronimo.com> +Marwan Al Jubeh <marwan.aljubeh@gmail.com> +Milan Broum <midlis@googlemail.com> +Sebastian Sauer <info@dynpages.de> +Gaëtan Muller <m.gaetan89@gmail.com> +Michel Weimerskirch <michel@weimerskirch.net> +William Griffiths <william@ycymro.com> +Stojce Slavkovski <stojce@gmail.com> +David Soms <david.soms@gmail.com> +David De Sloovere <david.desloovere@outlook.com> +Michael P. Jung <michael.jung@terreon.de> +Shannon Pekary <spekary@gmail.com> +Dan Wellman <danwellman@hotmail.com> +Matthew Edward Hutton <meh@corefiling.co.uk> +James Khoury <james@jameskhoury.com> +Rob Loach <robloach@gmail.com> +Alberto Monteiro <betimbrasil@gmail.com> +Alex Rhea <alex.rhea@gmail.com> +Krzysztof Rosiński <rozwell69@gmail.com> +Ryan Olton <oltonr@gmail.com> +Genie <386@mail.com> +Rick Waldron <waldron.rick@gmail.com> +Ian Simpson <spoonlikesham@gmail.com> +Lev Kitsis <spam4lev@gmail.com> +TJ VanToll <tj.vantoll@gmail.com> +Justin Domnitz <jdomnitz@gmail.com> +Douglas Cerna <douglascerna@yahoo.com> +Bert ter Heide <bertjh@hotmail.com> +Jasvir Nagra <jasvir@gmail.com> +Yuriy Khabarov <13real008@gmail.com> +Harri Kilpiö <harri.kilpio@gmail.com> +Lado Lomidze <lado.lomidze@gmail.com> +Amir E. Aharoni <amir.aharoni@mail.huji.ac.il> +Simon Sattes <simon.sattes@gmail.com> +Jo Liss <joliss42@gmail.com> +Guntupalli Karunakar <karunakarg@yahoo.com> +Shahyar Ghobadpour <shahyar@gmail.com> +Lukasz Lipinski <uzza17@gmail.com> +Timo Tijhof <krinklemail@gmail.com> +Jason Moon <jmoon@socialcast.com> +Martin Frost <martinf55@hotmail.com> +Eneko Illarramendi <eneko@illarra.com> +EungJun Yi <semtlenori@gmail.com> +Courtland Allen <courtlandallen@gmail.com> +Viktar Varvanovich <non4eg@gmail.com> +Danny Trunk <dtrunk90@gmail.com> +Pavel Stetina <pavel.stetina@nangu.tv> +Michael Stay <metaweta@gmail.com> +Steven Roussey <sroussey@gmail.com> +Michael Hollis <hollis21@gmail.com> +Lee Rowlands <lee.rowlands@previousnext.com.au> +Timmy Willison <timmywillisn@gmail.com> +Karl Swedberg <kswedberg@gmail.com> +Baoju Yuan <the_guy_1987@hotmail.com> +Maciej Mroziński <maciej.k.mrozinski@gmail.com> +Luis Dalmolin <luis.nh@gmail.com> +Mark Aaron Shirley <maspwr@gmail.com> +Martin Hoch <martin@fidion.de> +Jiayi Yang <tr870829@gmail.com> +Philipp Benjamin Köppchen <xgxtpbk@gws.ms> +Sindre Sorhus <sindresorhus@gmail.com> +Bernhard Sirlinger <bernhard.sirlinger@tele2.de> +Jared A. Scheel <jared@jaredscheel.com> +Rafael Xavier de Souza <rxaviers@gmail.com> +John Chen <zhang.z.chen@intel.com> +Robert Beuligmann <robertbeuligmann@gmail.com> +Dale Kocian <dale.kocian@gmail.com> +Mike Sherov <mike.sherov@gmail.com> +Andrew Couch <andy@couchand.com> +Marc-Andre Lafortune <github@marc-andre.ca> +Nate Eagle <nate.eagle@teamaol.com> +David Souther <davidsouther@gmail.com> +Mathias Stenbom <mathias@stenbom.com> +Sergey Kartashov <ebishkek@yandex.ru> +Avinash R <nashpapa@gmail.com> +Ethan Romba <ethanromba@gmail.com> +Cory Gackenheimer <cory.gack@gmail.com> +Juan Pablo Kaniefsky <jpkaniefsky@gmail.com> +Roman Salnikov <bardt.dz@gmail.com> +Anika Henke <anika@selfthinker.org> +Samuel Bovée <samycookie2000@yahoo.fr> +Fabrício Matté <ult_combo@hotmail.com> +Viktor Kojouharov <vkojouharov@gmail.com> +Pawel Maruszczyk (http://hrabstwo.net) +Pavel Selitskas <p.selitskas@gmail.com> +Bjørn Johansen <post@bjornjohansen.no> +Matthieu Penant <thieum22@hotmail.com> +Dominic Barnes <dominic@dbarnes.info> +David Sullivan <david.sullivan@gmail.com> +Thomas Jaggi <thomas@responsive.ch> +Vahid Sohrabloo <vahid4134@gmail.com> +Travis Carden <travis.carden@gmail.com> +Bruno M. Custódio <bruno@brunomcustodio.com> +Nathanael Silverman <nathanael.silverman@gmail.com> +Christian Wenz <christian@wenz.org> +Steve Urmston <steve@urm.st> +Zaven Muradyan <megalivoithos@gmail.com> +Woody Gilk <shadowhand@deviantart.com> +Zbigniew Motyka <zbigniew.motyka@gmail.com> +Suhail Alkowaileet <xsoh.k7@gmail.com> +Toshi MARUYAMA <marutosijp2@yahoo.co.jp> +David Hansen <hansede@gmail.com> +Brian Grinstead <briangrinstead@gmail.com> +Christian Klammer <christian314159@gmail.com> +Steven Luscher <jquerycla@steveluscher.com> +Gan Eng Chin <engchin.gan@gmail.com> +Gabriel Schulhof <gabriel.schulhof@intel.com> +Alexander Schmitz <arschmitz@gmail.com> +Vilhjálmur Skúlason <vis@dmm.is> +Siebrand Mazeland <siebrand@kitano.nl> +Mohsen Ekhtiari <mohsenekhtiari@yahoo.com> +Pere Orga <gotrunks@gmail.com> +Jasper de Groot <mail@ugomobi.com> +Stephane Deschamps <stephane.deschamps@gmail.com> +Jyoti Deka <dekajp@gmail.com> +Andrei Picus <office.nightcrawler@gmail.com> +Ondrej Novy <novy@ondrej.org> +Jacob McCutcheon <jacob.mccutcheon@gmail.com> +Monika Piotrowicz <monika.piotrowicz@gmail.com> +Imants Horsts <imants.horsts@inbox.lv> +Eric Dahl <eric.c.dahl@gmail.com> +Dave Stein <dave@behance.com> +Dylan Barrell <dylan@barrell.com> +Daniel DeGroff <djdegroff@gmail.com> +Michael Wiencek <mwtuea@gmail.com> +Thomas Meyer <meyertee@gmail.com> +Ruslan Yakhyaev <ruslan@ruslan.io> +Brian J. Dowling <bjd-dev@simplicity.net> +Ben Higgins <ben@extrahop.com> +Yermo Lamers <yml@yml.com> +Patrick Stapleton <github@gdi2290.com> +Trisha Crowley <trisha.crowley@gmail.com> +Usman Akeju <akeju00+github@gmail.com> +Rodrigo Menezes <rod333@gmail.com> +Jacques Perrault <jacques_perrault@us.ibm.com> +Frederik Elvhage <frederik.elvhage@googlemail.com> +Will Holley <willholley@gmail.com> +Uri Gilad <antishok@gmail.com> +Richard Gibson <richard.gibson@gmail.com> +Simen Bekkhus <sbekkhus91@gmail.com> +Chen Eshchar <eshcharc@gmail.com> +Bruno Pérel <brunoperel@gmail.com> +Mohammed Alshehri <m@dralshehri.com> +Lisa Seacat DeLuca <ldeluca@us.ibm.com> +Anne-Gaelle Colom <coloma@westminster.ac.uk> +Adam Foster <slimfoster@gmail.com> +Luke Page <luke.a.page@gmail.com> +Daniel Owens <daniel@matchstickmixup.com> +Michael Orchard <morchard@scottlogic.co.uk> +Marcus Warren <marcus@envoke.com> +Nils Heuermann <nils@world-of-scripts.de> +Marco Ziech <marco@ziech.net> +Patricia Juarez <patrixd@gmail.com> +Ben Mosher <me@benmosher.com> +Ablay Keldibek <atomio.ak@gmail.com> +Thomas Applencourt <thomas.applencourt@irsamc.ups-tlse.fr> +Jiabao Wu <jiabao.foss@gmail.com> +Eric Lee Carraway <github@ericcarraway.com> +Victor Homyakov <vkhomyackov@gmail.com> +Myeongjin Lee <aranet100@gmail.com> +Liran Sharir <lsharir@gmail.com> +Weston Ruter <weston@xwp.co> +Mani Mishra <manimishra902@gmail.com> +Hannah Methvin <hannahmethvin@gmail.com> +Leonardo Balter <leonardo.balter@gmail.com> +Benjamin Albert <benjamin_a5@yahoo.com> +Michał Gołębiowski <m.goleb@gmail.com> +Alyosha Pushak <alyosha.pushak@gmail.com> +Fahad Ahmad <fahadahmad41@hotmail.com> +Matt Brundage <github@mattbrundage.com> +Francesc Baeta <francesc.baeta@gmail.com> +Piotr Baran <piotros@wp.pl> +Mukul Hase <mukulhase@gmail.com> +Konstantin Dinev <kdinev@mail.bw.edu> +Rand Scullard <rand@randscullard.com> +Dan Strohl <dan@wjcg.net> +Maksim Ryzhikov <rv.maksim@gmail.com> +Amine HADDAD <haddad@allegorie.tv> +Amanpreet Singh <apsdehal@gmail.com> +Alexey Balchunas <bleshik@gmail.com> +Peter Kehl <peter.kehl@gmail.com> +Peter Dave Hello <hsu@peterdavehello.org> +Johannes Schäfer <johnschaefer@gmx.de> +Ville Skyttä <ville.skytta@iki.fi> +Ryan Oriecuia <ryan.oriecuia@visioncritical.com> diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt b/javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt new file mode 100644 index 0000000..4819e54 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt @@ -0,0 +1,43 @@ +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js b/javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js new file mode 100644 index 0000000..7fc60fc --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js @@ -0,0 +1,11008 @@ +/*! + * jQuery JavaScript Library v1.12.4 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-05-20T17:17Z + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +//"use strict"; +var deletedIds = []; + +var document = window.document; + +var slice = deletedIds.slice; + +var concat = deletedIds.concat; + +var push = deletedIds.push; + +var indexOf = deletedIds.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var support = {}; + + + +var + version = "1.12.4", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1, IE<9 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: deletedIds.sort, + splice: deletedIds.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type( obj ) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + var realStringObj = obj && obj.toString(); + return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call( obj, "constructor" ) && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + } catch ( e ) { + + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( !support.ownFirst ) { + for ( key in obj ) { + return hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); // jscs:ignore requireDotNotation + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android<4.1, IE<9 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( indexOf ) { + return indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + while ( j < len ) { + first[ i++ ] = second[ j++ ]; + } + + // Support: IE<9 + // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) + if ( len !== len ) { + while ( second[ j ] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: function() { + return +( new Date() ); + }, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +// JSHint would error on this code due to the Symbol not being defined in ES5. +// Defining this global in .jshintrc would create a danger of using the global +// unguarded in another place, it seems safer to just disable JSHint for these +// three lines. +/* jshint ignore: start */ +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ]; +} +/* jshint ignore: end */ + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.2.1 + * http://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2015-10-17 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, nidselect, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']"; + while ( i-- ) { + groups[i] = nidselect + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( (parent = document.defaultView) && parent.top !== parent ) { + // Support: IE 11 + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( document.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + return m ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\r\\' msallowcapture=''>" + + "<option selected=''></option></select>"; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( (oldCache = uniqueCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + } ); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) > -1 ) !== not; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // init accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt( 0 ) === "<" && + selector.charAt( selector.length - 1 ) === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[ 2 ] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[ 0 ] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof root.ready !== "undefined" ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( pos ? + pos.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[ 0 ], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem, this ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.uniqueSort( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +} ); +var rnotwhite = ( /\S+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = true; + if ( !memory ) { + self.disable(); + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ], + [ "notify", "progress", jQuery.Callbacks( "memory" ) ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this === promise ? newDefer.promise() : this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( function() { + + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || + ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. + // If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .progress( updateFunc( i, progressContexts, progressValues ) ) + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +} ); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +} ); + +/** + * Clean-up method for dom ready events + */ +function detach() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } +} + +/** + * The ready event handler and self cleanup method + */ +function completed() { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || + window.event.type === "load" || + document.readyState === "complete" ) { + + detach(); + jQuery.ready(); + } +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called + // after the browser event has already occurred. + // Support: IE6-10 + // Older IE sometimes signals "interactive" too soon + if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); + + // If IE event model is used + } else { + + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch ( e ) {} + + if ( top && top.doScroll ) { + ( function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll( "left" ); + } catch ( e ) { + return window.setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + } )(); + } + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Support: IE<9 +// Iteration over object's inherited properties before its own +var i; +for ( i in jQuery( support ) ) { + break; +} +support.ownFirst = i === "0"; + +// Note: most support tests are defined in their respective modules. +// false until the test is run +support.inlineBlockNeedsLayout = false; + +// Execute ASAP in case we need to set body.style.zoom +jQuery( function() { + + // Minified: var a,b,c,d + var val, div, body, container; + + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + + // Return for frameset docs that don't have a body + return; + } + + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); + + if ( typeof div.style.zoom !== "undefined" ) { + + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; + + support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; + if ( val ) { + + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); +} ); + + +( function() { + var div = document.createElement( "div" ); + + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch ( e ) { + support.deleteExpando = false; + } + + // Null elements to avoid leaks in IE. + div = null; +} )(); +var acceptData = function( elem ) { + var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ], + nodeType = +elem.nodeType || 1; + + // Do not set data on non-element DOM nodes because it will not be cleared (#8335). + return nodeType !== 1 && nodeType !== 9 ? + false : + + // Nodes accept data unless otherwise specified; rejection can be conditional + !noData || noData !== true && elem.getAttribute( "classid" ) === noData; +}; + + + + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + +function internalData( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) && + data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split( " " ); + } + } + } else { + + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[ i ] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, undefined + } else { + cache[ id ] = undefined; + } +} + +jQuery.extend( { + cache: {}, + + // The following elements (space-suffixed to avoid Object.prototype collisions) + // throw uncatchable exceptions if you attempt to set expando properties + noData: { + "applet ": true, + "embed ": true, + + // ...but Flash objects (which have this classid) *can* handle expandos + "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + jQuery.data( this, key ); + } ); + } + + return arguments.length > 1 ? + + // Sets one value + this.each( function() { + jQuery.data( this, key, value ); + } ) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; + }, + + removeData: function( key ) { + return this.each( function() { + jQuery.removeData( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = jQuery._data( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, + // or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); + + +( function() { + var shrinkWrapBlocksVal; + + support.shrinkWrapBlocks = function() { + if ( shrinkWrapBlocksVal != null ) { + return shrinkWrapBlocksVal; + } + + // Will be changed later if needed. + shrinkWrapBlocksVal = false; + + // Minified: var b,c,d + var div, body, container; + + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + + // Test fired too early or in an unsupported environment, exit. + return; + } + + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + if ( typeof div.style.zoom !== "undefined" ) { + + // Reset CSS: box-sizing; display; margin; border + div.style.cssText = + + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;" + + "padding:1px;width:1px;zoom:1"; + div.appendChild( document.createElement( "div" ) ).style.width = "5px"; + shrinkWrapBlocksVal = div.offsetWidth !== 3; + } + + body.removeChild( container ); + + return shrinkWrapBlocksVal; + }; + +} )(); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || + !jQuery.contains( elem.ownerDocument, elem ); + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { return tween.cur(); } : + function() { return jQuery.css( elem, prop, "" ); }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( + elems[ i ], + key, + raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[ 0 ], key ) : emptyGet; +}; +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([\w:-]+)/ ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + +var rleadingWhitespace = ( /^\s+/ ); + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" + + "details|dialog|figcaption|figure|footer|header|hgroup|main|" + + "mark|meter|nav|output|picture|progress|section|summary|template|time|video"; + + + +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + + +( function() { + var div = document.createElement( "div" ), + fragment = document.createDocumentFragment(), + input = document.createElement( "input" ); + + // Setup + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName( "tbody" ).length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = + document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>"; + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + input.type = "checkbox"; + input.checked = true; + fragment.appendChild( input ); + support.appendChecked = input.checked; + + // Make sure textarea (and checkbox) defaultValue is properly cloned + // Support: IE6-IE11+ + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // #11217 - WebKit loses check when the name is after the checked attribute + fragment.appendChild( div ); + + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input = document.createElement( "input" ); + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 + // old WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+ + support.noCloneEvent = !!div.addEventListener; + + // Support: IE<9 + // Since attributes and properties are the same in IE, + // cleanData must set properties to undefined rather than use removeAttribute + div[ jQuery.expando ] = 1; + support.attributes = !div.getAttribute( jQuery.expando ); +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + option: [ 1, "<select multiple='multiple'>", "</select>" ], + legend: [ 1, "<fieldset>", "</fieldset>" ], + area: [ 1, "<map>", "</map>" ], + + // Support: IE8 + param: [ 1, "<object>", "</object>" ], + thead: [ 1, "<table>", "</table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ] +}; + +// Support: IE8-IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== "undefined" ? + context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; + ( elem = elems[ i ] ) != null; + i++ + ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; ( elem = elems[ i ] ) != null; i++ ) { + jQuery._data( + elem, + "globalEval", + !refElements || jQuery._data( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/, + rtbody = /<tbody/i; + +function fixDefaultChecked( elem ) { + if ( rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +function buildFragment( elems, context, scripts, selection, ignored ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[ 0 ] ) ); + } + + // Remove IE's autoinserted <tbody> from table fragments + if ( !support.tbody ) { + + // String was a <table>, *may* have spurious <tbody> + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare <thead> or <tfoot> + wrap[ 1 ] === "<table>" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), "tbody" ) && + !tbody.childNodes.length ) { + + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; +} + + +( function() { + var i, eventName, + div = document.createElement( "div" ); + + // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events) + for ( i in { submit: true, change: true, focusin: true } ) { + eventName = "on" + i; + + if ( !( support[ i ] = eventName in window ) ) { + + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + div.setAttribute( eventName, "t" ); + support[ i ] = div.attributes[ eventName ].expando === false; + } + } + + // Null elements to avoid leaks in IE. + div = null; +} )(); + + +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE9 +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && + ( !e || jQuery.event.triggered !== e.type ) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + + // Add elem as a property of the handle fn to prevent a memory leak + // with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && + jQuery._data( cur, "handle" ); + + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( + ( !special._default || + special._default.apply( eventPath.pop(), data ) === false + ) && acceptData( elem ) + ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Support (at least): Chrome, IE9 + // Find delegate handlers + // Black-hole SVG <use> instance trees (#13180) + // + // Support: Firefox<=42+ + // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343) + if ( delegateCount && cur.nodeType && + ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push( { elem: cur, handlers: matches } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Safari 6-8+ + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " + + "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split( " " ), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: ( "button buttons clientX clientY fromElement offsetX offsetY " + + "pageX pageY screenX screenY toElement" ).split( " " ), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - + ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - + ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? + original.toElement : + fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + // Piggyback on a donor event to simulate a different one + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + + // Previously, `originalEvent: {}` was set here, so stopPropagation call + // would not be triggered on donor event, since in our own + // jQuery.event.stopPropagation function we had a check for existence of + // originalEvent.stopPropagation method, so, consequently it would be a noop. + // + // Guard for simulated events was moved to jQuery.event.stopPropagation function + // since `originalEvent` should point to the original event for the + // constancy with other events and for more focused logic + } + ); + + jQuery.event.trigger( e, null, elem ); + + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, + // to properly expose it to GC + if ( typeof elem[ name ] === "undefined" ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: IE < 9, Android < 4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( !e || this.isSimulated ) { + return; + } + + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://code.google.com/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +// IE submit delegation +if ( !support.submit ) { + + jQuery.event.special.submit = { + setup: function() { + + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? + + // Support: IE <=8 + // We use jQuery.prop instead of elem.form + // to allow fixing the IE8 delegated submit issue (gh-2332) + // by 3rd party polyfills/workarounds. + jQuery.prop( elem, "form" ) : + undefined; + + if ( form && !jQuery._data( form, "submit" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submitBubble = true; + } ); + jQuery._data( form, "submit", true ); + } + } ); + + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + + // If form was submitted by the user, bubble the event up the tree + if ( event._submitBubble ) { + delete event._submitBubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event ); + } + } + }, + + teardown: function() { + + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !support.change ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._justChanged = true; + } + } ); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._justChanged && !event.isTrigger ) { + this._justChanged = false; + } + + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event ); + } ); + } + return false; + } + + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event ); + } + } ); + jQuery._data( elem, "change", true ); + } + } ); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || + ( elem.type !== "radio" && elem.type !== "checkbox" ) ) { + + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Support: Firefox +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome, Safari +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + jQuery._removeData( doc, fix ); + } else { + jQuery._data( doc, fix, attaches ); + } + } + }; + } ); +} + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + }, + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ), + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, + + // Support: IE 10-11, Edge 10240+ + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /<script|<style|<link/i, + + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement( "div" ) ); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName( "tbody" )[ 0 ] || + elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( jQuery.find.attr( elem, "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + return elem; +} + +function cloneCopyEvent( src, dest ) { + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android<4.1, PhantomJS<2 + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( + ( node.text || node.textContent || node.innerHTML || "" ) + .replace( rcleanScript, "" ) + ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + elems = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = elems[ i ] ) != null; i++ ) { + + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1></$2>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( support.html5Clone || jQuery.isXMLDoc( elem ) || + !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( ( !support.noCloneEvent || !support.noCloneChecked ) && + ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) { + + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[ i ] ) { + fixCloneNodeIssues( node, destElements[ i ] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; ( node = srcElements[ i ] ) != null; i++ ) { + cloneCopyEvent( node, destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + cleanData: function( elems, /* internal */ forceAcceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + attributes = support.attributes, + special = jQuery.event.special; + + for ( ; ( elem = elems[ i ] ) != null; i++ ) { + if ( forceAcceptData || acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // Support: IE<9 + // IE does not allow us to delete expando properties from nodes + // IE creates expando attributes along with the property + // IE does not have a removeAttribute function on Document nodes + if ( !attributes && typeof elem.removeAttribute !== "undefined" ) { + elem.removeAttribute( internalKey ); + + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://code.google.com/p/chromium/issues/detail?id=378607 + } else { + elem[ internalKey ] = undefined; + } + + deletedIds.push( id ); + } + } + } + } + } +} ); + +jQuery.fn.extend( { + + // Keep domManip exposed until 3.0 (gh-2225) + domManip: domManip, + + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( + ( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( value ) + ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + + // Remove element nodes and prevent memory leaks + elem = this[ i ] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); + + +var iframe, + elemdisplay = { + + // Support: Firefox + // We have to pre-define these values for FF (#10227) + HTML: "block", + BODY: "block" + }; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ + +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + display = jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) ) + .appendTo( doc.documentElement ); + + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document; + + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var documentElement = document.documentElement; + + + +( function() { + var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal, + reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + div.style.cssText = "float:left;opacity:.5"; + + // Support: IE<9 + // Make sure that element opacity exists (as opposed to filter) + support.opacity = div.style.opacity === "0.5"; + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!div.style.cssFloat; + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container = document.createElement( "div" ); + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + div.innerHTML = ""; + container.appendChild( div ); + + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" || + div.style.WebkitBoxSizing === ""; + + jQuery.extend( support, { + reliableHiddenOffsets: function() { + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return reliableHiddenOffsetsVal; + }, + + boxSizingReliable: function() { + + // We're checking for pixelPositionVal here instead of boxSizingReliableVal + // since that compresses better and they're computed together anyway. + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return boxSizingReliableVal; + }, + + pixelMarginRight: function() { + + // Support: Android 4.0-4.3 + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return pixelMarginRightVal; + }, + + pixelPosition: function() { + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return pixelPositionVal; + }, + + reliableMarginRight: function() { + + // Support: Android 2.3 + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return reliableMarginRightVal; + }, + + reliableMarginLeft: function() { + + // Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37 + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return reliableMarginLeftVal; + } + } ); + + function computeStyleTests() { + var contents, divStyle, + documentElement = document.documentElement; + + // Setup + documentElement.appendChild( container ); + + div.style.cssText = + + // Support: Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + + // Support: IE<9 + // Assume reasonable values in the absence of getComputedStyle + pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false; + pixelMarginRightVal = reliableMarginRightVal = true; + + // Check for getComputedStyle so that this code is not run in IE<9. + if ( window.getComputedStyle ) { + divStyle = window.getComputedStyle( div ); + pixelPositionVal = ( divStyle || {} ).top !== "1%"; + reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px"; + boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px"; + + // Support: Android 2.3 only + // Div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + contents = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + contents.style.cssText = div.style.cssText = + + // Support: Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + contents.style.marginRight = contents.style.width = "0"; + div.style.width = "1px"; + + reliableMarginRightVal = + !parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight ); + + div.removeChild( contents ); + } + + // Support: IE6-8 + // First check that getClientRects works as expected + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.style.display = "none"; + reliableHiddenOffsetsVal = div.getClientRects().length === 0; + if ( reliableHiddenOffsetsVal ) { + div.style.display = ""; + div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; + div.childNodes[ 0 ].style.borderCollapse = "separate"; + contents = div.getElementsByTagName( "td" ); + contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + if ( reliableHiddenOffsetsVal ) { + contents[ 0 ].style.display = ""; + contents[ 1 ].style.display = "none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + } + } + + // Teardown + documentElement.removeChild( container ); + } + +} )(); + + +var getStyles, curCSS, + rposition = /^(top|right|bottom|left)$/; + +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + curCSS = function( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined; + + // Support: Opera 12.1x only + // Fall back to style even without computed + // computed is undefined for elems on document fragments + if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + if ( computed ) { + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" + // instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, + // but width seems to be reliably pixels + // this is against the CSSOM draft spec: + // http://dev.w3.org/csswg/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + // Support: IE + // IE returns zIndex value as an integer. + return ret === undefined ? + ret : + ret + ""; + }; +} else if ( documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, computed ) { + var left, rs, rsLeft, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + ret = computed ? computed[ name ] : undefined; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are + // proportional to the parent element instead + // and we can't measure the parent instead because it + // might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + // Support: IE + // IE returns zIndex value as an integer. + return ret === undefined ? + ret : + ret + "" || "auto"; + }; +} + + + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/i, + + // swappable if display is none or starts with table except + // "table", "table-cell", or "table-caption" + // see here for display values: + // https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt( 0 ).toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = + jQuery._data( elem, "olddisplay", defaultDisplay( elem.nodeName ) ); + } + } else { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( + elem, + "olddisplay", + hidden ? display : jQuery.css( elem, "display" ) + ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + + // If we already have the right measurement, avoid augmentation + 4 : + + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = support.boxSizing && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + + // normalize float css property + "float": support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || + ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set. See: #7116 + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight + // (for every problematic property) identical functions + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + // Support: IE + // Swallow errors from 'invalid' CSS values (#5509) + try { + style[ name ] = value; + } catch ( e ) {} + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || + ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // certain elements can have dimension info if we invisibly show them + // however, it must have a current display style that would benefit from this + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + elem.offsetWidth === 0 ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + support.boxSizing && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ) : 0 + ); + } + }; +} ); + +if ( !support.opacity ) { + jQuery.cssHooks.opacity = { + get: function( elem, computed ) { + + // IE uses filters for opacity + return ropacity.test( ( computed && elem.currentStyle ? + elem.currentStyle.filter : + elem.style.filter ) || "" ) ? + ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : + computed ? "1" : ""; + }, + + set: function( elem, value ) { + var style = elem.style, + currentStyle = elem.currentStyle, + opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", + filter = currentStyle && currentStyle.filter || style.filter || ""; + + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; + + // if setting opacity to 1, and no other filters exist - + // attempt to remove filter attribute #6652 + // if value === "", then remove inline opacity #12685 + if ( ( value >= 1 || value === "" ) && + jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + style.removeAttribute ) { + + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute( "filter" ); + + // if there is no filter style applied in a css rule + // or unset inline opacity, we are done + if ( value === "" || currentStyle && !currentStyle.filter ) { + return; + } + } + + // otherwise, set new filter values + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; + } + }; +} + +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, + function( elem, computed ) { + if ( computed ) { + return swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); + } + } +); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( + parseFloat( curCSS( elem, "marginLeft" ) ) || + + // Support: IE<=11+ + // Running getBoundingClientRect on a disconnected node in IE throws an error + // Support: IE8 only + // getClientRects() errors on disconnected elems + ( jQuery.contains( elem.ownerDocument, elem ) ? + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) : + 0 + ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 +// Panic based approach to setting things on disconnected nodes + +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + attrs = { height: type }, + i = 0; + + // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // we're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = jQuery._data( elem, "fxshow" ); + + // handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // doing this makes sure that the complete handler will be called + // before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { + + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) { + style.display = "inline-block"; + } else { + style.zoom = 1; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + if ( !support.shrinkWrapBlocks() ) { + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + } + + // show/hide pass + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.exec( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // If there is dataShow left over from a stopped hide or show + // and we are going to proceed with show, we should pretend to be hidden + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; + } + } + + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = jQuery._data( elem, "fxshow", {} ); + } + + // store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done( function() { + jQuery( elem ).hide(); + } ); + } + anim.done( function() { + var prop; + jQuery._removeData( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) { + style.display = display; + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // resolve when we played the last frame + // otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnotwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? + jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || jQuery._data( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = jQuery._data( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // enable finishing flag on private data + data.finish = true; + + // empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + timers = jQuery.timers, + i = 0; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + window.clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var a, + input = document.createElement( "input" ), + div = document.createElement( "div" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + // Setup + div = document.createElement( "div" ); + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + a = div.getElementsByTagName( "a" )[ 0 ]; + + // Support: Windows Web Apps (WWA) + // `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "checkbox" ); + div.appendChild( input ); + + a = div.getElementsByTagName( "a" )[ 0 ]; + + // First batch of tests. + a.style.cssText = "top:1px"; + + // Test setAttribute on camelCase class. + // If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute( "style" ) ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute( "href" ) === "/a"; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement( "form" ).enctype; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE8 only + // Check if we can trust getAttribute("value") + input = document.createElement( "input" ); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; +} )(); + + +var rreturn = /\r/g, + rspaces = /[\x20\t\r\n\f]+/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( + hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + + // handle most common string cases + ret.replace( rreturn, "" ) : + + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? + !option.disabled : + option.getAttribute( "disabled" ) === null ) && + ( !option.parentNode.disabled || + !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) { + + // Support: IE6 + // When new option element is added to select box we need to + // force reflow of newly added node in order to workaround delay + // of initialization properties + try { + option.selected = optionSet = true; + + } catch ( _ ) { + + // Will be executed only in IE6 + option.scrollHeight; + } + + } else { + option.selected = false; + } + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + + return options; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = support.getSetAttribute, + getSetInput = support.input; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + jQuery.nodeName( elem, "input" ) ) { + + // Setting the type on a radio button after the value resets the value in IE8-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + } else { + + // Support: IE<9 + // Use defaultChecked and defaultSelected for oldIE + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + }; + } else { + attrHandle[ name ] = function( elem, name, isXML ) { + if ( !isXML ) { + return elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + } + }; + } +} ); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + ( ret = elem.ownerDocument.createAttribute( name ) ) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + if ( name === "value" || value === elem.getAttribute( name ) ) { + return value; + } + } + }; + + // Some attributes are constructed with empty-string values when not defined + attrHandle.id = attrHandle.name = attrHandle.coords = + function( elem, name, isXML ) { + var ret; + if ( !isXML ) { + return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ? + ret.value : + null; + } + }; + + // Fixing value retrieval on a button requires this module + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + if ( ret && ret.specified ) { + return ret.value; + } + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each( [ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + } ); +} + +if ( !support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case sensitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + + + + +var rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each( function() { + + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch ( e ) {} + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !support.hrefNormalized ) { + + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each( [ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + } ); +} + +// Support: Safari, IE9+ +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + }, + set: function( elem ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + +// IE6/7 call enctype encoding +if ( !support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + + + + +var rclass = /[\t\r\n\f]/g; + +function getClass( elem ) { + return jQuery.attr( elem, "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && + ( " " + curValue + " " ).replace( rclass, " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( curValue !== finalValue ) { + jQuery.attr( elem, "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && + ( " " + curValue + " " ).replace( rclass, " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( curValue !== finalValue ) { + jQuery.attr( elem, "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnotwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // store className if set + jQuery._data( this, "__className__", className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + jQuery.attr( this, "class", + className || value === false ? + "" : + jQuery._data( this, "__className__" ) || "" + ); + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + getClass( elem ) + " " ).replace( rclass, " " ) + .indexOf( className ) > -1 + ) { + return true; + } + } + + return false; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +jQuery.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( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; + +jQuery.parseJSON = function( data ) { + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + + // Support: Android 2.3 + // Workaround failure to string-cast null input + return window.JSON.parse( data + "" ); + } + + var requireNonComma, + depth = null, + str = jQuery.trim( data + "" ); + + // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains + // after removing valid tokens + return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { + + // Force termination if we see a misplaced comma + if ( requireNonComma && comma ) { + depth = 0; + } + + // Perform no more replacements after returning to outermost depth + if ( depth === 0 ) { + return token; + } + + // Commas must not follow "[", "{", or "," + requireNonComma = open || comma; + + // Determine new depth + // array/object open ("[" or "{"): depth += true - false (increment) + // array/object close ("]" or "}"): depth += false - true (decrement) + // other cases ("," or primitive): depth += true - true (numeric cast) + depth += !close - !open; + + // Remove this token + return ""; + } ) ) ? + ( Function( "return " + str ) )() : + jQuery.error( "Invalid JSON: " + data ); +}; + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new window.DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } else { // IE + xml = new window.ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch ( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + + // IE leaves an \r character at EOL + rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Document location + ajaxLocation = location.href, + + // Segment location into parts + ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType.charAt( 0 ) === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var deep, key, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + var firstDataType, ct, finalDataType, type, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s[ "throws" ] ) { // jscs:ignore requireDotNotation + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: ajaxLocation, + type: "GET", + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var + + // Cross-domain detection vars + parts, + + // Loop variable + i, + + // URL without anti-cache param + cacheURL, + + // Response headers as string + responseHeadersString, + + // timeout handle + timeoutTimer, + + // To know if global events are to be dispatched + fireGlobals, + + transport, + + // Response headers + responseHeaders, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // The jqXHR state + state = 0, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( state < 2 ) { + for ( code in map ) { + + // Lazy-add the new callback in a way that preserves old ones + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } else { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || ajaxLocation ) + "" ) + .replace( rhash, "" ) + .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if ( s.cache === false ) { + s.url = rts.test( cacheURL ) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : + + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( state === 2 ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapAll( html.call( this, i ) ); + } ); + } + + if ( this[ 0 ] ) { + + // The elements to wrap the target around + var wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function() { + return this.parent().each( function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + } ).end(); + } +} ); + + +function getDisplay( elem ) { + return elem.style && elem.style.display || jQuery.css( elem, "display" ); +} + +function filterHidden( elem ) { + + // Disconnected elements are considered hidden + if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) { + return true; + } + while ( elem && elem.nodeType === 1 ) { + if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) { + return true; + } + elem = elem.parentNode; + } + return false; +} + +jQuery.expr.filters.hidden = function( elem ) { + + // Support: Opera <= 12.12 + // Opera reports offsetWidths and offsetHeights less than zero on some elements + return support.reliableHiddenOffsets() ? + ( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 && + !elem.getClientRects().length ) : + filterHidden( elem ); +}; + +jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); +}; + + + + +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is(":disabled") so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +// Create the request object +// (This is still attached to ajaxSettings for backward compatibility) +jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ? + + // Support: IE6-IE8 + function() { + + // XHR cannot access local files, always use ActiveX for that case + if ( this.isLocal ) { + return createActiveXHR(); + } + + // Support: IE 9-11 + // IE seems to error on cross-domain PATCH requests when ActiveX XHR + // is used. In IE 9+ always use the native XHR. + // Note: this condition won't catch Edge as it doesn't define + // document.documentMode but it also doesn't support ActiveX so it won't + // reach this code. + if ( document.documentMode > 8 ) { + return createStandardXHR(); + } + + // Support: IE<9 + // oldIE XHR does not support non-RFC2616 methods (#13240) + // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx + // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9 + // Although this check for six methods instead of eight + // since IE also does not support "trace" and "connect" + return /^(get|post|head|put|delete|options)$/i.test( this.type ) && + createStandardXHR() || createActiveXHR(); + } : + + // For all other browsers, use the standard XMLHttpRequest object + createStandardXHR; + +var xhrId = 0, + xhrCallbacks = {}, + xhrSupported = jQuery.ajaxSettings.xhr(); + +// Support: IE<10 +// Open requests must be manually aborted on unload (#5280) +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ]( undefined, true ); + } + } ); +} + +// Determine support properties +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +xhrSupported = support.ajax = !!xhrSupported; + +// Create transport if the browser can provide an xhr +if ( xhrSupported ) { + + jQuery.ajaxTransport( function( options ) { + + // Cross domain only allowed if supported through XMLHttpRequest + if ( !options.crossDomain || support.cors ) { + + var callback; + + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(), + id = ++xhrId; + + // Open the socket + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + + // Support: IE<9 + // IE's ActiveXObject throws a 'Type Mismatch' exception when setting + // request header to a null-value. + // + // To keep consistent with other XHR implementations, cast the value + // to string and ignore `undefined`. + if ( headers[ i ] !== undefined ) { + xhr.setRequestHeader( i, headers[ i ] + "" ); + } + } + + // Do send the request + // This may raise an exception which is actually + // handled in jQuery.ajax (so no try/catch here) + xhr.send( ( options.hasContent && options.data ) || null ); + + // Listener + callback = function( _, isAbort ) { + var status, statusText, responses; + + // Was never called and is aborted or complete + if ( callback && ( isAbort || xhr.readyState === 4 ) ) { + + // Clean up + delete xhrCallbacks[ id ]; + callback = undefined; + xhr.onreadystatechange = jQuery.noop; + + // Abort manually if needed + if ( isAbort ) { + if ( xhr.readyState !== 4 ) { + xhr.abort(); + } + } else { + responses = {}; + status = xhr.status; + + // Support: IE<10 + // Accessing binary-data responseText throws an exception + // (#11426) + if ( typeof xhr.responseText === "string" ) { + responses.text = xhr.responseText; + } + + // Firefox throws an exception when accessing + // statusText for faulty cross-domain requests + try { + statusText = xhr.statusText; + } catch ( e ) { + + // We normalize with Webkit giving an empty statusText + statusText = ""; + } + + // Filter status for non standard behaviors + + // If the request is local and we have data: assume a success + // (success with no data won't get notified, that's the best we + // can do given current implementations) + if ( !status && options.isLocal && !options.crossDomain ) { + status = responses.text ? 200 : 404; + + // IE - #1450: sometimes returns 1223 when it should be 204 + } else if ( status === 1223 ) { + status = 204; + } + } + } + + // Call complete if needed + if ( responses ) { + complete( status, statusText, responses, xhr.getAllResponseHeaders() ); + } + }; + + // Do send the request + // `xhr.send` may raise an exception, but it will be + // handled in jQuery.ajax (so no try/catch here) + if ( !options.async ) { + + // If we're in sync mode we fire the callback + callback(); + } else if ( xhr.readyState === 4 ) { + + // (IE6 & IE7) if it's in cache and has been + // retrieved directly we need to fire the callback + window.setTimeout( callback ); + } else { + + // Register the callback, but delay it in case `xhr.send` throws + // Add to the list of active xhr callbacks + xhr.onreadystatechange = xhrCallbacks[ id ] = callback; + } + }, + + abort: function() { + if ( callback ) { + callback( undefined, true ); + } + } + }; + } + } ); +} + +// Functions to create xhrs +function createStandardXHR() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +} + +function createActiveXHR() { + try { + return new window.ActiveXObject( "Microsoft.XMLHTTP" ); + } catch ( e ) {} +} + + + + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and global +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + s.global = false; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + + var script, + head = document.head || jQuery( "head" )[ 0 ] || document.documentElement; + + return { + + send: function( _, callback ) { + + script = document.createElement( "script" ); + + script.async = true; + + if ( s.scriptCharset ) { + script.charset = s.scriptCharset; + } + + script.src = s.url; + + // Attach handlers for all browsers + script.onload = script.onreadystatechange = function( _, isAbort ) { + + if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { + + // Handle memory leak in IE + script.onload = script.onreadystatechange = null; + + // Remove the script + if ( script.parentNode ) { + script.parentNode.removeChild( script ); + } + + // Dereference the script + script = null; + + // Callback if not abort + if ( !isAbort ) { + callback( 200, "success" ); + } + } + }; + + // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending + // Use native DOM manipulation to avoid our domManip AJAX trickery + head.insertBefore( script, head.firstChild ); + }, + + abort: function() { + if ( script ) { + script.onload( undefined, true ); + } + } + }; + } +} ); + + + + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup( { + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +} ); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && + ( s.contentType || "" ) + .indexOf( "application/x-www-form-urlencoded" ) === 0 && + rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters[ "script json" ] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always( function() { + + // If previous value didn't exist - remove it + if ( overwritten === undefined ) { + jQuery( window ).removeProp( callbackName ); + + // Otherwise restore preexisting value + } else { + window[ callbackName ] = overwritten; + } + + // Save back as free + if ( s[ callbackName ] ) { + + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + } ); + + // Delegate to script + return "script"; + } +} ); + + + + +// data: string of html +// context (optional): If specified, the fragment will be created in this context, +// defaults to document +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[ 1 ] ) ]; + } + + parsed = buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + + +// Keep a copy of the old load method +var _load = jQuery.fn.load; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, type, response, + self = this, + off = url.indexOf( " " ); + + if ( off > -1 ) { + selector = jQuery.trim( url.slice( off, url.length ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax( { + url: url, + + // If "type" variable is undefined, then "GET" method will be used. + // Make value of this field explicit since + // user can override it through ajaxSetup method + type: type || "GET", + dataType: "html", + data: params + } ).done( function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + // If the request succeeds, this function gets "data", "status", "jqXHR" + // but they are ignored because response was set above. + // If it fails, this function gets "jqXHR", "status", "error" + } ).always( callback && function( jqXHR, status ) { + self.each( function() { + callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); + } ); + } ); + } + + return this; +}; + + + + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ + "ajaxStart", + "ajaxStop", + "ajaxComplete", + "ajaxError", + "ajaxSuccess", + "ajaxSend" +], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +} ); + + + + +jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep( jQuery.timers, function( fn ) { + return elem === fn.elem; + } ).length; +}; + + + + + +/** + * Gets a window from an element + */ +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? + elem : + elem.nodeType === 9 ? + elem.defaultView || elem.parentWindow : + false; +} + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + jQuery.inArray( "auto", [ curCSSTop, curCSSLeft ] ) > -1; + + // need to be able to calculate position if either top or left + // is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + + // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) + options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend( { + offset: function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each( function( i ) { + jQuery.offset.setOffset( this, options, i ); + } ); + } + + var docElem, win, + box = { top: 0, left: 0 }, + elem = this[ 0 ], + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // If we don't have gBCR, just use 0,0 rather than error + // BlackBerry 5, iOS 3 (original iPhone) + if ( typeof elem.getBoundingClientRect !== "undefined" ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + return { + top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ), + left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 ) + }; + }, + + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, + parentOffset = { top: 0, left: 0 }, + elem = this[ 0 ]; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, + // because it is its only offset parent + if ( jQuery.css( elem, "position" ) === "fixed" ) { + + // we assume that getBoundingClientRect is available when computed position is fixed + offset = elem.getBoundingClientRect(); + } else { + + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { + parentOffset = offsetParent.offset(); + } + + // Add offsetParent borders + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); + } + + // Subtract parent offsets and element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + return { + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + }; + }, + + offsetParent: function() { + return this.map( function() { + var offsetParent = this.offsetParent; + + while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && + jQuery.css( offsetParent, "position" ) === "static" ) ) { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || documentElement; + } ); + } +} ); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = /Y/.test( prop ); + + jQuery.fn[ method ] = function( val ) { + return access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? ( prop in win ) ? win[ prop ] : + win.document.documentElement[ method ] : + elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : jQuery( win ).scrollLeft(), + top ? val : jQuery( win ).scrollTop() + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +} ); + +// Support: Safari<7-8+, Chrome<37-44+ +// Add the top/left cssHooks using jQuery.fn.position +// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +// getComputedStyle returns percent when specified for top/left/bottom/right +// rather than make the css module depend on the offset module, we just check for it here +jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, + function( elem, computed ) { + if ( computed ) { + computed = curCSS( elem, prop ); + + // if curCSS returns percentage, fallback to offset + return rnumnonpx.test( computed ) ? + jQuery( elem ).position()[ prop ] + "px" : + computed; + } + } + ); +} ); + + +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, + function( defaultExtra, funcName ) { + + // margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, + // but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + } ); +} ); + + +jQuery.fn.extend( { + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? + this.off( selector, "**" ) : + this.off( types, selector || "**", fn ); + } +} ); + +// The number of elements contained in the matched element set +jQuery.fn.size = function() { + return this.length; +}; + +jQuery.fn.andSelf = jQuery.fn.addBack; + + + + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + } ); +} + + + +var + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// Expose jQuery and $ identifiers, even in +// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) +// and CommonJS for browser emulators (#13566) +if ( !noGlobal ) { + window.jQuery = window.$ = jQuery; +} + +return jQuery; +})); diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png Binary files differnew file mode 100644 index 0000000..19f664d --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png Binary files differnew file mode 100644 index 0000000..e965f6d --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png Binary files differnew file mode 100644 index 0000000..9785948 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png Binary files differnew file mode 100644 index 0000000..323c456 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png Binary files differnew file mode 100644 index 0000000..45ac778 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png Binary files differnew file mode 100644 index 0000000..fe41d2d --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/index.html b/javascript/vendor/jquery-ui-1.12.1.custom/index.html new file mode 100644 index 0000000..cb3786f --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/index.html @@ -0,0 +1,325 @@ +<!doctype html> +<html lang="us"> +<head> + <meta charset="utf-8"> + <title>jQuery UI Example Page</title> + <link href="jquery-ui.css" rel="stylesheet"> + <style> + body{ + font-family: "Trebuchet MS", sans-serif; + margin: 50px; + } + .demoHeaders { + margin-top: 2em; + } + #dialog-link { + padding: .4em 1em .4em 20px; + text-decoration: none; + position: relative; + } + #dialog-link span.ui-icon { + margin: 0 5px 0 0; + position: absolute; + left: .2em; + top: 50%; + margin-top: -8px; + } + #icons { + margin: 0; + padding: 0; + } + #icons li { + margin: 2px; + position: relative; + padding: 4px 0; + cursor: pointer; + float: left; + list-style: none; + } + #icons span.ui-icon { + float: left; + margin: 0 4px; + } + .fakewindowcontain .ui-widget-overlay { + position: absolute; + } + select { + width: 200px; + } + </style> +</head> +<body> + +<h1>Welcome to jQuery UI!</h1> + +<div class="ui-widget"> + <p>This page demonstrates the widgets and theme you selected in Download Builder. Please make sure you are using them with a compatible jQuery version.</p> +</div> + +<h1>YOUR COMPONENTS:</h1> + + + + + + + + + + + + + + + + +<h2 class="demoHeaders">Framework Icons (content color preview)</h2> +<ul id="icons" class="ui-widget ui-helper-clearfix"> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-n"><span class="ui-icon ui-icon-caret-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-ne"><span class="ui-icon ui-icon-caret-1-ne"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-e"><span class="ui-icon ui-icon-caret-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-se"><span class="ui-icon ui-icon-caret-1-se"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-s"><span class="ui-icon ui-icon-caret-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-sw"><span class="ui-icon ui-icon-caret-1-sw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-w"><span class="ui-icon ui-icon-caret-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-nw"><span class="ui-icon ui-icon-caret-1-nw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-2-n-s"><span class="ui-icon ui-icon-caret-2-n-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-2-e-w"><span class="ui-icon ui-icon-caret-2-e-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-n"><span class="ui-icon ui-icon-triangle-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-ne"><span class="ui-icon ui-icon-triangle-1-ne"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-e"><span class="ui-icon ui-icon-triangle-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-se"><span class="ui-icon ui-icon-triangle-1-se"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-s"><span class="ui-icon ui-icon-triangle-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-sw"><span class="ui-icon ui-icon-triangle-1-sw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-w"><span class="ui-icon ui-icon-triangle-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-nw"><span class="ui-icon ui-icon-triangle-1-nw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-n-s"><span class="ui-icon ui-icon-triangle-2-n-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-e-w"><span class="ui-icon ui-icon-triangle-2-e-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-n"><span class="ui-icon ui-icon-arrow-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-ne"><span class="ui-icon ui-icon-arrow-1-ne"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-e"><span class="ui-icon ui-icon-arrow-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-se"><span class="ui-icon ui-icon-arrow-1-se"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-s"><span class="ui-icon ui-icon-arrow-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-sw"><span class="ui-icon ui-icon-arrow-1-sw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-w"><span class="ui-icon ui-icon-arrow-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-nw"><span class="ui-icon ui-icon-arrow-1-nw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-n-s"><span class="ui-icon ui-icon-arrow-2-n-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-ne-sw"><span class="ui-icon ui-icon-arrow-2-ne-sw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-e-w"><span class="ui-icon ui-icon-arrow-2-e-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-se-nw"><span class="ui-icon ui-icon-arrow-2-se-nw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-n"><span class="ui-icon ui-icon-arrowstop-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-e"><span class="ui-icon ui-icon-arrowstop-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-s"><span class="ui-icon ui-icon-arrowstop-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-w"><span class="ui-icon ui-icon-arrowstop-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-n"><span class="ui-icon ui-icon-arrowthick-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-ne"><span class="ui-icon ui-icon-arrowthick-1-ne"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-e"><span class="ui-icon ui-icon-arrowthick-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-se"><span class="ui-icon ui-icon-arrowthick-1-se"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-s"><span class="ui-icon ui-icon-arrowthick-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-sw"><span class="ui-icon ui-icon-arrowthick-1-sw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-w"><span class="ui-icon ui-icon-arrowthick-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-nw"><span class="ui-icon ui-icon-arrowthick-1-nw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-n-s"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-ne-sw"><span class="ui-icon ui-icon-arrowthick-2-ne-sw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-e-w"><span class="ui-icon ui-icon-arrowthick-2-e-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-se-nw"><span class="ui-icon ui-icon-arrowthick-2-se-nw"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-n"><span class="ui-icon ui-icon-arrowthickstop-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-e"><span class="ui-icon ui-icon-arrowthickstop-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-s"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-w"><span class="ui-icon ui-icon-arrowthickstop-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-w"><span class="ui-icon ui-icon-arrowreturnthick-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-n"><span class="ui-icon ui-icon-arrowreturnthick-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-e"><span class="ui-icon ui-icon-arrowreturnthick-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-s"><span class="ui-icon ui-icon-arrowreturnthick-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-w"><span class="ui-icon ui-icon-arrowreturn-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-n"><span class="ui-icon ui-icon-arrowreturn-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-e"><span class="ui-icon ui-icon-arrowreturn-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-s"><span class="ui-icon ui-icon-arrowreturn-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-w"><span class="ui-icon ui-icon-arrowrefresh-1-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-n"><span class="ui-icon ui-icon-arrowrefresh-1-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-e"><span class="ui-icon ui-icon-arrowrefresh-1-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-s"><span class="ui-icon ui-icon-arrowrefresh-1-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4"><span class="ui-icon ui-icon-arrow-4"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4-diag"><span class="ui-icon ui-icon-arrow-4-diag"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-extlink"><span class="ui-icon ui-icon-extlink"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-newwin"><span class="ui-icon ui-icon-newwin"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-refresh"><span class="ui-icon ui-icon-refresh"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-shuffle"><span class="ui-icon ui-icon-shuffle"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-transfer-e-w"><span class="ui-icon ui-icon-transfer-e-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-transferthick-e-w"><span class="ui-icon ui-icon-transferthick-e-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-folder-collapsed"><span class="ui-icon ui-icon-folder-collapsed"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-folder-open"><span class="ui-icon ui-icon-folder-open"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-document"><span class="ui-icon ui-icon-document"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-document-b"><span class="ui-icon ui-icon-document-b"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-note"><span class="ui-icon ui-icon-note"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-mail-open"><span class="ui-icon ui-icon-mail-open"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-suitcase"><span class="ui-icon ui-icon-suitcase"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-comment"><span class="ui-icon ui-icon-comment"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-person"><span class="ui-icon ui-icon-person"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-print"><span class="ui-icon ui-icon-print"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-trash"><span class="ui-icon ui-icon-trash"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-locked"><span class="ui-icon ui-icon-locked"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-unlocked"><span class="ui-icon ui-icon-unlocked"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-bookmark"><span class="ui-icon ui-icon-bookmark"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-tag"><span class="ui-icon ui-icon-tag"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-home"><span class="ui-icon ui-icon-home"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-flag"><span class="ui-icon ui-icon-flag"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-calculator"><span class="ui-icon ui-icon-calculator"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-cart"><span class="ui-icon ui-icon-cart"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-pencil"><span class="ui-icon ui-icon-pencil"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-clock"><span class="ui-icon ui-icon-clock"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-disk"><span class="ui-icon ui-icon-disk"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-calendar"><span class="ui-icon ui-icon-calendar"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-zoomin"><span class="ui-icon ui-icon-zoomin"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-zoomout"><span class="ui-icon ui-icon-zoomout"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-search"><span class="ui-icon ui-icon-search"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-wrench"><span class="ui-icon ui-icon-wrench"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-gear"><span class="ui-icon ui-icon-gear"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-heart"><span class="ui-icon ui-icon-heart"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-star"><span class="ui-icon ui-icon-star"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-link"><span class="ui-icon ui-icon-link"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-cancel"><span class="ui-icon ui-icon-cancel"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-plus"><span class="ui-icon ui-icon-plus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-minus"><span class="ui-icon ui-icon-minus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-minusthick"><span class="ui-icon ui-icon-minusthick"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-close"><span class="ui-icon ui-icon-close"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-closethick"><span class="ui-icon ui-icon-closethick"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-key"><span class="ui-icon ui-icon-key"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-lightbulb"><span class="ui-icon ui-icon-lightbulb"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-scissors"><span class="ui-icon ui-icon-scissors"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-clipboard"><span class="ui-icon ui-icon-clipboard"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-copy"><span class="ui-icon ui-icon-copy"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-contact"><span class="ui-icon ui-icon-contact"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-image"><span class="ui-icon ui-icon-image"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-video"><span class="ui-icon ui-icon-video"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-script"><span class="ui-icon ui-icon-script"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-alert"><span class="ui-icon ui-icon-alert"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-info"><span class="ui-icon ui-icon-info"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-notice"><span class="ui-icon ui-icon-notice"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-help"><span class="ui-icon ui-icon-help"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-bullet"><span class="ui-icon ui-icon-bullet"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-radio-off"><span class="ui-icon ui-icon-radio-off"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-radio-on"><span class="ui-icon ui-icon-radio-on"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-pin-w"><span class="ui-icon ui-icon-pin-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-pin-s"><span class="ui-icon ui-icon-pin-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-play"><span class="ui-icon ui-icon-play"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-pause"><span class="ui-icon ui-icon-pause"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-next"><span class="ui-icon ui-icon-seek-next"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-prev"><span class="ui-icon ui-icon-seek-prev"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-end"><span class="ui-icon ui-icon-seek-end"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-first"><span class="ui-icon ui-icon-seek-first"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-stop"><span class="ui-icon ui-icon-stop"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-eject"><span class="ui-icon ui-icon-eject"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-volume-off"><span class="ui-icon ui-icon-volume-off"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-volume-on"><span class="ui-icon ui-icon-volume-on"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-power"><span class="ui-icon ui-icon-power"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-signal-diag"><span class="ui-icon ui-icon-signal-diag"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-signal"><span class="ui-icon ui-icon-signal"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-0"><span class="ui-icon ui-icon-battery-0"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-1"><span class="ui-icon ui-icon-battery-1"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-2"><span class="ui-icon ui-icon-battery-2"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-3"><span class="ui-icon ui-icon-battery-3"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-plus"><span class="ui-icon ui-icon-circle-plus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-minus"><span class="ui-icon ui-icon-circle-minus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-close"><span class="ui-icon ui-icon-circle-close"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-e"><span class="ui-icon ui-icon-circle-triangle-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-s"><span class="ui-icon ui-icon-circle-triangle-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-w"><span class="ui-icon ui-icon-circle-triangle-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-n"><span class="ui-icon ui-icon-circle-triangle-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-e"><span class="ui-icon ui-icon-circle-arrow-e"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-s"><span class="ui-icon ui-icon-circle-arrow-s"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-w"><span class="ui-icon ui-icon-circle-arrow-w"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-n"><span class="ui-icon ui-icon-circle-arrow-n"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomin"><span class="ui-icon ui-icon-circle-zoomin"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomout"><span class="ui-icon ui-icon-circle-zoomout"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-check"><span class="ui-icon ui-icon-circle-check"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-plus"><span class="ui-icon ui-icon-circlesmall-plus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-minus"><span class="ui-icon ui-icon-circlesmall-minus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-close"><span class="ui-icon ui-icon-circlesmall-close"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-plus"><span class="ui-icon ui-icon-squaresmall-plus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-minus"><span class="ui-icon ui-icon-squaresmall-minus"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-close"><span class="ui-icon ui-icon-squaresmall-close"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-vertical"><span class="ui-icon ui-icon-grip-dotted-vertical"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-horizontal"><span class="ui-icon ui-icon-grip-dotted-horizontal"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-vertical"><span class="ui-icon ui-icon-grip-solid-vertical"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-horizontal"><span class="ui-icon ui-icon-grip-solid-horizontal"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-gripsmall-diagonal-se"><span class="ui-icon ui-icon-gripsmall-diagonal-se"></span></li> + <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></li> +</ul> + + + + + + + + + + + + + + + +<!-- Highlight / Error --> +<h2 class="demoHeaders">Highlight / Error</h2> +<div class="ui-widget"> + <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;"> + <p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span> + <strong>Hey!</strong> Sample ui-state-highlight style.</p> + </div> +</div> +<br> +<div class="ui-widget"> + <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"> + <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span> + <strong>Alert:</strong> Sample ui-state-error style.</p> + </div> +</div> + +<script src="external/jquery/jquery.js"></script> +<script src="jquery-ui.js"></script> +<script> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// Hover states on the static widgets +$( "#dialog-link, #icons li" ).hover( + function() { + $( this ).addClass( "ui-state-hover" ); + }, + function() { + $( this ).removeClass( "ui-state-hover" ); + } +); +</script> +</body> +</html> diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css new file mode 100644 index 0000000..916181d --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css @@ -0,0 +1,596 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.ui-widget-shadow { + -webkit-box-shadow: 0px 0px 5px #666666; + box-shadow: 0px 0px 5px #666666; +} diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js new file mode 100644 index 0000000..fc62b9a --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js @@ -0,0 +1,3553 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Includes: widget.js, data.js, disable-selection.js, scroll-parent.js, widgets/draggable.js, widgets/resizable.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { + +$.ui = $.ui || {}; + +var version = $.ui.version = "1.12.1"; + + +/*! + * jQuery UI Widget 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Widget +//>>group: Core +//>>description: Provides a factory for creating stateful widgets with a common API. +//>>docs: http://api.jqueryui.com/jQuery.widget/ +//>>demos: http://jqueryui.com/widget/ + + + +var widgetUuid = 0; +var widgetSlice = Array.prototype.slice; + +$.cleanData = ( function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // Http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +} )( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var existingConstructor, constructor, basePrototype; + + // ProxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + var proxiedPrototype = {}; + + var namespace = name.split( "." )[ 0 ]; + name = name.split( "." )[ 1 ]; + var fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + if ( $.isArray( prototype ) ) { + prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); + } + + // Create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + + // Allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // Allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + // Extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + + // Copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + + // Track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + } ); + + basePrototype = new base(); + + // We need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = ( function() { + function _super() { + return base.prototype[ prop ].apply( this, arguments ); + } + + function _superApply( args ) { + return base.prototype[ prop ].apply( this, args ); + } + + return function() { + var __super = this._super; + var __superApply = this._superApply; + var returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + } )(); + } ); + constructor.prototype = $.widget.extend( basePrototype, { + + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + } ); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // Redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, + child._proto ); + } ); + + // Remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widgetSlice.call( arguments, 1 ); + var inputIndex = 0; + var inputLength = input.length; + var key; + var value; + + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string"; + var args = widgetSlice.call( arguments, 1 ); + var returnValue = this; + + if ( isMethodCall ) { + + // If this is an empty collection, we need to have the instance method + // return undefined instead of the jQuery instance + if ( !this.length && options === "instance" ) { + returnValue = undefined; + } else { + this.each( function() { + var methodValue; + var instance = $.data( this, fullName ); + + if ( options === "instance" ) { + returnValue = instance; + return false; + } + + if ( !instance ) { + return $.error( "cannot call methods on " + name + + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + + if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + + " widget instance" ); + } + + methodValue = instance[ options ].apply( instance, args ); + + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + } ); + } + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat( args ) ); + } + + this.each( function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + } ); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "<div>", + + options: { + classes: {}, + disabled: false, + + // Callbacks + create: null + }, + + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widgetUuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + this.classesElementLookup = {}; + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + } ); + this.document = $( element.style ? + + // Element within the document + element.ownerDocument : + + // Element is window or document + element.document || element ); + this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + + if ( this.options.disabled ) { + this._setOptionDisabled( this.options.disabled ); + } + + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + + _getCreateOptions: function() { + return {}; + }, + + _getCreateEventData: $.noop, + + _create: $.noop, + + _init: $.noop, + + destroy: function() { + var that = this; + + this._destroy(); + $.each( this.classesElementLookup, function( key, value ) { + that._removeClass( value, key ); + } ); + + // We can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .off( this.eventNamespace ) + .removeData( this.widgetFullName ); + this.widget() + .off( this.eventNamespace ) + .removeAttr( "aria-disabled" ); + + // Clean up events and states + this.bindings.off( this.eventNamespace ); + }, + + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + var parts; + var curOption; + var i; + + if ( arguments.length === 0 ) { + + // Don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + + // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + + _setOption: function( key, value ) { + if ( key === "classes" ) { + this._setOptionClasses( value ); + } + + this.options[ key ] = value; + + if ( key === "disabled" ) { + this._setOptionDisabled( value ); + } + + return this; + }, + + _setOptionClasses: function( value ) { + var classKey, elements, currentElements; + + for ( classKey in value ) { + currentElements = this.classesElementLookup[ classKey ]; + if ( value[ classKey ] === this.options.classes[ classKey ] || + !currentElements || + !currentElements.length ) { + continue; + } + + // We are doing this to create a new jQuery object because the _removeClass() call + // on the next line is going to destroy the reference to the current elements being + // tracked. We need to save a copy of this collection so that we can add the new classes + // below. + elements = $( currentElements.get() ); + this._removeClass( currentElements, classKey ); + + // We don't use _addClass() here, because that uses this.options.classes + // for generating the string of classes. We want to use the value passed in from + // _setOption(), this is the new value of the classes option which was passed to + // _setOption(). We pass this value directly to _classes(). + elements.addClass( this._classes( { + element: elements, + keys: classKey, + classes: value, + add: true + } ) ); + } + }, + + _setOptionDisabled: function( value ) { + this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this._removeClass( this.hoverable, null, "ui-state-hover" ); + this._removeClass( this.focusable, null, "ui-state-focus" ); + } + }, + + enable: function() { + return this._setOptions( { disabled: false } ); + }, + + disable: function() { + return this._setOptions( { disabled: true } ); + }, + + _classes: function( options ) { + var full = []; + var that = this; + + options = $.extend( { + element: this.element, + classes: this.options.classes || {} + }, options ); + + function processClassString( classes, checkOption ) { + var current, i; + for ( i = 0; i < classes.length; i++ ) { + current = that.classesElementLookup[ classes[ i ] ] || $(); + if ( options.add ) { + current = $( $.unique( current.get().concat( options.element.get() ) ) ); + } else { + current = $( current.not( options.element ).get() ); + } + that.classesElementLookup[ classes[ i ] ] = current; + full.push( classes[ i ] ); + if ( checkOption && options.classes[ classes[ i ] ] ) { + full.push( options.classes[ classes[ i ] ] ); + } + } + } + + this._on( options.element, { + "remove": "_untrackClassesElement" + } ); + + if ( options.keys ) { + processClassString( options.keys.match( /\S+/g ) || [], true ); + } + if ( options.extra ) { + processClassString( options.extra.match( /\S+/g ) || [] ); + } + + return full.join( " " ); + }, + + _untrackClassesElement: function( event ) { + var that = this; + $.each( that.classesElementLookup, function( key, value ) { + if ( $.inArray( event.target, value ) !== -1 ) { + that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); + } + } ); + }, + + _removeClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, false ); + }, + + _addClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, true ); + }, + + _toggleClass: function( element, keys, extra, add ) { + add = ( typeof add === "boolean" ) ? add : extra; + var shift = ( typeof element === "string" || element === null ), + options = { + extra: shift ? keys : extra, + keys: shift ? element : keys, + element: shift ? this.element : element, + add: add + }; + options.element.toggleClass( this._classes( options ), add ); + return this; + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement; + var instance = this; + + // No suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // No element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + + // Allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // Copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ); + var eventName = match[ 1 ] + instance.eventNamespace; + var selector = match[ 2 ]; + + if ( selector ) { + delegateElement.on( eventName, selector, handlerProxy ); + } else { + element.on( eventName, handlerProxy ); + } + } ); + }, + + _off: function( element, eventName ) { + eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.off( eventName ).off( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); + }, + mouseleave: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); + } + } ); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); + }, + focusout: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); + } + } ); + }, + + _trigger: function( type, event, data ) { + var prop, orig; + var callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + + // The original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // Copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + + var hasOptions; + var effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + + if ( options.delay ) { + element.delay( options.delay ); + } + + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue( function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + } ); + } + }; +} ); + +var widget = $.widget; + + +/*! + * jQuery UI :data 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :data Selector +//>>group: Core +//>>description: Selects elements which have data stored under the specified key. +//>>docs: http://api.jqueryui.com/data-selector/ + + +var data = $.extend( $.expr[ ":" ], { + data: $.expr.createPseudo ? + $.expr.createPseudo( function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + } ) : + + // Support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + } +} ); + +/*! + * jQuery UI Disable Selection 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: http://api.jqueryui.com/disableSelection/ + +// This file is deprecated + + +var disableSelection = $.fn.extend( { + disableSelection: ( function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.on( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + } ); + }; + } )(), + + enableSelection: function() { + return this.off( ".ui-disableSelection" ); + } +} ); + + +/*! + * jQuery UI Scroll Parent 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: scrollParent +//>>group: Core +//>>description: Get the closest ancestor element that is scrollable. +//>>docs: http://api.jqueryui.com/scrollParent/ + + + +var scrollParent = $.fn.scrollParent = function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + + parent.css( "overflow-x" ) ); + } ).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? + $( this[ 0 ].ownerDocument || document ) : + scrollParent; +}; + + + + +// This file is deprecated +var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +/*! + * jQuery UI Mouse 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Mouse +//>>group: Widgets +//>>description: Abstracts mouse-based interactions to assist in creating certain widgets. +//>>docs: http://api.jqueryui.com/mouse/ + + + +var mouseHandled = false; +$( document ).on( "mouseup", function() { + mouseHandled = false; +} ); + +var widgetsMouse = $.widget( "ui.mouse", { + version: "1.12.1", + options: { + cancel: "input, textarea, button, select, option", + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var that = this; + + this.element + .on( "mousedown." + this.widgetName, function( event ) { + return that._mouseDown( event ); + } ) + .on( "click." + this.widgetName, function( event ) { + if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, that.widgetName + ".preventClickEvent" ); + event.stopImmediatePropagation(); + return false; + } + } ); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.off( "." + this.widgetName ); + if ( this._mouseMoveDelegate ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + } + }, + + _mouseDown: function( event ) { + + // don't let more than one widget handle mouseStart + if ( mouseHandled ) { + return; + } + + this._mouseMoved = false; + + // We may have missed mouseup (out of window) + ( this._mouseStarted && this._mouseUp( event ) ); + + this._mouseDownEvent = event; + + var that = this, + btnIsLeft = ( event.which === 1 ), + + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ? + $( event.target ).closest( this.options.cancel ).length : false ); + if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if ( !this.mouseDelayMet ) { + this._mouseDelayTimer = setTimeout( function() { + that.mouseDelayMet = true; + }, this.options.delay ); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = ( this._mouseStart( event ) !== false ); + if ( !this._mouseStarted ) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, this.widgetName + ".preventClickEvent" ); + } + + // These delegates are required to keep context + this._mouseMoveDelegate = function( event ) { + return that._mouseMove( event ); + }; + this._mouseUpDelegate = function( event ) { + return that._mouseUp( event ); + }; + + this.document + .on( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .on( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function( event ) { + + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + + // IE mouseup check - mouseup happened when mouse was out of window + if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && + !event.button ) { + return this._mouseUp( event ); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + + // Support: Safari <=8 - 9 + // Safari sets which to 0 if you press any of the following keys + // during a drag (#14461) + if ( event.originalEvent.altKey || event.originalEvent.ctrlKey || + event.originalEvent.metaKey || event.originalEvent.shiftKey ) { + this.ignoreMissingWhich = true; + } else if ( !this.ignoreMissingWhich ) { + return this._mouseUp( event ); + } + } + } + + if ( event.which || event.button ) { + this._mouseMoved = true; + } + + if ( this._mouseStarted ) { + this._mouseDrag( event ); + return event.preventDefault(); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = + ( this._mouseStart( this._mouseDownEvent, event ) !== false ); + ( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) ); + } + + return !this._mouseStarted; + }, + + _mouseUp: function( event ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + if ( this._mouseStarted ) { + this._mouseStarted = false; + + if ( event.target === this._mouseDownEvent.target ) { + $.data( event.target, this.widgetName + ".preventClickEvent", true ); + } + + this._mouseStop( event ); + } + + if ( this._mouseDelayTimer ) { + clearTimeout( this._mouseDelayTimer ); + delete this._mouseDelayTimer; + } + + this.ignoreMissingWhich = false; + mouseHandled = false; + event.preventDefault(); + }, + + _mouseDistanceMet: function( event ) { + return ( Math.max( + Math.abs( this._mouseDownEvent.pageX - event.pageX ), + Math.abs( this._mouseDownEvent.pageY - event.pageY ) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function( /* event */ ) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function( /* event */ ) {}, + _mouseDrag: function( /* event */ ) {}, + _mouseStop: function( /* event */ ) {}, + _mouseCapture: function( /* event */ ) { return true; } +} ); + + + + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +var plugin = $.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || + instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + + + +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> + try { + activeElement = document.activeElement; + } catch ( error ) { + activeElement = document.body; + } + + // Support: IE 9 - 11 only + // IE may return null instead of an element + // Interestingly, this only seems to occur when NOT in an iframe + if ( !activeElement ) { + activeElement = document.body; + } + + // Support: IE 11 only + // IE11 returns a seemingly empty object in some cases when accessing + // document.activeElement from an <iframe> + if ( !activeElement.nodeName ) { + activeElement = document.body; + } + + return activeElement; +}; + + + +var safeBlur = $.ui.safeBlur = function( element ) { + + // Support: IE9 - 10 only + // If the <body> is blurred, IE will switch windows, see #9420 + if ( element && element.nodeName.toLowerCase() !== "body" ) { + $( element ).trigger( "blur" ); + } +}; + + +/*! + * jQuery UI Draggable 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Draggable +//>>group: Interactions +//>>description: Enables dragging functionality for any element. +//>>docs: http://api.jqueryui.com/draggable/ +//>>demos: http://jqueryui.com/draggable/ +//>>css.structure: ../../themes/base/draggable.css + + + +$.widget( "ui.draggable", $.ui.mouse, { + version: "1.12.1", + widgetEventPrefix: "drag", + options: { + addClasses: true, + appendTo: "parent", + axis: false, + connectToSortable: false, + containment: false, + cursor: "auto", + cursorAt: false, + grid: false, + handle: false, + helper: "original", + iframeFix: false, + opacity: false, + refreshPositions: false, + revert: false, + revertDuration: 500, + scope: "default", + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + snap: false, + snapMode: "both", + snapTolerance: 20, + stack: false, + zIndex: false, + + // Callbacks + drag: null, + start: null, + stop: null + }, + _create: function() { + + if ( this.options.helper === "original" ) { + this._setPositionRelative(); + } + if ( this.options.addClasses ) { + this._addClass( "ui-draggable" ); + } + this._setHandleClassName(); + + this._mouseInit(); + }, + + _setOption: function( key, value ) { + this._super( key, value ); + if ( key === "handle" ) { + this._removeHandleClassName(); + this._setHandleClassName(); + } + }, + + _destroy: function() { + if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) { + this.destroyOnClear = true; + return; + } + this._removeHandleClassName(); + this._mouseDestroy(); + }, + + _mouseCapture: function( event ) { + var o = this.options; + + // Among others, prevent a drag on a resizable-handle + if ( this.helper || o.disabled || + $( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) { + return false; + } + + //Quit if we're not on a valid handle + this.handle = this._getHandle( event ); + if ( !this.handle ) { + return false; + } + + this._blurActiveElement( event ); + + this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); + + return true; + + }, + + _blockFrames: function( selector ) { + this.iframeBlocks = this.document.find( selector ).map( function() { + var iframe = $( this ); + + return $( "<div>" ) + .css( "position", "absolute" ) + .appendTo( iframe.parent() ) + .outerWidth( iframe.outerWidth() ) + .outerHeight( iframe.outerHeight() ) + .offset( iframe.offset() )[ 0 ]; + } ); + }, + + _unblockFrames: function() { + if ( this.iframeBlocks ) { + this.iframeBlocks.remove(); + delete this.iframeBlocks; + } + }, + + _blurActiveElement: function( event ) { + var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ), + target = $( event.target ); + + // Don't blur if the event occurred on an element that is within + // the currently focused element + // See #10527, #12472 + if ( target.closest( activeElement ).length ) { + return; + } + + // Blur any element that currently has focus, see #4261 + $.ui.safeBlur( activeElement ); + }, + + _mouseStart: function( event ) { + + var o = this.options; + + //Create and append the visible helper + this.helper = this._createHelper( event ); + + this._addClass( this.helper, "ui-draggable-dragging" ); + + //Cache the helper size + this._cacheHelperProportions(); + + //If ddmanager is used for droppables, set the global draggable + if ( $.ui.ddmanager ) { + $.ui.ddmanager.current = this; + } + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Store the helper's css position + this.cssPosition = this.helper.css( "position" ); + this.scrollParent = this.helper.scrollParent( true ); + this.offsetParent = this.helper.offsetParent(); + this.hasFixedAncestor = this.helper.parents().filter( function() { + return $( this ).css( "position" ) === "fixed"; + } ).length > 0; + + //The element's absolute position on the page minus margins + this.positionAbs = this.element.offset(); + this._refreshOffsets( event ); + + //Generate the original position + this.originalPosition = this.position = this._generatePosition( event, false ); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if "cursorAt" is supplied + ( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) ); + + //Set a containment if given in the options + this._setContainment(); + + //Trigger event + callbacks + if ( this._trigger( "start", event ) === false ) { + this._clear(); + return false; + } + + //Recache the helper size + this._cacheHelperProportions(); + + //Prepare the droppable offsets + if ( $.ui.ddmanager && !o.dropBehaviour ) { + $.ui.ddmanager.prepareOffsets( this, event ); + } + + // Execute the drag once - this causes the helper not to be visible before getting its + // correct position + this._mouseDrag( event, true ); + + // If the ddmanager is used for droppables, inform the manager that dragging has started + // (see #5003) + if ( $.ui.ddmanager ) { + $.ui.ddmanager.dragStart( this, event ); + } + + return true; + }, + + _refreshOffsets: function( event ) { + this.offset = { + top: this.positionAbs.top - this.margins.top, + left: this.positionAbs.left - this.margins.left, + scroll: false, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() + }; + + this.offset.click = { + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }; + }, + + _mouseDrag: function( event, noPropagation ) { + + // reset any necessary cached properties (see #5009) + if ( this.hasFixedAncestor ) { + this.offset.parent = this._getParentOffset(); + } + + //Compute the helpers position + this.position = this._generatePosition( event, true ); + this.positionAbs = this._convertPositionTo( "absolute" ); + + //Call plugins and callbacks and use the resulting position if something is returned + if ( !noPropagation ) { + var ui = this._uiHash(); + if ( this._trigger( "drag", event, ui ) === false ) { + this._mouseUp( new $.Event( "mouseup", event ) ); + return false; + } + this.position = ui.position; + } + + this.helper[ 0 ].style.left = this.position.left + "px"; + this.helper[ 0 ].style.top = this.position.top + "px"; + + if ( $.ui.ddmanager ) { + $.ui.ddmanager.drag( this, event ); + } + + return false; + }, + + _mouseStop: function( event ) { + + //If we are using droppables, inform the manager about the drop + var that = this, + dropped = false; + if ( $.ui.ddmanager && !this.options.dropBehaviour ) { + dropped = $.ui.ddmanager.drop( this, event ); + } + + //if a drop comes from outside (a sortable) + if ( this.dropped ) { + dropped = this.dropped; + this.dropped = false; + } + + if ( ( this.options.revert === "invalid" && !dropped ) || + ( this.options.revert === "valid" && dropped ) || + this.options.revert === true || ( $.isFunction( this.options.revert ) && + this.options.revert.call( this.element, dropped ) ) + ) { + $( this.helper ).animate( + this.originalPosition, + parseInt( this.options.revertDuration, 10 ), + function() { + if ( that._trigger( "stop", event ) !== false ) { + that._clear(); + } + } + ); + } else { + if ( this._trigger( "stop", event ) !== false ) { + this._clear(); + } + } + + return false; + }, + + _mouseUp: function( event ) { + this._unblockFrames(); + + // If the ddmanager is used for droppables, inform the manager that dragging has stopped + // (see #5003) + if ( $.ui.ddmanager ) { + $.ui.ddmanager.dragStop( this, event ); + } + + // Only need to focus if the event occurred on the draggable itself, see #10527 + if ( this.handleElement.is( event.target ) ) { + + // The interaction is over; whether or not the click resulted in a drag, + // focus the element + this.element.trigger( "focus" ); + } + + return $.ui.mouse.prototype._mouseUp.call( this, event ); + }, + + cancel: function() { + + if ( this.helper.is( ".ui-draggable-dragging" ) ) { + this._mouseUp( new $.Event( "mouseup", { target: this.element[ 0 ] } ) ); + } else { + this._clear(); + } + + return this; + + }, + + _getHandle: function( event ) { + return this.options.handle ? + !!$( event.target ).closest( this.element.find( this.options.handle ) ).length : + true; + }, + + _setHandleClassName: function() { + this.handleElement = this.options.handle ? + this.element.find( this.options.handle ) : this.element; + this._addClass( this.handleElement, "ui-draggable-handle" ); + }, + + _removeHandleClassName: function() { + this._removeClass( this.handleElement, "ui-draggable-handle" ); + }, + + _createHelper: function( event ) { + + var o = this.options, + helperIsFunction = $.isFunction( o.helper ), + helper = helperIsFunction ? + $( o.helper.apply( this.element[ 0 ], [ event ] ) ) : + ( o.helper === "clone" ? + this.element.clone().removeAttr( "id" ) : + this.element ); + + if ( !helper.parents( "body" ).length ) { + helper.appendTo( ( o.appendTo === "parent" ? + this.element[ 0 ].parentNode : + o.appendTo ) ); + } + + // Http://bugs.jqueryui.com/ticket/9446 + // a helper function can return the original element + // which wouldn't have been set to relative in _create + if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) { + this._setPositionRelative(); + } + + if ( helper[ 0 ] !== this.element[ 0 ] && + !( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) { + helper.css( "position", "absolute" ); + } + + return helper; + + }, + + _setPositionRelative: function() { + if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) { + this.element[ 0 ].style.position = "relative"; + } + }, + + _adjustOffsetFromHelper: function( obj ) { + if ( typeof obj === "string" ) { + obj = obj.split( " " ); + } + if ( $.isArray( obj ) ) { + obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 }; + } + if ( "left" in obj ) { + this.offset.click.left = obj.left + this.margins.left; + } + if ( "right" in obj ) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ( "top" in obj ) { + this.offset.click.top = obj.top + this.margins.top; + } + if ( "bottom" in obj ) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _isRootNode: function( element ) { + return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ]; + }, + + _getParentOffset: function() { + + //Get the offsetParent and cache its position + var po = this.offsetParent.offset(), + document = this.document[ 0 ]; + + // This is a special case where we need to modify a offset calculated on start, since the + // following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the + // next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't + // the document, which means that the scroll is included in the initial calculation of the + // offset of the parent, and never recalculated upon drag + if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== document && + $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if ( this._isRootNode( this.offsetParent[ 0 ] ) ) { + po = { top: 0, left: 0 }; + } + + return { + top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ), + left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 ) + }; + + }, + + _getRelativeOffset: function() { + if ( this.cssPosition !== "relative" ) { + return { top: 0, left: 0 }; + } + + var p = this.element.position(), + scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ); + + return { + top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) + + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ), + left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) + + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 ) + }; + + }, + + _cacheMargins: function() { + this.margins = { + left: ( parseInt( this.element.css( "marginLeft" ), 10 ) || 0 ), + top: ( parseInt( this.element.css( "marginTop" ), 10 ) || 0 ), + right: ( parseInt( this.element.css( "marginRight" ), 10 ) || 0 ), + bottom: ( parseInt( this.element.css( "marginBottom" ), 10 ) || 0 ) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var isUserScrollable, c, ce, + o = this.options, + document = this.document[ 0 ]; + + this.relativeContainer = null; + + if ( !o.containment ) { + this.containment = null; + return; + } + + if ( o.containment === "window" ) { + this.containment = [ + $( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left, + $( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top, + $( window ).scrollLeft() + $( window ).width() - + this.helperProportions.width - this.margins.left, + $( window ).scrollTop() + + ( $( window ).height() || document.body.parentNode.scrollHeight ) - + this.helperProportions.height - this.margins.top + ]; + return; + } + + if ( o.containment === "document" ) { + this.containment = [ + 0, + 0, + $( document ).width() - this.helperProportions.width - this.margins.left, + ( $( document ).height() || document.body.parentNode.scrollHeight ) - + this.helperProportions.height - this.margins.top + ]; + return; + } + + if ( o.containment.constructor === Array ) { + this.containment = o.containment; + return; + } + + if ( o.containment === "parent" ) { + o.containment = this.helper[ 0 ].parentNode; + } + + c = $( o.containment ); + ce = c[ 0 ]; + + if ( !ce ) { + return; + } + + isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) ); + + this.containment = [ + ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), + ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), + ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - + ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - + this.helperProportions.width - + this.margins.left - + this.margins.right, + ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - + ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - + this.helperProportions.height - + this.margins.top - + this.margins.bottom + ]; + this.relativeContainer = c; + }, + + _convertPositionTo: function( d, pos ) { + + if ( !pos ) { + pos = this.position; + } + + var mod = d === "absolute" ? 1 : -1, + scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ); + + return { + top: ( + + // The absolute mouse position + pos.top + + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.top * mod + + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.top * mod - + ( ( this.cssPosition === "fixed" ? + -this.offset.scroll.top : + ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod ) + ), + left: ( + + // The absolute mouse position + pos.left + + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.left * mod + + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.left * mod - + ( ( this.cssPosition === "fixed" ? + -this.offset.scroll.left : + ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod ) + ) + }; + + }, + + _generatePosition: function( event, constrainPosition ) { + + var containment, co, top, left, + o = this.options, + scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ), + pageX = event.pageX, + pageY = event.pageY; + + // Cache the scroll + if ( !scrollIsRootNode || !this.offset.scroll ) { + this.offset.scroll = { + top: this.scrollParent.scrollTop(), + left: this.scrollParent.scrollLeft() + }; + } + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + // If we are not dragging yet, we won't check for options + if ( constrainPosition ) { + if ( this.containment ) { + if ( this.relativeContainer ) { + co = this.relativeContainer.offset(); + containment = [ + this.containment[ 0 ] + co.left, + this.containment[ 1 ] + co.top, + this.containment[ 2 ] + co.left, + this.containment[ 3 ] + co.top + ]; + } else { + containment = this.containment; + } + + if ( event.pageX - this.offset.click.left < containment[ 0 ] ) { + pageX = containment[ 0 ] + this.offset.click.left; + } + if ( event.pageY - this.offset.click.top < containment[ 1 ] ) { + pageY = containment[ 1 ] + this.offset.click.top; + } + if ( event.pageX - this.offset.click.left > containment[ 2 ] ) { + pageX = containment[ 2 ] + this.offset.click.left; + } + if ( event.pageY - this.offset.click.top > containment[ 3 ] ) { + pageY = containment[ 3 ] + this.offset.click.top; + } + } + + if ( o.grid ) { + + //Check for grid elements set to 0 to prevent divide by 0 error causing invalid + // argument errors in IE (see ticket #6950) + top = o.grid[ 1 ] ? this.originalPageY + Math.round( ( pageY - + this.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY; + pageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] || + top - this.offset.click.top > containment[ 3 ] ) ? + top : + ( ( top - this.offset.click.top >= containment[ 1 ] ) ? + top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top; + + left = o.grid[ 0 ] ? this.originalPageX + + Math.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] : + this.originalPageX; + pageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] || + left - this.offset.click.left > containment[ 2 ] ) ? + left : + ( ( left - this.offset.click.left >= containment[ 0 ] ) ? + left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left; + } + + if ( o.axis === "y" ) { + pageX = this.originalPageX; + } + + if ( o.axis === "x" ) { + pageY = this.originalPageY; + } + } + + return { + top: ( + + // The absolute mouse position + pageY - + + // Click offset (relative to the element) + this.offset.click.top - + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.top - + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.top + + ( this.cssPosition === "fixed" ? + -this.offset.scroll.top : + ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) + ), + left: ( + + // The absolute mouse position + pageX - + + // Click offset (relative to the element) + this.offset.click.left - + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.left - + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.left + + ( this.cssPosition === "fixed" ? + -this.offset.scroll.left : + ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) + ) + }; + + }, + + _clear: function() { + this._removeClass( this.helper, "ui-draggable-dragging" ); + if ( this.helper[ 0 ] !== this.element[ 0 ] && !this.cancelHelperRemoval ) { + this.helper.remove(); + } + this.helper = null; + this.cancelHelperRemoval = false; + if ( this.destroyOnClear ) { + this.destroy(); + } + }, + + // From now on bulk stuff - mainly helpers + + _trigger: function( type, event, ui ) { + ui = ui || this._uiHash(); + $.ui.plugin.call( this, type, [ event, ui, this ], true ); + + // Absolute position and offset (see #6884 ) have to be recalculated after plugins + if ( /^(drag|start|stop)/.test( type ) ) { + this.positionAbs = this._convertPositionTo( "absolute" ); + ui.offset = this.positionAbs; + } + return $.Widget.prototype._trigger.call( this, type, event, ui ); + }, + + plugins: {}, + + _uiHash: function() { + return { + helper: this.helper, + position: this.position, + originalPosition: this.originalPosition, + offset: this.positionAbs + }; + } + +} ); + +$.ui.plugin.add( "draggable", "connectToSortable", { + start: function( event, ui, draggable ) { + var uiSortable = $.extend( {}, ui, { + item: draggable.element + } ); + + draggable.sortables = []; + $( draggable.options.connectToSortable ).each( function() { + var sortable = $( this ).sortable( "instance" ); + + if ( sortable && !sortable.options.disabled ) { + draggable.sortables.push( sortable ); + + // RefreshPositions is called at drag start to refresh the containerCache + // which is used in drag. This ensures it's initialized and synchronized + // with any changes that might have happened on the page since initialization. + sortable.refreshPositions(); + sortable._trigger( "activate", event, uiSortable ); + } + } ); + }, + stop: function( event, ui, draggable ) { + var uiSortable = $.extend( {}, ui, { + item: draggable.element + } ); + + draggable.cancelHelperRemoval = false; + + $.each( draggable.sortables, function() { + var sortable = this; + + if ( sortable.isOver ) { + sortable.isOver = 0; + + // Allow this sortable to handle removing the helper + draggable.cancelHelperRemoval = true; + sortable.cancelHelperRemoval = false; + + // Use _storedCSS To restore properties in the sortable, + // as this also handles revert (#9675) since the draggable + // may have modified them in unexpected ways (#8809) + sortable._storedCSS = { + position: sortable.placeholder.css( "position" ), + top: sortable.placeholder.css( "top" ), + left: sortable.placeholder.css( "left" ) + }; + + sortable._mouseStop( event ); + + // Once drag has ended, the sortable should return to using + // its original helper, not the shared helper from draggable + sortable.options.helper = sortable.options._helper; + } else { + + // Prevent this Sortable from removing the helper. + // However, don't set the draggable to remove the helper + // either as another connected Sortable may yet handle the removal. + sortable.cancelHelperRemoval = true; + + sortable._trigger( "deactivate", event, uiSortable ); + } + } ); + }, + drag: function( event, ui, draggable ) { + $.each( draggable.sortables, function() { + var innermostIntersecting = false, + sortable = this; + + // Copy over variables that sortable's _intersectsWith uses + sortable.positionAbs = draggable.positionAbs; + sortable.helperProportions = draggable.helperProportions; + sortable.offset.click = draggable.offset.click; + + if ( sortable._intersectsWith( sortable.containerCache ) ) { + innermostIntersecting = true; + + $.each( draggable.sortables, function() { + + // Copy over variables that sortable's _intersectsWith uses + this.positionAbs = draggable.positionAbs; + this.helperProportions = draggable.helperProportions; + this.offset.click = draggable.offset.click; + + if ( this !== sortable && + this._intersectsWith( this.containerCache ) && + $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { + innermostIntersecting = false; + } + + return innermostIntersecting; + } ); + } + + if ( innermostIntersecting ) { + + // If it intersects, we use a little isOver variable and set it once, + // so that the move-in stuff gets fired only once. + if ( !sortable.isOver ) { + sortable.isOver = 1; + + // Store draggable's parent in case we need to reappend to it later. + draggable._parent = ui.helper.parent(); + + sortable.currentItem = ui.helper + .appendTo( sortable.element ) + .data( "ui-sortable-item", true ); + + // Store helper option to later restore it + sortable.options._helper = sortable.options.helper; + + sortable.options.helper = function() { + return ui.helper[ 0 ]; + }; + + // Fire the start events of the sortable with our passed browser event, + // and our own helper (so it doesn't create a new one) + event.target = sortable.currentItem[ 0 ]; + sortable._mouseCapture( event, true ); + sortable._mouseStart( event, true, true ); + + // Because the browser event is way off the new appended portlet, + // modify necessary variables to reflect the changes + sortable.offset.click.top = draggable.offset.click.top; + sortable.offset.click.left = draggable.offset.click.left; + sortable.offset.parent.left -= draggable.offset.parent.left - + sortable.offset.parent.left; + sortable.offset.parent.top -= draggable.offset.parent.top - + sortable.offset.parent.top; + + draggable._trigger( "toSortable", event ); + + // Inform draggable that the helper is in a valid drop zone, + // used solely in the revert option to handle "valid/invalid". + draggable.dropped = sortable.element; + + // Need to refreshPositions of all sortables in the case that + // adding to one sortable changes the location of the other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + } ); + + // Hack so receive/update callbacks work (mostly) + draggable.currentItem = draggable.element; + sortable.fromOutside = draggable; + } + + if ( sortable.currentItem ) { + sortable._mouseDrag( event ); + + // Copy the sortable's position because the draggable's can potentially reflect + // a relative position, while sortable is always absolute, which the dragged + // element has now become. (#8809) + ui.position = sortable.position; + } + } else { + + // If it doesn't intersect with the sortable, and it intersected before, + // we fake the drag stop of the sortable, but make sure it doesn't remove + // the helper by using cancelHelperRemoval. + if ( sortable.isOver ) { + + sortable.isOver = 0; + sortable.cancelHelperRemoval = true; + + // Calling sortable's mouseStop would trigger a revert, + // so revert must be temporarily false until after mouseStop is called. + sortable.options._revert = sortable.options.revert; + sortable.options.revert = false; + + sortable._trigger( "out", event, sortable._uiHash( sortable ) ); + sortable._mouseStop( event, true ); + + // Restore sortable behaviors that were modfied + // when the draggable entered the sortable area (#9481) + sortable.options.revert = sortable.options._revert; + sortable.options.helper = sortable.options._helper; + + if ( sortable.placeholder ) { + sortable.placeholder.remove(); + } + + // Restore and recalculate the draggable's offset considering the sortable + // may have modified them in unexpected ways. (#8809, #10669) + ui.helper.appendTo( draggable._parent ); + draggable._refreshOffsets( event ); + ui.position = draggable._generatePosition( event, true ); + + draggable._trigger( "fromSortable", event ); + + // Inform draggable that the helper is no longer in a valid drop zone + draggable.dropped = false; + + // Need to refreshPositions of all sortables just in case removing + // from one sortable changes the location of other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + } ); + } + } + } ); + } +} ); + +$.ui.plugin.add( "draggable", "cursor", { + start: function( event, ui, instance ) { + var t = $( "body" ), + o = instance.options; + + if ( t.css( "cursor" ) ) { + o._cursor = t.css( "cursor" ); + } + t.css( "cursor", o.cursor ); + }, + stop: function( event, ui, instance ) { + var o = instance.options; + if ( o._cursor ) { + $( "body" ).css( "cursor", o._cursor ); + } + } +} ); + +$.ui.plugin.add( "draggable", "opacity", { + start: function( event, ui, instance ) { + var t = $( ui.helper ), + o = instance.options; + if ( t.css( "opacity" ) ) { + o._opacity = t.css( "opacity" ); + } + t.css( "opacity", o.opacity ); + }, + stop: function( event, ui, instance ) { + var o = instance.options; + if ( o._opacity ) { + $( ui.helper ).css( "opacity", o._opacity ); + } + } +} ); + +$.ui.plugin.add( "draggable", "scroll", { + start: function( event, ui, i ) { + if ( !i.scrollParentNotHidden ) { + i.scrollParentNotHidden = i.helper.scrollParent( false ); + } + + if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && + i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { + i.overflowOffset = i.scrollParentNotHidden.offset(); + } + }, + drag: function( event, ui, i ) { + + var o = i.options, + scrolled = false, + scrollParent = i.scrollParentNotHidden[ 0 ], + document = i.document[ 0 ]; + + if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) { + if ( !o.axis || o.axis !== "x" ) { + if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < + o.scrollSensitivity ) { + scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed; + } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) { + scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed; + } + } + + if ( !o.axis || o.axis !== "y" ) { + if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < + o.scrollSensitivity ) { + scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed; + } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) { + scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed; + } + } + + } else { + + if ( !o.axis || o.axis !== "x" ) { + if ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) { + scrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed ); + } else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) < + o.scrollSensitivity ) { + scrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed ); + } + } + + if ( !o.axis || o.axis !== "y" ) { + if ( event.pageX - $( document ).scrollLeft() < o.scrollSensitivity ) { + scrolled = $( document ).scrollLeft( + $( document ).scrollLeft() - o.scrollSpeed + ); + } else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) < + o.scrollSensitivity ) { + scrolled = $( document ).scrollLeft( + $( document ).scrollLeft() + o.scrollSpeed + ); + } + } + + } + + if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) { + $.ui.ddmanager.prepareOffsets( i, event ); + } + + } +} ); + +$.ui.plugin.add( "draggable", "snap", { + start: function( event, ui, i ) { + + var o = i.options; + + i.snapElements = []; + + $( o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap ) + .each( function() { + var $t = $( this ), + $o = $t.offset(); + if ( this !== i.element[ 0 ] ) { + i.snapElements.push( { + item: this, + width: $t.outerWidth(), height: $t.outerHeight(), + top: $o.top, left: $o.left + } ); + } + } ); + + }, + drag: function( event, ui, inst ) { + + var ts, bs, ls, rs, l, r, t, b, i, first, + o = inst.options, + d = o.snapTolerance, + x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, + y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; + + for ( i = inst.snapElements.length - 1; i >= 0; i-- ) { + + l = inst.snapElements[ i ].left - inst.margins.left; + r = l + inst.snapElements[ i ].width; + t = inst.snapElements[ i ].top - inst.margins.top; + b = t + inst.snapElements[ i ].height; + + if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || + !$.contains( inst.snapElements[ i ].item.ownerDocument, + inst.snapElements[ i ].item ) ) { + if ( inst.snapElements[ i ].snapping ) { + ( inst.options.snap.release && + inst.options.snap.release.call( + inst.element, + event, + $.extend( inst._uiHash(), { snapItem: inst.snapElements[ i ].item } ) + ) ); + } + inst.snapElements[ i ].snapping = false; + continue; + } + + if ( o.snapMode !== "inner" ) { + ts = Math.abs( t - y2 ) <= d; + bs = Math.abs( b - y1 ) <= d; + ls = Math.abs( l - x2 ) <= d; + rs = Math.abs( r - x1 ) <= d; + if ( ts ) { + ui.position.top = inst._convertPositionTo( "relative", { + top: t - inst.helperProportions.height, + left: 0 + } ).top; + } + if ( bs ) { + ui.position.top = inst._convertPositionTo( "relative", { + top: b, + left: 0 + } ).top; + } + if ( ls ) { + ui.position.left = inst._convertPositionTo( "relative", { + top: 0, + left: l - inst.helperProportions.width + } ).left; + } + if ( rs ) { + ui.position.left = inst._convertPositionTo( "relative", { + top: 0, + left: r + } ).left; + } + } + + first = ( ts || bs || ls || rs ); + + if ( o.snapMode !== "outer" ) { + ts = Math.abs( t - y1 ) <= d; + bs = Math.abs( b - y2 ) <= d; + ls = Math.abs( l - x1 ) <= d; + rs = Math.abs( r - x2 ) <= d; + if ( ts ) { + ui.position.top = inst._convertPositionTo( "relative", { + top: t, + left: 0 + } ).top; + } + if ( bs ) { + ui.position.top = inst._convertPositionTo( "relative", { + top: b - inst.helperProportions.height, + left: 0 + } ).top; + } + if ( ls ) { + ui.position.left = inst._convertPositionTo( "relative", { + top: 0, + left: l + } ).left; + } + if ( rs ) { + ui.position.left = inst._convertPositionTo( "relative", { + top: 0, + left: r - inst.helperProportions.width + } ).left; + } + } + + if ( !inst.snapElements[ i ].snapping && ( ts || bs || ls || rs || first ) ) { + ( inst.options.snap.snap && + inst.options.snap.snap.call( + inst.element, + event, + $.extend( inst._uiHash(), { + snapItem: inst.snapElements[ i ].item + } ) ) ); + } + inst.snapElements[ i ].snapping = ( ts || bs || ls || rs || first ); + + } + + } +} ); + +$.ui.plugin.add( "draggable", "stack", { + start: function( event, ui, instance ) { + var min, + o = instance.options, + group = $.makeArray( $( o.stack ) ).sort( function( a, b ) { + return ( parseInt( $( a ).css( "zIndex" ), 10 ) || 0 ) - + ( parseInt( $( b ).css( "zIndex" ), 10 ) || 0 ); + } ); + + if ( !group.length ) { return; } + + min = parseInt( $( group[ 0 ] ).css( "zIndex" ), 10 ) || 0; + $( group ).each( function( i ) { + $( this ).css( "zIndex", min + i ); + } ); + this.css( "zIndex", ( min + group.length ) ); + } +} ); + +$.ui.plugin.add( "draggable", "zIndex", { + start: function( event, ui, instance ) { + var t = $( ui.helper ), + o = instance.options; + + if ( t.css( "zIndex" ) ) { + o._zIndex = t.css( "zIndex" ); + } + t.css( "zIndex", o.zIndex ); + }, + stop: function( event, ui, instance ) { + var o = instance.options; + + if ( o._zIndex ) { + $( ui.helper ).css( "zIndex", o._zIndex ); + } + } +} ); + +var widgetsDraggable = $.ui.draggable; + + +/*! + * jQuery UI Resizable 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Resizable +//>>group: Interactions +//>>description: Enables resize functionality for any element. +//>>docs: http://api.jqueryui.com/resizable/ +//>>demos: http://jqueryui.com/resizable/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/resizable.css +//>>css.theme: ../../themes/base/theme.css + + + +$.widget( "ui.resizable", $.ui.mouse, { + version: "1.12.1", + widgetEventPrefix: "resize", + options: { + alsoResize: false, + animate: false, + animateDuration: "slow", + animateEasing: "swing", + aspectRatio: false, + autoHide: false, + classes: { + "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se" + }, + containment: false, + ghost: false, + grid: false, + handles: "e,s,se", + helper: false, + maxHeight: null, + maxWidth: null, + minHeight: 10, + minWidth: 10, + + // See #7960 + zIndex: 90, + + // Callbacks + resize: null, + start: null, + stop: null + }, + + _num: function( value ) { + return parseFloat( value ) || 0; + }, + + _isNumber: function( value ) { + return !isNaN( parseFloat( value ) ); + }, + + _hasScroll: function( el, a ) { + + if ( $( el ).css( "overflow" ) === "hidden" ) { + return false; + } + + var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", + has = false; + + if ( el[ scroll ] > 0 ) { + return true; + } + + // TODO: determine which cases actually cause this to happen + // if the element doesn't have the scroll set, see if it's possible to + // set the scroll + el[ scroll ] = 1; + has = ( el[ scroll ] > 0 ); + el[ scroll ] = 0; + return has; + }, + + _create: function() { + + var margins, + o = this.options, + that = this; + this._addClass( "ui-resizable" ); + + $.extend( this, { + _aspectRatio: !!( o.aspectRatio ), + aspectRatio: o.aspectRatio, + originalElement: this.element, + _proportionallyResizeElements: [], + _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null + } ); + + // Wrap the element if it cannot hold child nodes + if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) { + + this.element.wrap( + $( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( { + position: this.element.css( "position" ), + width: this.element.outerWidth(), + height: this.element.outerHeight(), + top: this.element.css( "top" ), + left: this.element.css( "left" ) + } ) + ); + + this.element = this.element.parent().data( + "ui-resizable", this.element.resizable( "instance" ) + ); + + this.elementIsWrapper = true; + + margins = { + marginTop: this.originalElement.css( "marginTop" ), + marginRight: this.originalElement.css( "marginRight" ), + marginBottom: this.originalElement.css( "marginBottom" ), + marginLeft: this.originalElement.css( "marginLeft" ) + }; + + this.element.css( margins ); + this.originalElement.css( "margin", 0 ); + + // support: Safari + // Prevent Safari textarea resize + this.originalResizeStyle = this.originalElement.css( "resize" ); + this.originalElement.css( "resize", "none" ); + + this._proportionallyResizeElements.push( this.originalElement.css( { + position: "static", + zoom: 1, + display: "block" + } ) ); + + // Support: IE9 + // avoid IE jump (hard set the margin) + this.originalElement.css( margins ); + + this._proportionallyResize(); + } + + this._setupHandles(); + + if ( o.autoHide ) { + $( this.element ) + .on( "mouseenter", function() { + if ( o.disabled ) { + return; + } + that._removeClass( "ui-resizable-autohide" ); + that._handles.show(); + } ) + .on( "mouseleave", function() { + if ( o.disabled ) { + return; + } + if ( !that.resizing ) { + that._addClass( "ui-resizable-autohide" ); + that._handles.hide(); + } + } ); + } + + this._mouseInit(); + }, + + _destroy: function() { + + this._mouseDestroy(); + + var wrapper, + _destroy = function( exp ) { + $( exp ) + .removeData( "resizable" ) + .removeData( "ui-resizable" ) + .off( ".resizable" ) + .find( ".ui-resizable-handle" ) + .remove(); + }; + + // TODO: Unwrap at same DOM position + if ( this.elementIsWrapper ) { + _destroy( this.element ); + wrapper = this.element; + this.originalElement.css( { + position: wrapper.css( "position" ), + width: wrapper.outerWidth(), + height: wrapper.outerHeight(), + top: wrapper.css( "top" ), + left: wrapper.css( "left" ) + } ).insertAfter( wrapper ); + wrapper.remove(); + } + + this.originalElement.css( "resize", this.originalResizeStyle ); + _destroy( this.originalElement ); + + return this; + }, + + _setOption: function( key, value ) { + this._super( key, value ); + + switch ( key ) { + case "handles": + this._removeHandles(); + this._setupHandles(); + break; + default: + break; + } + }, + + _setupHandles: function() { + var o = this.options, handle, i, n, hname, axis, that = this; + this.handles = o.handles || + ( !$( ".ui-resizable-handle", this.element ).length ? + "e,s,se" : { + n: ".ui-resizable-n", + e: ".ui-resizable-e", + s: ".ui-resizable-s", + w: ".ui-resizable-w", + se: ".ui-resizable-se", + sw: ".ui-resizable-sw", + ne: ".ui-resizable-ne", + nw: ".ui-resizable-nw" + } ); + + this._handles = $(); + if ( this.handles.constructor === String ) { + + if ( this.handles === "all" ) { + this.handles = "n,e,s,w,se,sw,ne,nw"; + } + + n = this.handles.split( "," ); + this.handles = {}; + + for ( i = 0; i < n.length; i++ ) { + + handle = $.trim( n[ i ] ); + hname = "ui-resizable-" + handle; + axis = $( "<div>" ); + this._addClass( axis, "ui-resizable-handle " + hname ); + + axis.css( { zIndex: o.zIndex } ); + + this.handles[ handle ] = ".ui-resizable-" + handle; + this.element.append( axis ); + } + + } + + this._renderAxis = function( target ) { + + var i, axis, padPos, padWrapper; + + target = target || this.element; + + for ( i in this.handles ) { + + if ( this.handles[ i ].constructor === String ) { + this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show(); + } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) { + this.handles[ i ] = $( this.handles[ i ] ); + this._on( this.handles[ i ], { "mousedown": that._mouseDown } ); + } + + if ( this.elementIsWrapper && + this.originalElement[ 0 ] + .nodeName + .match( /^(textarea|input|select|button)$/i ) ) { + axis = $( this.handles[ i ], this.element ); + + padWrapper = /sw|ne|nw|se|n|s/.test( i ) ? + axis.outerHeight() : + axis.outerWidth(); + + padPos = [ "padding", + /ne|nw|n/.test( i ) ? "Top" : + /se|sw|s/.test( i ) ? "Bottom" : + /^e$/.test( i ) ? "Right" : "Left" ].join( "" ); + + target.css( padPos, padWrapper ); + + this._proportionallyResize(); + } + + this._handles = this._handles.add( this.handles[ i ] ); + } + }; + + // TODO: make renderAxis a prototype function + this._renderAxis( this.element ); + + this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) ); + this._handles.disableSelection(); + + this._handles.on( "mouseover", function() { + if ( !that.resizing ) { + if ( this.className ) { + axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i ); + } + that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se"; + } + } ); + + if ( o.autoHide ) { + this._handles.hide(); + this._addClass( "ui-resizable-autohide" ); + } + }, + + _removeHandles: function() { + this._handles.remove(); + }, + + _mouseCapture: function( event ) { + var i, handle, + capture = false; + + for ( i in this.handles ) { + handle = $( this.handles[ i ] )[ 0 ]; + if ( handle === event.target || $.contains( handle, event.target ) ) { + capture = true; + } + } + + return !this.options.disabled && capture; + }, + + _mouseStart: function( event ) { + + var curleft, curtop, cursor, + o = this.options, + el = this.element; + + this.resizing = true; + + this._renderProxy(); + + curleft = this._num( this.helper.css( "left" ) ); + curtop = this._num( this.helper.css( "top" ) ); + + if ( o.containment ) { + curleft += $( o.containment ).scrollLeft() || 0; + curtop += $( o.containment ).scrollTop() || 0; + } + + this.offset = this.helper.offset(); + this.position = { left: curleft, top: curtop }; + + this.size = this._helper ? { + width: this.helper.width(), + height: this.helper.height() + } : { + width: el.width(), + height: el.height() + }; + + this.originalSize = this._helper ? { + width: el.outerWidth(), + height: el.outerHeight() + } : { + width: el.width(), + height: el.height() + }; + + this.sizeDiff = { + width: el.outerWidth() - el.width(), + height: el.outerHeight() - el.height() + }; + + this.originalPosition = { left: curleft, top: curtop }; + this.originalMousePosition = { left: event.pageX, top: event.pageY }; + + this.aspectRatio = ( typeof o.aspectRatio === "number" ) ? + o.aspectRatio : + ( ( this.originalSize.width / this.originalSize.height ) || 1 ); + + cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" ); + $( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor ); + + this._addClass( "ui-resizable-resizing" ); + this._propagate( "start", event ); + return true; + }, + + _mouseDrag: function( event ) { + + var data, props, + smp = this.originalMousePosition, + a = this.axis, + dx = ( event.pageX - smp.left ) || 0, + dy = ( event.pageY - smp.top ) || 0, + trigger = this._change[ a ]; + + this._updatePrevProperties(); + + if ( !trigger ) { + return false; + } + + data = trigger.apply( this, [ event, dx, dy ] ); + + this._updateVirtualBoundaries( event.shiftKey ); + if ( this._aspectRatio || event.shiftKey ) { + data = this._updateRatio( data, event ); + } + + data = this._respectSize( data, event ); + + this._updateCache( data ); + + this._propagate( "resize", event ); + + props = this._applyChanges(); + + if ( !this._helper && this._proportionallyResizeElements.length ) { + this._proportionallyResize(); + } + + if ( !$.isEmptyObject( props ) ) { + this._updatePrevProperties(); + this._trigger( "resize", event, this.ui() ); + this._applyChanges(); + } + + return false; + }, + + _mouseStop: function( event ) { + + this.resizing = false; + var pr, ista, soffseth, soffsetw, s, left, top, + o = this.options, that = this; + + if ( this._helper ) { + + pr = this._proportionallyResizeElements; + ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ); + soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height; + soffsetw = ista ? 0 : that.sizeDiff.width; + + s = { + width: ( that.helper.width() - soffsetw ), + height: ( that.helper.height() - soffseth ) + }; + left = ( parseFloat( that.element.css( "left" ) ) + + ( that.position.left - that.originalPosition.left ) ) || null; + top = ( parseFloat( that.element.css( "top" ) ) + + ( that.position.top - that.originalPosition.top ) ) || null; + + if ( !o.animate ) { + this.element.css( $.extend( s, { top: top, left: left } ) ); + } + + that.helper.height( that.size.height ); + that.helper.width( that.size.width ); + + if ( this._helper && !o.animate ) { + this._proportionallyResize(); + } + } + + $( "body" ).css( "cursor", "auto" ); + + this._removeClass( "ui-resizable-resizing" ); + + this._propagate( "stop", event ); + + if ( this._helper ) { + this.helper.remove(); + } + + return false; + + }, + + _updatePrevProperties: function() { + this.prevPosition = { + top: this.position.top, + left: this.position.left + }; + this.prevSize = { + width: this.size.width, + height: this.size.height + }; + }, + + _applyChanges: function() { + var props = {}; + + if ( this.position.top !== this.prevPosition.top ) { + props.top = this.position.top + "px"; + } + if ( this.position.left !== this.prevPosition.left ) { + props.left = this.position.left + "px"; + } + if ( this.size.width !== this.prevSize.width ) { + props.width = this.size.width + "px"; + } + if ( this.size.height !== this.prevSize.height ) { + props.height = this.size.height + "px"; + } + + this.helper.css( props ); + + return props; + }, + + _updateVirtualBoundaries: function( forceAspectRatio ) { + var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, + o = this.options; + + b = { + minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0, + maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity, + minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0, + maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity + }; + + if ( this._aspectRatio || forceAspectRatio ) { + pMinWidth = b.minHeight * this.aspectRatio; + pMinHeight = b.minWidth / this.aspectRatio; + pMaxWidth = b.maxHeight * this.aspectRatio; + pMaxHeight = b.maxWidth / this.aspectRatio; + + if ( pMinWidth > b.minWidth ) { + b.minWidth = pMinWidth; + } + if ( pMinHeight > b.minHeight ) { + b.minHeight = pMinHeight; + } + if ( pMaxWidth < b.maxWidth ) { + b.maxWidth = pMaxWidth; + } + if ( pMaxHeight < b.maxHeight ) { + b.maxHeight = pMaxHeight; + } + } + this._vBoundaries = b; + }, + + _updateCache: function( data ) { + this.offset = this.helper.offset(); + if ( this._isNumber( data.left ) ) { + this.position.left = data.left; + } + if ( this._isNumber( data.top ) ) { + this.position.top = data.top; + } + if ( this._isNumber( data.height ) ) { + this.size.height = data.height; + } + if ( this._isNumber( data.width ) ) { + this.size.width = data.width; + } + }, + + _updateRatio: function( data ) { + + var cpos = this.position, + csize = this.size, + a = this.axis; + + if ( this._isNumber( data.height ) ) { + data.width = ( data.height * this.aspectRatio ); + } else if ( this._isNumber( data.width ) ) { + data.height = ( data.width / this.aspectRatio ); + } + + if ( a === "sw" ) { + data.left = cpos.left + ( csize.width - data.width ); + data.top = null; + } + if ( a === "nw" ) { + data.top = cpos.top + ( csize.height - data.height ); + data.left = cpos.left + ( csize.width - data.width ); + } + + return data; + }, + + _respectSize: function( data ) { + + var o = this._vBoundaries, + a = this.axis, + ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ), + ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ), + isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ), + isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ), + dw = this.originalPosition.left + this.originalSize.width, + dh = this.originalPosition.top + this.originalSize.height, + cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a ); + if ( isminw ) { + data.width = o.minWidth; + } + if ( isminh ) { + data.height = o.minHeight; + } + if ( ismaxw ) { + data.width = o.maxWidth; + } + if ( ismaxh ) { + data.height = o.maxHeight; + } + + if ( isminw && cw ) { + data.left = dw - o.minWidth; + } + if ( ismaxw && cw ) { + data.left = dw - o.maxWidth; + } + if ( isminh && ch ) { + data.top = dh - o.minHeight; + } + if ( ismaxh && ch ) { + data.top = dh - o.maxHeight; + } + + // Fixing jump error on top/left - bug #2330 + if ( !data.width && !data.height && !data.left && data.top ) { + data.top = null; + } else if ( !data.width && !data.height && !data.top && data.left ) { + data.left = null; + } + + return data; + }, + + _getPaddingPlusBorderDimensions: function( element ) { + var i = 0, + widths = [], + borders = [ + element.css( "borderTopWidth" ), + element.css( "borderRightWidth" ), + element.css( "borderBottomWidth" ), + element.css( "borderLeftWidth" ) + ], + paddings = [ + element.css( "paddingTop" ), + element.css( "paddingRight" ), + element.css( "paddingBottom" ), + element.css( "paddingLeft" ) + ]; + + for ( ; i < 4; i++ ) { + widths[ i ] = ( parseFloat( borders[ i ] ) || 0 ); + widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 ); + } + + return { + height: widths[ 0 ] + widths[ 2 ], + width: widths[ 1 ] + widths[ 3 ] + }; + }, + + _proportionallyResize: function() { + + if ( !this._proportionallyResizeElements.length ) { + return; + } + + var prel, + i = 0, + element = this.helper || this.element; + + for ( ; i < this._proportionallyResizeElements.length; i++ ) { + + prel = this._proportionallyResizeElements[ i ]; + + // TODO: Seems like a bug to cache this.outerDimensions + // considering that we are in a loop. + if ( !this.outerDimensions ) { + this.outerDimensions = this._getPaddingPlusBorderDimensions( prel ); + } + + prel.css( { + height: ( element.height() - this.outerDimensions.height ) || 0, + width: ( element.width() - this.outerDimensions.width ) || 0 + } ); + + } + + }, + + _renderProxy: function() { + + var el = this.element, o = this.options; + this.elementOffset = el.offset(); + + if ( this._helper ) { + + this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" ); + + this._addClass( this.helper, this._helper ); + this.helper.css( { + width: this.element.outerWidth(), + height: this.element.outerHeight(), + position: "absolute", + left: this.elementOffset.left + "px", + top: this.elementOffset.top + "px", + zIndex: ++o.zIndex //TODO: Don't modify option + } ); + + this.helper + .appendTo( "body" ) + .disableSelection(); + + } else { + this.helper = this.element; + } + + }, + + _change: { + e: function( event, dx ) { + return { width: this.originalSize.width + dx }; + }, + w: function( event, dx ) { + var cs = this.originalSize, sp = this.originalPosition; + return { left: sp.left + dx, width: cs.width - dx }; + }, + n: function( event, dx, dy ) { + var cs = this.originalSize, sp = this.originalPosition; + return { top: sp.top + dy, height: cs.height - dy }; + }, + s: function( event, dx, dy ) { + return { height: this.originalSize.height + dy }; + }, + se: function( event, dx, dy ) { + return $.extend( this._change.s.apply( this, arguments ), + this._change.e.apply( this, [ event, dx, dy ] ) ); + }, + sw: function( event, dx, dy ) { + return $.extend( this._change.s.apply( this, arguments ), + this._change.w.apply( this, [ event, dx, dy ] ) ); + }, + ne: function( event, dx, dy ) { + return $.extend( this._change.n.apply( this, arguments ), + this._change.e.apply( this, [ event, dx, dy ] ) ); + }, + nw: function( event, dx, dy ) { + return $.extend( this._change.n.apply( this, arguments ), + this._change.w.apply( this, [ event, dx, dy ] ) ); + } + }, + + _propagate: function( n, event ) { + $.ui.plugin.call( this, n, [ event, this.ui() ] ); + ( n !== "resize" && this._trigger( n, event, this.ui() ) ); + }, + + plugins: {}, + + ui: function() { + return { + originalElement: this.originalElement, + element: this.element, + helper: this.helper, + position: this.position, + size: this.size, + originalSize: this.originalSize, + originalPosition: this.originalPosition + }; + } + +} ); + +/* + * Resizable Extensions + */ + +$.ui.plugin.add( "resizable", "animate", { + + stop: function( event ) { + var that = $( this ).resizable( "instance" ), + o = that.options, + pr = that._proportionallyResizeElements, + ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ), + soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height, + soffsetw = ista ? 0 : that.sizeDiff.width, + style = { + width: ( that.size.width - soffsetw ), + height: ( that.size.height - soffseth ) + }, + left = ( parseFloat( that.element.css( "left" ) ) + + ( that.position.left - that.originalPosition.left ) ) || null, + top = ( parseFloat( that.element.css( "top" ) ) + + ( that.position.top - that.originalPosition.top ) ) || null; + + that.element.animate( + $.extend( style, top && left ? { top: top, left: left } : {} ), { + duration: o.animateDuration, + easing: o.animateEasing, + step: function() { + + var data = { + width: parseFloat( that.element.css( "width" ) ), + height: parseFloat( that.element.css( "height" ) ), + top: parseFloat( that.element.css( "top" ) ), + left: parseFloat( that.element.css( "left" ) ) + }; + + if ( pr && pr.length ) { + $( pr[ 0 ] ).css( { width: data.width, height: data.height } ); + } + + // Propagating resize, and updating values for each animation step + that._updateCache( data ); + that._propagate( "resize", event ); + + } + } + ); + } + +} ); + +$.ui.plugin.add( "resizable", "containment", { + + start: function() { + var element, p, co, ch, cw, width, height, + that = $( this ).resizable( "instance" ), + o = that.options, + el = that.element, + oc = o.containment, + ce = ( oc instanceof $ ) ? + oc.get( 0 ) : + ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc; + + if ( !ce ) { + return; + } + + that.containerElement = $( ce ); + + if ( /document/.test( oc ) || oc === document ) { + that.containerOffset = { + left: 0, + top: 0 + }; + that.containerPosition = { + left: 0, + top: 0 + }; + + that.parentData = { + element: $( document ), + left: 0, + top: 0, + width: $( document ).width(), + height: $( document ).height() || document.body.parentNode.scrollHeight + }; + } else { + element = $( ce ); + p = []; + $( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) { + p[ i ] = that._num( element.css( "padding" + name ) ); + } ); + + that.containerOffset = element.offset(); + that.containerPosition = element.position(); + that.containerSize = { + height: ( element.innerHeight() - p[ 3 ] ), + width: ( element.innerWidth() - p[ 1 ] ) + }; + + co = that.containerOffset; + ch = that.containerSize.height; + cw = that.containerSize.width; + width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw ); + height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ; + + that.parentData = { + element: ce, + left: co.left, + top: co.top, + width: width, + height: height + }; + } + }, + + resize: function( event ) { + var woset, hoset, isParent, isOffsetRelative, + that = $( this ).resizable( "instance" ), + o = that.options, + co = that.containerOffset, + cp = that.position, + pRatio = that._aspectRatio || event.shiftKey, + cop = { + top: 0, + left: 0 + }, + ce = that.containerElement, + continueResize = true; + + if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) { + cop = co; + } + + if ( cp.left < ( that._helper ? co.left : 0 ) ) { + that.size.width = that.size.width + + ( that._helper ? + ( that.position.left - co.left ) : + ( that.position.left - cop.left ) ); + + if ( pRatio ) { + that.size.height = that.size.width / that.aspectRatio; + continueResize = false; + } + that.position.left = o.helper ? co.left : 0; + } + + if ( cp.top < ( that._helper ? co.top : 0 ) ) { + that.size.height = that.size.height + + ( that._helper ? + ( that.position.top - co.top ) : + that.position.top ); + + if ( pRatio ) { + that.size.width = that.size.height * that.aspectRatio; + continueResize = false; + } + that.position.top = that._helper ? co.top : 0; + } + + isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 ); + isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) ); + + if ( isParent && isOffsetRelative ) { + that.offset.left = that.parentData.left + that.position.left; + that.offset.top = that.parentData.top + that.position.top; + } else { + that.offset.left = that.element.offset().left; + that.offset.top = that.element.offset().top; + } + + woset = Math.abs( that.sizeDiff.width + + ( that._helper ? + that.offset.left - cop.left : + ( that.offset.left - co.left ) ) ); + + hoset = Math.abs( that.sizeDiff.height + + ( that._helper ? + that.offset.top - cop.top : + ( that.offset.top - co.top ) ) ); + + if ( woset + that.size.width >= that.parentData.width ) { + that.size.width = that.parentData.width - woset; + if ( pRatio ) { + that.size.height = that.size.width / that.aspectRatio; + continueResize = false; + } + } + + if ( hoset + that.size.height >= that.parentData.height ) { + that.size.height = that.parentData.height - hoset; + if ( pRatio ) { + that.size.width = that.size.height * that.aspectRatio; + continueResize = false; + } + } + + if ( !continueResize ) { + that.position.left = that.prevPosition.left; + that.position.top = that.prevPosition.top; + that.size.width = that.prevSize.width; + that.size.height = that.prevSize.height; + } + }, + + stop: function() { + var that = $( this ).resizable( "instance" ), + o = that.options, + co = that.containerOffset, + cop = that.containerPosition, + ce = that.containerElement, + helper = $( that.helper ), + ho = helper.offset(), + w = helper.outerWidth() - that.sizeDiff.width, + h = helper.outerHeight() - that.sizeDiff.height; + + if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) { + $( this ).css( { + left: ho.left - cop.left - co.left, + width: w, + height: h + } ); + } + + if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) { + $( this ).css( { + left: ho.left - cop.left - co.left, + width: w, + height: h + } ); + } + } +} ); + +$.ui.plugin.add( "resizable", "alsoResize", { + + start: function() { + var that = $( this ).resizable( "instance" ), + o = that.options; + + $( o.alsoResize ).each( function() { + var el = $( this ); + el.data( "ui-resizable-alsoresize", { + width: parseFloat( el.width() ), height: parseFloat( el.height() ), + left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) ) + } ); + } ); + }, + + resize: function( event, ui ) { + var that = $( this ).resizable( "instance" ), + o = that.options, + os = that.originalSize, + op = that.originalPosition, + delta = { + height: ( that.size.height - os.height ) || 0, + width: ( that.size.width - os.width ) || 0, + top: ( that.position.top - op.top ) || 0, + left: ( that.position.left - op.left ) || 0 + }; + + $( o.alsoResize ).each( function() { + var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {}, + css = el.parents( ui.originalElement[ 0 ] ).length ? + [ "width", "height" ] : + [ "width", "height", "top", "left" ]; + + $.each( css, function( i, prop ) { + var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 ); + if ( sum && sum >= 0 ) { + style[ prop ] = sum || null; + } + } ); + + el.css( style ); + } ); + }, + + stop: function() { + $( this ).removeData( "ui-resizable-alsoresize" ); + } +} ); + +$.ui.plugin.add( "resizable", "ghost", { + + start: function() { + + var that = $( this ).resizable( "instance" ), cs = that.size; + + that.ghost = that.originalElement.clone(); + that.ghost.css( { + opacity: 0.25, + display: "block", + position: "relative", + height: cs.height, + width: cs.width, + margin: 0, + left: 0, + top: 0 + } ); + + that._addClass( that.ghost, "ui-resizable-ghost" ); + + // DEPRECATED + // TODO: remove after 1.12 + if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) { + + // Ghost option + that.ghost.addClass( this.options.ghost ); + } + + that.ghost.appendTo( that.helper ); + + }, + + resize: function() { + var that = $( this ).resizable( "instance" ); + if ( that.ghost ) { + that.ghost.css( { + position: "relative", + height: that.size.height, + width: that.size.width + } ); + } + }, + + stop: function() { + var that = $( this ).resizable( "instance" ); + if ( that.ghost && that.helper ) { + that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) ); + } + } + +} ); + +$.ui.plugin.add( "resizable", "grid", { + + resize: function() { + var outerDimensions, + that = $( this ).resizable( "instance" ), + o = that.options, + cs = that.size, + os = that.originalSize, + op = that.originalPosition, + a = that.axis, + grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid, + gridX = ( grid[ 0 ] || 1 ), + gridY = ( grid[ 1 ] || 1 ), + ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX, + oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY, + newWidth = os.width + ox, + newHeight = os.height + oy, + isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ), + isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ), + isMinWidth = o.minWidth && ( o.minWidth > newWidth ), + isMinHeight = o.minHeight && ( o.minHeight > newHeight ); + + o.grid = grid; + + if ( isMinWidth ) { + newWidth += gridX; + } + if ( isMinHeight ) { + newHeight += gridY; + } + if ( isMaxWidth ) { + newWidth -= gridX; + } + if ( isMaxHeight ) { + newHeight -= gridY; + } + + if ( /^(se|s|e)$/.test( a ) ) { + that.size.width = newWidth; + that.size.height = newHeight; + } else if ( /^(ne)$/.test( a ) ) { + that.size.width = newWidth; + that.size.height = newHeight; + that.position.top = op.top - oy; + } else if ( /^(sw)$/.test( a ) ) { + that.size.width = newWidth; + that.size.height = newHeight; + that.position.left = op.left - ox; + } else { + if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) { + outerDimensions = that._getPaddingPlusBorderDimensions( this ); + } + + if ( newHeight - gridY > 0 ) { + that.size.height = newHeight; + that.position.top = op.top - oy; + } else { + newHeight = gridY - outerDimensions.height; + that.size.height = newHeight; + that.position.top = op.top + os.height - newHeight; + } + if ( newWidth - gridX > 0 ) { + that.size.width = newWidth; + that.position.left = op.left - ox; + } else { + newWidth = gridX - outerDimensions.width; + that.size.width = newWidth; + that.position.left = op.left + os.width - newWidth; + } + } + } + +} ); + +var widgetsResizable = $.ui.resizable; + + + + +}));
\ No newline at end of file diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css new file mode 100644 index 0000000..5060970 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
\ No newline at end of file diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js new file mode 100644 index 0000000..cc9a9aa --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Includes: widget.js, data.js, disable-selection.js, scroll-parent.js, widgets/draggable.js, widgets/resizable.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on("mouseup",function(){s=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(h=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,l,h,c,u,d,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,_=i.offset.top,b=_+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-m>v||g>h+m||c-m>b||_>u+m||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(c-b),o=m>=Math.abs(u-_),a=m>=Math.abs(l-v),r=m>=Math.abs(h-g),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=m>=Math.abs(c-_),o=m>=Math.abs(u-b),a=m>=Math.abs(l-g),r=m>=Math.abs(h-v),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show()) +}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,l=this._change[o];return this._updatePrevProperties(),l?(i=l.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,l,h=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,l=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,h.animate||this.element.css(t.extend(a,{top:l,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!h.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&c&&(t.top=l-e.minHeight),n&&c&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,l={width:i.size.width-r,height:i.size.height-a},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(l,c&&h?{top:c,left:h}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,l=t(this).resizable("instance"),h=l.options,c=l.element,u=h.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(l.containerElement=t(d),/document/.test(u)||u===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=l._num(e.css("padding"+s))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=l.containerOffset,n=l.containerSize.height,o=l.containerSize.width,a=l._hasScroll(d,"left")?d.scrollWidth:o,r=l._hasScroll(d)?d.scrollHeight:n,l.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,l=a.containerOffset,h=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=l),h.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?l.left:0),h.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?l.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-l.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-l.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),l=a.outerWidth()-e.sizeDiff.width,h=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,l="number"==typeof s.grid?[s.grid,s.grid]:s.grid,h=l[0]||1,c=l[1]||1,u=Math.round((n.width-o.width)/h)*h,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,_=s.minHeight&&s.minHeight>f;s.grid=l,v&&(p+=h),_&&(f+=c),m&&(p-=h),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-h)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-h>0?(i.size.width=p,i.position.left=a.left-u):(p=h-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});
\ No newline at end of file diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css new file mode 100644 index 0000000..2032948 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css @@ -0,0 +1,170 @@ +/*! + * jQuery UI CSS Framework 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + */ +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css new file mode 100644 index 0000000..3b1d670 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}
\ No newline at end of file diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css new file mode 100644 index 0000000..f559ff3 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css @@ -0,0 +1,443 @@ +/*! + * jQuery UI CSS Framework 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.ui-widget-shadow { + -webkit-box-shadow: 0px 0px 5px #666666; + box-shadow: 0px 0px 5px #666666; +} diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css new file mode 100644 index 0000000..f99db91 --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2018-03-18 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
\ No newline at end of file diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/package.json b/javascript/vendor/jquery-ui-1.12.1.custom/package.json new file mode 100644 index 0000000..e3c846e --- /dev/null +++ b/javascript/vendor/jquery-ui-1.12.1.custom/package.json @@ -0,0 +1,74 @@ +{ + "name": "jquery-ui", + "title": "jQuery UI", + "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.", + "version": "1.12.1", + "homepage": "http://jqueryui.com", + "author": { + "name": "jQuery Foundation and other contributors", + "url": "https://github.com/jquery/jquery-ui/blob/1.12.1/AUTHORS.txt" + }, + "main": "ui/widget.js", + "maintainers": [ + { + "name": "Scott González", + "email": "scott.gonzalez@gmail.com", + "url": "http://scottgonzalez.com" + }, + { + "name": "Jörn Zaefferer", + "email": "joern.zaefferer@gmail.com", + "url": "http://bassistance.de" + }, + { + "name": "Mike Sherov", + "email": "mike.sherov@gmail.com", + "url": "http://mike.sherov.com" + }, + { + "name": "TJ VanToll", + "email": "tj.vantoll@gmail.com", + "url": "http://tjvantoll.com" + }, + { + "name": "Felix Nagel", + "email": "info@felixnagel.com", + "url": "http://www.felixnagel.com" + }, + { + "name": "Alex Schmitz", + "email": "arschmitz@gmail.com", + "url": "https://github.com/arschmitz" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/jquery/jquery-ui.git" + }, + "bugs": "https://bugs.jqueryui.com/", + "license": "MIT", + "scripts": { + "test": "grunt" + }, + "dependencies": {}, + "devDependencies": { + "commitplease": "2.3.0", + "grunt": "0.4.5", + "grunt-bowercopy": "1.2.4", + "grunt-cli": "0.1.13", + "grunt-compare-size": "0.4.0", + "grunt-contrib-concat": "0.5.1", + "grunt-contrib-csslint": "0.5.0", + "grunt-contrib-jshint": "0.12.0", + "grunt-contrib-qunit": "1.0.1", + "grunt-contrib-requirejs": "0.4.4", + "grunt-contrib-uglify": "0.11.1", + "grunt-git-authors": "3.1.0", + "grunt-html": "6.0.0", + "grunt-jscs": "2.1.0", + "load-grunt-tasks": "3.4.0", + "rimraf": "2.5.1", + "testswarm": "1.1.0" + }, + "keywords": [] +} |