diff --git a/dist/layers/LayerRealEarthTile.d.ts b/dist/layers/LayerRealEarthTile.d.ts index 603d09b9d41ae49f8764a71e14b004dc5cd2374b..02e594448b237c5ce244150c43b5fde82f506455 100644 --- a/dist/layers/LayerRealEarthTile.d.ts +++ b/dist/layers/LayerRealEarthTile.d.ts @@ -4,10 +4,11 @@ import { LayerBaseXyzTile } from './LayerBaseXyzTile'; import { LayerBaseOptions } from './LayerBase'; import RealEarthAnimateTile from '../mixin/RealEarthAnimateTile'; -import { IRealEarthAnimate } from "../mixin/RealEarthAnimate"; +import { IRealEarthAnimate, timesLoadedCallback } from "../mixin/RealEarthAnimate"; export interface LayerRealEarthTileOptions extends LayerBaseOptions { products: string; animate?: boolean; + timeLoadCallback?: timesLoadedCallback; } /** * Real earth tile diff --git a/dist/layers/LayerRealEarthTile.js b/dist/layers/LayerRealEarthTile.js index b92453a69ca30c60c2f6052bf14b0832dfdd9b6b..4e1c0197f082967f76d48e955c4e9a06689e143f 100644 --- a/dist/layers/LayerRealEarthTile.js +++ b/dist/layers/LayerRealEarthTile.js @@ -42,7 +42,7 @@ var LayerRealEarthTile = (function (_super) { if (options.animate) { _super.call(this, '', options); this._products = options.products; - this.animator = new RealEarthAnimateTile_1.default(this); + this.animator = new RealEarthAnimateTile_1.default(this, options.timeLoadCallback); this.animator.timeInit(); } else { diff --git a/dist/layers/LayerRealEarthTile.js.map b/dist/layers/LayerRealEarthTile.js.map index ae4038746059843878f7963a9dbeebb70936b69d..ddaefc7837f8a05ae6b506b123d49ec91e76f550 100644 --- a/dist/layers/LayerRealEarthTile.js.map +++ b/dist/layers/LayerRealEarthTile.js.map @@ -1 +1 @@ -{"version":3,"file":"LayerRealEarthTile.js","sourceRoot":"","sources":["../../src/layers/LayerRealEarthTile.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;AAEH,iCAA+B,oBAAoB,CAAC,CAAA;AAEpD,qCAAiC,+BAA+B,CAAC,CAAA;AACjE,wBAAoB,iBAAiB,CAAC,CAAA;AAEtC,IAAM,EAAE,GAAG,iBAAO,CAAC,QAAQ,CAAC,CAAC;AAQ7B;;;GAGG;AACH;IAAwC,sCAAgB;IAIpD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,4BAAY,OAAkC;QAC1C,OAAO,CAAC,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAChF,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClB,kBAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAAoB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,kBAAM,uDAAqD,OAAO,CAAC,QAAQ,uBAAoB,EAAE,OAAO,CAAC,CAAC;YAC1G,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,CAAC;IACL,CAAC;IAED,yCAAY,GAAZ,UAAa,OAAe;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,kCAAK,GAAL;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,gBAAK,CAAC,KAAK,WAAE,CAAC;IACzB,CAAC;IACL,yBAAC;AAAD,CAAC,AAnDD,CAAwC,mCAAgB,GAmDvD;AAnDY,0BAAkB,qBAmD9B,CAAA;AAED,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAC3C;kBAAe,kBAAkB,CAAC"} \ No newline at end of file +{"version":3,"file":"LayerRealEarthTile.js","sourceRoot":"","sources":["../../src/layers/LayerRealEarthTile.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;AAEH,iCAA+B,oBAAoB,CAAC,CAAA;AAEpD,qCAAiC,+BAA+B,CAAC,CAAA;AACjE,wBAAoB,iBAAiB,CAAC,CAAA;AAEtC,IAAM,EAAE,GAAG,iBAAO,CAAC,QAAQ,CAAC,CAAC;AAS7B;;;GAGG;AACH;IAAwC,sCAAgB;IAIpD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,4BAAY,OAAkC;QAC1C,OAAO,CAAC,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAChF,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClB,kBAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,kBAAM,uDAAqD,OAAO,CAAC,QAAQ,uBAAoB,EAAE,OAAO,CAAC,CAAC;YAC1G,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,CAAC;IACL,CAAC;IAED,yCAAY,GAAZ,UAAa,OAAe;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,kCAAK,GAAL;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,gBAAK,CAAC,KAAK,WAAE,CAAC;IACzB,CAAC;IACL,yBAAC;AAAD,CAAC,AAnDD,CAAwC,mCAAgB,GAmDvD;AAnDY,0BAAkB,qBAmD9B,CAAA;AAED,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAC3C;kBAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/dist/layers/LayerRealEarthVector.d.ts b/dist/layers/LayerRealEarthVector.d.ts index d7ebd52a6863aea6ee5df9596d008b4f521e1e82..8aa9d823c1977d9d20ac8b5d95e48346c0917230 100644 --- a/dist/layers/LayerRealEarthVector.d.ts +++ b/dist/layers/LayerRealEarthVector.d.ts @@ -3,11 +3,11 @@ */ import { LayerBaseVectorGeoJson, LayerBaseVectorGeoJsonOptions } from './LayerBaseVectorGeoJson'; import RealEarthAnimateVector from '../mixin/RealEarthAnimateVector'; -import { IRealEarthAnimate } from "../mixin/RealEarthAnimate"; +import { IRealEarthAnimate, timesLoadedCallback } from "../mixin/RealEarthAnimate"; export interface LayerVectorRealEarthOptions extends LayerBaseVectorGeoJsonOptions { products: string; animate?: boolean; - animateInterval: number; + timeLoadCallback?: timesLoadedCallback; } /** * Vector real earth vector @@ -16,7 +16,6 @@ export interface LayerVectorRealEarthOptions extends LayerBaseVectorGeoJsonOptio export declare class LayerVectorRealEarth extends LayerBaseVectorGeoJson implements IRealEarthAnimate { _products: string; animator: RealEarthAnimateVector; - animateInterval: number; /** * Real Earth vector layer * @param {object} options - config diff --git a/dist/layers/LayerRealEarthVector.js b/dist/layers/LayerRealEarthVector.js index 33ee000563c34aa2ffa155bf93fc82d64668d8e8..04a82634fe181f607c942c43962de0642f3b7936 100644 --- a/dist/layers/LayerRealEarthVector.js +++ b/dist/layers/LayerRealEarthVector.js @@ -52,7 +52,7 @@ var LayerVectorRealEarth = (function (_super) { options.autoLoad = false; _super.call(this, '', options); this._products = options.products; - this.animator = new RealEarthAnimateVector_1.default(this); + this.animator = new RealEarthAnimateVector_1.default(this, options.timeLoadCallback); this.animator.timeInit(); } else { diff --git a/dist/layers/LayerRealEarthVector.js.map b/dist/layers/LayerRealEarthVector.js.map index 8d22a6399eb42a55be3b3035cce2d9c907b552ac..e110abcf1aafb23dcc4375a69508a6400a0a5aa1 100644 --- a/dist/layers/LayerRealEarthVector.js.map +++ b/dist/layers/LayerRealEarthVector.js.map @@ -1 +1 @@ -{"version":3,"file":"LayerRealEarthVector.js","sourceRoot":"","sources":["../../src/layers/LayerRealEarthVector.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;AAEH,uCAAoE,0BAA0B,CAAC,CAAA;AAC/F,uCAAmC,iCAAiC,CAAC,CAAA;AACrE,wBAAoB,iBAAiB,CAAC,CAAA;AAEtC,IAAM,EAAE,GAAG,iBAAO,CAAC,QAAQ,CAAC,CAAC;AAS7B;;;GAGG;AACH;IAA0C,wCAAsB;IAK5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,8BAAY,OAAoC;QAC5C,OAAO,CAAC,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAChF,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClB,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;YACzB,kBAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,gCAAsB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,OAAO,CAAC,MAAM,GAAG,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC;YAC9C,kBAAM,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAED,2CAAY,GAAZ,UAAa,OAAe;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,oCAAK,GAAL;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAC;YACf,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,gBAAK,CAAC,KAAK,WAAE,CAAC;IACzB,CAAC;IAGL,2BAAC;AAAD,CAAC,AAhED,CAA0C,+CAAsB,GAgE/D;AAhEY,4BAAoB,uBAgEhC,CAAA;AAED,EAAE,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAC/C;kBAAe,oBAAoB,CAAC"} \ No newline at end of file +{"version":3,"file":"LayerRealEarthVector.js","sourceRoot":"","sources":["../../src/layers/LayerRealEarthVector.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;AAEH,uCAAoE,0BAA0B,CAAC,CAAA;AAC/F,uCAAmC,iCAAiC,CAAC,CAAA;AACrE,wBAAoB,iBAAiB,CAAC,CAAA;AAEtC,IAAM,EAAE,GAAG,iBAAO,CAAC,QAAQ,CAAC,CAAC;AAS7B;;;GAGG;AACH;IAA0C,wCAAsB;IAI5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,8BAAY,OAAoC;QAC5C,OAAO,CAAC,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAChF,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClB,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;YACzB,kBAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,gCAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC3E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,OAAO,CAAC,MAAM,GAAG,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC;YAC9C,kBAAM,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAED,2CAAY,GAAZ,UAAa,OAAe;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,oCAAK,GAAL;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAC;YACf,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,gBAAK,CAAC,KAAK,WAAE,CAAC;IACzB,CAAC;IAGL,2BAAC;AAAD,CAAC,AA/DD,CAA0C,+CAAsB,GA+D/D;AA/DY,4BAAoB,uBA+DhC,CAAA;AAED,EAAE,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAC/C;kBAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/dist/mixin/RealEarthAnimate.d.ts b/dist/mixin/RealEarthAnimate.d.ts index 563ef292d771fbed20f96756ec34e79bbdaf0692..c7fd6e5d09edc4d64be1e7ed74bde9da35364200 100644 --- a/dist/mixin/RealEarthAnimate.d.ts +++ b/dist/mixin/RealEarthAnimate.d.ts @@ -3,6 +3,9 @@ import { LayerVectorRealEarth } from '../layers/LayerRealEarthVector'; export interface IRealEarthAnimate { setLayerTime(theTime: number): boolean; } +export interface timesLoadedCallback { + (lyr?: LayerRealEarthTile | LayerVectorRealEarth): void; +} /** * Mixin to get the product times * Be sure to call getTimeInit after the mixin has been applied @@ -13,11 +16,11 @@ export declare class RealEarthAnimate { _localDates: Date[]; _rawDateStrings: string[]; _products: string; - loadCallback: (lyr: LayerRealEarthTile | LayerVectorRealEarth) => void; + loadCallback: timesLoadedCallback; localTimes: number[]; _currentTime: number; lyr: LayerRealEarthTile | LayerVectorRealEarth; - constructor(lyr: LayerRealEarthTile | LayerVectorRealEarth, loadCallback?: (lyr: LayerRealEarthTile | LayerVectorRealEarth) => void); + constructor(lyr: LayerRealEarthTile | LayerVectorRealEarth, loadCallback?: timesLoadedCallback); /** * Call this after the mixin has been applied */ diff --git a/dist/mixin/RealEarthAnimate.js b/dist/mixin/RealEarthAnimate.js index f06bb0c05aed58d896c48889256d8129147fc0d3..824724cc1ba1c9ced1bbf61ab86ba0598c16d29a 100644 --- a/dist/mixin/RealEarthAnimate.js +++ b/dist/mixin/RealEarthAnimate.js @@ -23,7 +23,7 @@ var RealEarthAnimate = (function () { this.loadCallback = loadCallback; } else { - this.loadCallback = function (lyr) { return; }; + this.loadCallback = function () { return; }; } } /** diff --git a/dist/mixin/RealEarthAnimate.js.map b/dist/mixin/RealEarthAnimate.js.map index 0640347a9599b629ead1a0a41e031bf231adecc9..93e51a72f5df7bdf1db5057483c34882654ee90d 100644 --- a/dist/mixin/RealEarthAnimate.js.map +++ b/dist/mixin/RealEarthAnimate.js.map @@ -1 +1 @@ -{"version":3,"file":"RealEarthAnimate.js","sourceRoot":"","sources":["../../src/mixin/RealEarthAnimate.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"RealEarthAnimate.js","sourceRoot":"","sources":["../../src/mixin/RealEarthAnimate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/layers/LayerRealEarthTile.ts b/src/layers/LayerRealEarthTile.ts index 423726ecc33df433818be7475ce0faf56dd44567..2d93120dd0c421716a1201b266e2449b2013aed2 100644 --- a/src/layers/LayerRealEarthTile.ts +++ b/src/layers/LayerRealEarthTile.ts @@ -6,12 +6,13 @@ import {LayerBaseXyzTile} from './LayerBaseXyzTile'; import {LayerBaseOptions} from './LayerBase'; import RealEarthAnimateTile from '../mixin/RealEarthAnimateTile'; import provide from '../util/provide'; -import {IRealEarthAnimate} from "../mixin/RealEarthAnimate"; +import {IRealEarthAnimate, timesLoadedCallback} from "../mixin/RealEarthAnimate"; const nm = provide('layers'); export interface LayerRealEarthTileOptions extends LayerBaseOptions { products: string; animate?: boolean; + timeLoadCallback?: timesLoadedCallback; } @@ -48,7 +49,7 @@ export class LayerRealEarthTile extends LayerBaseXyzTile implements IRealEarthAn if (options.animate) { super('', options); this._products = options.products; - this.animator = new RealEarthAnimateTile(this); + this.animator = new RealEarthAnimateTile(this, options.timeLoadCallback); this.animator.timeInit(); } else { super(`http://realearth.ssec.wisc.edu/api/image?products=${options.products}&x={x}&y={y}&z={z}`, options); diff --git a/src/layers/LayerRealEarthVector.ts b/src/layers/LayerRealEarthVector.ts index 1b4e62c0fe65153bbe4a4e2f3566f2e702c01d75..299bfccdd38e719bd03f7e118027ee59f1ec09cb 100644 --- a/src/layers/LayerRealEarthVector.ts +++ b/src/layers/LayerRealEarthVector.ts @@ -5,13 +5,13 @@ import {LayerBaseVectorGeoJson, LayerBaseVectorGeoJsonOptions} from './LayerBaseVectorGeoJson'; import RealEarthAnimateVector from '../mixin/RealEarthAnimateVector'; import provide from '../util/provide'; -import {IRealEarthAnimate} from "../mixin/RealEarthAnimate"; +import {IRealEarthAnimate, timesLoadedCallback} from "../mixin/RealEarthAnimate"; const nm = provide('layers'); export interface LayerVectorRealEarthOptions extends LayerBaseVectorGeoJsonOptions { products: string; animate?: boolean; - animateInterval: number; + timeLoadCallback?: timesLoadedCallback; } @@ -22,7 +22,6 @@ export interface LayerVectorRealEarthOptions extends LayerBaseVectorGeoJsonOptio export class LayerVectorRealEarth extends LayerBaseVectorGeoJson implements IRealEarthAnimate { _products: string; animator: RealEarthAnimateVector; - animateInterval: number; /** * Real Earth vector layer @@ -59,7 +58,7 @@ export class LayerVectorRealEarth extends LayerBaseVectorGeoJson implements IRea options.autoLoad = false; super('', options); this._products = options.products; - this.animator = new RealEarthAnimateVector(this); + this.animator = new RealEarthAnimateVector(this, options.timeLoadCallback); this.animator.timeInit(); } else { options.params = {products: options.products}; diff --git a/src/mixin/RealEarthAnimate.ts b/src/mixin/RealEarthAnimate.ts index 895069ae7b5eeafcbe1c3d4f534b8d55d5bc5411..eaac4b19d7df45cfb37641443dd31895fb9ca025 100644 --- a/src/mixin/RealEarthAnimate.ts +++ b/src/mixin/RealEarthAnimate.ts @@ -19,6 +19,10 @@ export interface IRealEarthAnimate{ setLayerTime(theTime: number): boolean; } +export interface timesLoadedCallback{ + (lyr?: LayerRealEarthTile|LayerVectorRealEarth): void; +} + /** * Mixin to get the product times @@ -30,19 +34,19 @@ export class RealEarthAnimate { _localDates: Date[]; _rawDateStrings: string[]; _products: string; - loadCallback: (lyr: LayerRealEarthTile|LayerVectorRealEarth) => void; + loadCallback: timesLoadedCallback; localTimes: number[]; _currentTime: number; lyr: LayerRealEarthTile|LayerVectorRealEarth; - constructor(lyr: LayerRealEarthTile|LayerVectorRealEarth, loadCallback?: (lyr: LayerRealEarthTile|LayerVectorRealEarth) => void){ + constructor(lyr: LayerRealEarthTile|LayerVectorRealEarth, loadCallback?: timesLoadedCallback){ this.lyr = lyr; this._products = lyr._products; if (loadCallback){ this.loadCallback = loadCallback; } else { - this.loadCallback = function(lyr: LayerRealEarthTile|LayerVectorRealEarth): void {return;}; + this.loadCallback = function(): void {return;}; } } diff --git a/test-html/js/animate.js b/test-html/js/animate.js index 44d90ed16369c8f4d9eacffe6d7abb2f436db736..e8267d09ebc568d868371c3dc31c24ed8542978b 100644 --- a/test-html/js/animate.js +++ b/test-html/js/animate.js @@ -12015,7 +12015,7 @@ if (options.animate) { _super.call(this, '', options); this._products = options.products; - this.animator = new RealEarthAnimateTile_1.default(this); + this.animator = new RealEarthAnimateTile_1.default(this, options.timeLoadCallback); this.animator.timeInit(); } else { @@ -12231,7 +12231,7 @@ this.loadCallback = loadCallback; } else { - this.loadCallback = function (lyr) { return; }; + this.loadCallback = function () { return; }; } } /** diff --git a/test-html/js/animate.js.map b/test-html/js/animate.js.map index 6fe57087b48a0b8ee324f24988944f423c51081c..4f1c11a697607f3c0d7efd1cd8e8828d9f2c157e 100644 --- a/test-html/js/animate.js.map +++ b/test-html/js/animate.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b104dfc7a6d5a81dfd71","webpack:///./src/_test/animate.ts","webpack:///./src/olHelpers/quickMap.ts","webpack:///./src/olHelpers/quickMapBase.ts","webpack:///./src/util/provide.ts","webpack:///./~/custom-ol/lib/index.js","webpack:///./~/custom-ol/ol/ol-build.js","webpack:///./~/jquery/dist/jquery.js","webpack:///./src/olHelpers/mapMove.ts","webpack:///./src/olHelpers/mapMoveCls.ts","webpack:///./src/olHelpers/mapInteractionBase.ts","webpack:///./src/util/checkDefined.ts","webpack:///./src/util/makeGuid.ts","webpack:///./src/olHelpers/mapPopup.ts","webpack:///./src/olHelpers/mapPopupCls.ts","webpack:///./src/layers/LayerBase.ts","webpack:///./src/olHelpers/zoomResolutionConvert.ts","webpack:///./src/domUtil/range-change.ts","webpack:///./src/layers/LayerRealEarthTile.ts","webpack:///./src/layers/LayerBaseXyzTile.ts","webpack:///./src/mixin/RealEarthAnimateTile.ts","webpack:///./src/mixin/RealEarthAnimate.ts","webpack:///./src/domUtil/media-control.ts"],"names":[],"mappings":"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mB,yCAAyC,mBAAmB,2CAA2C,0CAA0C,wCAAwC;AAC1d,+CAA8C,4CAA4C,sCAAsC,wBAAwB,4CAA4C,sCAAsC,8CAA8C,2BAA2B,4CAA4C,sCAAsC,8CAA8C,2BAA2B;AAC9c,6BAA4B,+BAA+B,yBAAyB,8BAA8B;;;;;;;;;;;ACrYlH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF,qBAAoB;;AAEpB;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF,iCAAgC;AAChC;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,UAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA,iBAAgB,IAAI;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA,yCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD,UAAS;;AAET;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,OAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,OAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;;AAEA;AACA;AACA,YAAW,gBAAgB;AAC3B,cAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,iCAAgC,MAAM;AACtC;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,gBAAe;;AAEf,UAAS;;AAET;AACA,SAAQ,iCAAiC;AACzC,SAAQ,oBAAoB;AAC5B,SAAQ,sCAAsC;AAC9C,SAAQ;AACR,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,iBAAgB,aAAa,EAAE;AAC/B;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA4D;;AAE5D;AACA;AACA;AACA,0CAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAO;AACP;AACA;AACA;AACA;AACA,8DAA6D;;AAE7D;AACA;AACA;AACA,2CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iEAAgE;;AAEhE;AACA;AACA;AACA,8CAA6C;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,kEAAiE,UAAU;AAC3E,uCAAsC,2BAA2B;AACjE;AACA,iCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,UAAU;AACpB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,cAAc;AACxB;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA,aAAY,uEAAuE;AACnF;AACA;AACA,aAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,4DAA2D;;AAE3D;AACA;AACA,qFAAoF;;AAEpF;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,SAAQ,SAAS;AACjB;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAiD;AACjD,WAAU,wCAAwC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;;AAEA,EAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,SAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA,eAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,OAAO;AAChB,0BAAyB,wBAAwB;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA,2CAA0C;AAC1C,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA,QAAO;AACP,OAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR,QAAO;AACP;AACA,OAAM;AACN,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA8C;AAC9C,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,KAAI;;AAEJ;;AAEA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAuB,aAAa;AACpC,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAoB,SAAS;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,gBAAe,oBAAoB,EAAE;AACrC,gBAAe,qCAAqC,EAAE;AACtD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,SAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,uBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,gBAAgB;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAoD;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gEAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA,kBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,+BAA+B;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,wDAAwD;AAC/E;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAsC,cAAc;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAwC,OAAO;AAC/C;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,UAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;;AAEA,UAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sCAAqC,UAAU,SAAS,MAAM,aAAa;AAC3E,cAAa,eAAe;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAkC,2BAA2B,sBAAsB;AACnF,uBAAsB,cAAc;AACpC,iBAAgB,WAAW,YAAY;AACvC,YAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,SAAS,QAAQ,QAAQ;AACrD;;AAEA;AACA;AACA,qCAAoC,uBAAuB;AAC3D,oBAAmB,SAAS,SAAS;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA,aAAY,+DAA+D;AAC3E;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,SAAQ,OAAO;;AAEf;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,mBAAkB,gBAAgB;AAClC;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;;AAEA,WAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,aAAY;AACZ;;AAEA;AACA;AACA;;AAEA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;;AAEX;AACA;AACA;AACA,SAAQ,QAAQ;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,kDAAiD;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAU,iBAAiB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,4BAA2B;AAC3B;AACA,sBAAqB;AACrB;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,iBAAiB;AAC5B;AACA;;AAEA,8CAA6C;AAC7C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA,SAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,UAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA,kEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAoB,cAAc;AAClC,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,kDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAU,kBAAkB;AAC5B,YAAW,kBAAkB;AAC7B,eAAc;AACd,EAAC;AACD;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;;AAEA,kCAAiC;AACjC;AACA;;AAEA,KAAI;AACJ;;AAEA,KAAI;AACJ;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,SAAS;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,WAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qCAAqC;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAK;AACL;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,iBAAgB;;AAEhB,iDAAgD;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,kBAAiB;AACjB,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC;;AAElC;AACA,uBAAsB;AACtB,4BAA2B;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;AACJ;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAc;AACd,OAAM;AACN,OAAM;AACN,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA,GAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA,oDAAmD;AACnD;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,YAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,KAAI;AACJ,IAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA,GAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,sDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,WAAU,kBAAkB;AAC5B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB;;AAEnB,6DAA4D,eAAe;AAC3E;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA,eAAc,sDAAsD;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA,eAAc,mCAAmC;AACjD,gBAAe,6DAA6D;AAC5E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,GAAE;AACF,EAAC;;;AAGD;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,EAAC;;AAED;;;;;AAKA;AACA;AACA;AACA;AAC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","file":"animate.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b104dfc7a6d5a81dfd71\n **/","import {quickMap} from '../olHelpers/quickMap';\r\nimport LayerRealEarthTile from \"../layers/LayerRealEarthTile\";\r\nimport {MediaControl, changeFunction} from \"../domUtil/media-control\";\r\nimport $ = require('jquery');\r\n\r\nlet nexrhresConfig = {\r\n products: 'nexrhres',\r\n id: 'nexrhres-static',\r\n opacity: 0.6,\r\n animate: true,\r\n name: 'Hybrid Reflectivity',\r\n // maxZoom: 10,\r\n loadCallback: null\r\n};\r\n\r\nlet nexrhresStatic = new LayerRealEarthTile(nexrhresConfig);\r\n\r\n\r\nlet d = new Date();\r\nlet endTime = d.getTime();\r\nd.setHours(d.getHours() - 4);\r\nlet startTime = d.getTime();\r\nlet rangeStep = Math.round((endTime - startTime) / 8);\r\n\r\nlet media = new MediaControl(\r\n $('#control'),\r\n (v: number) => {\r\n nexrhresStatic.setLayerTime(v);\r\n },\r\n {\r\n min: startTime,\r\n max: endTime,\r\n val: endTime,\r\n step: rangeStep,\r\n playInterval: 750,\r\n showAsDate: true\r\n }\r\n);\r\n\r\n\r\n\r\nlet map = quickMap();\r\nmap.addLayer(nexrhresStatic.olLayer);\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/_test/animate.ts\n **/","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport {quickMapOptions, quickMapBase} from './quickMapBase';\r\nimport provide from '../util/provide';\r\nimport mapMove from './mapMove';\r\nimport mapPopup from './mapPopup';\r\nimport ol from 'custom-ol'\r\nlet nm = provide('olHelpers');\r\n\r\n/**\r\n * Sets up a map with some default parameters and initializes\r\n * mapMove and mapPopup\r\n *\r\n * @param {object} [options={}] config options\r\n * @param {string} [options.divId=map] map div id\r\n * @param {object} [options.center={}] center config object\r\n * @param {number} [options.center.x=-10018378] center x, web mercator x or lon\r\n * @param {number} [options.center.y=5574910] center y, web mercator y or lat\r\n * @param {number} [options.zoom=7] zoom level\r\n * @param {number} [options.minZoom=undefined] min zoom\r\n * @param {number} [options.maxZoom=undefined] max zoom\r\n * @param {boolean} [options.baseSwitcher=true] if add base map switcher\r\n * @param {boolean} [options.fullScreen=false] if add base map switcher\r\n * @returns the ol map\r\n */\r\nexport function quickMap(options? : quickMapOptions): ol.Map {\r\n let m = quickMapBase(options);\r\n mapMove.init(m);\r\n mapPopup.init(m);\r\n\r\n return m;\r\n}\r\n\r\n\r\nnm.quickMap = quickMap;\r\nexport default quickMap;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/quickMap.ts\n **/","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nconst nm = provide('olHelpers');\r\nconst $ = require('jquery');\r\n\r\n\r\nexport interface quickMapOptions {\r\n divId?: string;\r\n center?: {x: number, y: number};\r\n zoom?: number;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n baseSwitcher?: boolean;\r\n fullScreen?: boolean;\r\n}\r\n\r\n/**\r\n * Sets up a map with some default parameters and initializes\r\n * mapMove and mapPopup\r\n *\r\n * @param [options={}] config options\r\n * @param [options.divId=map] map div id\r\n * @param [options.center={}] center config object\r\n * @param [options.center.x=-10018378] center x, web mercator x or lon\r\n * @param [options.center.y=5574910] center y, web mercator y or lat\r\n * @param [options.zoom=7] zoom level\r\n * @param [options.minZoom=undefined] min zoom\r\n * @param [options.maxZoom=undefined] max zoom\r\n * @param [options.baseSwitcher=true] if add base map switcher\r\n * @param [options.fullScreen=false] if add base map switcher\r\n * @returns the ol map\r\n */\r\nexport function quickMapBase(options?: quickMapOptions): ol.Map {\r\n options = options || {} as quickMapOptions;\r\n options.divId = options.divId || 'map';\r\n options.center = options.center || {x: -10018378, y: 5574910};\r\n options.zoom = typeof options.zoom == 'number' ? options.zoom : 7;\r\n options.baseSwitcher = typeof options.baseSwitcher == 'boolean' ? options.baseSwitcher : true;\r\n options.fullScreen = typeof options.fullScreen == 'boolean' ? options.fullScreen : false;\r\n\r\n\r\n let $mapDiv = $('#' + options.divId);\r\n $mapDiv.css('position', 'relative');\r\n\r\n let osmLayer = new ol.layer.Tile({source: new ol.source.OSM()});\r\n // let satLayer = new ol.layer.Tile({visible: false, source: new ol.source.MapQuest({layer: 'sat'})});\r\n\r\n let osmCss = \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAADQ1NDk5OURFREtLS1FHSFlZWGJRVGJiYWdmZWxsbHRmaXBpanN0c3V0dHp5eX5+fIVzd4F3eeV0jud5juZ8k4aHhomHhoyGh5eGj5OVlJiVlZiYl5qZmJydnKOTlaKZmqKdnaOioaqqqKuzsbOvrrSysLa3tbW4uLm6ub27ub+/vbGXwbCZwbCgxLKlxrOqyLStybO3yrSxyrWzzbW2y7a1zbK4y7W6zbW8y760yrTAzbTFzrPKzrLOzrTJzrTOzr7CwbXC0LXK0LTO0L3I0bPQz7TQz7PS0bXQ0LnR0brW1bzT0r7U077V1Lzc2dqNqteUsdyXscaquuOHneaGmueHnOeJnuiBleiKn+eNoOiOoOWUpOiRo+iSpeiUpeqYpumaqOmdrPSynemgruSqtOmisOmlsuuqtequuOW1vOuxu+uxvOq1ve+xvPK0pvW3o/W5pfO5qvS7qfCwvMOuwc2/wNenxNyyzNe/0Nq31Nq51dy72Oy3wOu4wOu+xey4wO+6xO2+xfTAr/TCsvfFtPHLvvTJuMPDwMfHxcXKyc3DxMvFyMvLyM3PzcDV08DV1MTX1cbY1s7X1sjZ1sra2Mnd3M7b2c7c2tfH1tnB1t7F2d7M29fX1tLY1tDd2tHe3NTf3NnS19rZ1tva2Nnf3t3d28rh3tXg3Nnh3tzj393k39ni4N7k4N7n5uXDyOfLz+zAxu3CyOzEyezKzeDJ3eLM3uvP0u3P0ePf2+7R0u7Q1u/U0+7U1ezc0+7a2e/d2+3f3vbFzvLOwfHN0PPQw/TUx/LWyvLYzPDQ1fPe0ubc4vve4uHh3+nh3+/h2u/h3vHj2vHl3uHm4eTn4uDp5ebo4+Xo5ODq6ebq6OTv6+nl4+/j4O7l4e7n5ujp4+np5Ozq5e7s5urt6O7t6Orw6u7x6u3x7vPj5PDl4fDo4vDq5fDt5vDu6PDv7PTv6fDx6vHx7fH17fXw6fXy7fb07/bz8fT18vn38vr39fr48/r59Pr6+P3++//+/gAAALNTSk0AAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjlsM35OAAAFNElEQVRIS1VVCZxVUxi/9l0UIUT2bMnY43bVI2c0Y01kSWIaS0j2JEtkN41piomZrPPKQ2aQ7JKImOZlnm2493TJzDufuU1Zi+v/fee+mZ//793vnPOd7zvfes5zDBEZkBBjAcIjb+Iiotqgdhat8AMK0vl7/R9N7GiWtshqIr+EZ5gYKibyUsXY1l/mfFpssvUlWQ0FkU3gy4+RB/+kwYcO8pRSnldcOU/r2lAHARSwk2ORgEmOdC1EsuRiYSqMPwwroMIraZk5V2fYJQjCKfZrRmh3gSAZi2i4b7wSylWu8EqZwS59JkFUaW96JbNSc+CEUmt4rorwuZmWdDaoc+uZETuQlTCU5xYzR7muUnVUVo+BcRhre/VwUpasgJwhH7JkYIYA0sNxhmCwUK+lw6vCKBZehw01dEiyw4Q4aE0Z4ahDhKaFQsGnJ2BgqKoTBsNjFy0SlW6whRAZTdm8DBJmkBZhDi1j4xJQBk6ywrWUTymaCxac8lROcdauRGzQSNtA7EHUYhXyEwhhgjFUqRuO+rauhF1awFpzCsmwUbjIFBR0u1bKtyGpulW/H/cVVzkyGaIWTIR9pFAV6GK2gPMXMX8gPk9zzxXgI1kimcAltEYr+cjio1imlKpEa9rOipLm+p+CZ6Bw//qd1/f/O+GwMxbSLpyoZEcwkyh2jIks+3hmdd2jWUw4scxNysnHxU7nSspTRcJjCZGL3IsjsYJMMg5mwgx7gaIOLBFCogAgBBoNa9w+DE6I+Bs7FTgwwrJbHjWDgpYo2KwtBTcYEDuloC9geQw+k2RGnPGpTaOlq7AS+YICUz4DZVaX2TiNDhuYfTtY4geLi0IoCm3XccwM9hx4kU28StQEljDs3ZEpFGA+8dKzLmV9ymIwF5FOGn2GdJM8KLHDJbXyiYVMG9MRTLiXGGg2QKaxM3khPSRrwM9zEIardxU2w/EiA0gOeYKHzDR0V7/QGV3lKIA9ktrDArxO3gdA+k6SKoBiVwcm7NjZb9+Hnztg282TuHVZ9LOISFNt9MgyCetZVczSxnyDbl17Penq6mqpg1IhRaEO2aVLUO4/r17H8tTv6f13h71dduvZI3Y+uMdWksNSauLovJw5hsqiPIUvt0ku7/iBeUR3sksmomYWtRbAjbiLfv2lX9/V7LVG4uYnUZXhQ7f2OPCZEx9wrYWTcePEQqPEML8pl4mMdr/jlXlvHiRiJ2+MSTFY4TTSYStuvz2R/JXh+PPeGXm055J+3/YDWuNu3R3DArPutyg0ZgykMVDU9Ndm22+wYalr2rse48CnsTIFcMn73vfhNrktx1EUcZnPv6ah3Yy5cDTRdBEoGoBeah71dqFyjZDJLkWk3N3v4uuktssjWpzciMPxQeHj8nMKzcGuB0tAyzFhdCKOYWv4HwOQVwIxLG99a6uvH3sJCyO3h+k4EZ+G7+xj5f4XXksoaGrdMRzSc8ARA8+cdOuk2x6fffNNt5x+Ro1omPlrT/CQDlcNlpx4NBIWXhkx7Y3Zp3ofNR7Uv89Om/beW0TLIynHv3vs1VsOFpSWSXvfuPUf9BrRFyxgXdHoKJnQFegPOovvzz59ntrzye240ig8UQ3lDI2VqwagrKIQcLXNFL3wglN2OHdBQ6/vI3kENDVBwRb3k1XtczFbjWn4EzMYi7CF3129+JTYuRSdrGuS92g5dpqn6qXoJQs5xmL8p+Wt4hLbt0mx2OLNZR2bbPy8zJNQGFM/f/CfXZekRYFjGCWjIJpM+WiCzGBPWHhoyaAsjRT/B2Gy5yzYJkwUAAAAAElFTkSuQmCC')\";\r\n let aerialCss = \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQALBgIMDQgOBwQOEQcTBwUSCwoVDAwdBw8ZDgUREwYUGAYZFQYZGgkTFQoVGQsZFAwZHBMeDhIbFBEbHAwWIA4bIREcIQ4hCQwjFw4lHBgkDB8sDxUiExIiGhAoGxohFRshGRorHQcrKQsiIQwmKgooJA0pKQ81Jw8yLRMiIxImKxUrJREuKhslJB0rIhooKRUuMBMyLhkwJhozKh48LxUzMRM9MBwzMiUvFCMtGiMwEiwzFCgzHDI+GSIsISkvJSQxIiM2LiY5Jic+Lyk0JSo0Ky49JSs9KSU1NSM7NCs2NS8+NDM1JzU9Ljg7IDJCHS1DLSNAMitCMSxIOjREITZLIDZJKDlFIjpFKztKJT1LKzJBMzpHMD1JMjpKPD1RKjlQNC1DQj5QQEA8MEJGJkBKJUJNK0lLLEJMMkVMPEpONENSLUdZL0pTLkpaLkRUMkRSPEVZMktUM0pVOklZMklZNEpcNU1ZMk1ZNUxfMk5dNkxcOVFUM1RUOFJbNVFZOVNYPVFdOVJdPFVaOVVaPVVdOlVdPVpaNlpdO0phN01hOlBiN1NhPFNoP1piPWFbPmRjPENOQEtPSURTQkJVS0xVQk1VSkxbQkxcS0heUVFXRFRcQlJfTFxeQlpeS05lQk1kSFRjQVRjSlZpQ1tkQlxlSlxpRF1rSVVnUVtlU1llXF9tU1xoXlxwSl9ramRfQmJlQ2FhSWFlSWFlTmVlSWRmTGFoQWFpRWFsRmVpRWVtRmNsSmtlRGpqRmpsS2BmWGRsUmFrW2ptUmZyR2RxTGpxTWVyU2RyW2d5V2tzUmt0WW15VG15WXFuTHNtVnFxTXF4T3h0TnJzUnJ1XHJ4VXN6Wnp0VHx1W315VXp8XGR0YGx0YHVzZXJ0aHR9ZXV+aHl9YHOCXXqBXXeCYHyCY3iEaHyIYn+JaXqKcYB5WIN6Y4SCXoCDZIGEaYCIZoOLa4iCaImJbIOOdYuMco6OeIuVcpOKbZKPc5aQb5eXe5ufg6KjhAAAAAAAAAAAAAAAAOGCeQgAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjlsM35OAAAH80lEQVRISy1WbXQUVxm+6wqnk3Zmpxl2FG2EGg92C8GDlWptVTwa+uF3xcKmDfFzCUzDsJNsunXipglJXJbrtJWmwZNSnHD3jojRgUIm2UumIZ0JZ7JByrALbMWW0IBW8aRa4+cf76TeX3Nm3uc+z/s+7/vugl4r/aMTrT4e1pPTqnnmJNn5AyUzRnrRle/qE33dsvrBtAQVoxtpZNK3zSzYjUjviWO2Ag+R77dl7W36n/1Ep9KBPG/S+Py0PkjU/gPKQGqwTHryiWYFAXSvMairsio7SjyNsnCzh0qKImV9/7mhfHQZx2yN1O+7rXUm33MUPaboOkAJHaoIdXfJj2xWeyD8jMFEXkvIu5qzpU988gWB5zl+GS+sFe55trEVPdWZB2miq8bBVkNFO2R0qnrfkiXhcJhtDNXE6tbW97/s9O9/7ZfVhx86/CwrROpfvvxboMqeLsuqPr1j44qEwDNMOBximUiYoU8sw7BC/a7T72uEnyJDlGxZ9KcglZRyuqqrv/tSZErgOI4NgRBTIw9EmHAoFGZZnp6aGaJ2GTxfxYs8kKVUQh7WB5hQeC3LsUxoxVKW14l3BX2WcoUYPiZyLLe8teZ+iuT4GGhvV5KpKWkpyzxEr2MZgQ1xdRjfRBoH+2k6lIHjKTHPPBo8CSJISqqq4wGGOcWylIGlgvgNX1Gd8vF5f+IUIwb30ng+Gg2QfBRIMvy0jG8SVkYo4N0zvUXVRztbJ/L6xL7lUZEXBEHkuZqlS6gEAUgKJurnhFtfpACOYd8b/hVbJPqwi44a6KA0sPVjIi/SIyxb3u8KlAJ0S8jRVgrlW+nVHPdrhiXCxu42d86ByksDc80P3MkJFBFQ8Ho1lQegpWJRWFGsDsRwwv7pIyvuQW0ZkrX6NDVFbqcvaQI8vbyqzt5AARrsbKx5yhQEGs+wPO56bOK+0rcwMrOKkpUbZWYxV04UeZZv/cBKFhRL6Qdv9y4LfEDA7/thg7tTmv1a5/GnO0wl0dQg80wglZaHUmxRvjwAHOfyN0mxrpqLUpcjsK3NHYMo4R1o6eho2ZyIb2FoeOC3ILK8kZ2HQMOuWywGXUkJBCeTbYFS0+ym1h2/6UgmvnrvKYZZtIEXGf75C2cIAp5LHNd71x7uPoTjakrWH9e3KFpaatjUvJUysFw0KrLMYMW2lTg4PeUQx6kJEALvxXEmCdVyPLHtCSjBhc01XCjIgafxou+PE6KC1dhxSCwoBCc+N4P3btM84pmdSSjJnjO/nvY4LQfVyz5/I+v6IwjUOMjy+MVCxIbKupTJaEktp7cTKU42Pvjh2m/8cSpC6aPsaX/MHSuUQLVVsIa4RUTs/r/BVAexNdjdnsNG7j/rV93xheLMzKnFrPeTEQchCyCcKb25aAIn7lrAertrZwyNXM8N6zfWrFo3d2SmOEcF83x/r+OOFgrAHYWF7cELjhV7UQo/6WAIUVl9JFl8a//HZ66VpbY3I9QKZqPru77lA+iOWAIr0hKxHCmmr0othSyeIl5y3qt4xT8gSNrKEZozs8Els67rgsLOZ+ygzwMfbtNhobfgzpEyGnz7htPtzUi6PuOoj7K0WF/MXiUFxwGajRD1hjYXHXI9p406qOyinp5/tiWcDHY0jIu4n64Qfq7kliB2gemag9QbOia0PbbDMbd43SHuvxFxrAocxins7MX5Kqbe1QixKBxoV4//PfAgGCu+Rlm4SvZizyDH+0reDHp92iO0BuX3bCfItl0PEwvYLqpwXG2MHlGsQ4S8pMJZv1JGmHiEoHQDdOjwmVlEP/nE9ADKjI8xLI0OOGITfy0SbeG/C2jKUDGSlDhM9I3IpK9iup6XnbRNC7yqueNsJCCIiXzdQhnaGN+46umnEdy5U5UbUJ48LFM9GkJo8BdDOiAZ7ZIQbKhYLMqvhU2wmNxjEAsS2AI7y4nWF64duePbk7YV3zvAVLEMD9AxJRNa3KDUibV7DjnkuprMEYjScFNcaR2ceP2u9R/5k1052Ryme5phAFRswlHjAudiP4dOy7CaxLgdJh9vUlU1702/+LPa1U9fvPi9qlA4XEUBJc3dFlpsR457IDl1iPqLp7o81NQgyV19iYU38uTiv975Pd3SiwQcsGjx+v4/6fl5T7EOOMTCtpbKxfemsQq/3olQZcminADAAI0cuGLHaHOFxbuGvRk/Z9u7CULqoVR6NE0yx1avj30oRhc/jWUoIALGxkz0dg1Dl9iaI7LqOOXKsXJFwjiuEAi70Jra2nW1PL08zLBhZsMABpW5csI7TPfew9ipFKcn5k1i+1KyCWKjC3W/8dF1d666+RaabBVTFTHacjoojBNDh0NDxk+IPTlwfqJkWpbnpFHXIbLbmpxEQ3ff/Z0g/mauXsoln9wDRjy/NHsQFw3P6vWuTJ43/+FZrk2cvAFRipCKdfD9y2+pjRj78s0KdCUDKJvdV91ChngV38T20TM+gghjpJaPlpFr2xbEz5g4A/NGt5rNwdwmYGeeeMXBSLHHUIc+6RsojRH9VTUm3/mLf/64b470XvoxoTKhlMBQ2jMEzo2PjxdGMppmn1RM24bWFJqaQv4BcuJa2Sam7Zokq1ldCsz06NCBHrhwqVQYpfFj42NZexz1EW9SR/kT58nEeQKJb2fPXjjp0u/YUkwHEgLeOnf2nOuf1TRTM02CLKLTPy60/x1CCztqn7Ev+BdsC3m+30decQvW/wBNTwU+CfUQAQAAAABJRU5ErkJggg==')\";\r\n\r\n if (options.baseSwitcher) {\r\n // let switcherContent = '<div class=\"base-map-switcher\" title=\"Toggle Base Layer\" style=\"';\r\n // switcherContent += 'position: absolute; top: 70px; left: 4px; border: solid black 1px; ';\r\n // switcherContent += `height: 50px; width: 50px; z-index: 10; border-radius: 4px; background: ${aerialCss};`;\r\n // switcherContent += '\"></div>';\r\n // $mapDiv.append(switcherContent);\r\n //\r\n // $mapDiv.find('.base-map-switcher').click(function() {\r\n // \"use strict\";\r\n // osmLayer.setVisible(!osmLayer.getVisible());\r\n // satLayer.setVisible(!satLayer.getVisible());\r\n //\r\n // if (osmLayer.getVisible()){\r\n // $(this).css('background', aerialCss);\r\n // } else {\r\n // $(this).css('background', osmCss);\r\n // }\r\n // });\r\n }\r\n\r\n if (options.zoom < 0 || options.zoom > 28) {\r\n throw 'zoom out of range';\r\n }\r\n\r\n if (options.center.x >= -180 && options.center.x <= 180 && options.center.y >= -90 && options.center.y <= 90) {\r\n let p = new ol.geom.Point([options.center.x, options.center.y]);\r\n new ol.proj.Projection({code: \"EPSG:4326\"});\r\n\r\n p.transform(new ol.proj.Projection({code: \"EPSG:4326\"}), new ol.proj.Projection({code: \"EPSG:3857\"}));\r\n let coordinates = p.getCoordinates();\r\n options.center.x = coordinates[0];\r\n options.center.y = coordinates[1];\r\n }\r\n\r\n let map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: ol.control.defaults({\r\n attributionOptions: {collapsible: false}\r\n }),\r\n view: new ol.View({\r\n center: [options.center.x, options.center.y],\r\n zoom: options.zoom,\r\n minZoom: options.minZoom,\r\n maxZoom: options.maxZoom\r\n })\r\n });\r\n\r\n if (options.fullScreen) {\r\n //TODO add full screen options to ts\r\n map.addControl(new ol.control.FullScreen({}));\r\n }\r\n\r\n return map;\r\n}\r\n\r\nnm.quickMapBase = quickMapBase;\r\nexport default quickMapBase;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/quickMapBase.ts\n **/","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\r\n\r\n/**\r\n * create a namespace on the gv object\r\n * @param {string} namespace to create\r\n * @returns {object} object representing the namespace\r\n */\r\nfunction provide(namespace){\r\n \"use strict\";\r\n if (typeof window['gv'] == 'undefined'){\r\n window['gv'] = {};\r\n }\r\n\r\n let parts = namespace.split('.');\r\n let nameSpace = window['gv'];\r\n\r\n for (let i=0; i< parts.length; i++){\r\n let newObject = nameSpace[parts[i]];\r\n\r\n if (typeof newObject == 'undefined'){\r\n nameSpace[parts[i]] = {};\r\n }\r\n\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n\r\n return nameSpace;\r\n}\r\n\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\n\r\nexport default provide;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/util/provide.ts\n **/","\"use strict\";\r\nvar ol_build_1 = require('../ol/ol-build');\r\nexports.ol = ol_build_1.ol;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = ol_build_1.ol;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/custom-ol/lib/index.js\n ** module id = 4\n ** module chunks = 0 2 3 7\n **/","// OpenLayers 3. See http://openlayers.org/\r\n// License: https://raw.githubusercontent.com/openlayers/ol3/master/LICENSE.md\r\nvar n,aa=this;\r\nfunction ba(){var a=aa.setImmediate,b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\r\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}function ca(a,b,c){return a.call.apply(a.bind,arguments)}function da(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}\r\nfunction ea(a,b,c){ea=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?ca:da;return ea.apply(null,arguments)}function y(a,b){var c=a.split(\".\"),d=aa;c[0]in d||!d.execScript||d.execScript(\"var \"+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b};var fa;function B(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function I(){}function J(a){return a.ie||(a.ie=++ga)}var ga=0;if(\"undefined\"!==typeof window)var K=window;else\"undefined\"!==typeof global?K=global:\"undefined\"!==typeof self&&(K=self);function ha(a){this.message=\"Assertion failed. See /doc/errors/#\"+a+\" for details.\";this.code=a;this.name=\"AssertionError\"}B(ha,Error);function L(a,b){if(!a)throw new ha(b);};function ia(a,b,c){return Math.min(Math.max(a,b),c)}var ja=function(){var a;\"cosh\"in Math?a=Math.cosh:a=function(a){a=Math.exp(a);return(a+1/a)/2};return a}();function ka(a){L(0<a,29);return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))}function la(a,b){var c=a%b;return 0>c*b?c+b:c};function ma(a){return function(b){if(b)return[ia(b[0],a[0],a[2]),ia(b[1],a[1],a[3])]}}function na(a){return a};function oa(a,b,c){this.center=a;this.resolution=b;this.rotation=c};var pa=\"function\"===typeof Object.assign?Object.assign:function(a,b){if(!a||!a)throw new TypeError(\"Cannot convert undefined or null to object\");for(var c=Object(a),d=1,e=arguments.length;d<e;++d){var f=arguments[d];if(void 0!==f&&null!==f)for(var g in f)f.hasOwnProperty(g)&&(c[g]=f[g])}return c};function qa(a){for(var b in a)delete a[b]}function ra(a){var b=[],c;for(c in a)b.push(a[c]);return b}function sa(a){for(var b in a)return!1;return!b};function ta(a){function b(b){var d=a.listener,e=a.jc||a.target;a.mc&&M(a);return d.call(e,b)}return a.kc=b}function ua(a,b,c,d){for(var e,f=0,g=a.length;f<g;++f)if(e=a[f],e.listener===b&&e.jc===c)return d&&(e.deleteIndex=f),e}function va(a,b){var c=a.ha;return c?c[b]:void 0}function wa(a){var b=a.ha;b||(b=a.ha={});return b}\r\nfunction xa(a,b){var c=va(a,b);if(c){for(var d=0,e=c.length;d<e;++d)a.removeEventListener(b,c[d].kc),qa(c[d]);c.length=0;if(c=a.ha)delete c[b],0===Object.keys(c).length&&delete a.ha}}function R(a,b,c,d,e){var f=wa(a),g=f[b];g||(g=f[b]=[]);(f=ua(g,c,d,!1))?e||(f.mc=!1):(f={jc:d,mc:!!e,listener:c,target:a,type:b},a.addEventListener(b,ta(f)),g.push(f));return f}function ya(a,b,c,d){(a=va(a,b))&&(c=ua(a,c,d,!0))&&M(c)}\r\nfunction M(a){if(a&&a.target){a.target.removeEventListener(a.type,a.kc);var b=va(a.target,a.type);if(b){var c=\"deleteIndex\"in a?a.deleteIndex:b.indexOf(a);-1!==c&&b.splice(c,1);0===b.length&&xa(a.target,a.type)}qa(a)}}function za(a){var b=wa(a),c;for(c in b)xa(a,c)};function Aa(){}Aa.prototype.ra=!1;function Da(a){a.ra||(a.ra=!0,a.R())}Aa.prototype.R=I;function T(a){this.type=a;this.target=null}T.prototype.preventDefault=T.prototype.stopPropagation=function(){this.qe=!0};function Ea(a){a.stopPropagation()}function Fa(a){a.preventDefault()};function Ga(){this.ca={};this.K={};this.C={}}B(Ga,Aa);Ga.prototype.addEventListener=function(a,b){var c=this.C[a];c||(c=this.C[a]=[]);-1===c.indexOf(b)&&c.push(b)};function U(a,b){var c=\"string\"===typeof b?new T(b):b,d=c.type;c.target=a;var e=a.C[d],f;if(e){d in a.K||(a.K[d]=0,a.ca[d]=0);++a.K[d];for(var g=0,h=e.length;g<h;++g)if(!1===e[g].call(a,c)||c.qe){f=!1;break}--a.K[d];if(0===a.K[d]){c=a.ca[d];for(delete a.ca[d];c--;)a.removeEventListener(d,I);delete a.K[d]}return f}}Ga.prototype.R=function(){za(this)};\r\nfunction Ha(a,b){return b?b in a.C:0<Object.keys(a.C).length}Ga.prototype.removeEventListener=function(a,b){var c=this.C[a];if(c){var d=c.indexOf(b);a in this.ca?(c[d]=I,++this.ca[a]):(c.splice(d,1),0===c.length&&delete this.C[a])}};function Ia(){Ga.call(this);this.b=0}B(Ia,Ga);Ia.prototype.w=function(){++this.b;U(this,\"change\")};Ia.prototype.Y=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=R(this,a[f],b,c);return e}return R(this,a,b,c)};Ia.prototype.hd=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=R(this,a[f],b,c,!0);return e}return R(this,a,b,c,!0)};function Ja(a,b,c){T.call(this,a);this.key=b;this.oldValue=c}B(Ja,T);function V(a){Ia.call(this);J(this);this.M={};void 0!==a&&this.l(a)}B(V,Ia);var Ka={};function La(a){return Ka.hasOwnProperty(a)?Ka[a]:Ka[a]=\"change:\"+a}V.prototype.get=function(a){var b;this.M.hasOwnProperty(a)&&(b=this.M[a]);return b};V.prototype.Ea=function(){return pa({},this.M)};V.prototype.set=function(a,b,c){c?this.M[a]=b:(c=this.M[a],this.M[a]=b,c!==b&&(b=La(a),U(this,new Ja(b,a,c)),U(this,new Ja(\"propertychange\",a,c))))};\r\nV.prototype.l=function(a,b){for(var c in a)this.set(c,a[c],b)};function Ma(a,b){return a>b?1:a<b?-1:0}function Na(a,b,c){var d=a.length;if(a[0]<=b)return 0;if(!(b<=a[d-1]))if(0<c)for(c=1;c<d;++c){if(a[c]<b)return c-1}else if(0>c)for(c=1;c<d;++c){if(a[c]<=b)return c}else for(c=1;c<d;++c){if(a[c]==b)return c;if(a[c]<b)return a[c-1]-b<b-a[c]?c-1:c}return d-1}function Oa(a){return a.reduce(function(a,c){return Array.isArray(c)?a.concat(Oa(c)):a.concat(c)},[])}function Pa(a,b){var c,d=Array.isArray(b)?b:[b],e=d.length;for(c=0;c<e;c++)a[a.length]=d[c]}\r\nfunction Qa(a,b){var c=a.indexOf(b),d=-1<c;d&&a.splice(c,1);return d}function Ra(a,b){var c=a.length;if(c!==b.length)return!1;for(var d=0;d<c;d++)if(a[d]!==b[d])return!1;return!0}function Sa(a){var b=Ta,c=a.length,d=Array(a.length),e;for(e=0;e<c;e++)d[e]={index:e,value:a[e]};d.sort(function(a,c){return b(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value}function Ua(a,b){var c=b||Ma;return a.every(function(b,e){if(0===e)return!0;var f=c(a[e-1],b);return!(0<f||0===f)})};function Va(a){return function(b,c,d){if(void 0!==b)return b=Na(a,b,d),b=ia(b+c,0,a.length-1),c=Math.floor(b),b!=c&&c<a.length-1?a[c]/Math.pow(a[c]/a[c+1],b-c):a[c]}}function Wa(a,b,c){return function(d,e,f){if(void 0!==d)return d=Math.max(Math.floor(Math.log(b/d)/Math.log(a)+(-f/2+.5))+e,0),void 0!==c&&(d=Math.min(d,c)),b/Math.pow(a,d)}};function Xa(a){if(void 0!==a)return 0}function Ya(a,b){if(void 0!==a)return a+b}function Za(a){var b=2*Math.PI/a;return function(a,d){if(void 0!==a)return a=Math.floor((a+d)/b+.5)*b}}function $a(){var a=5*Math.PI/180;return function(b,c){if(void 0!==b)return Math.abs(b+c)<=a?0:b+c}};function ab(a,b){a[0]+=b[0];a[1]+=b[1]}function bb(a,b){var c=Math.cos(b),d=Math.sin(b),e=a[1]*c+a[0]*d;a[0]=a[0]*c-a[1]*d;a[1]=e};function cb(a){for(var b=db(),c=0,d=a.length;c<d;++c)eb(b,a[c]);return b}function fb(a,b,c){return c?(c[0]=a[0]-b,c[1]=a[1]-b,c[2]=a[2]+b,c[3]=a[3]+b,c):[a[0]-b,a[1]-b,a[2]+b,a[3]+b]}function gb(a,b){return b?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b):a.slice()}function hb(a,b){return a[0]<=b[0]&&b[2]<=a[2]&&a[1]<=b[1]&&b[3]<=a[3]}function db(){return[Infinity,Infinity,-Infinity,-Infinity]}function ib(a,b,c,d,e){return e?(e[0]=a,e[1]=b,e[2]=c,e[3]=d,e):[a,b,c,d]}\r\nfunction jb(a){return ib(Infinity,Infinity,-Infinity,-Infinity,a)}function kb(a,b){var c=a[0],d=a[1];return ib(c,d,c,d,b)}function lb(a,b){return a[0]==b[0]&&a[2]==b[2]&&a[1]==b[1]&&a[3]==b[3]}function mb(a,b){b[0]<a[0]&&(a[0]=b[0]);b[2]>a[2]&&(a[2]=b[2]);b[1]<a[1]&&(a[1]=b[1]);b[3]>a[3]&&(a[3]=b[3])}function eb(a,b){b[0]<a[0]&&(a[0]=b[0]);b[0]>a[2]&&(a[2]=b[0]);b[1]<a[1]&&(a[1]=b[1]);b[1]>a[3]&&(a[3]=b[1])}\r\nfunction nb(a,b,c,d,e){for(;c<d;c+=e){var f=a,g=b[c],h=b[c+1];f[0]=Math.min(f[0],g);f[1]=Math.min(f[1],h);f[2]=Math.max(f[2],g);f[3]=Math.max(f[3],h)}return a}function ob(a){var b=0;pb(a)||(b=qb(a)*rb(a));return b}function sb(a){return[a[0],a[1]]}function tb(a){return[(a[0]+a[2])/2,(a[1]+a[3])/2]}\r\nfunction ub(a,b,c,d,e){var f=b*d[0]/2;d=b*d[1]/2;b=Math.cos(c);var g=Math.sin(c);c=f*b;f*=g;b*=d;var h=d*g,k=a[0],l=a[1];a=k-c+h;d=k-c-h;g=k+c-h;c=k+c+h;var h=l-f-b,k=l-f+b,m=l+f+b,f=l+f-b;return ib(Math.min(a,d,g,c),Math.min(h,k,m,f),Math.max(a,d,g,c),Math.max(h,k,m,f),e)}function rb(a){return a[3]-a[1]}function vb(a,b){var c=db();wb(a,b)&&(c[0]=a[0]>b[0]?a[0]:b[0],c[1]=a[1]>b[1]?a[1]:b[1],c[2]=a[2]<b[2]?a[2]:b[2],c[3]=a[3]<b[3]?a[3]:b[3]);return c}function xb(a){return[a[0],a[3]]}\r\nfunction qb(a){return a[2]-a[0]}function wb(a,b){return a[0]<=b[2]&&a[2]>=b[0]&&a[1]<=b[3]&&a[3]>=b[1]}function pb(a){return a[2]<a[0]||a[3]<a[1]};function yb(){return!0}function zb(){return!1};/*\r\n\r\n Latitude/longitude spherical geodesy formulae taken from\r\n http://www.movable-type.co.uk/scripts/latlong.html\r\n Licensed under CC-BY-3.0.\r\n*/\r\nfunction Ab(a){this.radius=a}function Bb(a,b){var c=a[1]*Math.PI/180,d=b[1]*Math.PI/180,e=(d-c)/2,f=(b[0]-a[0])*Math.PI/180/2,c=Math.sin(e)*Math.sin(e)+Math.sin(f)*Math.sin(f)*Math.cos(c)*Math.cos(d);return 2*Cb.radius*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))}\r\nAb.prototype.offset=function(a,b,c){var d=a[1]*Math.PI/180;b/=this.radius;var e=Math.asin(Math.sin(d)*Math.cos(b)+Math.cos(d)*Math.sin(b)*Math.cos(c));return[180*(a[0]*Math.PI/180+Math.atan2(Math.sin(c)*Math.sin(b)*Math.cos(d),Math.cos(b)-Math.sin(d)*Math.sin(e)))/Math.PI,180*e/Math.PI]};var Cb=new Ab(6370997);var Db={};Db.degrees=2*Math.PI*Cb.radius/360;Db.ft=.3048;Db.m=1;Db[\"us-ft\"]=1200/3937;\r\nfunction Eb(a){this.ya=a.code;this.a=a.units;this.h=void 0!==a.extent?a.extent:null;this.c=void 0!==a.global?a.global:!1;this.b=!(!this.c||!this.h);this.i=void 0!==a.getPointResolution?a.getPointResolution:this.j;this.f=null;this.g=a.metersPerUnit;var b=Fb,c=a.code,d=Gb||K.proj4;if(\"function\"==typeof d&&void 0===b[c]){var e=d.defs(c);if(void 0!==e){void 0===a.metersPerUnit&&(this.g=e.to_meter);void 0===a.units&&(this.a=e.units);var f,g;for(f in b)if(a=d.defs(f),void 0!==a)if(b=Hb(f),a===e)Ib([b,this]);\r\nelse{g=d(f,c);a=g.forward;g=g.inverse;var b=Hb(b),h=Hb(this);Jb(b,h,Kb(a));Jb(h,b,Kb(g))}}}}Eb.prototype.l=function(){return this.ya};Eb.prototype.G=function(){return this.h};function Lb(a){return a.g||Db[a.a]}Eb.prototype.j=function(a,b){if(\"degrees\"==this.a)return a;var c=Mb(this,Hb(\"EPSG:4326\")),d=[b[0]-a/2,b[1],b[0]+a/2,b[1],b[0],b[1]-a/2,b[0],b[1]+a/2],d=c(d,d,2),c=(Bb(d.slice(0,2),d.slice(2,4))+Bb(d.slice(4,6),d.slice(6,8)))/2,d=Lb(this);void 0!==d&&(c/=d);return c};\r\nEb.prototype.getPointResolution=function(a,b){return this.i(a,b)};var Fb={},Ob={},Gb=null;function Ib(a){Pb(a);a.forEach(function(b){a.forEach(function(a){b!==a&&Jb(b,a,Qb)})})}function Rb(a){Fb[a.ya]=a;Jb(a,a,Qb)}function Pb(a){var b=[];a.forEach(function(a){b.push(Rb(a))})}function Sb(a){return a?\"string\"===typeof a?Hb(a):a:Hb(\"EPSG:3857\")}function Jb(a,b,c){a=a.ya;b=b.ya;a in Ob||(Ob[a]={});Ob[a][b]=c}\r\nfunction Kb(a){return function(b,c,d){var e=b.length;d=void 0!==d?d:2;c=void 0!==c?c:Array(e);var f,g;for(g=0;g<e;g+=d)for(f=a([b[g],b[g+1]]),c[g]=f[0],c[g+1]=f[1],f=d-1;2<=f;--f)c[g+f]=b[g+f];return c}}function Hb(a){var b;if(a instanceof Eb)b=a;else if(\"string\"===typeof a){b=Fb[a];var c=Gb||K.proj4;void 0===b&&\"function\"==typeof c&&void 0!==c.defs(a)&&(b=new Eb({code:a}),Rb(b))}return b||null}function Tb(a,b){if(a===b)return!0;var c=a.a===b.a;return a.ya===b.ya?c:Mb(a,b)===Qb&&c}\r\nfunction Ub(a,b){var c=Hb(a),d=Hb(b);return Mb(c,d)}function Mb(a,b){var c=a.ya,d=b.ya,e;c in Ob&&d in Ob[c]&&(e=Ob[c][d]);void 0===e&&(e=Vb);return e}function Vb(a,b){if(void 0!==b&&a!==b){for(var c=0,d=a.length;c<d;++c)b[c]=a[c];a=b}return a}function Qb(a,b){var c;if(void 0!==b){c=0;for(var d=a.length;c<d;++c)b[c]=a[c];c=b}else c=a.slice();return c};function Wb(){V.call(this);this.j=db();this.s=-1;this.f={};this.i=this.g=0}B(Wb,V);Wb.prototype.G=function(a){this.s!=this.b&&(this.j=this.mb(this.j),this.s=this.b);var b=this.j;a?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a=b;return a};Wb.prototype.transform=function(a,b){this.Hb(Ub(a,b));return this};function Xb(a,b,c,d,e,f){for(var g=f?f:[],h=0;b<c;b+=d){var k=a[b],l=a[b+1];g[h++]=e[0]*k+e[2]*l+e[4];g[h++]=e[1]*k+e[3]*l+e[5]}f&&g.length!=h&&(g.length=h);return g};function Yb(){Wb.call(this);this.c=\"XY\";this.A=2;this.o=null}B(Yb,Wb);function Zb(a){var b;\"XY\"==a?b=2:\"XYZ\"==a||\"XYM\"==a?b=3:\"XYZM\"==a&&(b=4);return b}n=Yb.prototype;n.mb=function(a){var b=this.o,c=this.o.length,d=this.A;a=jb(a);return nb(a,b,0,c,d)};n.Rb=function(a){this.i!=this.b&&(qa(this.f),this.g=0,this.i=this.b);if(0>a||0!==this.g&&a<=this.g)return this;var b=a.toString();if(this.f.hasOwnProperty(b))return this.f[b];var c=this.Qa(a);if(c.o.length<this.o.length)return this.f[b]=c;this.g=a;return this};\r\nn.Qa=function(){return this};function $b(a,b,c){a.A=Zb(b);a.c=b;a.o=c}function ac(a,b,c,d){if(b)c=Zb(b);else{for(b=0;b<d;++b){if(0===c.length){a.c=\"XY\";a.A=2;return}c=c[0]}c=c.length;var e;2==c?e=\"XY\":3==c?e=\"XYZ\":4==c&&(e=\"XYZM\");b=e}a.c=b;a.A=c}n.Hb=function(a){this.o&&(a(this.o,this.o,this.A),this.w())};\r\nn.rotate=function(a,b){var c=this.o;if(c){for(var d=c.length,e=this.A,f=c?c:[],g=Math.cos(a),h=Math.sin(a),k=b[0],l=b[1],m=0,p=0;p<d;p+=e){var q=c[p]-k,u=c[p+1]-l;f[m++]=k+q*g-u*h;f[m++]=l+q*h+u*g;for(q=p+2;q<p+e;++q)f[m++]=c[q]}c&&f.length!=m&&(f.length=m);this.w()}};\r\nn.scale=function(a,b,c){var d=b;void 0===d&&(d=a);var e=c;e||(e=tb(this.G()));if(c=this.o){b=c.length;for(var f=this.A,g=c?c:[],h=e[0],e=e[1],k=0,l=0;l<b;l+=f){var m=c[l]-h,p=c[l+1]-e;g[k++]=h+a*m;g[k++]=e+d*p;for(m=l+2;m<l+f;++m)g[k++]=c[m]}c&&g.length!=k&&(g.length=k);this.w()}};n.translate=function(a,b){var c=this.o;if(c){var d=c.length,e=this.A,f=c?c:[],g=0,h,k;for(h=0;h<d;h+=e)for(f[g++]=c[h]+a,f[g++]=c[h+1]+b,k=h+2;k<h+e;++k)f[g++]=c[k];c&&f.length!=g&&(f.length=g);this.w()}};function bc(a,b){var c=0,d,e;d=0;for(e=b.length;d<e;++d)a[c++]=b[d];return c}function cc(a,b,c,d){var e,f;e=0;for(f=c.length;e<f;++e){var g=c[e],h;for(h=0;h<d;++h)a[b++]=g[h]}return b}function dc(a,b,c,d,e){e=e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g)b=cc(a,b,c[g],d),e[f++]=b;e.length=f;return e};function ec(a,b,c,d,e){e=void 0!==e?e:[];for(var f=0;b<c;b+=d)e[f++]=a.slice(b,b+d);e.length=f;return e}function fc(a,b,c,d,e){e=void 0!==e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g){var k=c[g];e[f++]=ec(a,b,k,d,e[f]);b=k}e.length=f;return e};function gc(a,b,c,d,e,f,g){var h=(c-b)/d;if(3>h){for(;b<c;b+=d)f[g++]=a[b],f[g++]=a[b+1];return g}var k=Array(h);k[0]=1;k[h-1]=1;c=[b,c-d];for(var l=0,m;0<c.length;){var p=c.pop(),q=c.pop(),u=0,w=a[q],r=a[q+1],x=a[p],D=a[p+1];for(m=q+d;m<p;m+=d){var t,z=a[m];t=a[m+1];var C=w,E=r,v=x-C,H=D-E;if(0!==v||0!==H){var G=((z-C)*v+(t-E)*H)/(v*v+H*H);1<G?(C=x,E=D):0<G&&(C+=v*G,E+=H*G)}z=C-z;t=E-t;t=z*z+t*t;t>u&&(l=m,u=t)}u>e&&(k[(l-b)/d]=1,q+d<l&&c.push(q,l),l+d<p&&c.push(l,p))}for(m=0;m<h;++m)k[m]&&(f[g++]=\r\na[b+m*d],f[g++]=a[b+m*d+1]);return g}\r\nfunction hc(a,b,c,d,e,f,g,h){var k,l;k=0;for(l=c.length;k<l;++k){var m=c[k];a:{var p=a,q=m,u=d,w=e,r=f;if(b!=q){var x=w*Math.round(p[b]/w),D=w*Math.round(p[b+1]/w);b+=u;r[g++]=x;r[g++]=D;var t,z;do if(t=w*Math.round(p[b]/w),z=w*Math.round(p[b+1]/w),b+=u,b==q){r[g++]=t;r[g++]=z;break a}while(t==x&&z==D);for(;b<q;){var C,E;C=w*Math.round(p[b]/w);E=w*Math.round(p[b+1]/w);b+=u;if(C!=t||E!=z){var v=t-x,H=z-D,G=C-x,A=E-D;v*A==H*G&&(0>v&&G<v||v==G||0<v&&G>v)&&(0>H&&A<H||H==A||0<H&&A>H)||(r[g++]=t,r[g++]=\r\nz,x=t,D=z);t=C;z=E}}r[g++]=t;r[g++]=z}}h.push(g);b=m}return g};function ic(a,b){Yb.call(this);this.ea(a,b)}B(ic,Yb);n=ic.prototype;n.clone=function(){var a=new ic(null);$b(a,this.c,this.o.slice());a.w();return a};n.za=function(){return ec(this.o,0,this.o.length,this.A)};n.Qa=function(a){var b=[];b.length=gc(this.o,0,this.o.length,this.A,a,b,0);a=new ic(null);$b(a,\"XY\",b);a.w();return a};n.$=function(){return\"LinearRing\"};n.ea=function(a,b){a?(ac(this,b,a,1),this.o||(this.o=[]),this.o.length=cc(this.o,0,a,this.A)):$b(this,\"XY\",null);this.w()};function jc(a,b){Yb.call(this);this.ea(a,b)}B(jc,Yb);n=jc.prototype;n.clone=function(){var a=new jc(null);$b(a,this.c,this.o.slice());a.w();return a};n.za=function(){return this.o?this.o.slice():[]};n.mb=function(a){return kb(this.o,a)};n.$=function(){return\"Point\"};n.ea=function(a,b){a?(ac(this,b,a,0),this.o||(this.o=[]),this.o.length=bc(this.o,a)):$b(this,\"XY\",null);this.w()};function kc(a,b,c,d,e,f){for(var g=!1,h=a[c-d],k=a[c-d+1];b<c;b+=d){var l=a[b],m=a[b+1];k>f!=m>f&&e<(l-h)*(f-k)/(m-k)+h&&(g=!g);h=l;k=m}return g};function lc(a,b,c,d,e,f,g){var h,k,l,m,p,q=e[f+1],u=[],w=c[0];l=a[w-d];p=a[w-d+1];for(h=b;h<w;h+=d){m=a[h];k=a[h+1];if(q<=p&&k<=q||p<=q&&q<=k)l=(q-p)/(k-p)*(m-l)+l,u.push(l);l=m;p=k}w=NaN;p=-Infinity;u.sort(Ma);l=u[0];h=1;for(k=u.length;h<k;++h){m=u[h];var r=Math.abs(m-l);if(r>p){l=(l+m)/2;var x;a:if(0!==c.length&&kc(a,b,c[0],d,l,q)){var D;x=1;for(D=c.length;x<D;++x)if(kc(a,c[x-1],c[x],d,l,q)){x=!1;break a}x=!0}else x=!1;x&&(w=l,p=r)}l=m}isNaN(w)&&(w=e[f]);return g?(g.push(w,q),g):[w,q]};function mc(a,b,c,d){for(var e=0,f=a[c-d],g=a[c-d+1];b<c;b+=d)var h=a[b],k=a[b+1],e=e+(h-f)*(k+g),f=h,g=k;return 0<e}function nc(a,b,c,d){var e=0;d=void 0!==d?d:!1;var f,g;f=0;for(g=b.length;f<g;++f){var h=b[f],e=mc(a,e,h,c);if(0===f){if(d&&e||!d&&!e)return!1}else if(d&&!e||!d&&e)return!1;e=h}return!0}\r\nfunction oc(a,b,c,d,e){e=void 0!==e?e:!1;var f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],k=mc(a,b,h,d);if(0===f?e&&k||!e&&!k:e&&!k||!e&&k)for(var k=a,l=h,m=d;b<l-m;){var p;for(p=0;p<m;++p){var q=k[b+p];k[b+p]=k[l-m+p];k[l-m+p]=q}b+=m;l-=m}b=h}return b}function pc(a,b,c,d){var e=0,f,g;f=0;for(g=b.length;f<g;++f)e=oc(a,e,b[f],c,d);return e};function qc(a,b){Yb.call(this);this.ja=[];this.h=-1;this.v=null;this.u=-1;this.a=null;this.ea(a,b)}B(qc,Yb);n=qc.prototype;n.clone=function(){var a=new qc(null);rc(a,this.c,this.o.slice(),this.ja.slice());return a};n.za=function(a){var b;void 0!==a?(b=sc(this).slice(),oc(b,0,this.ja,this.A,a)):b=this.o;return fc(b,0,this.ja,this.A)};function tc(a){if(a.h!=a.b){var b=tb(a.G());a.v=lc(sc(a),0,a.ja,a.A,b,0);a.h=a.b}return a.v}\r\nfunction sc(a){if(a.u!=a.b){var b=a.o;nc(b,a.ja,a.A)?a.a=b:(a.a=b.slice(),a.a.length=oc(a.a,0,a.ja,a.A));a.u=a.b}return a.a}n.Qa=function(a){var b=[],c=[];b.length=hc(this.o,0,this.ja,this.A,Math.sqrt(a),b,0,c);a=new qc(null);rc(a,\"XY\",b,c);return a};n.$=function(){return\"Polygon\"};n.ea=function(a,b){if(a){ac(this,b,a,2);this.o||(this.o=[]);var c=dc(this.o,0,a,this.A,this.ja);this.o.length=0===c.length?0:c[c.length-1];this.w()}else rc(this,\"XY\",null,this.ja)};\r\nfunction rc(a,b,c,d){$b(a,b,c);a.ja=d;a.w()};function uc(a){V.call(this);a=a||{};this.c=[0,0];var b={};b[vc]=void 0!==a.center?a.center:null;this.j=Sb(a.projection);var c,d,e,f=void 0!==a.minZoom?a.minZoom:0;c=void 0!==a.maxZoom?a.maxZoom:28;var g=void 0!==a.zoomFactor?a.zoomFactor:2;if(void 0!==a.resolutions)c=a.resolutions,d=c[0],e=c[c.length-1],c=Va(c);else{d=Sb(a.projection);e=d.G();var h=(e?Math.max(qb(e),rb(e)):360*Db.degrees/Lb(d))/256/Math.pow(2,0),k=h/Math.pow(2,28);d=a.maxResolution;void 0!==d?f=0:d=h/Math.pow(g,f);e=a.minResolution;\r\nvoid 0===e&&(e=void 0!==a.maxZoom?void 0!==a.maxResolution?d/Math.pow(g,c):h/Math.pow(g,c):k);c=f+Math.floor(Math.log(d/e)/Math.log(g));e=d/Math.pow(g,c-f);c=Wa(g,d,c-f)}this.f=d;this.i=e;this.s=g;this.g=a.resolutions;this.h=f;f=void 0!==a.extent?ma(a.extent):na;(void 0!==a.enableRotation?a.enableRotation:1)?(g=a.constrainRotation,g=void 0===g||!0===g?$a():!1===g?Ya:\"number\"===typeof g?Za(g):Ya):g=Xa;this.a=new oa(f,c,g);void 0!==a.resolution?b[wc]=a.resolution:void 0!==a.zoom&&(b[wc]=this.constrainResolution(this.f,\r\na.zoom-this.h));b[xc]=void 0!==a.rotation?a.rotation:0;this.l(b)}B(uc,V);n=uc.prototype;n.constrainResolution=function(a,b,c){return this.a.resolution(a,b||0,c||0)};n.constrainRotation=function(a,b){return this.a.rotation(a,b||0)};n.qa=function(){return this.get(vc)};n.lc=function(a){var b=this.qa();L(b,1);var c=this.O();L(void 0!==c,2);var d=this.get(xc);L(void 0!==d,3);return ub(b,c,d,a)};n.ia=function(){return this.j};n.O=function(){return this.get(wc)};\r\nfunction yc(a,b){return Math.max(qb(a)/b[0],rb(a)/b[1])}n.T=function(){var a=this.qa(),b=this.ia(),c=this.O(),d=this.get(xc);return{center:a.slice(),projection:void 0!==b?b:null,resolution:c,rotation:d}};n.rd=function(){var a,b=this.O();if(void 0!==b&&b>=this.i&&b<=this.f){a=this.h||0;var c,d;if(this.g){d=Na(this.g,b,1);a+=d;if(d==this.g.length-1)return a;c=this.g[d];d=c/this.g[d+1]}else c=this.f,d=this.s;a+=Math.log(c/b)/Math.log(d)}return a};\r\nn.md=function(a,b,c){if(!(a instanceof Yb)){L(Array.isArray(a),24);L(!pb(a),25);var d=a[0],e=a[1],f=a[2],g=a[3],d=[d,e,d,g,f,g,f,e,d,e],e=new qc(null);rc(e,\"XY\",d,[d.length]);a=e}d=c||{};c=void 0!==d.padding?d.padding:[0,0,0,0];var g=void 0!==d.constrainResolution?d.constrainResolution:!0,e=void 0!==d.nearest?d.nearest:!1,h;void 0!==d.minResolution?h=d.minResolution:void 0!==d.maxZoom?h=this.constrainResolution(this.f,d.maxZoom-this.h,0):h=0;var k=a.o,f=this.get(xc),d=Math.cos(-f),f=Math.sin(-f),\r\nl=Infinity,m=Infinity,p=-Infinity,q=-Infinity;a=a.A;for(var u=0,w=k.length;u<w;u+=a)var r=k[u]*d-k[u+1]*f,x=k[u]*f+k[u+1]*d,l=Math.min(l,r),m=Math.min(m,x),p=Math.max(p,r),q=Math.max(q,x);b=yc([l,m,p,q],[b[0]-c[1]-c[3],b[1]-c[0]-c[2]]);b=isNaN(b)?h:Math.max(b,h);g&&(h=this.constrainResolution(b,0,0),!e&&h<b&&(h=this.constrainResolution(h,-1,0)),b=h);this.set(wc,b);f=-f;h=(l+p)/2+(c[1]-c[3])/2*b;b=(m+q)/2+(c[0]-c[2])/2*b;this.xa([h*d-b*f,b*d+h*f])};\r\nn.rotate=function(a,b){if(void 0!==b){var c,d=this.qa();void 0!==d&&(c=[d[0]-b[0],d[1]-b[1]],bb(c,a-this.get(xc)),ab(c,b));this.xa(c)}this.set(xc,a)};n.xa=function(a){this.set(vc,a)};function zc(a,b){a.c[1]+=b}n.ye=function(a){a=this.constrainResolution(this.f,a-this.h,0);this.set(wc,a)};var vc=\"center\",wc=\"resolution\",xc=\"rotation\";function Ac(a){return 1-Math.pow(1-a,3)}function Bc(a){return 3*a*a-2*a*a*a}function Cc(a){return a};function Dc(a){var b=a.source,c=a.start?a.start:Date.now(),d=b[0],e=b[1],f=void 0!==a.duration?a.duration:1E3,g=a.easing?a.easing:Bc;return function(a,b){if(b.time<c)return b.animate=!0,b.viewHints[0]+=1,!0;if(b.time<c+f){var l=1-g((b.time-c)/f),m=d-b.viewState.center[0],p=e-b.viewState.center[1];b.animate=!0;b.viewState.center[0]+=l*m;b.viewState.center[1]+=l*p;b.viewHints[0]+=1;return!0}return!1}}\r\nfunction Ec(a){var b=a.rotation?a.rotation:0,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Bc,f=a.anchor?a.anchor:null;return function(a,h){if(h.time<c)return h.animate=!0,h.viewHints[0]+=1,!0;if(h.time<c+d){var k=1-e((h.time-c)/d),k=(b-h.viewState.rotation)*k;h.animate=!0;h.viewState.rotation+=k;if(f){var l=h.viewState.center;l[0]-=f[0];l[1]-=f[1];bb(l,k);ab(l,f)}h.viewHints[0]+=1;return!0}return!1}}\r\nfunction Fc(a){var b=a.resolution,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Bc;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[0]+=1,!0;if(g.time<c+d){var h=1-e((g.time-c)/d),k=b-g.viewState.resolution;g.animate=!0;g.viewState.resolution+=h*k;g.viewHints[0]+=1;return!0}return!1}};function Gc(a,b,c,d){this.H=a;this.I=b;this.J=c;this.L=d}function Hc(a,b,c){return a.H<=b&&b<=a.I&&a.J<=c&&c<=a.L}function Ic(a,b){return a.H==b.H&&a.J==b.J&&a.I==b.I&&a.L==b.L}function Jc(a,b){return a.H<=b.I&&a.I>=b.H&&a.J<=b.L&&a.L>=b.J};function Kc(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]*b+.5|0;c[1]=a[1]*b+.5|0;return c}function Lc(a,b){if(Array.isArray(a))return a;void 0===b?b=[a,a]:b[0]=b[1]=a;return b};function Mc(a){this.minZoom=void 0!==a.minZoom?a.minZoom:0;this.b=a.resolutions;L(Ua(this.b,function(a,b){return b-a}),17);this.maxZoom=this.b.length-1;this.c=void 0!==a.origin?a.origin:null;this.f=null;void 0!==a.origins&&(this.f=a.origins,L(this.f.length==this.b.length,20));var b=a.extent;void 0===b||this.c||this.f||(this.c=xb(b));L(!this.c&&this.f||this.c&&!this.f,18);this.g=null;void 0!==a.tileSizes&&(this.g=a.tileSizes,L(this.g.length==this.b.length,19));this.h=void 0!==a.tileSize?a.tileSize:\r\nthis.g?null:256;L(!this.h&&this.g||this.h&&!this.g,22);this.i=void 0!==b?b:null;this.a=null;this.l=[0,0];void 0!==a.sizes?this.a=a.sizes.map(function(a){return new Gc(Math.min(0,a[0]),Math.max(a[0]-1,-1),Math.min(0,a[1]),Math.max(a[1]-1,-1))},this):b&&Nc(this,b)}var Oc=[0,0,0];function Pc(a,b,c,d,e){e=Qc(a,b,e);for(b=b[0]-1;b>=a.minZoom;){if(c.call(null,b,Rc(a,e,b,d)))return!0;--b}return!1}Mc.prototype.G=function(){return this.i};Mc.prototype.pa=function(a){return this.c?this.c:this.f[a]};\r\nMc.prototype.O=function(a){return this.b[a]};function Sc(a,b,c,d){return b[0]<a.maxZoom?(d=Qc(a,b,d),Rc(a,d,b[0]+1,c)):null}function Tc(a,b,c,d){Uc(a,b[0],b[1],c,!1,Oc);var e=Oc[1],f=Oc[2];Uc(a,b[2],b[3],c,!0,Oc);a=Oc[1];b=Oc[2];void 0!==d?(d.H=e,d.I=a,d.J=f,d.L=b):d=new Gc(e,a,f,b);return d}function Rc(a,b,c,d){c=a.O(c);return Tc(a,b,c,d)}function Vc(a,b){var c=a.pa(b[0]),d=a.O(b[0]),e=Lc(Wc(a,b[0]),a.l);return[c[0]+(b[1]+.5)*e[0]*d,c[1]+(b[2]+.5)*e[1]*d]}\r\nfunction Qc(a,b,c){var d=a.pa(b[0]),e=a.O(b[0]);a=Lc(Wc(a,b[0]),a.l);var f=d[0]+b[1]*a[0]*e;b=d[1]+b[2]*a[1]*e;return ib(f,b,f+a[0]*e,b+a[1]*e,c)}function Uc(a,b,c,d,e,f){var g=Xc(a,d),h=d/a.O(g),k=a.pa(g);a=Lc(Wc(a,g),a.l);b=h*Math.floor((b-k[0])/d+(e?.5:0))/a[0];c=h*Math.floor((c-k[1])/d+(e?0:.5))/a[1];e?(b=Math.ceil(b)-1,c=Math.ceil(c)-1):(b=Math.floor(b),c=Math.floor(c));e=b;void 0!==f?(f[0]=g,f[1]=e,f[2]=c):f=[g,e,c];return f}function Yc(a,b,c,d){c=a.O(c);return Uc(a,b[0],b[1],c,!1,d)}\r\nfunction Wc(a,b){return a.h?a.h:a.g[b]}function Xc(a,b,c){return ia(Na(a.b,b,c||0),a.minZoom,a.maxZoom)}function Nc(a,b){for(var c=a.b.length,d=Array(c),e=a.minZoom;e<c;++e)d[e]=Rc(a,b,e);a.a=d};function Zc(a){var b=a.f;if(!b){var b=$c(a),c=ad(b,void 0,void 0),b=new Mc({extent:b,origin:xb(b),resolutions:c,tileSize:void 0});a.f=b}return b}function ad(a,b,c){b=void 0!==b?b:42;var d=rb(a);a=qb(a);c=Lc(void 0!==c?c:256);c=Math.max(a/c[0],d/c[1]);b+=1;d=Array(b);for(a=0;a<b;++a)d[a]=c/Math.pow(2,a);return d}function $c(a){a=Hb(a);var b=a.G();b||(a=180*Db.degrees/Lb(a),b=ib(-a,-a,a,a));return b};function bd(a){this.a=a.html;this.b=a.tileRanges?a.tileRanges:null};function cd(a){V.call(this);this.a=a?a:[];dd(this)}B(cd,V);cd.prototype.clear=function(){for(;0<this.get(\"length\");)this.pop()};function ed(a,b,c){a.a.forEach(b,c)}cd.prototype.pop=function(){return fd(this,this.get(\"length\")-1)};cd.prototype.push=function(a){var b=this.a.length;this.a.splice(b,0,a);dd(this);U(this,new gd(hd,a));return b};cd.prototype.remove=function(a){var b=this.a,c,d;c=0;for(d=b.length;c<d;++c)if(b[c]===a)return fd(this,c)};\r\nfunction fd(a,b){var c=a.a[b];a.a.splice(b,1);dd(a);U(a,new gd(id,c));return c}function dd(a){a.set(\"length\",a.a.length)}var hd=\"add\",id=\"remove\";function gd(a,b){T.call(this,a);this.element=b}B(gd,T);var jd=/^#(?:[0-9a-f]{3}){1,2}$/i,kd=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i,ld=/^(?:rgba)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|1|0\\.\\d{0,10})\\)$/i,md=/^([a-z]*)$/i;function nd(a){if(\"string\"!==typeof a){var b=a[0];b!=(b|0)&&(b=b+.5|0);var c=a[1];c!=(c|0)&&(c=c+.5|0);var d=a[2];d!=(d|0)&&(d=d+.5|0);a=\"rgba(\"+b+\",\"+c+\",\"+d+\",\"+(void 0===a[3]?1:a[3])+\")\"}return a}\r\nvar pd=function(){var a={},b=0;return function(c){var d;if(a.hasOwnProperty(c))d=a[c];else{if(1024<=b){d=0;for(var e in a)0===(d++&3)&&(delete a[e],--b)}d=c;var f,g;md.exec(d)&&(e=document.createElement(\"div\"),e.style.color=d,document.body.appendChild(e),d=window.getComputedStyle(e).color,document.body.removeChild(e));jd.exec(d)?(f=d.length-1,L(3==f||6==f,54),g=3==f?1:2,f=parseInt(d.substr(1+0*g,g),16),e=parseInt(d.substr(1+1*g,g),16),d=parseInt(d.substr(1+2*g,g),16),1==g&&(f=(f<<4)+f,e=(e<<4)+e,\r\nd=(d<<4)+d),f=[f,e,d,1]):(g=ld.exec(d))?(f=Number(g[1]),e=Number(g[2]),d=Number(g[3]),g=Number(g[4]),f=od([f,e,d,g])):(g=kd.exec(d))?(f=Number(g[1]),e=Number(g[2]),d=Number(g[3]),f=od([f,e,d,1])):L(!1,14);d=f;a[c]=d;++b}return d}}();function od(a){var b=[];b[0]=ia(a[0]+.5|0,0,255);b[1]=ia(a[1]+.5|0,0,255);b[2]=ia(a[2]+.5|0,0,255);b[3]=ia(a[3],0,1);return b};function qd(a){return\"string\"===typeof a||a instanceof CanvasPattern||a instanceof CanvasGradient?a:nd(a)};var rd=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\")};function sd(a,b){return a<b?-1:a>b?1:0};function td(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var ud;a:{var vd=aa.navigator;if(vd){var wd=vd.userAgent;if(wd){ud=wd;break a}}ud=\"\"}function xd(a){return-1!=ud.indexOf(a)};var yd=xd(\"Opera\"),zd=xd(\"Trident\")||xd(\"MSIE\"),Ad=xd(\"Edge\"),Bd=xd(\"Gecko\")&&!(-1!=ud.toLowerCase().indexOf(\"webkit\")&&!xd(\"Edge\"))&&!(xd(\"Trident\")||xd(\"MSIE\"))&&!xd(\"Edge\"),Cd=-1!=ud.toLowerCase().indexOf(\"webkit\")&&!xd(\"Edge\"),Dd;\r\na:{var Ed=\"\",Fd=function(){var a=ud;if(Bd)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(Ad)return/Edge\\/([\\d\\.]+)/.exec(a);if(zd)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(Cd)return/WebKit\\/(\\S+)/.exec(a);if(yd)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();Fd&&(Ed=Fd?Fd[1]:\"\");if(zd){var Gd,Hd=aa.document;Gd=Hd?Hd.documentMode:void 0;if(null!=Gd&&Gd>parseFloat(Ed)){Dd=String(Gd);break a}}Dd=Ed}var Id={};function Jd(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Kd(a,b){a[0]=b[0];a[1]=b[1];a[4]=b[2];a[5]=b[3];a[12]=b[4];a[13]=b[5];return a};var Ld=Jd();function Md(a,b){var c=document.createElement(\"CANVAS\");a&&(c.width=a);b&&(c.height=b);return c.getContext(\"2d\")}\r\nvar Nd=function(){var a;return function(){if(void 0===a){var b=document.createElement(\"P\"),c,d={webkitTransform:\"-webkit-transform\",OTransform:\"-o-transform\",msTransform:\"-ms-transform\",MozTransform:\"-moz-transform\",transform:\"transform\"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]=\"translate(1px,1px)\",c=K.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&\"none\"!==c}return a}}(),Od=function(){var a;return function(){if(void 0===a){var b=document.createElement(\"P\"),\r\nc,d={webkitTransform:\"-webkit-transform\",OTransform:\"-o-transform\",msTransform:\"-ms-transform\",MozTransform:\"-moz-transform\",transform:\"transform\"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]=\"translate3d(1px,1px,1px)\",c=K.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&\"none\"!==c}return a}}();\r\nfunction Pd(a,b){var c=a.style;c.WebkitTransform=b;c.MozTransform=b;c.b=b;c.msTransform=b;c.transform=b;if((c=zd)&&!(c=Id[\"9.0\"])){for(var c=0,d=rd(String(Dd)).split(\".\"),e=rd(\"9.0\").split(\".\"),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||\"\",k=e[g]||\"\",l=RegExp(\"(\\\\d*)(\\\\D*)\",\"g\"),m=RegExp(\"(\\\\d*)(\\\\D*)\",\"g\");do{var p=l.exec(h)||[\"\",\"\",\"\"],q=m.exec(k)||[\"\",\"\",\"\"];if(0==p[0].length&&0==q[0].length)break;c=sd(0==p[1].length?0:parseInt(p[1],10),0==q[1].length?0:parseInt(q[1],10))||sd(0==\r\np[2].length,0==q[2].length)||sd(p[2],q[2])}while(0==c)}c=Id[\"9.0\"]=0<=c}c&&(a.style.transformOrigin=\"0 0\")}function Qd(a,b){var c;if(Od()){var d=Kd(Ld,b),e=Array(16);for(c=0;16>c;++c)e[c]=d[c].toFixed(6);Pd(a,\"matrix3d(\"+e.join(\",\")+\")\")}else if(Nd()){d=Array(6);for(c=0;6>c;++c)d[c]=b[c].toFixed(6);Pd(a,\"matrix(\"+d.join(\",\")+\")\")}else a.style.left=Math.round(b[4])+\"px\",a.style.top=Math.round(b[5])+\"px\"}function Rd(a,b){var c=b.parentNode;c&&c.replaceChild(a,b)}\r\nfunction Sd(a){a&&a.parentNode&&a.parentNode.removeChild(a)};function Td(a,b,c){T.call(this,a);this.map=b;this.frameState=void 0!==c?c:null}B(Td,T);function Ud(a){V.call(this);this.element=a.element?a.element:null;this.f=this.D=null;this.i=[];this.render=a.render?a.render:I;a.target&&(a=a.target,this.D=\"string\"===typeof a?document.getElementById(a):a)}B(Ud,V);Ud.prototype.R=function(){Sd(this.element);V.prototype.R.call(this)};\r\nUd.prototype.setMap=function(a){this.f&&Sd(this.element);for(var b=0,c=this.i.length;b<c;++b)M(this.i[b]);this.i.length=0;if(this.f=a)(this.D?this.D:a.j).appendChild(this.element),this.render!==I&&this.i.push(R(a,\"postrender\",this.render,this)),a.render()};function Vd(a){a=a?a:{};this.B=document.createElement(\"UL\");this.j=document.createElement(\"LI\");this.B.appendChild(this.j);this.j.style.display=\"none\";this.g=void 0!==a.collapsed?a.collapsed:!0;this.v=void 0!==a.collapsible?a.collapsible:!0;this.v||(this.g=!1);var b=void 0!==a.className?a.className:\"ol-attribution\",c=void 0!==a.tipLabel?a.tipLabel:\"Attributions\",d=void 0!==a.collapseLabel?a.collapseLabel:\"\\u00bb\";\"string\"===typeof d?(this.h=document.createElement(\"span\"),this.h.textContent=d):this.h=\r\nd;d=void 0!==a.label?a.label:\"i\";\"string\"===typeof d?(this.s=document.createElement(\"span\"),this.s.textContent=d):this.s=d;var e=this.v&&!this.g?this.h:this.s,d=document.createElement(\"button\");d.setAttribute(\"type\",\"button\");d.title=c;d.appendChild(e);R(d,\"click\",this.P,this);c=document.createElement(\"div\");c.className=b+\" ol-unselectable ol-control\"+(this.g&&this.v?\" ol-collapsed\":\"\")+(this.v?\"\":\" ol-uncollapsible\");c.appendChild(this.B);c.appendChild(d);Ud.call(this,{element:c,render:a.render?\r\na.render:Wd,target:a.target});this.u=!0;this.c={};this.a={};this.N={}}B(Vd,Ud);\r\nfunction Wd(a){if(a=a.frameState){var b,c,d,e,f,g,h,k,l,m,p,q=a.layerStatesArray,u=pa({},a.attributions),w={},r=a.viewState.projection;c=0;for(b=q.length;c<b;c++)if(g=q[c].layer.da())if(m=J(g).toString(),l=g.h)for(d=0,e=l.length;d<e;d++)if(h=l[d],k=J(h).toString(),!(k in u)){if(f=a.usedTiles[m]){var x=g.sa(r);a:{p=h;var D=r;if(p.b){var t,z,C,E=void 0;for(E in f)if(E in p.b){C=f[E];var v;t=0;for(z=p.b[E].length;t<z;++t){v=p.b[E][t];if(Jc(v,C)){p=!0;break a}var H=Rc(x,$c(D),parseInt(E,10)),G=H.I-H.H+\r\n1;if(C.H<H.H||C.I>H.I)if(Jc(v,new Gc(la(C.H,G),la(C.I,G),C.J,C.L))||C.I-C.H+1>G&&Jc(v,H)){p=!0;break a}}}p=!1}else p=!0}}else p=!1;p?(k in w&&delete w[k],u[k]=h):w[k]=h}b=[u,w];c=b[0];b=b[1];for(var A in this.c)A in c?(this.a[A]||(this.c[A].style.display=\"\",this.a[A]=!0),delete c[A]):A in b?(this.a[A]&&(this.c[A].style.display=\"none\",delete this.a[A]),delete b[A]):(Sd(this.c[A]),delete this.c[A],delete this.a[A]);for(A in c)d=document.createElement(\"LI\"),d.innerHTML=c[A].a,this.B.appendChild(d),this.c[A]=\r\nd,this.a[A]=!0;for(A in b)d=document.createElement(\"LI\"),d.innerHTML=b[A].a,d.style.display=\"none\",this.B.appendChild(d),this.c[A]=d;A=!sa(this.a)||!sa(a.logos);this.u!=A&&(this.element.style.display=A?\"\":\"none\",this.u=A);A&&sa(this.a)?this.element.classList.add(\"ol-logo-only\"):this.element.classList.remove(\"ol-logo-only\");var F;a=a.logos;A=this.N;for(F in A)F in a||(Sd(A[F]),delete A[F]);for(var Q in a)b=a[Q],b instanceof HTMLElement&&(this.j.appendChild(b),A[Q]=b),Q in A||(F=new Image,F.src=Q,\"\"===\r\nb?c=F:(c=document.createElement(\"a\"),c.href=b,c.appendChild(F)),this.j.appendChild(c),A[Q]=c);this.j.style.display=sa(a)?\"none\":\"\"}else this.u&&(this.element.style.display=\"none\",this.u=!1)}Vd.prototype.P=function(a){a.preventDefault();this.element.classList.toggle(\"ol-collapsed\");this.g?Rd(this.h,this.s):Rd(this.s,this.h);this.g=!this.g};function Xd(a){a=a?a:{};this.a=void 0!==a.className?a.className:\"ol-full-screen\";var b=void 0!==a.label?a.label:\"\\u2922\";this.g=\"string\"===typeof b?document.createTextNode(b):b;b=void 0!==a.labelActive?a.labelActive:\"\\u00d7\";this.h=\"string\"===typeof b?document.createTextNode(b):b;var c=a.tipLabel?a.tipLabel:\"Toggle full-screen\",b=document.createElement(\"button\");b.className=this.a+\"-\"+Yd();b.setAttribute(\"type\",\"button\");b.title=c;b.appendChild(this.g);R(b,\"click\",this.v,this);c=document.createElement(\"div\");\r\nc.className=this.a+\" ol-unselectable ol-control \"+(Zd()?\"\":\"ol-unsupported\");c.appendChild(b);Ud.call(this,{element:c,target:a.target});this.s=void 0!==a.keys?a.keys:!1;this.c=a.source}B(Xd,Ud);\r\nXd.prototype.v=function(a){a.preventDefault();Zd()&&(a=this.f)&&(Yd()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(a=this.c?\"string\"===typeof this.c?document.getElementById(this.c):this.c:a.Ra(),this.s?a.mozRequestFullScreenWithKeys?a.mozRequestFullScreenWithKeys():a.webkitRequestFullscreen?a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):\r\n$d(a):$d(a)))};Xd.prototype.j=function(){var a=this.element.firstElementChild,b=this.f;Yd()?(a.className=this.a+\"-true\",Rd(this.h,this.g)):(a.className=this.a+\"-false\",Rd(this.g,this.h));b&&b.yb()};Xd.prototype.setMap=function(a){Ud.prototype.setMap.call(this,a);a&&this.i.push(R(K.document,ae(),this.j,this))};\r\nfunction Zd(){var a=document.body;return!!(a.webkitRequestFullscreen||a.mozRequestFullScreen&&document.mozFullScreenEnabled||a.msRequestFullscreen&&document.msFullscreenEnabled||a.requestFullscreen&&document.fullscreenEnabled)}function Yd(){return!!(document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement||document.fullscreenElement)}\r\nfunction $d(a){a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()}var ae=function(){var a;return function(){if(!a){var b=document.body;b.webkitRequestFullscreen?a=\"webkitfullscreenchange\":b.mozRequestFullScreen?a=\"mozfullscreenchange\":b.msRequestFullscreen?a=\"MSFullscreenChange\":b.requestFullscreen&&(a=\"fullscreenchange\")}return a}}();function be(a){a=a?a:{};var b=void 0!==a.className?a.className:\"ol-rotate\",c=void 0!==a.label?a.label:\"\\u21e7\";this.a=null;\"string\"===typeof c?(this.a=document.createElement(\"span\"),this.a.className=\"ol-compass\",this.a.textContent=c):(this.a=c,this.a.classList.add(\"ol-compass\"));var d=a.tipLabel?a.tipLabel:\"Reset rotation\",c=document.createElement(\"button\");c.className=b+\"-reset\";c.setAttribute(\"type\",\"button\");c.title=d;c.appendChild(this.a);R(c,\"click\",be.prototype.s,this);d=document.createElement(\"div\");\r\nd.className=b+\" ol-unselectable ol-control\";d.appendChild(c);b=a.render?a.render:ce;this.g=a.resetNorth?a.resetNorth:void 0;Ud.call(this,{element:d,render:b,target:a.target});this.h=void 0!==a.duration?a.duration:250;this.c=void 0!==a.autoHide?a.autoHide:!0;this.j=void 0;this.c&&this.element.classList.add(\"ol-hidden\")}B(be,Ud);\r\nbe.prototype.s=function(a){a.preventDefault();if(void 0!==this.g)this.g();else{a=this.f;var b=a.U();if(b){var c=b.get(xc);void 0!==c&&(0<this.h&&(c%=2*Math.PI,c<-Math.PI&&(c+=2*Math.PI),c>Math.PI&&(c-=2*Math.PI),a.oa(Ec({rotation:c,duration:this.h,easing:Ac}))),b.set(xc,0))}}};\r\nfunction ce(a){if(a=a.frameState){a=a.viewState.rotation;if(a!=this.j){var b=\"rotate(\"+a+\"rad)\";if(this.c){var c=this.element.classList.contains(\"ol-hidden\");c||0!==a?c&&0!==a&&this.element.classList.remove(\"ol-hidden\"):this.element.classList.add(\"ol-hidden\")}this.a.style.msTransform=b;this.a.style.webkitTransform=b;this.a.style.transform=b}this.j=a}};function de(a){a=a?a:{};var b=void 0!==a.className?a.className:\"ol-zoom\",c=void 0!==a.delta?a.delta:1,d=void 0!==a.zoomInLabel?a.zoomInLabel:\"+\",e=void 0!==a.zoomOutLabel?a.zoomOutLabel:\"\\u2212\",f=void 0!==a.zoomInTipLabel?a.zoomInTipLabel:\"Zoom in\",g=void 0!==a.zoomOutTipLabel?a.zoomOutTipLabel:\"Zoom out\",h=document.createElement(\"button\");h.className=b+\"-in\";h.setAttribute(\"type\",\"button\");h.title=f;h.appendChild(\"string\"===typeof d?document.createTextNode(d):d);R(h,\"click\",de.prototype.c.bind(this,\r\nc));d=document.createElement(\"button\");d.className=b+\"-out\";d.setAttribute(\"type\",\"button\");d.title=g;d.appendChild(\"string\"===typeof e?document.createTextNode(e):e);R(d,\"click\",de.prototype.c.bind(this,-c));c=document.createElement(\"div\");c.className=b+\" ol-unselectable ol-control\";c.appendChild(h);c.appendChild(d);Ud.call(this,{element:c,target:a.target});this.a=void 0!==a.duration?a.duration:250}B(de,Ud);\r\nde.prototype.c=function(a,b){b.preventDefault();var c=this.f,d=c.U();if(d){var e=d.O();e&&(0<this.a&&c.oa(Fc({resolution:e,duration:this.a,easing:Ac})),c=d.constrainResolution(e,a),d.set(wc,c))}};function ee(a){a=a?a:{};var b=new cd;(void 0!==a.zoom?a.zoom:1)&&b.push(new de(a.zoomOptions));(void 0!==a.rotate?a.rotate:1)&&b.push(new be(a.rotateOptions));(void 0!==a.attribution?a.attribution:1)&&b.push(new Vd(a.attributionOptions));return b};var fe;\r\nfunction ge(){var a=aa.MessageChannel;\"undefined\"===typeof a&&\"undefined\"!==typeof window&&window.postMessage&&window.addEventListener&&!xd(\"Presto\")&&(a=function(){var a=document.createElement(\"IFRAME\");a.style.display=\"none\";a.src=\"\";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write(\"\");a.close();var c=\"callImmediate\"+Math.random(),d=\"file:\"==b.location.protocol?\"*\":b.location.protocol+\"//\"+b.location.host,a=ea(function(a){if((\"*\"==d||a.origin==d)&&a.data==\r\nc)this.port1.onmessage()},this);b.addEventListener(\"message\",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if(\"undefined\"!==typeof a&&!xd(\"Trident\")&&!xd(\"MSIE\")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.nc;c.nc=null;a()}};return function(a){d.next={nc:a};d=d.next;b.port2.postMessage(0)}}return\"undefined\"!==typeof document&&\"onreadystatechange\"in document.createElement(\"SCRIPT\")?function(a){var b=document.createElement(\"SCRIPT\");\r\nb.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){aa.setTimeout(a,0)}};var he=[\"experimental-webgl\",\"webgl\",\"webkit-3d\",\"moz-webgl\"];function ie(a,b){var c,d,e=he.length;for(d=0;d<e;++d)try{if(c=a.getContext(he[d],b))return c}catch(f){}return null};var je,ke=\"undefined\"!==typeof navigator?navigator.userAgent.toLowerCase():\"\",le=-1!==ke.indexOf(\"firefox\"),me=-1!==ke.indexOf(\"safari\")&&-1===ke.indexOf(\"chrom\"),ne=-1!==ke.indexOf(\"macintosh\"),oe=K.devicePixelRatio||1,pe=!1,qe=function(){if(!(\"HTMLCanvasElement\"in K))return!1;try{var a=Md();return a?(a.setLineDash&&(pe=!0),!0):!1}catch(b){return!1}}(),re=\"ontouchstart\"in K,se=\"PointerEvent\"in K,te=!!K.navigator.msPointerEnabled,ue=!1,ve=[];\r\nif(\"WebGLRenderingContext\"in K)try{var we=ie(document.createElement(\"CANVAS\"),{failIfMajorPerformanceCaveat:!0});we&&(ue=!0,ve=we.getSupportedExtensions())}catch(a){}je=ue;fa=ve;function xe(a,b){this.b=a;this.g=b};function ye(a){xe.call(this,a,{mousedown:this.Pd,mousemove:this.Qd,mouseup:this.Td,mouseover:this.Sd,mouseout:this.Rd});this.a=a.a;this.c=[]}B(ye,xe);function ze(a,b){for(var c=a.c,d=b.clientX,e=b.clientY,f=0,g=c.length,h;f<g&&(h=c[f]);f++){var k=Math.abs(e-h[1]);if(25>=Math.abs(d-h[0])&&25>=k)return!0}return!1}function Ae(a){var b=Be(a,a),c=b.preventDefault;b.preventDefault=function(){a.preventDefault();c()};b.pointerId=1;b.isPrimary=!0;b.pointerType=\"mouse\";return b}n=ye.prototype;\r\nn.Pd=function(a){if(!ze(this,a)){if((1).toString()in this.a){var b=Ae(a);Ce(this.b,De,b,a);delete this.a[(1).toString()]}b=Ae(a);this.a[(1).toString()]=a;Ce(this.b,Ee,b,a)}};n.Qd=function(a){if(!ze(this,a)){var b=Ae(a);Ce(this.b,Fe,b,a)}};n.Td=function(a){if(!ze(this,a)){var b=this.a[(1).toString()];b&&b.button===a.button&&(b=Ae(a),Ce(this.b,Ge,b,a),delete this.a[(1).toString()])}};n.Sd=function(a){if(!ze(this,a)){var b=Ae(a);He(this.b,b,a)}};\r\nn.Rd=function(a){if(!ze(this,a)){var b=Ae(a);Ie(this.b,b,a)}};function Je(a){xe.call(this,a,{MSPointerDown:this.Yd,MSPointerMove:this.Zd,MSPointerUp:this.be,MSPointerOut:this.$d,MSPointerOver:this.ae,MSPointerCancel:this.Xd,MSGotPointerCapture:this.Vd,MSLostPointerCapture:this.Wd});this.a=a.a;this.c=[\"\",\"unavailable\",\"touch\",\"pen\",\"mouse\"]}B(Je,xe);function Ke(a,b){var c=b;\"number\"===typeof b.pointerType&&(c=Be(b,b),c.pointerType=a.c[b.pointerType]);return c}n=Je.prototype;n.Yd=function(a){this.a[a.pointerId.toString()]=a;var b=Ke(this,a);Ce(this.b,Ee,b,a)};\r\nn.Zd=function(a){var b=Ke(this,a);Ce(this.b,Fe,b,a)};n.be=function(a){var b=Ke(this,a);Ce(this.b,Ge,b,a);delete this.a[a.pointerId.toString()]};n.$d=function(a){var b=Ke(this,a);Ie(this.b,b,a)};n.ae=function(a){var b=Ke(this,a);He(this.b,b,a)};n.Xd=function(a){var b=Ke(this,a);Ce(this.b,De,b,a);delete this.a[a.pointerId.toString()]};n.Wd=function(a){U(this.b,new Le(\"lostpointercapture\",a,a))};n.Vd=function(a){U(this.b,new Le(\"gotpointercapture\",a,a))};function Me(a){xe.call(this,a,{pointerdown:this.le,pointermove:this.me,pointerup:this.pe,pointerout:this.ne,pointerover:this.oe,pointercancel:this.ke,gotpointercapture:this.sd,lostpointercapture:this.Od})}B(Me,xe);n=Me.prototype;n.le=function(a){Ne(this.b,a)};n.me=function(a){Ne(this.b,a)};n.pe=function(a){Ne(this.b,a)};n.ne=function(a){Ne(this.b,a)};n.oe=function(a){Ne(this.b,a)};n.ke=function(a){Ne(this.b,a)};n.Od=function(a){Ne(this.b,a)};n.sd=function(a){Ne(this.b,a)};function Le(a,b,c){T.call(this,a);this.b=b;a=c?c:{};this.buttons=Oe(a);this.pressure=Pe(a,this.buttons);this.bubbles=\"bubbles\"in a?a.bubbles:!1;this.cancelable=\"cancelable\"in a?a.cancelable:!1;this.view=\"view\"in a?a.view:null;this.detail=\"detail\"in a?a.detail:null;this.screenX=\"screenX\"in a?a.screenX:0;this.screenY=\"screenY\"in a?a.screenY:0;this.clientX=\"clientX\"in a?a.clientX:0;this.clientY=\"clientY\"in a?a.clientY:0;this.button=\"button\"in a?a.button:0;this.relatedTarget=\"relatedTarget\"in a?a.relatedTarget:\r\nnull;this.pointerId=\"pointerId\"in a?a.pointerId:0;this.width=\"width\"in a?a.width:0;this.height=\"height\"in a?a.height:0;this.pointerType=\"pointerType\"in a?a.pointerType:\"\";this.isPrimary=\"isPrimary\"in a?a.isPrimary:!1;b.preventDefault&&(this.preventDefault=function(){b.preventDefault()})}B(Le,T);function Oe(a){if(a.buttons||Qe)a=a.buttons;else switch(a.which){case 1:a=1;break;case 2:a=4;break;case 3:a=2;break;default:a=0}return a}function Pe(a,b){var c=0;a.pressure?c=a.pressure:c=b?.5:0;return c}\r\nvar Qe=!1;try{Qe=1===(new MouseEvent(\"click\",{buttons:1})).buttons}catch(a){};function Re(a,b){xe.call(this,a,{touchstart:this.Ce,touchmove:this.Be,touchend:this.Ae,touchcancel:this.ze});this.a=a.a;this.l=b;this.c=void 0;this.h=0;this.f=void 0}B(Re,xe);n=Re.prototype;n.Uc=function(){this.h=0;this.f=void 0};\r\nfunction Se(a,b,c){b=Be(b,c);b.pointerId=c.identifier+2;b.bubbles=!0;b.cancelable=!0;b.detail=a.h;b.button=0;b.buttons=1;b.width=c.webkitRadiusX||c.radiusX||0;b.height=c.webkitRadiusY||c.radiusY||0;b.pressure=c.webkitForce||c.force||.5;b.isPrimary=a.c===c.identifier;b.pointerType=\"touch\";b.clientX=c.clientX;b.clientY=c.clientY;b.screenX=c.screenX;b.screenY=c.screenY;return b}\r\nfunction Te(a,b,c){function d(){b.preventDefault()}var e=Array.prototype.slice.call(b.changedTouches),f=e.length,g,h;for(g=0;g<f;++g)h=Se(a,b,e[g]),h.preventDefault=d,c.call(a,b,h)}\r\nn.Ce=function(a){var b=a.touches,c=Object.keys(this.a),d=c.length;if(d>=b.length){var e=[],f,g,h;for(f=0;f<d;++f){g=c[f];h=this.a[g];var k;if(!(k=1==g))a:{k=b.length;for(var l,m=0;m<k;m++)if(l=b[m],l.identifier===g-2){k=!0;break a}k=!1}k||e.push(h.out)}for(f=0;f<e.length;++f)this.Ib(a,e[f])}b=a.changedTouches[0];c=Object.keys(this.a).length;if(0===c||1===c&&(1).toString()in this.a)this.c=b.identifier,b=K,void 0!==this.f&&b.clearTimeout(this.f);Ue(this,a);this.h++;Te(this,a,this.je)};\r\nn.je=function(a,b){this.a[b.pointerId]={target:b.target,out:b,Rc:b.target};var c=this.b;b.bubbles=!0;Ce(c,Ve,b,a);c=this.b;b.bubbles=!1;Ce(c,We,b,a);Ce(this.b,Ee,b,a)};n.Be=function(a){a.preventDefault();Te(this,a,this.Ud)};n.Ud=function(a,b){var c=this.a[b.pointerId];if(c){var d=c.out,e=c.Rc;Ce(this.b,Fe,b,a);d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,d.target=e,b.target?(Ie(this.b,d,a),He(this.b,b,a)):(b.target=e,b.relatedTarget=null,this.Ib(a,b)));c.out=b;c.Rc=b.target}};\r\nn.Ae=function(a){Ue(this,a);Te(this,a,this.De)};n.De=function(a,b){Ce(this.b,Ge,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;Ce(c,Xe,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.c=void 0,this.f=K.setTimeout(this.Uc.bind(this),200))};n.ze=function(a){Te(this,a,this.Ib)};n.Ib=function(a,b){Ce(this.b,De,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;Ce(c,Xe,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.c=void 0,this.f=K.setTimeout(this.Uc.bind(this),200))};\r\nfunction Ue(a,b){var c=a.l.c,d=b.changedTouches[0];if(a.c===d.identifier){var e=[d.clientX,d.clientY];c.push(e);K.setTimeout(function(){Qa(c,e)},2500)}};function Ye(a){Ga.call(this);this.g=a;this.a={};this.f={};this.b=[];se?Ze(this,new Me(this)):te?Ze(this,new Je(this)):(a=new ye(this),Ze(this,a),re&&Ze(this,new Re(this,a)));a=this.b.length;for(var b,c=0;c<a;c++)b=this.b[c],$e(this,Object.keys(b.g))}B(Ye,Ga);function Ze(a,b){var c=Object.keys(b.g);c&&(c.forEach(function(a){var c=b.g[a];c&&(this.f[a]=c.bind(b))},a),a.b.push(b))}Ye.prototype.c=function(a){var b=this.f[a.type];b&&b(a)};\r\nfunction $e(a,b){b.forEach(function(a){R(this.g,a,this.c,this)},a)}function af(a,b){b.forEach(function(a){ya(this.g,a,this.c,this)},a)}function Be(a,b){for(var c={},d,e=0,f=bf.length;e<f;e++)d=bf[e][0],c[d]=a[d]||b[d]||bf[e][1];return c}Ye.prototype.out=function(a,b){a.bubbles=!0;Ce(this,cf,a,b)};function Ie(a,b,c){a.out(b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,Ce(a,Xe,b,c))}\r\nfunction He(a,b,c){b.bubbles=!0;Ce(a,Ve,b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,Ce(a,We,b,c))}function Ce(a,b,c,d){U(a,new Le(b,d,c))}function Ne(a,b){U(a,new Le(b.type,b,b))}Ye.prototype.R=function(){for(var a=this.b.length,b,c=0;c<a;c++)b=this.b[c],af(this,Object.keys(b.g));Ga.prototype.R.call(this)};\r\nvar Fe=\"pointermove\",Ee=\"pointerdown\",Ge=\"pointerup\",Ve=\"pointerover\",cf=\"pointerout\",We=\"pointerenter\",Xe=\"pointerleave\",De=\"pointercancel\",bf=[[\"bubbles\",!1],[\"cancelable\",!1],[\"view\",null],[\"detail\",null],[\"screenX\",0],[\"screenY\",0],[\"clientX\",0],[\"clientY\",0],[\"ctrlKey\",!1],[\"altKey\",!1],[\"shiftKey\",!1],[\"metaKey\",!1],[\"button\",0],[\"relatedTarget\",null],[\"buttons\",0],[\"pointerId\",0],[\"width\",0],[\"height\",0],[\"pressure\",0],[\"tiltX\",0],[\"tiltY\",0],[\"pointerType\",\"\"],[\"hwTimestamp\",0],[\"isPrimary\",\r\n!1],[\"type\",\"\"],[\"target\",null],[\"currentTarget\",null],[\"which\",0]];function df(a,b,c,d,e){Td.call(this,a,b,e);this.originalEvent=c;this.pixel=b.uc(c);this.coordinate=b.Ba(this.pixel);this.dragging=void 0!==d?d:!1}B(df,Td);df.prototype.preventDefault=function(){Td.prototype.preventDefault.call(this);this.originalEvent.preventDefault()};df.prototype.stopPropagation=function(){Td.prototype.stopPropagation.call(this);this.originalEvent.stopPropagation()};function ef(a,b,c,d,e){df.call(this,a,b,c.b,d,e);this.b=c}B(ef,df);\r\nfunction ff(a){Ga.call(this);this.c=a;this.h=0;this.l=!1;this.f=[];this.a=null;a=this.c.a;this.v=0;this.s={};this.g=new Ye(a);this.b=null;this.i=R(this.g,Ee,this.Cd,this);this.j=R(this.g,Fe,this.re,this)}B(ff,Ga);function gf(a,b){var c;c=new ef(hf,a.c,b);U(a,c);0!==a.h?(K.clearTimeout(a.h),a.h=0,c=new ef(jf,a.c,b),U(a,c)):a.h=K.setTimeout(function(){this.h=0;var a=new ef(kf,this.c,b);U(this,a)}.bind(a),250)}\r\nfunction lf(a,b){b.type==mf||b.type==nf?delete a.s[b.pointerId]:b.type==of&&(a.s[b.pointerId]=!0);a.v=Object.keys(a.s).length}n=ff.prototype;n.xc=function(a){lf(this,a);var b=new ef(mf,this.c,a);U(this,b);!this.l&&0===a.button&&gf(this,this.a);0===this.v&&(this.f.forEach(M),this.f.length=0,this.l=!1,this.a=null,Da(this.b),this.b=null)};\r\nn.Cd=function(a){lf(this,a);var b=new ef(of,this.c,a);U(this,b);this.a=a;0===this.f.length&&(this.b=new Ye(document),this.f.push(R(this.b,pf,this.ee,this),R(this.b,mf,this.xc,this),R(this.g,nf,this.xc,this)))};n.ee=function(a){if(a.clientX!=this.a.clientX||a.clientY!=this.a.clientY){this.l=!0;var b=new ef(qf,this.c,a,this.l);U(this,b)}a.preventDefault()};n.re=function(a){U(this,new ef(a.type,this.c,a,!(!this.a||a.clientX==this.a.clientX&&a.clientY==this.a.clientY)))};\r\nn.R=function(){this.j&&(M(this.j),this.j=null);this.i&&(M(this.i),this.i=null);this.f.forEach(M);this.f.length=0;this.b&&(Da(this.b),this.b=null);this.g&&(Da(this.g),this.g=null);Ga.prototype.R.call(this)};var kf=\"singleclick\",hf=\"click\",jf=\"dblclick\",qf=\"pointerdrag\",pf=\"pointermove\",of=\"pointerdown\",mf=\"pointerup\",nf=\"pointercancel\",rf={Pe:kf,Ee:hf,Fe:jf,Ie:qf,Le:pf,He:of,Oe:mf,Ne:\"pointerover\",Me:\"pointerout\",Je:\"pointerenter\",Ke:\"pointerleave\",Ge:nf};function sf(a){V.call(this);var b=pa({},a);b.opacity=void 0!==a.opacity?a.opacity:1;b.visible=void 0!==a.visible?a.visible:!0;b.zIndex=void 0!==a.zIndex?a.zIndex:0;b.maxResolution=void 0!==a.maxResolution?a.maxResolution:Infinity;b.minResolution=void 0!==a.minResolution?a.minResolution:0;this.l(b)}B(sf,V);\r\nfunction tf(a){var b=a.Xb(),c=a.Sb(),d=a.gb(),e=a.G(),f=a.Yb(),g=a.get(\"maxResolution\"),h=a.get(\"minResolution\");return{layer:a,opacity:ia(b,0,1),ac:c,visible:d,hb:!0,extent:e,zIndex:f,maxResolution:g,minResolution:Math.max(h,0)}}n=sf.prototype;n.G=function(){return this.get(\"extent\")};n.Xb=function(){return this.get(\"opacity\")};n.gb=function(){return this.get(\"visible\")};n.Yb=function(){return this.get(\"zIndex\")};n.Bc=function(a){this.set(\"opacity\",a)};n.Cc=function(a){this.set(\"visible\",a)};\r\nn.Dc=function(a){this.set(\"zIndex\",a)};function uf(a,b,c,d,e){T.call(this,a);this.vectorContext=b;this.frameState=c;this.context=d;this.glContext=e}B(uf,T);function vf(a){V.call(this);this.N=Hb(a.projection);this.h=wf(a.attributions);this.D=a.logo;this.P=void 0!==a.state?a.state:\"ready\";this.i=void 0!==a.wrapX?a.wrapX:!1}B(vf,V);function wf(a){if(\"string\"===typeof a)return[new bd({html:a})];if(a instanceof bd)return[a];if(Array.isArray(a)){for(var b=a.length,c=Array(b),d=0;d<b;d++){var e=a[d];c[d]=\"string\"===typeof e?new bd({html:e}):e}return c}return null}vf.prototype.fa=I;vf.prototype.ia=function(){return this.N};vf.prototype.T=function(){return this.P};\r\nvf.prototype.Ja=function(){this.w()};function xf(a){var b=pa({},a);delete b.source;sf.call(this,b);this.h=this.f=this.c=null;a.map&&this.setMap(a.map);R(this,La(\"source\"),this.Hd,this);this.$b(a.source?a.source:null)}B(xf,sf);function yf(a,b){return a.visible&&b>=a.minResolution&&b<a.maxResolution}n=xf.prototype;n.Pb=function(a){a=a?a:[];a.push(tf(this));return a};n.da=function(){return this.get(\"source\")||null};n.Sb=function(){var a=this.da();return a?a.T():\"undefined\"};n.fe=function(){this.w()};\r\nn.Hd=function(){this.h&&(M(this.h),this.h=null);var a=this.da();a&&(this.h=R(a,\"change\",this.fe,this));this.w()};n.setMap=function(a){this.c&&(M(this.c),this.c=null);a||this.w();this.f&&(M(this.f),this.f=null);a&&(this.c=R(a,\"precompose\",function(a){var c=tf(this);c.hb=!1;c.zIndex=Infinity;a.frameState.layerStatesArray.push(c);a.frameState.layerStates[J(this)]=c},this),this.f=R(this,\"change\",a.render,a),this.w())};n.$b=function(a){this.set(\"source\",a)};function zf(){this.b={};this.a=0}zf.prototype.clear=function(){this.b={};this.a=0};zf.prototype.get=function(a,b,c){a=b+\":\"+a+\":\"+(c?nd(c):\"null\");return a in this.b?this.b[a]:null};zf.prototype.set=function(a,b,c,d){this.b[b+\":\"+a+\":\"+(c?nd(c):\"null\")]=d;++this.a};var Af=new zf;var Bf=Array(6);function Cf(){return[1,0,0,1,0,0]}function Df(a){return Ef(a,1,0,0,1,0,0)}function Ff(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],k=b[0],l=b[1],m=b[2],p=b[3],q=b[4],u=b[5];a[0]=c*k+e*l;a[1]=d*k+f*l;a[2]=c*m+e*p;a[3]=d*m+f*p;a[4]=c*q+e*u+g;a[5]=d*q+f*u+h}function Ef(a,b,c,d,e,f,g){a[0]=b;a[1]=c;a[2]=d;a[3]=e;a[4]=f;a[5]=g;return a}function Gf(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];return a}\r\nfunction Hf(a,b){var c=b[0],d=b[1];b[0]=a[0]*c+a[2]*d+a[4];b[1]=a[1]*c+a[3]*d+a[5];return b}function If(a,b){var c=Math.cos(b),d=Math.sin(b);Ff(a,Ef(Bf,c,d,-d,c,0,0))}function Jf(a,b,c){Ff(a,Ef(Bf,b,0,0,c,0,0))}function Kf(a,b,c){Ff(a,Ef(Bf,1,0,0,1,b,c))}function Lf(a,b,c,d,e,f,g,h){var k=Math.sin(f);f=Math.cos(f);a[0]=d*f;a[1]=e*k;a[2]=-d*k;a[3]=e*f;a[4]=g*d*f-h*d*k+b;a[5]=g*e*k+h*e*f+c;return a}\r\nfunction Mf(a){var b=a[0]*a[3]-a[1]*a[2];L(0!==b,32);var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5];a[0]=f/b;a[1]=-d/b;a[2]=-e/b;a[3]=c/b;a[4]=(e*h-f*g)/b;a[5]=-(c*h-d*g)/b};function Nf(a,b){this.g=b;this.c={};this.j={}}B(Nf,Aa);function Of(a){var b=a.viewState,c=a.coordinateToPixelTransform,d=a.pixelToCoordinateTransform;Lf(c,a.size[0]/2,a.size[1]/2,1/b.resolution,-1/b.resolution,-b.rotation,-b.center[0],-b.center[1]);Mf(Gf(d,c))}n=Nf.prototype;n.R=function(){for(var a in this.c)Da(this.c[a])};function Pf(){if(32<Af.a){var a=0,b,c;for(b in Af.b)c=Af.b[b],0!==(a++&3)||Ha(c)||(delete Af.b[b],--Af.a)}}\r\nn.fa=function(a,b,c,d,e,f){function g(a,e){var f=J(a).toString(),g=b.layerStates[J(e)].hb;if(!(f in b.skippedFeatureUids)||g)return c.call(d,a,g?e:null)}var h,k=b.viewState,l=k.resolution,m=k.projection,k=a;if(m.b){var m=m.G(),p=qb(m),q=a[0];if(q<m[0]||q>m[2])k=[q+p*Math.ceil((m[0]-q)/p),a[1]]}m=b.layerStatesArray;for(p=m.length-1;0<=p;--p){var u=m[p],q=u.layer;if(yf(u,l)&&e.call(f,q)&&(u=Qf(this,q),q.da()&&(h=u.fa(q.da().i?k:a,b,g,d)),h))return h}};\r\nn.Fc=function(a,b,c,d){return void 0!==this.fa(a,b,yb,this,c,d)};function Qf(a,b){var c=J(b).toString();if(c in a.c)return a.c[c];var d=a.Mb(b);a.c[c]=d;a.j[c]=R(d,\"change\",a.wd,a);return d}n.wd=function(){this.g.render()};n.vb=I;n.ue=function(a,b){for(var c in this.c)if(!(b&&c in b.layerStates)){var d=c,e=this.c[d];delete this.c[d];M(this.j[d]);delete this.j[d];Da(e)}};function Rf(a,b){for(var c in a.c)if(!(c in b.layerStates)){b.postRenderFunctions.push(a.ue.bind(a));break}}\r\nfunction Ta(a,b){return a.zIndex-b.zIndex};function Sf(a,b){Ga.call(this);this.V=a;this.state=b;this.b=null;this.key=\"\"}B(Sf,Ga);function Tf(a){U(a,\"change\")}Sf.prototype.getKey=function(){return this.key+\"/\"+this.V};Sf.prototype.T=function(){return this.state};function Uf(a,b){this.j=a;this.f=b;this.b=[];this.c=[];this.a={}}Uf.prototype.clear=function(){this.b.length=0;this.c.length=0;qa(this.a)};function Vf(a){var b=a.b,c=a.c,d=b[0];1==b.length?(b.length=0,c.length=0):(b[0]=b.pop(),c[0]=c.pop(),Wf(a,0));b=a.f(d);delete a.a[b];return d}Uf.prototype.g=function(a){L(!(this.f(a)in this.a),31);var b=this.j(a);return Infinity!=b?(this.b.push(a),this.c.push(b),this.a[this.f(a)]=!0,Xf(this,0,this.b.length-1),!0):!1};\r\nfunction Wf(a,b){for(var c=a.b,d=a.c,e=c.length,f=c[b],g=d[b],h=b;b<e>>1;){var k=2*b+1,l=2*b+2,k=l<e&&d[l]<d[k]?l:k;c[b]=c[k];d[b]=d[k];b=k}c[b]=f;d[b]=g;Xf(a,h,b)}function Xf(a,b,c){var d=a.b;a=a.c;for(var e=d[c],f=a[c];c>b;){var g=c-1>>1;if(a[g]>f)d[c]=d[g],a[c]=a[g],c=g;else break}d[c]=e;a[c]=f}function Yf(a){var b=a.j,c=a.b,d=a.c,e=0,f=c.length,g,h,k;for(h=0;h<f;++h)g=c[h],k=b(g),Infinity==k?delete a.a[a.f(g)]:(d[e]=k,c[e++]=g);c.length=e;d.length=e;for(b=(a.b.length>>1)-1;0<=b;b--)Wf(a,b)};function Zf(a,b){Uf.call(this,function(b){return a.apply(null,b)},function(a){return a[0].getKey()});this.C=b;this.l=0;this.h={}}B(Zf,Uf);Zf.prototype.g=function(a){var b=Uf.prototype.g.call(this,a);b&&R(a[0],\"change\",this.i,this);return b};Zf.prototype.i=function(a){a=a.target;var b=a.T();if(2===b||3===b||4===b||5===b)ya(a,\"change\",this.i,this),a=a.getKey(),a in this.h&&(delete this.h[a],--this.l),this.C()};function $f(){this.b=[];this.a=this.c=0}function ag(a,b){var c=a.a,d=.05-c,e=Math.log(.05/a.a)/-.005;return Dc({source:b,duration:e,easing:function(a){return c*(Math.exp(-.005*a*e)-1)/d}})};function bg(a){V.call(this);this.aa=null;this.set(\"active\",!0);this.handleEvent=a.handleEvent}B(bg,V);bg.prototype.setMap=function(a){this.aa=a};function cg(a,b,c,d,e){if(void 0!==c){var f=b.get(xc),g=b.qa();void 0!==f&&g&&e&&0<e&&(a.oa(Ec({rotation:f,duration:e,easing:Ac})),d&&a.oa(Dc({source:g,duration:e,easing:Ac})));b.rotate(c,d)}}function dg(a,b,c,d,e){var f=b.O();c=b.constrainResolution(f,c,0);eg(a,b,c,d,e)}\r\nfunction eg(a,b,c,d,e){if(c){var f=b.O(),g=b.qa();void 0!==f&&g&&c!==f&&e&&0<e&&(a.oa(Fc({resolution:f,duration:e,easing:Ac})),d&&a.oa(Dc({source:g,duration:e,easing:Ac})));if(d){var h;a=b.qa();e=b.O();void 0!==a&&void 0!==e&&(h=[d[0]-c*(d[0]-a[0])/e,d[1]-c*(d[1]-a[1])/e]);b.xa(h)}b.set(wc,c)}};function fg(a){a=a?a:{};this.a=a.delta?a.delta:1;bg.call(this,{handleEvent:gg});this.c=void 0!==a.duration?a.duration:250}B(fg,bg);function gg(a){var b=!1,c=a.originalEvent;if(a.type==jf){var b=a.map,d=a.coordinate,c=c.shiftKey?-this.a:this.a,e=b.U();dg(b,e,c,d,this.c);a.preventDefault();b=!0}return!b};function hg(a){a=a.originalEvent;return a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}function ig(a){a=a.originalEvent;return 0==a.button&&!(Cd&&ne&&a.ctrlKey)}function jg(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&!a.shiftKey}function kg(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}function lg(a){a=a.originalEvent.target.tagName;return\"INPUT\"!==a&&\"SELECT\"!==a&&\"TEXTAREA\"!==a}function mg(a){L(a.b,56);return\"mouse\"==a.b.pointerType};function ng(a){a=a?a:{};bg.call(this,{handleEvent:a.handleEvent?a.handleEvent:og});this.Bb=a.handleDownEvent?a.handleDownEvent:zb;this.Cb=a.handleDragEvent?a.handleDragEvent:I;this.zb=a.handleMoveEvent?a.handleMoveEvent:I;this.Eb=a.handleUpEvent?a.handleUpEvent:zb;this.v=!1;this.N={};this.f=[]}B(ng,bg);function pg(a){for(var b=a.length,c=0,d=0,e=0;e<b;e++)c+=a[e].clientX,d+=a[e].clientY;return[c/b,d/b]}\r\nfunction og(a){if(!(a instanceof ef))return!0;var b=!1,c=a.type;if(c===of||c===qf||c===mf)c=a.b,a.type==mf?delete this.N[c.pointerId]:a.type==of?this.N[c.pointerId]=c:c.pointerId in this.N&&(this.N[c.pointerId]=c),this.f=ra(this.N);this.v&&(a.type==qf?this.Cb(a):a.type==mf&&(this.v=this.Eb(a)));a.type==of?(this.v=a=this.Bb(a),b=this.B(a)):a.type==pf&&this.zb(a);return!b}ng.prototype.B=function(a){return a};function qg(a){ng.call(this,{handleDownEvent:rg,handleDragEvent:sg,handleUpEvent:tg});a=a?a:{};this.a=a.kinetic;this.c=this.g=null;this.i=a.condition?a.condition:jg;this.h=!1}B(qg,ng);function sg(a){var b=pg(this.f);this.a&&this.a.b.push(b[0],b[1],Date.now());if(this.c){var c=this.c[0]-b[0],d=b[1]-this.c[1];a=a.map.U();var e=a.T(),d=c=[c,d],f=e.resolution;d[0]*=f;d[1]*=f;bb(c,e.rotation);ab(c,e.center);c=a.a.center(c);a.xa(c)}this.c=b}\r\nfunction tg(a){var b=a.map;a=b.U();if(0===this.f.length){var c;if(c=!this.h&&this.a)if(c=this.a,6>c.b.length)c=!1;else{var d=Date.now()-100,e=c.b.length-3;if(c.b[e+2]<d)c=!1;else{for(var f=e-3;0<f&&c.b[f+2]>d;)f-=3;var d=c.b[e+2]-c.b[f+2],g=c.b[e]-c.b[f],e=c.b[e+1]-c.b[f+1];c.c=Math.atan2(e,g);c.a=Math.sqrt(g*g+e*e)/d;c=.05<c.a}}c?(c=(.05-this.a.a)/-.005,e=this.a.c,f=a.qa(),this.g=ag(this.a,f),b.oa(this.g),f=ug(b,f),b=b.Ba([f[0]-c*Math.cos(e),f[1]-c*Math.sin(e)]),b=a.a.center(b),a.xa(b)):b.render();\r\nzc(a,-1);return!1}this.c=null;return!0}function rg(a){if(0<this.f.length&&this.i(a)){var b=a.map,c=b.U();this.c=null;this.v||zc(c,1);this.g&&Qa(b.D,this.g)&&(c.xa(a.frameState.viewState.center),this.g=null);this.a&&(a=this.a,a.b.length=0,a.c=0,a.a=0);this.h=1<this.f.length;return!0}return!1}qg.prototype.B=zb;function vg(a){a=a?a:{};ng.call(this,{handleDownEvent:wg,handleDragEvent:xg,handleUpEvent:yg});this.c=a.condition?a.condition:hg;this.a=void 0;this.g=void 0!==a.duration?a.duration:250}B(vg,ng);function xg(a){if(mg(a)){var b=a.map,c=b.Ta();a=a.pixel;c=Math.atan2(c[1]/2-a[1],a[0]-c[0]/2);if(void 0!==this.a){a=c-this.a;var d=b.U(),e=d.get(xc);cg(b,d,e-a)}this.a=c}}\r\nfunction yg(a){if(!mg(a))return!0;a=a.map;var b=a.U();zc(b,-1);var c=b.get(xc),d=this.g,c=b.constrainRotation(c,0);cg(a,b,c,void 0,d);return!1}function wg(a){return mg(a)&&ig(a)&&this.c(a)?(zc(a.map.U(),1),this.a=void 0,!0):!1}vg.prototype.B=zb;function zg(a){this.f=null;this.a=document.createElement(\"div\");this.a.style.position=\"absolute\";this.a.className=\"ol-box \"+a;this.c=this.g=this.b=null}B(zg,Aa);zg.prototype.R=function(){this.setMap(null)};function Ag(a){var b=a.g,c=a.c;a=a.a.style;a.left=Math.min(b[0],c[0])+\"px\";a.top=Math.min(b[1],c[1])+\"px\";a.width=Math.abs(c[0]-b[0])+\"px\";a.height=Math.abs(c[1]-b[1])+\"px\"}\r\nzg.prototype.setMap=function(a){if(this.b){this.b.s.removeChild(this.a);var b=this.a.style;b.left=b.top=b.width=b.height=\"inherit\"}(this.b=a)&&this.b.s.appendChild(this.a)};function Bg(a){var b=a.g,c=a.c,b=[b,[b[0],c[1]],c,[c[0],b[1]]].map(a.b.Ba,a.b);b[4]=b[0].slice();a.f?a.f.ea([b]):a.f=new qc([b])}zg.prototype.S=function(){return this.f};function Cg(a,b,c){T.call(this,a);this.coordinate=b;this.mapBrowserEvent=c}B(Cg,T);function Dg(a){ng.call(this,{handleDownEvent:Eg,handleDragEvent:Fg,handleUpEvent:Gg});a=a?a:{};this.a=new zg(a.className||\"ol-dragbox\");this.c=null;this.j=a.condition?a.condition:yb;this.i=a.boxEndCondition?a.boxEndCondition:Hg}B(Dg,ng);function Hg(a,b,c){a=c[0]-b[0];b=c[1]-b[1];return 64<=a*a+b*b}\r\nfunction Fg(a){if(mg(a)){var b=this.a,c=a.pixel;b.g=this.c;b.c=c;Bg(b);Ag(b);U(this,new Cg(\"boxdrag\",a.coordinate,a))}}Dg.prototype.S=function(){return this.a.S()};Dg.prototype.h=I;function Gg(a){if(!mg(a))return!0;this.a.setMap(null);this.i(a,this.c,a.pixel)&&(this.h(a),U(this,new Cg(\"boxend\",a.coordinate,a)));return!1}\r\nfunction Eg(a){if(mg(a)&&ig(a)&&this.j(a)){this.c=a.pixel;this.a.setMap(a.map);var b=this.a,c=this.c;b.g=this.c;b.c=c;Bg(b);Ag(b);U(this,new Cg(\"boxstart\",a.coordinate,a));return!0}return!1};function Ig(a){a=a?a:{};var b=a.condition?a.condition:kg;this.g=void 0!==a.duration?a.duration:200;this.s=void 0!==a.out?a.out:!1;Dg.call(this,{condition:b,className:a.className||\"ol-dragzoom\"})}B(Ig,Dg);\r\nIg.prototype.h=function(){var a=this.aa,b=a.U(),c=a.Ta(),d=this.S().G();if(this.s){var e=b.lc(c),d=[ug(a,sb(d)),ug(a,[d[2],d[3]])],f=jb(void 0),g,h;g=0;for(h=d.length;g<h;++g)eb(f,d[g]);f=1/yc(f,c);d=(e[2]-e[0])/2*(f-1);f=(e[3]-e[1])/2*(f-1);e[0]-=d;e[2]+=d;e[1]-=f;e[3]+=f;d=e}c=b.constrainResolution(yc(d,c));e=b.O();f=b.qa();a.oa(Fc({resolution:e,duration:this.g,easing:Ac}));a.oa(Dc({source:f,duration:this.g,easing:Ac}));b.xa(tb(d));b.set(wc,c)};function Jg(a){bg.call(this,{handleEvent:Kg});a=a||{};this.a=function(a){return jg(a)&&lg(a)};this.c=void 0!==a.condition?a.condition:this.a;this.f=void 0!==a.duration?a.duration:100;this.g=void 0!==a.pixelDelta?a.pixelDelta:128}B(Jg,bg);\r\nfunction Kg(a){var b=!1;if(\"keydown\"==a.type){var c=a.originalEvent.keyCode;if(this.c(a)&&(40==c||37==c||39==c||38==c)){var d=a.map,b=d.U(),e=b.O()*this.g,f=0,g=0;40==c?g=-e:37==c?f=-e:39==c?f=e:g=e;c=[f,g];bb(c,b.get(xc));e=this.f;if(f=b.qa())e&&0<e&&d.oa(Dc({source:f,duration:e,easing:Cc})),d=b.a.center([f[0]+c[0],f[1]+c[1]]),b.xa(d);a.preventDefault();b=!0}}return!b};function Lg(a){bg.call(this,{handleEvent:Mg});a=a?a:{};this.c=a.condition?a.condition:lg;this.a=a.delta?a.delta:1;this.f=void 0!==a.duration?a.duration:100}B(Lg,bg);function Mg(a){var b=!1;if(\"keydown\"==a.type||\"keypress\"==a.type){var c=a.originalEvent.charCode;if(this.c(a)&&(43==c||45==c)){var b=a.map,c=43==c?this.a:-this.a,d=b.U();dg(b,d,c,void 0,this.f);a.preventDefault();b=!0}}return!b};function Ng(a){bg.call(this,{handleEvent:Og});a=a||{};this.a=0;this.i=void 0!==a.duration?a.duration:250;this.j=void 0!==a.useAnchor?a.useAnchor:!0;this.f=null;this.g=this.c=void 0}B(Ng,bg);\r\nfunction Og(a){var b=!1;if(\"wheel\"==a.type||\"mousewheel\"==a.type){var b=a.map,c=a.originalEvent;this.j&&(this.f=a.coordinate);var d;\"wheel\"==a.type?(d=c.deltaY,le&&c.deltaMode===K.WheelEvent.DOM_DELTA_PIXEL&&(d/=oe),c.deltaMode===K.WheelEvent.DOM_DELTA_LINE&&(d*=40)):\"mousewheel\"==a.type&&(d=-c.wheelDeltaY,me&&(d/=3));this.a+=d;void 0===this.c&&(this.c=Date.now());d=Math.max(80-(Date.now()-this.c),0);K.clearTimeout(this.g);this.g=K.setTimeout(this.h.bind(this,b),d);a.preventDefault();b=!0}return!b}\r\nNg.prototype.h=function(a){var b=ia(this.a,-1,1),c=a.U();dg(a,c,-b,this.f,this.i);this.a=0;this.f=null;this.g=this.c=void 0};function Pg(a){ng.call(this,{handleDownEvent:Qg,handleDragEvent:Rg,handleUpEvent:Sg});a=a||{};this.c=null;this.g=void 0;this.a=!1;this.h=0;this.j=void 0!==a.threshold?a.threshold:.3;this.i=void 0!==a.duration?a.duration:250}B(Pg,ng);\r\nfunction Rg(a){var b=0,c=this.f[0],d=this.f[1],c=Math.atan2(d.clientY-c.clientY,d.clientX-c.clientX);void 0!==this.g&&(b=c-this.g,this.h+=b,!this.a&&Math.abs(this.h)>this.j&&(this.a=!0));this.g=c;a=a.map;c=a.a.getBoundingClientRect();d=pg(this.f);d[0]-=c.left;d[1]-=c.top;this.c=a.Ba(d);this.a&&(c=a.U(),d=c.get(xc),a.render(),cg(a,c,d+b,this.c))}\r\nfunction Sg(a){if(2>this.f.length){a=a.map;var b=a.U();zc(b,-1);if(this.a){var c=b.get(xc),d=this.c,e=this.i,c=b.constrainRotation(c,0);cg(a,b,c,d,e)}return!1}return!0}function Qg(a){return 2<=this.f.length?(a=a.map,this.c=null,this.g=void 0,this.a=!1,this.h=0,this.v||zc(a.U(),1),a.render(),!0):!1}Pg.prototype.B=zb;function Tg(a){ng.call(this,{handleDownEvent:Ug,handleDragEvent:Vg,handleUpEvent:Wg});a=a?a:{};this.c=null;this.h=void 0!==a.duration?a.duration:400;this.a=void 0;this.g=1}B(Tg,ng);function Vg(a){var b=1,c=this.f[0],d=this.f[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);void 0!==this.a&&(b=this.a/e);this.a=e;1!=b&&(this.g=b);a=a.map;var e=a.U(),c=e.O(),d=a.a.getBoundingClientRect(),f=pg(this.f);f[0]-=d.left;f[1]-=d.top;this.c=a.Ba(f);a.render();eg(a,e,c*b,this.c)}\r\nfunction Wg(a){if(2>this.f.length){a=a.map;var b=a.U();zc(b,-1);var c=b.O(),d=this.c,e=this.h,c=b.constrainResolution(c,0,this.g-1);eg(a,b,c,d,e);return!1}return!0}function Ug(a){return 2<=this.f.length?(a=a.map,this.c=null,this.a=void 0,this.g=1,this.v||zc(a.U(),1),a.render(),!0):!1}Tg.prototype.B=zb;function Xg(a){var b=a||{};a=pa({},b);delete a.layers;b=b.layers;sf.call(this,a);this.c=[];this.a={};R(this,La(\"layers\"),this.yd,this);b?Array.isArray(b)?b=new cd(b.slice()):L(b instanceof cd,43):b=new cd;this.set(\"layers\",b)}B(Xg,sf);n=Xg.prototype;n.rb=function(){this.gb()&&this.w()};\r\nn.yd=function(){this.c.forEach(M);this.c.length=0;var a=this.get(\"layers\");this.c.push(R(a,hd,this.xd,this),R(a,id,this.zd,this));for(var b in this.a)this.a[b].forEach(M);qa(this.a);var a=a.a,c,d;b=0;for(c=a.length;b<c;b++)d=a[b],this.a[J(d).toString()]=[R(d,\"propertychange\",this.rb,this),R(d,\"change\",this.rb,this)];this.w()};n.xd=function(a){a=a.element;var b=J(a).toString();this.a[b]=[R(a,\"propertychange\",this.rb,this),R(a,\"change\",this.rb,this)];this.w()};\r\nn.zd=function(a){a=J(a.element).toString();this.a[a].forEach(M);delete this.a[a];this.w()};n.Pb=function(a){var b=void 0!==a?a:[],c=b.length;ed(this.get(\"layers\"),function(a){a.Pb(b)});a=tf(this);var d,e;for(d=b.length;c<d;c++)e=b[c],e.opacity*=a.opacity,e.visible=e.visible&&a.visible,e.maxResolution=Math.min(e.maxResolution,a.maxResolution),e.minResolution=Math.max(e.minResolution,a.minResolution),void 0!==a.extent&&(e.extent=void 0!==e.extent?vb(e.extent,a.extent):a.extent);return b};n.Sb=function(){return\"ready\"};function Yg(a){Eb.call(this,{code:a,units:\"m\",extent:Zg,global:!0,worldExtent:$g})}B(Yg,Eb);Yg.prototype.getPointResolution=function(a,b){return a/ja(b[1]/6378137)};var ah=6378137*Math.PI,Zg=[-ah,-ah,ah,ah],$g=[-180,-85,180,85],bh=\"EPSG:3857 EPSG:102100 EPSG:102113 EPSG:900913 urn:ogc:def:crs:EPSG:6.18:3:3857 urn:ogc:def:crs:EPSG::3857 http://www.opengis.net/gml/srs/epsg.xml#3857\".split(\" \").map(function(a){return new Yg(a)});\r\nfunction ch(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=6378137*Math.PI*a[e]/180,b[e+1]=6378137*Math.log(Math.tan(Math.PI*(a[e+1]+90)/360));return b}function dh(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=180*a[e]/(6378137*Math.PI),b[e+1]=360*Math.atan(Math.exp(a[e+1]/6378137))/Math.PI-90;return b};var eh=new Ab(6378137);function fh(a,b){Eb.call(this,{code:a,units:\"degrees\",extent:gh,axisOrientation:b,global:!0,metersPerUnit:hh,worldExtent:gh})}B(fh,Eb);fh.prototype.getPointResolution=function(a){return a};\r\nvar gh=[-180,-90,180,90],hh=Math.PI*eh.radius/180,ih=[new fh(\"CRS:84\"),new fh(\"EPSG:4326\",\"neu\"),new fh(\"urn:ogc:def:crs:EPSG::4326\",\"neu\"),new fh(\"urn:ogc:def:crs:EPSG:6.6:4326\",\"neu\"),new fh(\"urn:ogc:def:crs:OGC:1.3:CRS84\"),new fh(\"urn:ogc:def:crs:OGC:2:84\"),new fh(\"http://www.opengis.net/gml/srs/epsg.xml#4326\",\"neu\"),new fh(\"urn:x-ogc:def:crs:EPSG:4326\",\"neu\")];function W(a){a=a?a:{};var b=pa({},a);delete b.preload;delete b.useInterimTilesOnError;xf.call(this,b);this.set(\"preload\",void 0!==a.preload?a.preload:0);this.set(\"useInterimTilesOnError\",void 0!==a.useInterimTilesOnError?a.useInterimTilesOnError:!0)}B(W,xf);function jh(a){return a.get(\"useInterimTilesOnError\")};var kh=[0,0,0,1],lh=[],mh=[0,0,0,1];function nh(a,b,c,d){0!==b&&(a.translate(c,d),a.rotate(b),a.translate(-c,-d))};function oh(a){this.C=a.opacity;this.K=a.rotateWithView;this.s=a.rotation;this.v=a.scale;this.B=a.snapToPixel};function ph(a){a=a||{};this.h=this.c=this.f=null;this.g=void 0!==a.fill?a.fill:null;this.b=void 0!==a.stroke?a.stroke:null;this.a=a.radius;this.j=[0,0];this.i=this.u=this.l=null;var b=a.atlasManager,c,d=null,e,f=0;this.b&&(e=nd(this.b.a),f=this.b.c,void 0===f&&(f=1),d=this.b.b,pe||(d=null));var g=2*(this.a+f)+1;e={strokeStyle:e,jb:f,size:g,lineDash:d};if(void 0===b)b=Md(g,g),this.c=b.canvas,c=g=this.c.width,this.Oc(e,b,0,0),this.g?this.h=this.c:(b=Md(e.size,e.size),this.h=b.canvas,this.Nc(e,b,0,0));\r\nelse{g=Math.round(g);(d=!this.g)&&(c=this.Nc.bind(this,e));var f=this.b?qh(this.b):\"-\",h=this.g?rh(this.g):\"-\";this.f&&f==this.f[1]&&h==this.f[2]&&this.a==this.f[3]||(this.f=[\"c\"+f+h+(void 0!==this.a?this.a.toString():\"-\"),f,h,this.a]);b=b.add(this.f[0],g,g,this.Oc.bind(this,e),c);this.c=b.image;this.j=[b.offsetX,b.offsetY];c=b.image.width;d?this.h=b.Nd:this.h=this.c}this.l=[g/2,g/2];this.u=[g,g];this.i=[c,c];oh.call(this,{opacity:1,rotateWithView:!1,rotation:0,scale:1,snapToPixel:void 0!==a.snapToPixel?\r\na.snapToPixel:!0})}B(ph,oh);n=ph.prototype;n.eb=function(){return this.l};n.ub=function(){return this.h};n.Z=function(){return this.c};n.ib=function(){return 2};n.Ob=function(){return this.i};n.pa=function(){return this.j};n.Ka=function(){return this.u};n.Vb=I;n.load=I;n.bc=I;\r\nn.Oc=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);this.g&&(b.fillStyle=qd(this.g.b),b.fill());this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};\r\nn.Nc=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);b.fillStyle=nd(kh);b.fill();this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};function sh(a){a=a||{};this.b=void 0!==a.color?a.color:null;this.a=void 0}function rh(a){void 0===a.a&&(a.a=a.b instanceof CanvasPattern||a.b instanceof CanvasGradient?J(a.b).toString():\"f\"+(a.b?nd(a.b):\"-\"));return a.a};function th(){this.a=-1};function uh(){this.a=64;this.b=Array(4);this.g=Array(this.a);this.b[0]=1732584193;this.b[1]=4023233417;this.b[2]=2562383102;this.b[3]=271733878;this.f=this.c=0}(function(){function a(){}a.prototype=th.prototype;uh.a=th.prototype;uh.prototype=new a;uh.prototype.constructor=uh;uh.b=function(a,c,d){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return th.prototype[c].apply(a,e)}})();\r\nfunction vh(a,b,c){c||(c=0);var d=Array(16);if(\"string\"==typeof b)for(var e=0;16>e;++e)d[e]=b.charCodeAt(c++)|b.charCodeAt(c++)<<8|b.charCodeAt(c++)<<16|b.charCodeAt(c++)<<24;else for(e=0;16>e;++e)d[e]=b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24;b=a.b[0];c=a.b[1];var e=a.b[2],f=a.b[3],g;g=b+(f^c&(e^f))+d[0]+3614090360&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[1]+3905402710&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[2]+606105819&4294967295;e=f+(g<<17&4294967295|g>>>15);g=\r\nc+(b^e&(f^b))+d[3]+3250441966&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[4]+4118548399&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[5]+1200080426&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[6]+2821735955&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[7]+4249261313&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[8]+1770035416&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[9]+2336552879&4294967295;f=b+(g<<12&4294967295|g>>>\r\n20);g=e+(c^f&(b^c))+d[10]+4294925233&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[11]+2304563134&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[12]+1804603682&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[13]+4254626195&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[14]+2792965006&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[15]+1236535329&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(e^f&(c^e))+d[1]+4129170786&4294967295;b=c+(g<<5&4294967295|\r\ng>>>27);g=f+(c^e&(b^c))+d[6]+3225465664&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[11]+643717713&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[0]+3921069994&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[5]+3593408605&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[10]+38016083&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[15]+3634488961&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[4]+3889429448&4294967295;c=e+(g<<20&4294967295|\r\ng>>>12);g=b+(e^f&(c^e))+d[9]+568446438&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[14]+3275163606&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[3]+4107603335&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[8]+1163531501&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[13]+2850285829&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[2]+4243563512&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[7]+1735328473&4294967295;e=f+(g<<14&4294967295|\r\ng>>>18);g=c+(f^b&(e^f))+d[12]+2368359562&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(c^e^f)+d[5]+4294588738&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[8]+2272392833&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[11]+1839030562&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[14]+4259657740&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[1]+2763975236&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[4]+1272893353&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^\r\nb^c)+d[7]+4139469664&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[10]+3200236656&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[13]+681279174&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[0]+3936430074&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[3]+3572445317&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[6]+76029189&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[9]+3654602809&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[12]+3873151461&4294967295;\r\nf=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[15]+530742520&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[2]+3299628645&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(e^(c|~f))+d[0]+4096336452&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[7]+1126891415&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[14]+2878612391&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[5]+4237533241&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[12]+1700485571&4294967295;b=c+\r\n(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[3]+2399980690&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[10]+4293915773&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[1]+2240044497&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[8]+1873313359&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[15]+4264355552&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[6]+2734768916&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[13]+1309151649&4294967295;\r\nc=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[4]+4149444226&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[11]+3174756917&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[2]+718787259&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[9]+3951481745&4294967295;a.b[0]=a.b[0]+b&4294967295;a.b[1]=a.b[1]+(e+(g<<21&4294967295|g>>>11))&4294967295;a.b[2]=a.b[2]+e&4294967295;a.b[3]=a.b[3]+f&4294967295}\r\nfunction wh(a,b){var c;void 0===c&&(c=b.length);for(var d=c-a.a,e=a.g,f=a.c,g=0;g<c;){if(0==f)for(;g<=d;)vh(a,b,g),g+=a.a;if(\"string\"==typeof b)for(;g<c;){if(e[f++]=b.charCodeAt(g++),f==a.a){vh(a,e);f=0;break}}else for(;g<c;)if(e[f++]=b[g++],f==a.a){vh(a,e);f=0;break}}a.c=f;a.f+=c};function xh(a){a=a||{};this.a=void 0!==a.color?a.color:null;this.f=a.lineCap;this.b=void 0!==a.lineDash?a.lineDash:null;this.g=a.lineJoin;this.h=a.miterLimit;this.c=a.width;this.l=void 0}\r\nfunction qh(a){if(void 0===a.l){var b=\"s\"+(a.a?nd(a.a):\"-\")+\",\"+(void 0!==a.f?a.f.toString():\"-\")+\",\"+(a.b?a.b.toString():\"-\")+\",\"+(void 0!==a.g?a.g:\"-\")+\",\"+(void 0!==a.h?a.h.toString():\"-\")+\",\"+(void 0!==a.c?a.c.toString():\"-\"),c=new uh;wh(c,b);var d=Array((56>c.c?c.a:2*c.a)-c.c);d[0]=128;for(b=1;b<d.length-8;++b)d[b]=0;for(var e=8*c.f,b=d.length-8;b<d.length;++b)d[b]=e&255,e/=256;wh(c,d);d=Array(16);for(b=e=0;4>b;++b)for(var f=0;32>f;f+=8)d[e++]=c.b[b]>>>f&255;if(8192>=d.length)c=String.fromCharCode.apply(null,\r\nd);else for(c=\"\",b=0;b<d.length;b+=8192)c+=String.fromCharCode.apply(null,td(d,b,b+8192));a.l=c}return a.l};function yh(a){a=a||{};this.h=null;this.c=zh;void 0!==a.geometry&&Ah(this,a.geometry);this.g=void 0!==a.fill?a.fill:null;this.l=void 0!==a.image?a.image:null;this.f=void 0!==a.stroke?a.stroke:null;this.a=void 0!==a.text?a.text:null;this.b=a.zIndex}yh.prototype.S=function(){return this.h};yh.prototype.Z=function(){return this.l};function Ah(a,b){\"function\"===typeof b?a.c=b:\"string\"===typeof b?a.c=function(a){return a.get(b)}:b?b&&(a.c=function(){return b}):a.c=zh;a.h=b}\r\nfunction Bh(a){if(\"function\"!==typeof a){var b;Array.isArray(a)?b=a:(L(a instanceof yh,41),b=[a]);a=function(){return b}}return a}var Ch=null;function Dh(){if(!Ch){var a=new sh({color:\"rgba(255,255,255,0.4)\"}),b=new xh({color:\"#3399CC\",width:1.25});Ch=[new yh({image:new ph({fill:a,stroke:b,radius:5}),fill:a,stroke:b})]}return Ch}\r\nfunction Eh(){var a={},b=[255,255,255,1],c=[0,153,255,1];a.Polygon=[new yh({fill:new sh({color:[255,255,255,.5]})})];a.MultiPolygon=a.Polygon;a.LineString=[new yh({stroke:new xh({color:b,width:5})}),new yh({stroke:new xh({color:c,width:3})})];a.MultiLineString=a.LineString;a.Circle=a.Polygon.concat(a.LineString);a.Point=[new yh({image:new ph({radius:6,fill:new sh({color:c}),stroke:new xh({color:b,width:1.5})}),zIndex:Infinity})];a.MultiPoint=a.Point;a.GeometryCollection=a.Polygon.concat(a.LineString,\r\na.Point);return a}function zh(a){return a.S()};function Y(a){a=a?a:{};var b=pa({},a);delete b.style;delete b.renderBuffer;delete b.updateWhileAnimating;delete b.updateWhileInteracting;xf.call(this,b);this.a=void 0!==a.renderBuffer?a.renderBuffer:100;this.s=null;this.g=void 0;this.v(a.style);this.i=void 0!==a.updateWhileAnimating?a.updateWhileAnimating:!1;this.j=void 0!==a.updateWhileInteracting?a.updateWhileInteracting:!1}B(Y,xf);Y.prototype.v=function(a){this.s=void 0!==a?a:Dh;this.g=null===a?void 0:Bh(this.s);this.w()};function Fh(){};function Gh(a,b,c,d,e){this.f=a;this.v=b;this.l=c;this.u=d;this.Ga=e;this.g=this.b=this.a=this.ha=this.P=this.N=null;this.aa=this.W=this.K=this.M=this.D=this.B=0;this.ba=!1;this.h=this.ra=0;this.ma=!1;this.Y=0;this.c=\"\";this.Ea=this.na=0;this.va=!1;this.j=this.wa=0;this.ca=this.C=this.i=null;this.s=[];this.Fa=Cf()}B(Gh,Fh);\r\nfunction Hh(a,b,c){if(a.g){b=Xb(b,0,c,2,a.u,a.s);c=a.f;var d=a.Fa,e=c.globalAlpha;1!=a.K&&(c.globalAlpha=e*a.K);var f=a.ra;a.ba&&(f+=a.Ga);var g,h;g=0;for(h=b.length;g<h;g+=2){var k=b[g]-a.B,l=b[g+1]-a.D;a.ma&&(k=Math.round(k),l=Math.round(l));if(0!==f||1!=a.h){var m=k+a.B,p=l+a.D;Lf(d,m,p,a.h,a.h,f,-m,-p);c.setTransform.apply(c,d)}c.drawImage(a.g,a.W,a.aa,a.Y,a.M,k,l,a.Y,a.M)}0===f&&1==a.h||c.setTransform(1,0,0,1,0,0);1!=a.K&&(c.globalAlpha=e)}}\r\nfunction Ih(a,b,c,d){var e=0;if(a.ca&&\"\"!==a.c){a.i&&Jh(a,a.i);a.C&&Kh(a,a.C);var f=a.ca,g=a.f,h=a.ha;h?(h.font!=f.font&&(h.font=g.font=f.font),h.textAlign!=f.textAlign&&(h.textAlign=g.textAlign=f.textAlign),h.textBaseline!=f.textBaseline&&(h.textBaseline=g.textBaseline=f.textBaseline)):(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline,a.ha={font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});b=Xb(b,e,c,d,a.u,a.s);f=a.f;g=a.wa;for(a.va&&(g+=a.Ga);e<c;e+=d){var h=b[e]+\r\na.na,k=b[e+1]+a.Ea;if(0!==g||1!=a.j){var l=Lf(a.Fa,h,k,a.j,a.j,g,-h,-k);f.setTransform.apply(f,l)}a.C&&f.strokeText(a.c,h,k);a.i&&f.fillText(a.c,h,k)}0===g&&1==a.j||f.setTransform(1,0,0,1,0,0)}}function Lh(a,b,c,d,e,f){var g=a.f;a=Xb(b,c,d,e,a.u,a.s);g.moveTo(a[0],a[1]);b=a.length;f&&(b-=2);for(c=2;c<b;c+=2)g.lineTo(a[c],a[c+1]);f&&g.closePath();return d}function Mh(a,b,c,d,e){var f,g;f=0;for(g=d.length;f<g;++f)c=Lh(a,b,c,d[f],e,!0);return c}n=Gh.prototype;\r\nn.pc=function(a){if(wb(this.l,a.G())){if(this.a||this.b){this.a&&Jh(this,this.a);this.b&&Kh(this,this.b);var b;b=(b=a.o)?Xb(b,0,b.length,a.A,this.u,this.s):null;var c=b[2]-b[0],d=b[3]-b[1],c=Math.sqrt(c*c+d*d),d=this.f;d.beginPath();d.arc(b[0],b[1],c,0,2*Math.PI);this.a&&d.fill();this.b&&d.stroke()}\"\"!==this.c&&Ih(this,a.o.slice(0,a.A),2,2)}};n.cb=function(a){var b=a.o;a=a.A;this.g&&Hh(this,b,b.length);\"\"!==this.c&&Ih(this,b,b.length,a)};\r\nn.bb=function(a){var b=a.o;a=a.A;this.g&&Hh(this,b,b.length);\"\"!==this.c&&Ih(this,b,b.length,a)};n.qc=function(a){if(wb(this.l,a.G())){if(this.b){Kh(this,this.b);var b=this.f,c=a.o;b.beginPath();Lh(this,c,0,c.length,a.A,!1);b.stroke()}\"\"!==this.c&&(a=Nh(a),Ih(this,a,2,2))}};\r\nn.rc=function(a){var b=a.G();if(wb(this.l,b)){if(this.b){Kh(this,this.b);var b=this.f,c=a.o,d=0,e=a.ua,f=a.A;b.beginPath();var g,h;g=0;for(h=e.length;g<h;++g)d=Lh(this,c,d,e[g],f,!1);b.stroke()}\"\"!==this.c&&(a=Oh(a),Ih(this,a,a.length,2))}};n.tc=function(a){if(wb(this.l,a.G())){if(this.b||this.a){this.a&&Jh(this,this.a);this.b&&Kh(this,this.b);var b=this.f;b.beginPath();Mh(this,sc(a),0,a.ja,a.A);this.a&&b.fill();this.b&&b.stroke()}\"\"!==this.c&&(a=tc(a),Ih(this,a,2,2))}};\r\nn.sc=function(a){if(wb(this.l,a.G())){if(this.b||this.a){this.a&&Jh(this,this.a);this.b&&Kh(this,this.b);var b=this.f,c=Ph(a),d=0,e=a.a,f=a.A,g,h;g=0;for(h=e.length;g<h;++g){var k=e[g];b.beginPath();d=Mh(this,c,d,k,f);this.a&&b.fill();this.b&&b.stroke()}}\"\"!==this.c&&(a=Qh(a),Ih(this,a,a.length,2))}};function Jh(a,b){var c=a.f,d=a.N;d?d.fillStyle!=b.fillStyle&&(d.fillStyle=c.fillStyle=b.fillStyle):(c.fillStyle=b.fillStyle,a.N={fillStyle:b.fillStyle})}\r\nfunction Kh(a,b){var c=a.f,d=a.P;d?(d.lineCap!=b.lineCap&&(d.lineCap=c.lineCap=b.lineCap),pe&&!Ra(d.lineDash,b.lineDash)&&c.setLineDash(d.lineDash=b.lineDash),d.lineJoin!=b.lineJoin&&(d.lineJoin=c.lineJoin=b.lineJoin),d.lineWidth!=b.lineWidth&&(d.lineWidth=c.lineWidth=b.lineWidth),d.miterLimit!=b.miterLimit&&(d.miterLimit=c.miterLimit=b.miterLimit),d.strokeStyle!=b.strokeStyle&&(d.strokeStyle=c.strokeStyle=b.strokeStyle)):(c.lineCap=b.lineCap,pe&&c.setLineDash(b.lineDash),c.lineJoin=b.lineJoin,c.lineWidth=\r\nb.lineWidth,c.miterLimit=b.miterLimit,c.strokeStyle=b.strokeStyle,a.P={lineCap:b.lineCap,lineDash:b.lineDash,lineJoin:b.lineJoin,lineWidth:b.lineWidth,miterLimit:b.miterLimit,strokeStyle:b.strokeStyle})}\r\nn.La=function(a,b){if(a){var c=a.b;this.a={fillStyle:qd(c?c:kh)}}else this.a=null;if(b){var c=b.a,d=b.f,e=b.b,f=b.g,g=b.c,h=b.h;this.b={lineCap:void 0!==d?d:\"round\",lineDash:e?e:lh,lineJoin:void 0!==f?f:\"round\",lineWidth:this.v*(void 0!==g?g:1),miterLimit:void 0!==h?h:10,strokeStyle:nd(c?c:mh)}}else this.b=null};\r\nn.Ma=function(a){if(a){var b=a.eb(),c=a.Z(1),d=a.pa(),e=a.Ka();this.B=b[0];this.D=b[1];this.M=e[1];this.g=c;this.K=a.C;this.W=d[0];this.aa=d[1];this.ba=a.K;this.ra=a.s;this.h=a.v;this.ma=a.B;this.Y=e[0]}else this.g=null};\r\nn.Ca=function(a){if(a){var b=a.f;b?(b=b.b,this.i={fillStyle:qd(b?b:kh)}):this.i=null;var c=a.i;if(c){var b=c.a,d=c.f,e=c.b,f=c.g,g=c.c,c=c.h;this.C={lineCap:void 0!==d?d:\"round\",lineDash:e?e:lh,lineJoin:void 0!==f?f:\"round\",lineWidth:void 0!==g?g:1,miterLimit:void 0!==c?c:10,strokeStyle:nd(b?b:mh)}}else this.C=null;var b=a.b,d=a.a,e=a.c,f=a.g,g=a.h,c=a.l,h=a.j,k=a.C;a=a.K;this.ca={font:void 0!==b?b:\"10px sans-serif\",textAlign:void 0!==k?k:\"center\",textBaseline:void 0!==a?a:\"middle\"};this.c=void 0!==\r\nh?h:\"\";this.na=void 0!==d?this.v*d:0;this.Ea=void 0!==e?this.v*e:0;this.va=void 0!==f?f:!1;this.wa=void 0!==g?g:0;this.j=this.v*(void 0!==c?c:1)}else this.c=\"\"};function Rh(a){Ia.call(this);this.a=a}B(Rh,Ia);Rh.prototype.fa=I;Rh.prototype.Ec=zb;Rh.prototype.l=function(a,b,c){return function(d,e){return Sh(a,b,d,e,function(a){c[d]||(c[d]={});c[d][a.V.toString()]=a})}};function Th(a){var b=a.a;b.gb()&&\"ready\"==b.Sb()&&a.w()}function Uh(a,b){b.Mc()&&a.postRenderFunctions.push(function(a,b,e){b=J(a).toString();a.Oa(e.viewState.projection,e.usedTiles[b])}.bind(null,b))}function Vh(a,b){if(b){var c,d,e;d=0;for(e=b.length;d<e;++d)c=b[d],a[J(c).toString()]=c}}\r\nfunction Wh(a,b){var c=b.D;void 0!==c&&(\"string\"===typeof c?a.logos[c]=\"\":c&&(L(\"string\"==typeof c.href,44),L(\"string\"==typeof c.src,45),a.logos[c.src]=c.href))}function Xh(a,b,c,d){b=J(b).toString();c=c.toString();b in a?c in a[b]?(a=a[b][c],d.H<a.H&&(a.H=d.H),d.I>a.I&&(a.I=d.I),d.J<a.J&&(a.J=d.J),d.L>a.L&&(a.L=d.L)):a[b][c]=d:(a[b]={},a[b][c]=d)}function Yh(a,b,c){return[b*(Math.round(a[0]/b)+c[0]%2/2),b*(Math.round(a[1]/b)+c[1]%2/2)]}\r\nfunction Zh(a,b,c,d,e,f,g,h,k,l){var m=J(b).toString();m in a.wantedTiles||(a.wantedTiles[m]={});var p=a.wantedTiles[m];a=a.tileQueue;var q=c.minZoom,u,w,r,x,D,t;for(t=g;t>=q;--t)for(w=Rc(c,f,t,w),r=c.O(t),x=w.H;x<=w.I;++x)for(D=w.J;D<=w.L;++D)g-t<=h?(u=$h(b,t,x,D,d,e),0==u.T()&&(p[u.getKey()]=!0,u.getKey()in a.a||a.g([u,m,Vc(c,u.V),r])),void 0!==k&&k.call(l,u)):b.Vc(t,x,D,e)};function ai(a){Rh.call(this,a);this.M=Cf()}B(ai,Rh);function bi(a,b,c){var d=b.pixelRatio,e=b.size[0]*d,f=b.size[1]*d,g=b.viewState.rotation,h=xb(c),k=[c[2],c[3]],l=[c[2],c[1]];c=sb(c);Hf(b.coordinateToPixelTransform,h);Hf(b.coordinateToPixelTransform,k);Hf(b.coordinateToPixelTransform,l);Hf(b.coordinateToPixelTransform,c);a.save();nh(a,-g,e/2,f/2);a.beginPath();a.moveTo(h[0]*d,h[1]*d);a.lineTo(k[0]*d,k[1]*d);a.lineTo(l[0]*d,l[1]*d);a.lineTo(c[0]*d,c[1]*d);a.clip();nh(a,g,e/2,f/2)}\r\nai.prototype.g=function(a,b,c){ci(this,\"precompose\",c,a,void 0);var d=this.Z();if(d){var e=b.extent,f=void 0!==e;f&&bi(c,a,e);var e=this.N,g=c.globalAlpha;c.globalAlpha=b.opacity;c.drawImage(d,0,0,+d.width,+d.height,Math.round(e[4]),Math.round(e[5]),Math.round(d.width*e[0]),Math.round(d.height*e[3]));c.globalAlpha=g;f&&c.restore()}ci(this,\"postcompose\",c,a,void 0)};\r\nfunction ci(a,b,c,d,e){var f=a.a;if(Ha(f,b)){var g=d.size[0]*d.pixelRatio,h=d.size[1]*d.pixelRatio,k=d.viewState.rotation;nh(c,-k,g/2,h/2);a=void 0!==e?e:di(a,d,0);U(f,new uf(b,new Gh(c,d.pixelRatio,d.extent,a,d.viewState.rotation),d,c,null));nh(c,k,g/2,h/2)}}function di(a,b,c){var d=b.viewState,e=b.pixelRatio,f=e/d.resolution;return Lf(a.M,e*b.size[0]/2,e*b.size[1]/2,f,-f,-d.rotation,-d.center[0]+c,-d.center[1])};function ei(){};var fi=[\"Polygon\",\"LineString\",\"Image\",\"Text\"];function gi(a,b,c,d){this.ra=a;this.P=b;this.overlaps=d;this.g=null;this.h=0;this.resolution=c;this.ca=this.Y=null;this.a=[];this.coordinates=[];this.W=Cf();this.b=[];this.ha=[];this.aa=Cf();this.ba=Cf()}B(gi,Fh);\r\nfunction hi(a,b,c,d,e,f){var g=a.coordinates.length,h=a.Nb(),k=[b[c],b[c+1]],l=[NaN,NaN],m=!0,p,q,u;for(p=c+e;p<d;p+=e){l[0]=b[p];l[1]=b[p+1];u=h[1];var w=h[2],r=h[3],x=l[0],D=l[1],t=0;x<h[0]?t|=16:x>w&&(t|=4);D<u?t|=8:D>r&&(t|=2);0===t&&(t=1);u=t;u!==q?(m&&(a.coordinates[g++]=k[0],a.coordinates[g++]=k[1]),a.coordinates[g++]=l[0],a.coordinates[g++]=l[1],m=!1):1===u?(a.coordinates[g++]=l[0],a.coordinates[g++]=l[1],m=!1):m=!0;k[0]=l[0];k[1]=l[1];q=u}p===c+e&&(a.coordinates[g++]=k[0],a.coordinates[g++]=\r\nk[1]);f&&(a.coordinates[g++]=b[c],a.coordinates[g++]=b[c+1]);return g}function ii(a,b){a.Y=[0,b,0];a.a.push(a.Y);a.ca=[0,b,0];a.b.push(a.ca)}\r\nfunction ji(a,b,c,d,e,f,g,h,k){var l;Ra(d,a.W)?l=a.ha:(l=Xb(a.coordinates,0,a.coordinates.length,2,d,a.ha),Gf(a.W,d));d=!sa(f);var m=0,p=g.length,q,u,w=a.aa,r=a.ba,x,D,t,z,C=0,E=0;for(a=a.a!=g||a.overlaps?0:200;m<p;){var v=g[m],H,G,A,F;switch(v[0]){case 0:q=v[1];d&&f[J(q).toString()]||!q.S()?m=v[2]:void 0===k||wb(k,q.S().G())?++m:m=v[2]+1;break;case 1:C>a&&(b.fill(),C=0);E>a&&(b.stroke(),E=0);C||E||b.beginPath();++m;break;case 2:q=v[1];u=l[q];v=l[q+1];t=l[q+2]-u;q=l[q+3]-v;q=Math.sqrt(t*t+q*q);b.moveTo(u+\r\nq,v);b.arc(u,v,q,0,2*Math.PI,!0);++m;break;case 3:b.closePath();++m;break;case 4:q=v[1];u=v[2];H=v[3];G=v[4]*c;A=v[5]*c;var Q=v[6],N=v[7],O=v[8],S=v[9];F=v[10];t=v[11];z=v[12];var X=v[13],P=v[14];for(F&&(t+=e);q<u;q+=2){v=l[q]-G;F=l[q+1]-A;X&&(v=Math.round(v),F=Math.round(F));if(1!=z||0!==t){var Ba=v+G,Nb=F+A;Lf(w,Ba,Nb,z,z,t,-Ba,-Nb);b.transform.apply(b,w)}Ba=b.globalAlpha;1!=N&&(b.globalAlpha=Ba*N);var Nb=P+O>H.width?H.width-O:P,Ca=Q+S>H.height?H.height-S:Q;b.drawImage(H,O,S,Nb,Ca,v,F,Nb*c,Ca*c);\r\n1!=N&&(b.globalAlpha=Ba);if(1!=z||0!==t)Mf(Gf(r,w)),b.transform.apply(b,r)}++m;break;case 5:q=v[1];u=v[2];A=v[3];Q=v[4]*c;N=v[5]*c;t=v[6];z=v[7]*c;H=v[8];G=v[9];for((F=v[10])&&(t+=e);q<u;q+=2){v=l[q]+Q;F=l[q+1]+N;if(1!=z||0!==t)Lf(w,v,F,z,z,t,-v,-F),b.transform.apply(b,w);O=A.split(\"\\n\");S=O.length;1<S?(X=Math.round(1.5*b.measureText(\"M\").width),F-=(S-1)/2*X):X=0;for(P=0;P<S;P++)Ba=O[P],G&&b.strokeText(Ba,v,F),H&&b.fillText(Ba,v,F),F+=X;if(1!=z||0!==t)Mf(Gf(r,w)),b.transform.apply(b,r)}++m;break;\r\ncase 6:if(void 0!==h&&(q=v[1],q=h(q)))return q;++m;break;case 7:a?C++:b.fill();++m;break;case 8:q=v[1];u=v[2];v=l[q];F=l[q+1];t=v+.5|0;z=F+.5|0;if(t!==x||z!==D)b.moveTo(v,F),x=t,D=z;for(q+=2;q<u;q+=2)if(v=l[q],F=l[q+1],t=v+.5|0,z=F+.5|0,q==u-2||t!==x||z!==D)b.lineTo(v,F),x=t,D=z;++m;break;case 9:C&&(b.fill(),C=0);b.fillStyle=v[1];++m;break;case 10:x=void 0!==v[7]?v[7]:!0;D=v[2];E&&(b.stroke(),E=0);b.strokeStyle=v[1];b.lineWidth=x?D*c:D;b.lineCap=v[3];b.lineJoin=v[4];b.miterLimit=v[5];pe&&b.setLineDash(v[6]);\r\nD=x=NaN;++m;break;case 11:b.font=v[1];b.textAlign=v[2];b.textBaseline=v[3];++m;break;case 12:a?E++:b.stroke();++m;break;default:++m}}C&&b.fill();E&&b.stroke()}gi.prototype.f=function(a,b,c,d,e){ji(this,a,b,c,d,e,this.a,void 0,void 0)};function ki(a){var b=a.b;b.reverse();var c,d=b.length,e,f,g=-1;for(c=0;c<d;++c)if(e=b[c],f=e[0],6==f)g=c;else if(0==f){e[2]=c;e=a.b;for(f=c;g<f;){var h=e[g];e[g]=e[f];e[f]=h;++g;--f}g=-1}}\r\nfunction li(a,b){a.Y[2]=a.a.length;a.Y=null;a.ca[2]=a.b.length;a.ca=null;var c=[6,b];a.a.push(c);a.b.push(c)}gi.prototype.tb=I;gi.prototype.Nb=function(){return this.P};function mi(a,b,c,d){gi.call(this,a,b,c,d);this.j=this.N=null;this.M=this.D=this.B=this.u=this.v=this.s=this.K=this.C=this.i=this.l=this.c=void 0}B(mi,gi);\r\nmi.prototype.cb=function(a,b){if(this.j){ii(this,b);var c=a.o,d=this.coordinates.length,c=hi(this,c,0,c.length,a.A,!1);this.a.push([4,d,c,this.j,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);this.b.push([4,d,c,this.N,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);li(this,b)}};\r\nmi.prototype.bb=function(a,b){if(this.j){ii(this,b);var c=a.o,d=this.coordinates.length,c=hi(this,c,0,c.length,a.A,!1);this.a.push([4,d,c,this.j,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);this.b.push([4,d,c,this.N,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);li(this,b)}};mi.prototype.tb=function(){ki(this);this.l=this.c=void 0;this.j=this.N=null;this.M=this.D=this.u=this.v=this.s=this.K=this.C=this.B=this.i=void 0};\r\nmi.prototype.Ma=function(a){var b=a.eb(),c=a.Ka(),d=a.ub(1),e=a.Z(1),f=a.pa();this.c=b[0];this.l=b[1];this.N=d;this.j=e;this.i=c[1];this.C=a.C;this.K=f[0];this.s=f[1];this.v=a.K;this.u=a.s;this.B=a.v;this.D=a.B;this.M=c[0]};function ni(a,b,c,d){gi.call(this,a,b,c,d);this.c={ab:void 0,Wa:void 0,Xa:null,Ya:void 0,Za:void 0,$a:void 0,Ub:0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}B(ni,gi);\r\nfunction oi(a,b,c,d,e){var f=a.coordinates.length;b=hi(a,b,c,d,e,!1);f=[8,f,b];a.a.push(f);a.b.push(f);return d}n=ni.prototype;n.Nb=function(){this.g||(this.g=gb(this.P),0<this.h&&fb(this.g,this.resolution*(this.h+1)/2,this.g));return this.g};\r\nfunction pi(a){var b=a.c,c=b.strokeStyle,d=b.lineCap,e=b.lineDash,f=b.lineJoin,g=b.lineWidth,h=b.miterLimit;b.ab==c&&b.Wa==d&&Ra(b.Xa,e)&&b.Ya==f&&b.Za==g&&b.$a==h||(b.Ub!=a.coordinates.length&&(a.a.push([12]),b.Ub=a.coordinates.length),a.a.push([10,c,g,d,f,h,e],[1]),b.ab=c,b.Wa=d,b.Xa=e,b.Ya=f,b.Za=g,b.$a=h)}\r\nn.qc=function(a,b){var c=this.c,d=c.lineWidth;void 0!==c.strokeStyle&&void 0!==d&&(pi(this),ii(this,b),this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]),c=a.o,oi(this,c,0,c.length,a.A),this.b.push([12]),li(this,b))};\r\nn.rc=function(a,b){var c=this.c,d=c.lineWidth;if(void 0!==c.strokeStyle&&void 0!==d){pi(this);ii(this,b);this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]);var c=a.ua,d=a.o,e=a.A,f=0,g,h;g=0;for(h=c.length;g<h;++g)f=oi(this,d,f,c[g],e);this.b.push([12]);li(this,b)}};n.tb=function(){this.c.Ub!=this.coordinates.length&&this.a.push([12]);ki(this);this.c=null};\r\nn.La=function(a,b){var c=b.a;this.c.strokeStyle=nd(c?c:mh);c=b.f;this.c.lineCap=void 0!==c?c:\"round\";c=b.b;this.c.lineDash=c?c:lh;c=b.g;this.c.lineJoin=void 0!==c?c:\"round\";c=b.c;this.c.lineWidth=void 0!==c?c:1;c=b.h;this.c.miterLimit=void 0!==c?c:10;this.c.lineWidth>this.h&&(this.h=this.c.lineWidth,this.g=null)};\r\nfunction qi(a,b,c,d){gi.call(this,a,b,c,d);this.c={oc:void 0,ab:void 0,Wa:void 0,Xa:null,Ya:void 0,Za:void 0,$a:void 0,fillStyle:void 0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}B(qi,gi);\r\nfunction ri(a,b,c,d,e){var f=a.c,g=void 0!==f.fillStyle,f=void 0!=f.strokeStyle,h=d.length;if(!g&&!f)return d[h-1];var k=[1];a.a.push(k);a.b.push(k);for(k=0;k<h;++k){var l=d[k],m=a.coordinates.length;c=hi(a,b,c,l,e,!0);c=[8,m,c];a.a.push(c);a.b.push(c);f&&(c=[3],a.a.push(c),a.b.push(c));c=l}b=[7];a.b.push(b);g&&a.a.push(b);f&&(g=[12],a.a.push(g),a.b.push(g));return c}n=qi.prototype;\r\nn.pc=function(a,b){var c=this.c,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){si(this);ii(this,b);this.b.push([9,nd(kh)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var e=a.o,d=this.coordinates.length;hi(this,e,0,e.length,a.A,!1);e=[1];d=[2,d];this.a.push(e,d);this.b.push(e,d);d=[7];this.b.push(d);void 0!==c.fillStyle&&this.a.push(d);void 0!==c.strokeStyle&&(c=[12],this.a.push(c),this.b.push(c));li(this,b)}};\r\nn.tc=function(a,b){var c=this.c,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d)si(this),ii(this,b),this.b.push([9,nd(kh)]),void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]),c=a.ja,d=sc(a),ri(this,d,0,c,a.A),li(this,b)};\r\nn.sc=function(a,b){var c=this.c,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){si(this);ii(this,b);this.b.push([9,nd(kh)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var c=a.a,d=Ph(a),e=a.A,f=0,g,h;g=0;for(h=c.length;g<h;++g)f=ri(this,d,f,c[g],e);li(this,b)}};n.tb=function(){ki(this);this.c=null;var a=this.ra;if(0!==a){var b=this.coordinates,c,d;c=0;for(d=b.length;c<d;++c)b[c]=a*Math.round(b[c]/a)}};\r\nn.Nb=function(){this.g||(this.g=gb(this.P),0<this.h&&fb(this.g,this.resolution*(this.h+1)/2,this.g));return this.g};\r\nn.La=function(a,b){var c=this.c;if(a){var d=a.b;c.fillStyle=qd(d?d:kh)}else c.fillStyle=void 0;b?(d=b.a,c.strokeStyle=nd(d?d:mh),d=b.f,c.lineCap=void 0!==d?d:\"round\",d=b.b,c.lineDash=d?d.slice():lh,d=b.g,c.lineJoin=void 0!==d?d:\"round\",d=b.c,c.lineWidth=void 0!==d?d:1,d=b.h,c.miterLimit=void 0!==d?d:10,c.lineWidth>this.h&&(this.h=c.lineWidth,this.g=null)):(c.strokeStyle=void 0,c.lineCap=void 0,c.lineDash=null,c.lineJoin=void 0,c.lineWidth=void 0,c.miterLimit=void 0)};\r\nfunction si(a){var b=a.c,c=b.fillStyle,d=b.strokeStyle,e=b.lineCap,f=b.lineDash,g=b.lineJoin,h=b.lineWidth,k=b.miterLimit;void 0!==c&&b.oc!=c&&(a.a.push([9,c]),b.oc=b.fillStyle);void 0===d||b.ab==d&&b.Wa==e&&b.Xa==f&&b.Ya==g&&b.Za==h&&b.$a==k||(a.a.push([10,d,h,e,g,k,f]),b.ab=d,b.Wa=e,b.Xa=f,b.Ya=g,b.Za=h,b.$a=k)}function ti(a,b,c,d){gi.call(this,a,b,c,d);this.M=this.D=this.B=null;this.j=\"\";this.K=this.C=0;this.s=void 0;this.u=this.v=0;this.i=this.l=this.c=null}B(ti,gi);\r\nfunction ui(a,b,c,d,e){if(\"\"!==a.j&&a.i&&(a.c||a.l)){if(a.c){var f=a.c,g=a.B;if(!g||g.fillStyle!=f.fillStyle){var h=[9,f.fillStyle];a.a.push(h);a.b.push(h);g?g.fillStyle=f.fillStyle:a.B={fillStyle:f.fillStyle}}}a.l&&(f=a.l,g=a.D,g&&g.lineCap==f.lineCap&&g.lineDash==f.lineDash&&g.lineJoin==f.lineJoin&&g.lineWidth==f.lineWidth&&g.miterLimit==f.miterLimit&&g.strokeStyle==f.strokeStyle||(h=[10,f.strokeStyle,f.lineWidth,f.lineCap,f.lineJoin,f.miterLimit,f.lineDash,!1],a.a.push(h),a.b.push(h),g?(g.lineCap=\r\nf.lineCap,g.lineDash=f.lineDash,g.lineJoin=f.lineJoin,g.lineWidth=f.lineWidth,g.miterLimit=f.miterLimit,g.strokeStyle=f.strokeStyle):a.D={lineCap:f.lineCap,lineDash:f.lineDash,lineJoin:f.lineJoin,lineWidth:f.lineWidth,miterLimit:f.miterLimit,strokeStyle:f.strokeStyle}));f=a.i;g=a.M;g&&g.font==f.font&&g.textAlign==f.textAlign&&g.textBaseline==f.textBaseline||(h=[11,f.font,f.textAlign,f.textBaseline],a.a.push(h),a.b.push(h),g?(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline):a.M=\r\n{font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});ii(a,e);f=a.coordinates.length;b=hi(a,b,0,c,d,!1);b=[5,f,b,a.j,a.C,a.K,a.v,a.u,!!a.c,!!a.l,a.s];a.a.push(b);a.b.push(b);li(a,e)}}\r\nti.prototype.Ca=function(a){if(a){var b=a.f;b?(b=b.b,b=qd(b?b:kh),this.c?this.c.fillStyle=b:this.c={fillStyle:b}):this.c=null;var c=a.i;if(c){var b=c.a,d=c.f,e=c.b,f=c.g,g=c.c,c=c.h,d=void 0!==d?d:\"round\",e=e?e.slice():lh,f=void 0!==f?f:\"round\",g=void 0!==g?g:1,c=void 0!==c?c:10,b=nd(b?b:mh);if(this.l){var h=this.l;h.lineCap=d;h.lineDash=e;h.lineJoin=f;h.lineWidth=g;h.miterLimit=c;h.strokeStyle=b}else this.l={lineCap:d,lineDash:e,lineJoin:f,lineWidth:g,miterLimit:c,strokeStyle:b}}else this.l=null;\r\nvar k=a.b,b=a.a,d=a.c,e=a.g,g=a.h,c=a.l,f=a.j,h=a.C,l=a.K;a=void 0!==k?k:\"10px sans-serif\";h=void 0!==h?h:\"center\";l=void 0!==l?l:\"middle\";this.i?(k=this.i,k.font=a,k.textAlign=h,k.textBaseline=l):this.i={font:a,textAlign:h,textBaseline:l};this.j=void 0!==f?f:\"\";this.C=void 0!==b?b:0;this.K=void 0!==d?d:0;this.s=void 0!==e?e:!1;this.v=void 0!==g?g:0;this.u=void 0!==c?c:1}else this.j=\"\"};function vi(a,b,c,d,e){this.K=a;this.g=b;this.j=d;this.C=c;this.h=e;this.a={};this.l=Md(1,1);this.i=Cf()}B(vi,ei);\r\nfunction wi(a){for(var b in a.a){var c=a.a[b],d;for(d in c)c[d].tb()}}vi.prototype.fa=function(a,b,c,d,e){var f=Lf(this.i,.5,.5,1/b,-1/b,-c,-a[0],-a[1]),g=this.l;g.clearRect(0,0,1,1);var h;void 0!==this.h&&(h=db(),eb(h,a),fb(h,b*this.h,h));return xi(this,g,f,c,d,function(a){if(0<g.getImageData(0,0,1,1).data[3]){if(a=e(a))return a;g.clearRect(0,0,1,1)}},h)};\r\nvi.prototype.b=function(a,b){var c=void 0!==a?a.toString():\"0\",d=this.a[c];void 0===d&&(d={},this.a[c]=d);c=d[b];void 0===c&&(c=new yi[b](this.K,this.g,this.C,this.j),d[b]=c);return c};vi.prototype.c=function(){return sa(this.a)};\r\nvi.prototype.f=function(a,b,c,d,e,f){var g=Object.keys(this.a).map(Number);g.sort(Ma);var h=this.g,k=h[0],l=h[1],m=h[2],h=h[3],k=[k,l,k,h,m,h,m,l];Xb(k,0,8,2,c,k);a.save();a.beginPath();a.moveTo(k[0],k[1]);a.lineTo(k[2],k[3]);a.lineTo(k[4],k[5]);a.lineTo(k[6],k[7]);a.clip();f=f?f:fi;for(var p,q,k=0,l=g.length;k<l;++k)for(p=this.a[g[k].toString()],m=0,h=f.length;m<h;++m)q=p[f[m]],void 0!==q&&q.f(a,b,c,d,e);a.restore()};\r\nfunction xi(a,b,c,d,e,f,g){var h=Object.keys(a.a).map(Number);h.sort(function(a,b){return b-a});var k,l,m,p,q;k=0;for(l=h.length;k<l;++k)for(p=a.a[h[k].toString()],m=fi.length-1;0<=m;--m)if(q=p[fi[m]],void 0!==q&&(q=ji(q,b,1,c,d,e,q.b,f,g)))return q}var yi={Image:mi,LineString:ni,Polygon:qi,Text:ti};function zi(a,b){return J(a)-J(b)}function Ai(a,b){var c=.5*a/b;return c*c}function Bi(a,b,c,d,e,f){var g=!1,h,k;if(h=c.Z())k=h.ib(),2==k||3==k?h.bc(e,f):(0==k&&h.load(),h.Vb(e,f),g=!0);if(e=(0,c.c)(b))d=e.Rb(d),(0,Ci[d.$()])(a,d,c,b);return g}\r\nvar Ci={Point:function(a,b,c,d){var e=c.Z();if(e){if(2!=e.ib())return;var f=a.b(c.b,\"Image\");f.Ma(e);f.cb(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,b.o,2,2,d)},LineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,\"LineString\");f.La(null,e);f.qc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,Nh(b),2,2,d)},Polygon:function(a,b,c,d){var e=c.g,f=c.f;if(e||f){var g=a.b(c.b,\"Polygon\");g.La(e,f);g.tc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,tc(b),2,2,d)},MultiPoint:function(a,b,c,d){var e=c.Z();\r\nif(e){if(2!=e.ib())return;var f=a.b(c.b,\"Image\");f.Ma(e);f.bb(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),c=b.o,ui(a,c,c.length,b.A,d)},MultiLineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,\"LineString\");f.La(null,e);f.rc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),b=Oh(b),ui(a,b,b.length,2,d)},MultiPolygon:function(a,b,c,d){var e=c.g,f=c.f;if(f||e){var g=a.b(c.b,\"Polygon\");g.La(e,f);g.sc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),b=Qh(b),ui(a,b,b.length,2,d)},GeometryCollection:function(a,b,c,d){b=\r\nb.a;var e,f;e=0;for(f=b.length;e<f;++e)(0,Ci[b[e].$()])(a,b[e],c,d)},Circle:function(a,b,c,d){var e=c.g,f=c.f;if(e||f){var g=a.b(c.b,\"Polygon\");g.La(e,f);g.pc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,b.o.slice(0,b.A),2,2,d)}};var Di,Ei=K,Fi=-1<Ei.navigator.userAgent.indexOf(\"OPR\"),Gi=-1<Ei.navigator.userAgent.indexOf(\"Edge\");Di=!(!Ei.navigator.userAgent.match(\"CriOS\")&&null!==Ei.chrome&&void 0!==Ei.chrome&&\"Google Inc.\"===Ei.navigator.vendor&&0==Fi&&0==Gi);function Hi(a,b,c,d){a=c-a;b=d-b;var e=Math.sqrt(a*a+b*b);return[Math.round(c+a/e),Math.round(d+b/e)]}\r\nfunction Ii(a,b,c,d,e,f,g,h,k,l,m){var p=Md(Math.round(c*a),Math.round(c*b));if(0===k.length)return p.canvas;p.scale(c,c);var q=db();k.forEach(function(a){mb(q,a.extent)});var u=Md(Math.round(c*qb(q)/d),Math.round(c*rb(q)/d)),w=c/d;k.forEach(function(a){u.drawImage(a.image,l,l,a.image.width-2*l,a.image.height-2*l,(a.extent[0]-q[0])*w,-(a.extent[3]-q[3])*w,qb(a.extent)*w,rb(a.extent)*w)});var r=xb(g);h.f.forEach(function(a){var b=a.source,e=a.target,g=b[1][0],h=b[1][1],k=b[2][0],l=b[2][1];a=(e[0][0]-\r\nr[0])/f;var m=-(e[0][1]-r[1])/f,w=(e[1][0]-r[0])/f,A=-(e[1][1]-r[1])/f,F=(e[2][0]-r[0])/f,Q=-(e[2][1]-r[1])/f,e=b[0][0],b=b[0][1],g=g-e,h=h-b,k=k-e,l=l-b;a:{g=[[g,h,0,0,w-a],[k,l,0,0,F-a],[0,0,g,h,A-m],[0,0,k,l,Q-m]];h=g.length;for(k=0;k<h;k++){for(var l=k,N=Math.abs(g[k][k]),O=k+1;O<h;O++){var S=Math.abs(g[O][k]);S>N&&(N=S,l=O)}if(0===N){g=null;break a}N=g[l];g[l]=g[k];g[k]=N;for(l=k+1;l<h;l++)for(N=-g[l][k]/g[k][k],O=k;O<h+1;O++)g[l][O]=k==O?0:g[l][O]+N*g[k][O]}k=Array(h);for(l=h-1;0<=l;l--)for(k[l]=\r\ng[l][h]/g[l][l],N=l-1;0<=N;N--)g[N][h]-=g[N][l]*k[l];g=k}g&&(p.save(),p.beginPath(),Di?(k=(a+w+F)/3,l=(m+A+Q)/3,h=Hi(k,l,a,m),w=Hi(k,l,w,A),F=Hi(k,l,F,Q),p.moveTo(w[0],w[1]),p.lineTo(h[0],h[1]),p.lineTo(F[0],F[1])):(p.moveTo(w,A),p.lineTo(a,m),p.lineTo(F,Q)),p.clip(),p.transform(g[0],g[2],g[1],g[3],a,m),p.translate(q[0]-e,q[3]-b),p.scale(d/c,-d/c),p.drawImage(u.canvas,0,0),p.restore())});m&&(p.save(),p.strokeStyle=\"black\",p.lineWidth=1,h.f.forEach(function(a){var b=a.target;a=(b[0][0]-r[0])/f;var c=\r\n-(b[0][1]-r[1])/f,d=(b[1][0]-r[0])/f,e=-(b[1][1]-r[1])/f,g=(b[2][0]-r[0])/f,b=-(b[2][1]-r[1])/f;p.beginPath();p.moveTo(d,e);p.lineTo(a,c);p.lineTo(g,b);p.closePath();p.stroke()}),p.restore());return p.canvas};function Ji(a,b,c,d,e){this.c=a;this.g=b;var f={},g=Ub(this.g,this.c);this.a=function(a){var b=a[0]+\"/\"+a[1];f[b]||(f[b]=g(a));return f[b]};this.h=d;this.C=e*e;this.f=[];this.i=!1;this.j=this.c.b&&!!d&&!!this.c.G()&&qb(d)==qb(this.c.G());this.b=this.c.G()?qb(this.c.G()):null;this.l=this.g.G()?qb(this.g.G()):null;a=xb(c);b=[c[2],c[3]];d=[c[2],c[1]];c=sb(c);e=this.a(a);var h=this.a(b),k=this.a(d),l=this.a(c);Ki(this,a,b,d,c,e,h,k,l,10);if(this.i){var m=Infinity;this.f.forEach(function(a){m=Math.min(m,\r\na.source[0][0],a.source[1][0],a.source[2][0])});this.f.forEach(function(a){if(Math.max(a.source[0][0],a.source[1][0],a.source[2][0])-m>this.b/2){var b=[[a.source[0][0],a.source[0][1]],[a.source[1][0],a.source[1][1]],[a.source[2][0],a.source[2][1]]];b[0][0]-m>this.b/2&&(b[0][0]-=this.b);b[1][0]-m>this.b/2&&(b[1][0]-=this.b);b[2][0]-m>this.b/2&&(b[2][0]-=this.b);Math.max(b[0][0],b[1][0],b[2][0])-Math.min(b[0][0],b[1][0],b[2][0])<this.b/2&&(a.source=b)}},this)}f={}}\r\nfunction Ki(a,b,c,d,e,f,g,h,k,l){var m=cb([f,g,h,k]),p=a.b?qb(m)/a.b:null,q=a.b,u=a.c.b&&.5<p&&1>p,w=!1;if(0<l){if(a.g.c&&a.l)var r=cb([b,c,d,e]),w=w|.25<qb(r)/a.l;!u&&a.c.c&&p&&(w|=.25<p)}if(w||!a.h||wb(m,a.h)){if(!(w||isFinite(f[0])&&isFinite(f[1])&&isFinite(g[0])&&isFinite(g[1])&&isFinite(h[0])&&isFinite(h[1])&&isFinite(k[0])&&isFinite(k[1])))if(0<l)w=!0;else return;if(0<l&&(w||(m=a.a([(b[0]+d[0])/2,(b[1]+d[1])/2]),q=u?(la(f[0],q)+la(h[0],q))/2-la(m[0],q):(f[0]+h[0])/2-m[0],m=(f[1]+h[1])/2-m[1],\r\nw=q*q+m*m>a.C),w)){Math.abs(b[0]-d[0])<=Math.abs(b[1]-d[1])?(u=[(c[0]+d[0])/2,(c[1]+d[1])/2],q=a.a(u),m=[(e[0]+b[0])/2,(e[1]+b[1])/2],p=a.a(m),Ki(a,b,c,u,m,f,g,q,p,l-1),Ki(a,m,u,d,e,p,q,h,k,l-1)):(u=[(b[0]+c[0])/2,(b[1]+c[1])/2],q=a.a(u),m=[(d[0]+e[0])/2,(d[1]+e[1])/2],p=a.a(m),Ki(a,b,u,m,e,f,q,p,k,l-1),Ki(a,u,c,d,m,q,g,h,p,l-1));return}if(u){if(!a.j)return;a.i=!0}a.f.push({source:[f,h,k],target:[b,d,e]});a.f.push({source:[f,g,h],target:[b,c,d]})}}\r\nfunction Li(a){var b=db();a.f.forEach(function(a){a=a.source;eb(b,a[0]);eb(b,a[1]);eb(b,a[2])});return b};function Mi(a){ai.call(this,a);this.f=Md();this.c=null;this.j=db();this.s=[0,0,0];this.h=Cf()}B(Mi,ai);\r\nMi.prototype.g=function(a,b,c){var d=di(this,a,0);ci(this,\"precompose\",c,a,d);var e=a.pixelRatio,f=a.viewState,g=f.center,h=f.projection,k=f.rotation,l=a.size,m=Math.round(e*l[0]/2),l=Math.round(e*l[1]/2),f=e/f.resolution,p=this.a,q=p.da(),u=e*q.nb(h),w=q.sa(h),p=Ha(p,\"render\"),r=c,x=1,D,t,z;if(k||p){r=this.f;D=r.canvas;var x=q.pb(e)/e,C=c.canvas.width*x;t=c.canvas.height*x;z=Math.round(Math.sqrt(C*C+t*t));D.width!=z?D.width=D.height=z:r.clearRect(0,0,z,z);D=(z-C)/2/x;t=(z-t)/2/x;f*=x;m=Math.round(x*\r\n(m+D));l=Math.round(x*(l+t))}C=r.globalAlpha;r.globalAlpha=b.opacity;var E=this.c,v,H=q.Qb(h)&&1==b.opacity;H||(E.reverse(),v=[]);var G=b.extent;if(b=void 0!==G){var A=xb(G),F=[G[2],G[3]],Q=[G[2],G[1]],G=sb(G);Hf(a.coordinateToPixelTransform,A);Hf(a.coordinateToPixelTransform,F);Hf(a.coordinateToPixelTransform,Q);Hf(a.coordinateToPixelTransform,G);var N=D||0,O=t||0;r.save();var S=r.canvas.width/2,X=r.canvas.height/2;nh(r,-k,S,X);r.beginPath();r.moveTo(x*(A[0]*e+N),x*(A[1]*e+O));r.lineTo(x*(F[0]*e+\r\nN),x*(F[1]*e+O));r.lineTo(x*(Q[0]*e+N),x*(Q[1]*e+O));r.lineTo(x*(G[0]*e+N),x*(G[1]*e+O));r.clip();nh(r,k,S,X)}A=0;for(F=E.length;A<F;++A){var Q=E[A],G=Q.V,X=Qc(w,G,this.j),S=G[0],P=sb(Qc(w,Yc(w,g,S,this.s))),G=Math.round(qb(X)*f),N=Math.round(rb(X)*f),O=Math.round((X[0]-P[0])*f/G)*G+m+Math.round((P[0]-g[0])*f),X=Math.round((P[1]-X[3])*f/N)*N+l+Math.round((g[1]-P[1])*f);if(!H){P=[O,X,O+G,X+N];r.save();for(var Ba=0,Nb=v.length;Ba<Nb;++Ba){var Ca=v[Ba];wb(P,Ca)&&(r.beginPath(),r.moveTo(P[0],P[1]),r.lineTo(P[0],\r\nP[3]),r.lineTo(P[2],P[3]),r.lineTo(P[2],P[1]),r.moveTo(Ca[0],Ca[1]),r.lineTo(Ca[2],Ca[1]),r.lineTo(Ca[2],Ca[3]),r.lineTo(Ca[0],Ca[3]),r.closePath(),r.clip())}v.push(P)}S=Ni(q,S,e,h);r.drawImage(Q.Z(),u,u,S[0],S[1],O,X,G,N);H||r.restore()}b&&r.restore();p&&(e=D-m/x+m,h=t-l/x+l,g=Lf(this.h,z/2-e,z/2-h,f,-f,-k,-g[0]+e/f,-g[1]-h/f),ci(this,\"render\",r,a,g));(k||p)&&c.drawImage(r.canvas,-Math.round(D),-Math.round(t),z/x,z/x);r.globalAlpha=C;ci(this,\"postcompose\",c,a,d)};\r\nMi.prototype.i=function(a,b){function c(a){a=a.T();return 2==a||4==a||3==a&&!u}var d=a.pixelRatio,e=a.viewState,f=e.projection,g=this.a,h=g.da(),k=h.sa(f),l=Xc(k,e.resolution,0),m=k.O(l),p=e.center;m==e.resolution?(p=Yh(p,m,a.size),e=ub(p,m,e.rotation,a.size)):e=a.extent;void 0!==b.extent&&(e=vb(e,b.extent));if(pb(e))return!1;m=Tc(k,e,m);p={};p[l]={};var q=this.l(h,f,p),u=jh(g),w=db(),r=new Gc(0,0,0,0),x,D,t,z;for(t=m.H;t<=m.I;++t)for(z=m.J;z<=m.L;++z)x=$h(h,l,t,z,d,f),!c(x)&&x.b&&(x=x.b),c(x)?p[l][x.V.toString()]=\r\nx:(D=Pc(k,x.V,q,r,w),D||(x=Sc(k,x.V,r,w))&&q(l+1,x));q=Object.keys(p).map(Number);q.sort(Ma);var w=[],C,r=0;for(t=q.length;r<t;++r)for(C in x=q[r],z=p[x],z)x=z[C],2==x.T()&&w.push(x);this.c=w;Xh(a.usedTiles,h,l,m);Zh(a,h,k,d,f,e,l,g.get(\"preload\"));Uh(a,h);Wh(a,h);return!0};function Oi(a){ai.call(this,a);this.c=!1;this.B=-1;this.u=NaN;this.j=db();this.f=this.s=null;this.h=Md()}B(Oi,ai);\r\nOi.prototype.g=function(a,b,c){var d=a.extent,e=a.pixelRatio,f=b.hb?a.skippedFeatureUids:{},g=a.viewState,h=g.projection,g=g.rotation,k=h.G(),l=this.a.da(),m=di(this,a,0);ci(this,\"precompose\",c,a,m);var p=b.extent,q=void 0!==p;q&&bi(c,a,p);if((p=this.f)&&!p.c()){var u=0,w=0,r;if(Ha(this.a,\"render\")){r=c.canvas.width;var x=c.canvas.height;if(g){var D=Math.round(Math.sqrt(r*r+x*x)),u=(D-r)/2,w=(D-x)/2;r=x=D}this.h.canvas.width=r;this.h.canvas.height=x;r=this.h}else r=c;x=r.globalAlpha;r.globalAlpha=\r\nb.opacity;r!=c&&r.translate(u,w);b=a.size[0]*e;D=a.size[1]*e;nh(r,-g,b/2,D/2);p.f(r,e,m,g,f);if(l.i&&h.b&&!hb(k,d)){for(var h=d[0],l=qb(k),t=0;h<k[0];)--t,m=l*t,m=di(this,a,m),p.f(r,e,m,g,f),h+=l;t=0;for(h=d[2];h>k[2];)++t,m=l*t,m=di(this,a,m),p.f(r,e,m,g,f),h-=l;m=di(this,a,0)}nh(r,g,b/2,D/2);r!=c&&(ci(this,\"render\",r,a,m),c.drawImage(r.canvas,-u,-w),r.translate(-u,-w));r.globalAlpha=x}q&&c.restore();ci(this,\"postcompose\",c,a,m)};\r\nOi.prototype.fa=function(a,b,c,d){if(this.f){var e=this.a,f={};return this.f.fa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=J(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};Oi.prototype.D=function(){Th(this)};\r\nOi.prototype.i=function(a){function b(a){var b,d=a.f;d?b=d.call(a,l):(d=c.g)&&(b=d(a,l));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=Bi(q,a,b[e],Ai(l,m),this.D,this)||d;else d=Bi(q,a,b,Ai(l,m),this.D,this)||d;a=d}else a=!1;this.c=this.c||a}}var c=this.a,d=c.da();Vh(a.attributions,d.h);Wh(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.i,h=c.j;if(!this.c&&!g&&e||!h&&f)return!0;var k=a.extent,h=a.viewState,e=h.projection,l=h.resolution,m=a.pixelRatio,f=c.b,p=c.a,g=c.get(\"renderOrder\");\r\nvoid 0===g&&(g=zi);k=fb(k,p*l);p=h.projection.G();d.i&&h.projection.b&&!hb(p,a.extent)&&(a=Math.max(qb(k)/2,qb(p)),k[0]=p[0]-a,k[2]=p[2]+a);if(!this.c&&this.u==l&&this.B==f&&this.s==g&&hb(this.j,k))return!0;this.f=null;this.c=!1;var q=new vi(.5*l/m,k,l,d.u,c.a);Pi(d,k,l,e);if(g){var u=[];Qi(d,k,function(a){u.push(a)},this);u.sort(g);u.forEach(b,this)}else Qi(d,k,b,this);wi(q);this.u=l;this.B=f;this.s=g;this.j=k;this.f=q;return!0};function Ri(a,b){Nf.call(this,0,b);this.f=Md();this.b=this.f.canvas;this.b.style.width=\"100%\";this.b.style.height=\"100%\";this.b.className=\"ol-unselectable\";a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0;this.h=Cf()}B(Ri,Nf);Ri.prototype.Mb=function(a){return a instanceof W?new Mi(a):a instanceof Y?new Oi(a):null};\r\nfunction Si(a,b,c){var d=a.g,e=a.f;if(Ha(d,b)){var f=c.extent,g=c.pixelRatio,h=c.viewState.rotation,k=c.viewState,l=c.pixelRatio/k.resolution;a=Lf(a.h,a.b.width/2,a.b.height/2,l,-l,-k.rotation,-k.center[0],-k.center[1]);U(d,new uf(b,new Gh(e,g,f,a,h),c,e,null))}}Ri.prototype.$=function(){return\"canvas\"};\r\nRi.prototype.vb=function(a){if(a){var b=this.f,c=a.pixelRatio,d=Math.round(a.size[0]*c),c=Math.round(a.size[1]*c);this.b.width!=d||this.b.height!=c?(this.b.width=d,this.b.height=c):b.clearRect(0,0,d,c);var e=a.viewState.rotation;Of(a);Si(this,\"precompose\",a);var f=a.layerStatesArray;Sa(f);nh(b,e,d/2,c/2);var g=a.viewState.resolution,h,k,l,m;h=0;for(k=f.length;h<k;++h)m=f[h],l=m.layer,l=Qf(this,l),yf(m,g)&&\"ready\"==m.ac&&l.i(a,m)&&l.g(a,m,b);nh(b,-e,d/2,c/2);Si(this,\"postcompose\",a);this.a||(this.b.style.display=\r\n\"\",this.a=!0);Rf(this,a);a.postRenderFunctions.push(Pf)}else this.a&&(this.b.style.display=\"none\",this.a=!1)};function Ti(a,b){Rh.call(this,a);this.target=b}B(Ti,Rh);Ti.prototype.Jb=I;Ti.prototype.Gc=I;function Ui(a){var b=document.createElement(\"DIV\");b.style.position=\"absolute\";Ti.call(this,a,b);this.f=!0;this.h=1;this.g=0;this.c={}}B(Ui,Ti);Ui.prototype.Jb=function(){for(var a=this.target;a.lastChild;)a.removeChild(a.lastChild);this.g=0};\r\nUi.prototype.Hc=function(a,b){if(!b.visible)return this.f&&(this.target.style.display=\"none\",this.f=!1),!0;var c=a.pixelRatio,d=a.viewState,e=d.projection,f=this.a,g=f.da(),h=g.sa(e),k=c*g.nb(e),l=Xc(h,d.resolution),m=h.O(l),p=d.center,q;m==d.resolution?(p=Yh(p,m,a.size),q=ub(p,m,d.rotation,a.size)):q=a.extent;void 0!==b.extent&&(q=vb(q,b.extent));var m=Tc(h,q,m),u={};u[l]={};var w=this.l(g,e,u),r=jh(f),x=db(),D=new Gc(0,0,0,0),t,z,C,E;for(C=m.H;C<=m.I;++C)for(E=m.J;E<=m.L;++E)t=$h(g,l,C,E,c,e),z=\r\nt.T(),z=2==z||4==z||3==z&&!r,!z&&t.b&&(t=t.b),z=t.T(),2==z?u[l][t.V.toString()]=t:4==z||3==z&&!r||(z=Pc(h,t.V,w,D,x),z||(t=Sc(h,t.V,D,x))&&w(l+1,t));var v;if(this.g!=g.b){for(v in this.c)r=this.c[+v],Sd(r.target);this.c={};this.g=g.b}x=Object.keys(u).map(Number);x.sort(Ma);var w={},H;C=0;for(E=x.length;C<E;++C){v=x[C];v in this.c?r=this.c[v]:(r=Yc(h,p,v),r=new Vi(h,r),w[v]=!0,this.c[v]=r);v=u[v];for(H in v){t=r;z=v[H];var G=k,A=z.V,F=A[0],Q=A[1],N=A[2],A=A.toString();if(!(A in t.a)){var F=Lc(Wc(t.g,\r\nF),t.i),O=z.Z(t),S=O.style;S.maxWidth=\"none\";var X,P;0<G?(X=document.createElement(\"DIV\"),P=X.style,P.overflow=\"hidden\",P.width=F[0]+\"px\",P.height=F[1]+\"px\",S.position=\"absolute\",S.left=-G+\"px\",S.top=-G+\"px\",S.width=F[0]+2*G+\"px\",S.height=F[1]+2*G+\"px\",X.appendChild(O)):(S.width=F[0]+\"px\",S.height=F[1]+\"px\",X=O,P=S);P.position=\"absolute\";P.left=(Q-t.c[1])*F[0]+\"px\";P.top=(t.c[2]-N)*F[1]+\"px\";t.b||(t.b=document.createDocumentFragment());t.b.appendChild(X);t.a[A]=z}}r.b&&(r.target.appendChild(r.b),\r\nr.b=null)}k=Object.keys(this.c).map(Number);k.sort(Ma);C=Cf();H=0;for(x=k.length;H<x;++H)if(v=k[H],r=this.c[v],v in u)if(t=r.O(),E=r.pa(),Lf(C,a.size[0]/2,a.size[1]/2,t/d.resolution,t/d.resolution,d.rotation,(E[0]-p[0])/t,(p[1]-E[1])/t),r.setTransform(C),v in w){for(--v;0<=v;--v)if(v in this.c){this.c[v].target.parentNode&&this.c[v].target.parentNode.insertBefore(r.target,this.c[v].target.nextSibling);break}0>v&&this.target.insertBefore(r.target,this.target.childNodes[0]||null)}else{if(!a.viewHints[0]&&\r\n!a.viewHints[1]){z=Rc(r.g,q,r.c[0],D);v=[];t=void 0;for(t in r.a)E=r.a[t],G=E.V,Hc(z,G[1],G[2])||v.push(E);z=0;for(G=v.length;z<G;++z)E=v[z],t=E.V.toString(),Sd(E.Z(r)),delete r.a[t]}}else Sd(r.target),delete this.c[v];b.opacity!=this.h&&(this.h=this.target.style.opacity=b.opacity);b.visible&&!this.f&&(this.target.style.display=\"\",this.f=!0);Xh(a.usedTiles,g,l,m);Zh(a,g,h,c,e,q,l,f.get(\"preload\"));Uh(a,g);Wh(a,g);return!0};\r\nfunction Vi(a,b){this.target=document.createElement(\"DIV\");this.target.style.position=\"absolute\";this.target.style.width=\"100%\";this.target.style.height=\"100%\";this.g=a;this.c=b;this.h=xb(Qc(a,b));this.l=a.O(b[0]);this.a={};this.b=null;this.f=Cf();this.i=[0,0]}Vi.prototype.pa=function(){return this.h};Vi.prototype.O=function(){return this.l};Vi.prototype.setTransform=function(a){Ra(a,this.f)||(Qd(this.target,a),Gf(this.f,a))};function Wi(a){this.g=Md();var b=this.g.canvas;b.style.maxWidth=\"none\";b.style.position=\"absolute\";Ti.call(this,a,b);this.c=!1;this.h=-1;this.s=NaN;this.i=db();this.f=this.j=null;this.B=Cf();this.u=Cf()}B(Wi,Ti);n=Wi.prototype;n.Jb=function(){var a=this.g.canvas;a.width=a.width;this.h=0};\r\nn.Gc=function(a,b){var c=a.viewState,d=c.center,e=c.rotation,f=c.resolution,c=a.pixelRatio,g=a.size[0],h=a.size[1],k=g*c,l=h*c,d=Lf(this.B,c*g/2,c*h/2,c/f,-c/f,-e,-d[0],-d[1]),f=this.g;f.canvas.width=k;f.canvas.height=l;var m=Df(this.u);Jf(m,1/c,1/c);Kf(m,-(k-g)/2*c,-(l-h)/2*c);Qd(f.canvas,m);Xi(this,\"precompose\",a,d);(g=this.f)&&!g.c()&&(f.globalAlpha=b.opacity,g.f(f,c,d,e,b.hb?a.skippedFeatureUids:{}),Xi(this,\"render\",a,d));Xi(this,\"postcompose\",a,d)};\r\nfunction Xi(a,b,c,d){var e=a.g;a=a.a;Ha(a,b)&&U(a,new uf(b,new Gh(e,c.pixelRatio,c.extent,d,c.viewState.rotation),c,e,null))}n.fa=function(a,b,c,d){if(this.f){var e=this.a,f={};return this.f.fa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=J(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};n.Ic=function(){Th(this)};\r\nn.Hc=function(a){function b(a){var b,d=a.f;d?b=d.call(a,k):(d=c.g)&&(b=d(a,k));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=Bi(m,a,b[e],Ai(k,l),this.Ic,this)||d;else d=Bi(m,a,b,Ai(k,l),this.Ic,this)||d;a=d}else a=!1;this.c=this.c||a}}var c=this.a,d=c.da();Vh(a.attributions,d.h);Wh(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.i,h=c.j;if(!this.c&&!g&&e||!h&&f)return!0;var f=a.extent,g=a.viewState,e=g.projection,k=g.resolution,l=a.pixelRatio;a=c.b;h=c.a;g=c.get(\"renderOrder\");\r\nvoid 0===g&&(g=zi);f=fb(f,h*k);if(!this.c&&this.s==k&&this.h==a&&this.j==g&&hb(this.i,f))return!0;this.f=null;this.c=!1;var m=new vi(.5*k/l,f,k,d.u,c.a);Pi(d,f,k,e);if(g){var p=[];Qi(d,f,function(a){p.push(a)},this);p.sort(g);p.forEach(b,this)}else Qi(d,f,b,this);wi(m);this.s=k;this.h=a;this.j=g;this.i=f;this.f=m;return!0};function Yi(a,b){Nf.call(this,0,b);this.f=Md();var c=this.f.canvas;c.style.position=\"absolute\";c.style.width=\"100%\";c.style.height=\"100%\";c.className=\"ol-unselectable\";a.insertBefore(c,a.childNodes[0]||null);this.h=Cf();this.b=document.createElement(\"DIV\");this.b.className=\"ol-unselectable\";c=this.b.style;c.position=\"absolute\";c.width=\"100%\";c.height=\"100%\";R(this.b,\"touchstart\",Fa);a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0}B(Yi,Nf);Yi.prototype.R=function(){Sd(this.b);Nf.prototype.R.call(this)};\r\nYi.prototype.Mb=function(a){if(a instanceof W)a=new Ui(a);else if(a instanceof Y)a=new Wi(a);else return null;return a};function Zi(a,b,c){var d=a.g;if(Ha(d,b)){var e=c.extent,f=c.pixelRatio,g=c.viewState,h=g.rotation,k=a.f,l=k.canvas;a=Lf(a.h,l.width/2,l.height/2,f/g.resolution,-f/g.resolution,-h,-g.center[0],-g.center[1]);U(d,new uf(b,new Gh(k,f,e,a,h),c,k,null))}}Yi.prototype.$=function(){return\"dom\"};\r\nYi.prototype.vb=function(a){if(a){var b=this.g;if(Ha(b,\"precompose\")||Ha(b,\"postcompose\")){var b=this.f.canvas,c=a.pixelRatio;b.width=a.size[0]*c;b.height=a.size[1]*c}Zi(this,\"precompose\",a);b=a.layerStatesArray;Sa(b);var c=a.viewState.resolution,d,e,f,g;d=0;for(e=b.length;d<e;++d)g=b[d],f=g.layer,f=Qf(this,f),this.b.insertBefore(f.target,this.b.childNodes[d]||null),yf(g,c)&&\"ready\"==g.ac?f.Hc(a,g)&&f.Gc(a,g):f.Jb();var b=a.layerStates,h;for(h in this.c)h in b||(f=this.c[h],Sd(f.target));this.a||\r\n(this.b.style.display=\"\",this.a=!0);Of(a);Rf(this,a);a.postRenderFunctions.push(Pf);Zi(this,\"postcompose\",a)}else this.a&&(this.b.style.display=\"none\",this.a=!1)};function $i(a){this.b=a};function aj(a){this.b=a}B(aj,$i);aj.prototype.$=function(){return 35632};function bj(a){this.b=a}B(bj,$i);bj.prototype.$=function(){return 35633};function cj(){this.b=\"precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}\"}B(cj,aj);var dj=new cj;\r\nfunction ej(){this.b=\"varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.,0.);gl_Position=h*vec4(c,0.,1.)+offsets;a=d;b=f;}\"}B(ej,bj);var fj=new ej;\r\nfunction gj(a,b){this.i=a.getUniformLocation(b,\"j\");this.j=a.getUniformLocation(b,\"i\");this.h=a.getUniformLocation(b,\"k\");this.l=a.getUniformLocation(b,\"h\");this.b=a.getAttribLocation(b,\"e\");this.a=a.getAttribLocation(b,\"f\");this.f=a.getAttribLocation(b,\"c\");this.c=a.getAttribLocation(b,\"g\");this.g=a.getAttribLocation(b,\"d\")};function hj(a){this.b=void 0!==a?a:[];this.a=ij}var ij=35044;function jj(a,b){this.C=a;this.b=b;this.a={};this.g={};this.f={};this.i=this.j=this.h=this.l=null;(this.c=0<=fa.indexOf(\"OES_element_index_uint\"))&&b.getExtension(\"OES_element_index_uint\");R(this.C,\"webglcontextlost\",this.K,this);R(this.C,\"webglcontextrestored\",this.s,this)}B(jj,Aa);\r\nfunction kj(a,b,c){var d=a.b,e=c.b,f=String(J(c));if(f in a.a)d.bindBuffer(b,a.a[f].buffer);else{var g=d.createBuffer();d.bindBuffer(b,g);var h;34962==b?h=new Float32Array(e):34963==b&&(h=a.c?new Uint32Array(e):new Uint16Array(e));d.bufferData(b,h,c.a);a.a[f]={Qe:c,buffer:g}}}function lj(a,b){var c=a.b,d=String(J(b)),e=a.a[d];c.isContextLost()||c.deleteBuffer(e.buffer);delete a.a[d]}\r\njj.prototype.R=function(){za(this.C);var a=this.b;if(!a.isContextLost()){for(var b in this.a)a.deleteBuffer(this.a[b].buffer);for(b in this.f)a.deleteProgram(this.f[b]);for(b in this.g)a.deleteShader(this.g[b]);a.deleteFramebuffer(this.h);a.deleteRenderbuffer(this.i);a.deleteTexture(this.j)}};\r\nfunction mj(a){if(!a.h){var b=a.b,c=b.createFramebuffer();b.bindFramebuffer(b.FRAMEBUFFER,c);var d=nj(b,1,1),e=b.createRenderbuffer();b.bindRenderbuffer(b.RENDERBUFFER,e);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,1,1);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,d,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,e);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null);a.h=c;\r\na.j=d;a.i=e}return a.h}function oj(a,b){var c=String(J(b));if(c in a.g)return a.g[c];var d=a.b,e=d.createShader(b.$());d.shaderSource(e,b.b);d.compileShader(e);return a.g[c]=e}function pj(a,b,c){var d=J(b)+\"/\"+J(c);if(d in a.f)return a.f[d];var e=a.b,f=e.createProgram();e.attachShader(f,oj(a,b));e.attachShader(f,oj(a,c));e.linkProgram(f);return a.f[d]=f}jj.prototype.K=function(){qa(this.a);qa(this.g);qa(this.f);this.i=this.j=this.h=this.l=null};jj.prototype.s=function(){};\r\nfunction qj(a,b){if(b==a.l)return!1;a.b.useProgram(b);a.l=b;return!0}function rj(a,b,c){var d=a.createTexture();a.bindTexture(a.TEXTURE_2D,d);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);void 0!==b&&a.texParameteri(3553,10242,b);void 0!==c&&a.texParameteri(3553,10243,c);return d}function nj(a,b,c){var d=rj(a,void 0,void 0);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,c,0,a.RGBA,a.UNSIGNED_BYTE,null);return d};function sj(a,b){this.B=this.u=void 0;this.C=tb(b);this.v=[];this.l=[];this.M=void 0;this.h=[];this.g=[];this.ca=this.Y=void 0;this.a=[];this.D=this.j=null;this.N=void 0;this.Ea=Cf();this.va=Cf();this.ha=this.P=void 0;this.wa=Cf();this.ra=Jd();this.ba=this.aa=this.W=void 0;this.na=[];this.i=[];this.b=[];this.s=null;this.c=[];this.K=[];this.ma=void 0}B(sj,Fh);\r\nfunction tj(a,b){var c=a.s,d=a.j,e=a.na,f=a.i,g=b.b;return function(){if(!g.isContextLost()){var a,k;a=0;for(k=e.length;a<k;++a)g.deleteTexture(e[a]);a=0;for(k=f.length;a<k;++a)g.deleteTexture(f[a])}lj(b,c);lj(b,d)}}\r\nfunction uj(a,b,c,d){var e=a.u,f=a.B,g=a.M,h=a.Y,k=a.ca,l=a.N,m=a.P,p=a.ha,q=a.W?1:0,u=a.aa,w=a.ba,r=a.ma,x=Math.cos(u),u=Math.sin(u),D=a.a.length,t=a.b.length,z,C,E,v,H,G;for(z=0;z<c;z+=d)H=b[z]-a.C[0],G=b[z+1]-a.C[1],C=t/8,E=-w*e,v=-w*(g-f),a.b[t++]=H,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=m/k,a.b[t++]=(p+g)/h,a.b[t++]=l,a.b[t++]=q,E=w*(r-e),v=-w*(g-f),a.b[t++]=H,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=(m+r)/k,a.b[t++]=(p+g)/h,a.b[t++]=l,a.b[t++]=q,E=w*(r-e),v=w*f,a.b[t++]=\r\nH,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=(m+r)/k,a.b[t++]=p/h,a.b[t++]=l,a.b[t++]=q,E=-w*e,v=w*f,a.b[t++]=H,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=m/k,a.b[t++]=p/h,a.b[t++]=l,a.b[t++]=q,a.a[D++]=C,a.a[D++]=C+1,a.a[D++]=C+2,a.a[D++]=C,a.a[D++]=C+2,a.a[D++]=C+3}sj.prototype.bb=function(a,b){this.c.push(this.a.length);this.K.push(b);var c=a.o;uj(this,c,c.length,a.A)};sj.prototype.cb=function(a,b){this.c.push(this.a.length);this.K.push(b);var c=a.o;uj(this,c,c.length,a.A)};\r\nfunction vj(a,b){var c=b.b;a.v.push(a.a.length);a.l.push(a.a.length);a.s=new hj(a.b);kj(b,34962,a.s);a.j=new hj(a.a);kj(b,34963,a.j);var d={};wj(a.na,a.h,d,c);wj(a.i,a.g,d,c);a.u=void 0;a.B=void 0;a.M=void 0;a.h=null;a.g=null;a.Y=void 0;a.ca=void 0;a.a=null;a.N=void 0;a.P=void 0;a.ha=void 0;a.W=void 0;a.aa=void 0;a.ba=void 0;a.b=null;a.ma=void 0}\r\nfunction wj(a,b,c,d){var e,f,g,h,k=b.length;for(h=0;h<k;++h){f=b[h];g=J(f).toString();if(g in c)e=c[g];else{e=d;var l=rj(e,33071,33071);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,f);e=l;c[g]=e}a[h]=e}}\r\nsj.prototype.f=function(a,b,c,d,e,f,g,h,k,l,m){f=a.b;kj(a,34962,this.s);kj(a,34963,this.j);var p=pj(a,dj,fj),q;this.D?q=this.D:this.D=q=new gj(f,p);qj(a,p);f.enableVertexAttribArray(q.f);f.vertexAttribPointer(q.f,2,5126,!1,32,0);f.enableVertexAttribArray(q.b);f.vertexAttribPointer(q.b,2,5126,!1,32,8);f.enableVertexAttribArray(q.g);f.vertexAttribPointer(q.g,2,5126,!1,32,16);f.enableVertexAttribArray(q.a);f.vertexAttribPointer(q.a,1,5126,!1,32,24);f.enableVertexAttribArray(q.c);f.vertexAttribPointer(q.c,\r\n1,5126,!1,32,28);p=Df(this.wa);Jf(p,2/(c*e[0]),2/(c*e[1]));If(p,-d);Kf(p,-(b[0]-this.C[0]),-(b[1]-this.C[1]));b=Df(this.va);Jf(b,2/e[0],2/e[1]);e=Df(this.Ea);0!==d&&If(e,-d);f.uniformMatrix4fv(q.l,!1,Kd(this.ra,p));f.uniformMatrix4fv(q.j,!1,Kd(this.ra,b));f.uniformMatrix4fv(q.i,!1,Kd(this.ra,e));f.uniform1f(q.h,g);var u;if(void 0===k)xj(this,f,a,h,this.na,this.v);else{if(l)a:{d=a.c?5125:5123;a=a.c?4:2;e=this.c.length-1;for(g=this.i.length-1;0<=g;--g)for(f.bindTexture(3553,this.i[g]),l=0<g?this.l[g-\r\n1]:0,b=this.l[g];0<=e&&this.c[e]>=l;){u=this.c[e];c=this.K[e];p=J(c).toString();if(void 0===h[p]&&c.S()&&(void 0===m||wb(m,c.S().G()))&&(f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),f.drawElements(4,b-u,d,u*a),b=k(c))){h=b;break a}b=u;e--}h=void 0}else f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),xj(this,f,a,h,this.i,this.l),h=(h=k(null))?h:void 0;u=h}f.disableVertexAttribArray(q.f);f.disableVertexAttribArray(q.b);f.disableVertexAttribArray(q.g);f.disableVertexAttribArray(q.a);f.disableVertexAttribArray(q.c);\r\nreturn u};function xj(a,b,c,d,e,f){var g=c.c?5125:5123;c=c.c?4:2;if(sa(d)){var h;a=0;d=e.length;for(h=0;a<d;++a){b.bindTexture(3553,e[a]);var k=f[a];b.drawElements(4,k-h,g,h*c);h=k}}else{h=0;var l,k=0;for(l=e.length;k<l;++k){b.bindTexture(3553,e[k]);for(var m=0<k?f[k-1]:0,p=f[k],q=m;h<a.c.length&&a.c[h]<=p;){var u=J(a.K[h]).toString();void 0!==d[u]?(q!==m&&b.drawElements(4,m-q,g,q*c),m=q=h===a.c.length-1?p:a.c[h+1]):m=h===a.c.length-1?p:a.c[h+1];h++}q!==m&&b.drawElements(4,m-q,g,q*c)}}}\r\nsj.prototype.Ma=function(a){var b=a.eb(),c=a.Z(1),d=a.Ob(),e=a.ub(1),f=a.C,g=a.pa(),h=a.K,k=a.s,l=a.Ka();a=a.v;var m;0===this.h.length?this.h.push(c):(m=this.h[this.h.length-1],J(m)!=J(c)&&(this.v.push(this.a.length),this.h.push(c)));0===this.g.length?this.g.push(e):(m=this.g[this.g.length-1],J(m)!=J(e)&&(this.l.push(this.a.length),this.g.push(e)));this.u=b[0];this.B=b[1];this.M=l[1];this.Y=d[1];this.ca=d[0];this.N=f;this.P=g[0];this.ha=g[1];this.aa=k;this.W=h;this.ba=a;this.ma=l[0]};\r\nfunction yj(a,b,c){this.h=b;this.l=a;this.g=c;this.a={}}B(yj,ei);function zj(a,b){var c=[],d;for(d in a.a)c.push(tj(a.a[d],b));return function(){for(var a=c.length,b,d=0;d<a;d++)b=c[d].apply(this,arguments);return b}}function Aj(a,b){for(var c in a.a)vj(a.a[c],b)}yj.prototype.b=function(a,b){var c=this.a[b];void 0===c&&(c=new Bj[b](this.l,this.h),this.a[b]=c);return c};yj.prototype.c=function(){return sa(this.a)};\r\nyj.prototype.f=function(a,b,c,d,e,f,g,h){var k,l,m;k=0;for(l=fi.length;k<l;++k)m=this.a[fi[k]],void 0!==m&&m.f(a,b,c,d,e,f,g,h,void 0,!1)};function Cj(a,b,c,d,e,f,g,h,k,l,m){var p=Dj,q,u;for(q=fi.length-1;0<=q;--q)if(u=a.a[fi[q]],void 0!==u&&(u=u.f(b,c,d,e,p,f,g,h,k,l,m)))return u}\r\nyj.prototype.fa=function(a,b,c,d,e,f,g,h,k,l){var m=b.b;m.bindFramebuffer(m.FRAMEBUFFER,mj(b));var p;void 0!==this.g&&(p=fb(kb(a),d*this.g));return Cj(this,b,a,d,e,g,h,k,function(a){var b=new Uint8Array(4);m.readPixels(0,0,1,1,m.RGBA,m.UNSIGNED_BYTE,b);if(0<b[3]&&(a=l(a)))return a},!0,p)};\r\nfunction Ej(a,b,c,d,e,f,g,h){var k=c.b;k.bindFramebuffer(k.FRAMEBUFFER,mj(c));return void 0!==Cj(a,c,b,d,e,f,g,h,function(){var a=new Uint8Array(4);k.readPixels(0,0,1,1,k.RGBA,k.UNSIGNED_BYTE,a);return 0<a[3]},!1)}var Bj={Image:sj},Dj=[1,1];function Fj(a,b,c,d,e,f,g){this.b=a;this.c=b;this.f=f;this.g=g;this.i=e;this.l=d;this.h=c;this.a=null}B(Fj,Fh);Fj.prototype.cb=function(a,b){var c=this.b,d=(new yj(1,this.f)).b(0,\"Image\");d.Ma(this.a);d.cb(a,b);vj(d,c);d.f(this.b,this.c,this.h,this.l,this.i,this.g,1,{},void 0,!1);tj(d,c)()};Fj.prototype.bb=function(a,b){var c=this.b,d=(new yj(1,this.f)).b(0,\"Image\");d.Ma(this.a);d.bb(a,b);vj(d,c);d.f(this.b,this.c,this.h,this.l,this.i,this.g,1,{},void 0,!1);tj(d,c)()};\r\nFj.prototype.Ma=function(a){this.a=a};function Gj(){this.b=\"precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}\"}B(Gj,aj);var Hj=new Gj;function Ij(){this.b=\"varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}\"}B(Ij,bj);var Jj=new Ij;\r\nfunction Kj(a,b){this.c=a.getUniformLocation(b,\"f\");this.f=a.getUniformLocation(b,\"e\");this.h=a.getUniformLocation(b,\"d\");this.g=a.getUniformLocation(b,\"g\");this.b=a.getAttribLocation(b,\"b\");this.a=a.getAttribLocation(b,\"c\")};function Lj(a,b){Rh.call(this,b);this.f=a;this.W=new hj([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]);this.i=this.Da=null;this.j=void 0;this.P=Cf();this.aa=Cf();this.B=Jd();this.s=null}B(Lj,Rh);\r\nfunction Mj(a,b,c){var d=a.f.f;if(void 0===a.j||a.j!=c){b.postRenderFunctions.push(function(a,b,c){a.isContextLost()||(a.deleteFramebuffer(b),a.deleteTexture(c))}.bind(null,d,a.i,a.Da));b=nj(d,c,c);var e=d.createFramebuffer();d.bindFramebuffer(36160,e);d.framebufferTexture2D(36160,36064,3553,b,0);a.Da=b;a.i=e;a.j=c}else d.bindFramebuffer(36160,a.i)}\r\nLj.prototype.Jc=function(a,b,c){Nj(this,\"precompose\",c,a);kj(c,34962,this.W);var d=c.b,e=pj(c,Hj,Jj),f;this.s?f=this.s:this.s=f=new Kj(d,e);qj(c,e)&&(d.enableVertexAttribArray(f.b),d.vertexAttribPointer(f.b,2,5126,!1,16,0),d.enableVertexAttribArray(f.a),d.vertexAttribPointer(f.a,2,5126,!1,16,8),d.uniform1i(f.g,0));d.uniformMatrix4fv(f.h,!1,Kd(this.B,this.P));d.uniformMatrix4fv(f.f,!1,Kd(this.B,this.aa));d.uniform1f(f.c,b.opacity);d.bindTexture(3553,this.Da);d.drawArrays(5,0,4);Nj(this,\"postcompose\",\r\nc,a)};function Nj(a,b,c,d){a=a.a;if(Ha(a,b)){var e=d.viewState;U(a,new uf(b,new Fj(c,e.center,e.resolution,e.rotation,d.size,d.extent,d.pixelRatio),d,null,c))}}Lj.prototype.v=function(){this.i=this.Da=null;this.j=void 0};function Oj(){this.b=\"precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}\"}B(Oj,aj);var Pj=new Oj;function Qj(){this.b=\"varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}\"}B(Qj,bj);var Rj=new Qj;function Sj(a,b){this.c=a.getUniformLocation(b,\"e\");this.f=a.getUniformLocation(b,\"d\");this.b=a.getAttribLocation(b,\"b\");this.a=a.getAttribLocation(b,\"c\")};function Tj(a,b){Lj.call(this,a,b);this.M=Pj;this.ba=Rj;this.c=null;this.D=new hj([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]);this.u=this.g=null;this.h=-1;this.N=[0,0]}B(Tj,Lj);Tj.prototype.R=function(){lj(this.f.getContext(),this.D);Lj.prototype.R.call(this)};Tj.prototype.l=function(a,b,c){var d=this.f;return function(e,f){return Sh(a,b,e,f,function(a){var b=Uj(d.a,a.getKey());b&&(c[e]||(c[e]={}),c[e][a.V.toString()]=a);return b})}};Tj.prototype.v=function(){Lj.prototype.v.call(this);this.c=null};\r\nTj.prototype.Kc=function(a,b,c){var d=this.f,e=c.b,f=a.viewState,g=f.projection,h=this.a,k=h.da(),l=k.sa(g),m=Xc(l,f.resolution),p=l.O(m),q=Ni(k,m,a.pixelRatio,g),u=q[0]/Lc(Wc(l,m),this.N)[0],w=p/u,r=a.pixelRatio*k.nb(g),x=f.center,D;p==f.resolution?(x=Yh(x,p,a.size),D=ub(x,p,f.rotation,a.size)):D=a.extent;p=Tc(l,D,p);if(this.g&&Ic(this.g,p)&&this.h==k.b)w=this.u;else{var t=[p.I-p.H+1,p.L-p.J+1],z=ka(Math.max(t[0]*q[0],t[1]*q[1])),t=w*z,C=l.pa(m),E=C[0]+p.H*q[0]*w,w=C[1]+p.J*q[1]*w,w=[E,w,E+t,w+t];\r\nMj(this,a,z);e.viewport(0,0,z,z);e.clearColor(0,0,0,0);e.clear(16384);e.disable(3042);z=pj(c,this.M,this.ba);qj(c,z);this.c||(this.c=new Sj(e,z));kj(c,34962,this.D);e.enableVertexAttribArray(this.c.b);e.vertexAttribPointer(this.c.b,2,5126,!1,16,0);e.enableVertexAttribArray(this.c.a);e.vertexAttribPointer(this.c.a,2,5126,!1,16,8);e.uniform1i(this.c.c,0);c={};c[m]={};var v=this.l(k,g,c),H=jh(h),z=!0,E=db(),G=new Gc(0,0,0,0),A,F,Q;for(F=p.H;F<=p.I;++F)for(Q=p.J;Q<=p.L;++Q){C=$h(k,m,F,Q,u,g);if(void 0!==\r\nb.extent&&(A=Qc(l,C.V,E),!wb(A,b.extent)))continue;A=C.T();A=2==A||4==A||3==A&&!H;!A&&C.b&&(C=C.b);A=C.T();if(2==A){if(Uj(d.a,C.getKey())){c[m][C.V.toString()]=C;continue}}else if(4==A||3==A&&!H)continue;z=!1;A=Pc(l,C.V,v,G,E);A||(C=Sc(l,C.V,G,E))&&v(m+1,C)}b=Object.keys(c).map(Number);b.sort(Ma);for(var v=new Float32Array(4),N,H=0,G=b.length;H<G;++H)for(N in F=c[b[H]],F)C=F[N],A=Qc(l,C.V,E),v[0]=2*(A[2]-A[0])/t,v[1]=2*(A[3]-A[1])/t,v[2]=2*(A[0]-w[0])/t-1,v[3]=2*(A[1]-w[1])/t-1,e.uniform4fv(this.c.f,\r\nv),Vj(d,C,q,r*u),e.drawArrays(5,0,4);z?(this.g=p,this.u=w,this.h=k.b):(this.u=this.g=null,this.h=-1,a.animate=!0)}Xh(a.usedTiles,k,m,p);var O=d.l;Zh(a,k,l,u,g,D,m,h.get(\"preload\"),function(a){var b;(b=2!=a.T()||Uj(d.a,a.getKey()))||(b=a.getKey()in O.a);b||O.g([a,Vc(l,a.V),l.O(a.V[0]),q,r*u])},this);Uh(a,k);Wh(a,k);e=this.P;Df(e);Kf(e,(x[0]-w[0])/(w[2]-w[0]),(x[1]-w[1])/(w[3]-w[1]));0!==f.rotation&&If(e,f.rotation);Jf(e,a.size[0]*f.resolution/(w[2]-w[0]),a.size[1]*f.resolution/(w[3]-w[1]));Kf(e,-.5,\r\n-.5);return!0};function Wj(a,b){Lj.call(this,a,b);this.h=!1;this.N=-1;this.M=NaN;this.u=db();this.g=this.c=this.D=null}B(Wj,Lj);n=Wj.prototype;n.Jc=function(a,b,c){this.g=b;var d=a.viewState,e=this.c;e&&!e.c()&&e.f(c,d.center,d.resolution,d.rotation,a.size,a.pixelRatio,b.opacity,b.hb?a.skippedFeatureUids:{})};n.R=function(){var a=this.c;if(a){var b=this.f.getContext();zj(a,b)();this.c=null}Lj.prototype.R.call(this)};\r\nn.fa=function(a,b,c,d){if(this.c&&this.g){var e=this.f.getContext(),f=b.viewState,g=this.a,h={};return this.c.fa(a,e,f.center,f.resolution,f.rotation,b.size,b.pixelRatio,this.g.opacity,{},function(a){var b=J(a).toString();if(!(b in h))return h[b]=!0,c.call(d,a,g)})}};n.Ec=function(a,b){if(this.c&&this.g){var c=this.f.getContext(),d=b.viewState;return Ej(this.c,a,c,d.resolution,d.rotation,b.pixelRatio,this.g.opacity,b.skippedFeatureUids)}return!1};n.Lc=function(){Th(this)};\r\nn.Kc=function(a,b,c){function d(a){var b,c=a.f;c?b=c.call(a,l):(c=e.g)&&(b=c(a,l));if(b){if(b){c=!1;if(Array.isArray(b))for(var d=0,f=b.length;d<f;++d)c=Bi(q,a,b[d],Ai(l,m),this.Lc,this)||c;else c=Bi(q,a,b,Ai(l,m),this.Lc,this)||c;a=c}else a=!1;this.h=this.h||a}}var e=this.a;b=e.da();Vh(a.attributions,b.h);Wh(a,b);var f=a.viewHints[0],g=a.viewHints[1],h=e.i,k=e.j;if(!this.h&&!h&&f||!k&&g)return!0;var g=a.extent,h=a.viewState,f=h.projection,l=h.resolution,m=a.pixelRatio,h=e.b,p=e.a,k=e.get(\"renderOrder\");\r\nvoid 0===k&&(k=zi);g=fb(g,p*l);if(!this.h&&this.M==l&&this.N==h&&this.D==k&&hb(this.u,g))return!0;this.c&&a.postRenderFunctions.push(zj(this.c,c));this.h=!1;var q=new yj(.5*l/m,g,e.a);Pi(b,g,l,f);if(k){var u=[];Qi(b,g,function(a){u.push(a)},this);u.sort(k);u.forEach(d,this)}else Qi(b,g,d,this);Aj(q,c);this.M=l;this.N=h;this.D=k;this.u=g;this.c=q;return!0};function Xj(){this.f=0;this.c={};this.a=this.b=null}Xj.prototype.clear=function(){this.f=0;this.c={};this.a=this.b=null};function Uj(a,b){return a.c.hasOwnProperty(b)}function Yj(a,b){for(var c=a.b;c;)b.call(void 0,c.Na,c.Ia,a),c=c.ta}Xj.prototype.get=function(a){a=this.c[a];L(void 0!==a,15);if(a===this.a)return a.Na;a===this.b?(this.b=this.b.ta,this.b.Ua=null):(a.ta.Ua=a.Ua,a.Ua.ta=a.ta);a.ta=null;a.Ua=this.a;this.a=this.a.ta=a;return a.Na};\r\nXj.prototype.pop=function(){var a=this.b;delete this.c[a.Ia];a.ta&&(a.ta.Ua=null);this.b=a.ta;this.b||(this.a=null);--this.f;return a.Na};function Zj(a,b,c){a.get(b);a.c[b].Na=c}Xj.prototype.set=function(a,b){L(!(a in this.c),16);var c={Ia:a,ta:null,Ua:this.a,Na:b};this.a?this.a.ta=c:this.b=c;this.a=c;this.c[a]=c;++this.f};function ak(a,b){Nf.call(this,0,b);this.b=document.createElement(\"CANVAS\");this.b.style.width=\"100%\";this.b.style.height=\"100%\";this.b.className=\"ol-unselectable\";a.insertBefore(this.b,a.childNodes[0]||null);this.s=this.v=0;this.u=Md();this.i=!0;this.f=ie(this.b,{antialias:!0,depth:!1,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0});this.C=new jj(this.b,this.f);R(this.b,\"webglcontextlost\",this.ge,this);R(this.b,\"webglcontextrestored\",this.he,this);this.a=new Xj;this.K=null;this.l=\r\nnew Uf(function(a){var b=a[1];a=a[2];var e=b[0]-this.K[0],b=b[1]-this.K[1];return 65536*Math.log(a)+Math.sqrt(e*e+b*b)/a}.bind(this),function(a){return a[0].getKey()});this.B=function(){if(0!==this.l.b.length){Yf(this.l);var a=Vf(this.l);Vj(this,a[0],a[3],a[4])}return!1}.bind(this);this.h=0;bk(this)}B(ak,Nf);\r\nfunction Vj(a,b,c,d){var e=a.f,f=b.getKey();if(Uj(a.a,f))a=a.a.get(f),e.bindTexture(3553,a.Da),9729!=a.yc&&(e.texParameteri(3553,10240,9729),a.yc=9729),9729!=a.zc&&(e.texParameteri(3553,10241,9729),a.zc=9729);else{var g=e.createTexture();e.bindTexture(3553,g);if(0<d){var h=a.u.canvas,k=a.u;a.v!==c[0]||a.s!==c[1]?(h.width=c[0],h.height=c[1],a.v=c[0],a.s=c[1]):k.clearRect(0,0,c[0],c[1]);k.drawImage(b.Z(),d,d,c[0],c[1],0,0,c[0],c[1]);e.texImage2D(3553,0,6408,6408,5121,h)}else e.texImage2D(3553,0,6408,\r\n6408,5121,b.Z());e.texParameteri(3553,10240,9729);e.texParameteri(3553,10241,9729);e.texParameteri(3553,10242,33071);e.texParameteri(3553,10243,33071);a.a.set(f,{Da:g,yc:9729,zc:9729})}}n=ak.prototype;n.Mb=function(a){return a instanceof W?new Tj(this,a):a instanceof Y?new Wj(this,a):null};function ck(a,b,c){var d=a.g;if(Ha(d,b)){a=a.C;var e=c.viewState;U(d,new uf(b,new Fj(a,e.center,e.resolution,e.rotation,c.size,c.extent,c.pixelRatio),c,null,a))}}\r\nn.R=function(){var a=this.f;a.isContextLost()||Yj(this.a,function(b){b&&a.deleteTexture(b.Da)});Da(this.C);Nf.prototype.R.call(this)};n.ld=function(a,b){for(var c=this.f,d;1024<this.a.f-this.h;){if(d=this.a.b.Na)c.deleteTexture(d.Da);else if(+this.a.b.Ia==b.index)break;else--this.h;this.a.pop()}};n.getContext=function(){return this.C};n.$=function(){return\"webgl\"};n.ge=function(a){a.preventDefault();this.a.clear();this.h=0;a=this.c;for(var b in a)a[b].v()};n.he=function(){bk(this);this.g.render()};\r\nfunction bk(a){a=a.f;a.activeTexture(33984);a.blendFuncSeparate(770,771,1,771);a.disable(2884);a.disable(2929);a.disable(3089);a.disable(2960)}\r\nn.vb=function(a){var b=this.getContext(),c=this.f;if(c.isContextLost())return!1;if(!a)return this.i&&(this.b.style.display=\"none\",this.i=!1),!1;this.K=a.focus;this.a.set((-a.index).toString(),null);++this.h;ck(this,\"precompose\",a);var d=[],e=a.layerStatesArray;Sa(e);var f=a.viewState.resolution,g,h,k,l;g=0;for(h=e.length;g<h;++g)l=e[g],yf(l,f)&&\"ready\"==l.ac&&(k=Qf(this,l.layer),k.Kc(a,l,b)&&d.push(l));e=a.size[0]*a.pixelRatio;f=a.size[1]*a.pixelRatio;if(this.b.width!=e||this.b.height!=f)this.b.width=\r\ne,this.b.height=f;c.bindFramebuffer(36160,null);c.clearColor(0,0,0,0);c.clear(16384);c.enable(3042);c.viewport(0,0,this.b.width,this.b.height);g=0;for(h=d.length;g<h;++g)l=d[g],k=Qf(this,l.layer),k.Jc(a,l,b);this.i||(this.b.style.display=\"\",this.i=!0);Of(a);1024<this.a.f-this.h&&a.postRenderFunctions.push(this.ld.bind(this));0!==this.l.b.length&&(a.postRenderFunctions.push(this.B),a.animate=!0);ck(this,\"postcompose\",a);Rf(this,a);a.postRenderFunctions.push(Pf)};\r\nn.fa=function(a,b,c,d,e,f){var g;if(this.f.isContextLost())return!1;var h=b.viewState,k=b.layerStatesArray,l;for(l=k.length-1;0<=l;--l){g=k[l];var m=g.layer;if(yf(g,h.resolution)&&e.call(f,m)&&(g=Qf(this,m).fa(a,b,c,d)))return g}};n.Fc=function(a,b,c,d){var e=!1;if(this.f.isContextLost())return!1;var f=b.viewState,g=b.layerStatesArray,h;for(h=g.length-1;0<=h;--h){var k=g[h],l=k.layer;if(yf(k,f.resolution)&&c.call(d,l)&&(e=Qf(this,l).Ec(a,b)))return!0}return e};var dk=[\"canvas\",\"webgl\",\"dom\"];\r\nfunction Z(a){V.call(this);var b=ek(a);this.kb=void 0!==a.loadTilesWhileAnimating?a.loadTilesWhileAnimating:!1;this.Ab=void 0!==a.loadTilesWhileInteracting?a.loadTilesWhileInteracting:!1;this.Cb=void 0!==a.pixelRatio?a.pixelRatio:oe;this.Bb=b.logos;this.aa=function(){this.g=void 0;this.ve.call(this,Date.now())}.bind(this);this.Fa=Cf();this.zb=Cf();this.Ga=0;this.c=null;this.va=db();this.u=this.P=null;this.a=document.createElement(\"DIV\");this.a.className=\"ol-viewport\"+(re?\" ol-touch\":\"\");this.a.style.position=\r\n\"relative\";this.a.style.overflow=\"hidden\";this.a.style.width=\"100%\";this.a.style.height=\"100%\";this.a.style.msTouchAction=\"none\";this.a.style.touchAction=\"none\";this.s=document.createElement(\"DIV\");this.s.className=\"ol-overlaycontainer\";this.a.appendChild(this.s);this.j=document.createElement(\"DIV\");this.j.className=\"ol-overlaycontainer-stopevent\";a=[\"click\",\"dblclick\",\"mousedown\",\"touchstart\",\"mspointerdown\",of,\"mousewheel\",\"wheel\"];for(var c=0,d=a.length;c<d;++c)R(this.j,a[c],Ea);this.a.appendChild(this.j);\r\nthis.ma=new ff(this);for(var e in rf)R(this.ma,rf[e],this.wc,this);this.ba=b.keyboardEventTarget;this.i=null;R(this.a,\"wheel\",this.Sa,this);R(this.a,\"mousewheel\",this.Sa,this);this.v=b.controls;this.h=b.interactions;this.B=b.overlays;this.Sc={};this.N=new b.xe(this.a,this);this.W=null;this.D=[];this.na=[];this.wa=new Zf(this.qd.bind(this),this.Jd.bind(this));this.Eb={};R(this,La(\"layergroup\"),this.vd,this);R(this,La(\"view\"),this.Kd,this);R(this,La(\"size\"),this.Gd,this);R(this,La(\"target\"),this.Id,\r\nthis);this.l(b.values);ed(this.v,function(a){a.setMap(this)},this);R(this.v,hd,function(a){a.element.setMap(this)},this);R(this.v,id,function(a){a.element.setMap(null)},this);ed(this.h,function(a){a.setMap(this)},this);R(this.h,hd,function(a){a.element.setMap(this)},this);R(this.h,id,function(a){a.element.setMap(null)},this);ed(this.B,this.ic,this);R(this.B,hd,function(a){this.ic(a.element)},this);R(this.B,id,function(a){var b=a.element.Pa();void 0!==b&&delete this.Sc[b.toString()];a.element.setMap(null)},\r\nthis)}B(Z,V);n=Z.prototype;n.cd=function(a){this.v.push(a)};n.dd=function(a){this.h.push(a)};n.ed=function(a){fk(this).get(\"layers\").push(a)};n.fd=function(a){this.B.push(a)};n.ic=function(a){var b=a.Pa();void 0!==b&&(this.Sc[b.toString()]=a);a.setMap(this)};n.oa=function(a){this.render();Array.prototype.push.apply(this.D,arguments)};\r\nn.R=function(){Da(this.ma);Da(this.N);ya(this.a,\"wheel\",this.Sa,this);ya(this.a,\"mousewheel\",this.Sa,this);void 0!==this.f&&(K.removeEventListener(\"resize\",this.f,!1),this.f=void 0);this.g&&(K.cancelAnimationFrame(this.g),this.g=void 0);this.set(\"target\",null);V.prototype.R.call(this)};n.od=function(a,b,c,d,e){if(this.c)return a=this.Ba(a),this.N.fa(a,this.c,b,void 0!==c?c:null,void 0!==d?d:yb,void 0!==e?e:null)};\r\nn.Md=function(a,b,c){if(!this.c)return!1;a=this.Ba(a);return this.N.Fc(a,this.c,void 0!==b?b:yb,void 0!==c?c:null)};n.uc=function(a){var b=this.a.getBoundingClientRect();a=a.changedTouches?a.changedTouches[0]:a;return[a.clientX-b.left,a.clientY-b.top]};n.Wb=function(){return this.get(\"target\")};n.Ra=function(){var a=this.Wb();return void 0!==a?\"string\"===typeof a?document.getElementById(a):a:null};n.Ba=function(a){var b=this.c;return b?Hf(b.pixelToCoordinateTransform,a.slice()):null};\r\nfunction fk(a){return a.get(\"layergroup\")}function ug(a,b){var c=a.c;return c?Hf(c.coordinateToPixelTransform,b.slice(0,2)):null}n.Ta=function(){return this.get(\"size\")};n.U=function(){return this.get(\"view\")};n.qd=function(a,b,c,d){var e=this.c;if(!(e&&b in e.wantedTiles&&e.wantedTiles[b][a.getKey()]))return Infinity;a=c[0]-e.focus[0];c=c[1]-e.focus[1];return 65536*Math.log(d)+Math.sqrt(a*a+c*c)/d};n.Sa=function(a,b){var c=new df(b||a.type,this,a);this.wc(c)};\r\nn.wc=function(a){if(this.c){this.W=a.coordinate;a.frameState=this.c;var b=this.h.a,c;if(!1!==U(this,a))for(c=b.length-1;0<=c;c--){var d=b[c];if(d.get(\"active\")&&!d.handleEvent(a))break}}};\r\nn.Fd=function(){var a=this.c,b=this.wa;if(0!==b.b.length){var c=16,d=c;if(a){var e=a.viewHints;e[0]&&(c=this.kb?8:0,d=2);e[1]&&(c=this.Ab?8:0,d=2)}if(b.l<c){Yf(b);for(var e=0,f,g;b.l<c&&e<d&&0<b.b.length;)f=Vf(b)[0],g=f.getKey(),0!==f.T()||g in b.h||(b.h[g]=!0,++b.l,++e,f.load())}}b=this.na;c=0;for(d=b.length;c<d;++c)b[c](this,a);b.length=0};n.Gd=function(){this.render()};\r\nn.Id=function(){var a;this.Wb()&&(a=this.Ra());if(this.i){for(var b=0,c=this.i.length;b<c;++b)M(this.i[b]);this.i=null}a?(a.appendChild(this.a),a=this.ba?this.ba:a,this.i=[R(a,\"keydown\",this.Sa,this),R(a,\"keypress\",this.Sa,this)],this.f||(this.f=this.yb.bind(this),K.addEventListener(\"resize\",this.f,!1))):(Sd(this.a),void 0!==this.f&&(K.removeEventListener(\"resize\",this.f,!1),this.f=void 0));this.yb()};n.Jd=function(){this.render()};n.Ld=function(){this.render()};\r\nn.Kd=function(){this.P&&(M(this.P),this.P=null);var a=this.U();a&&(this.P=R(a,\"propertychange\",this.Ld,this));this.render()};n.vd=function(){this.u&&(this.u.forEach(M),this.u=null);var a=fk(this);a&&(this.u=[R(a,\"propertychange\",this.render,this),R(a,\"change\",this.render,this)]);this.render()};n.we=function(){this.g&&K.cancelAnimationFrame(this.g);this.aa()};n.render=function(){void 0===this.g&&(this.g=K.requestAnimationFrame(this.aa))};n.se=function(a){return this.h.remove(a)};n.te=function(a){return fk(this).get(\"layers\").remove(a)};\r\nn.ve=function(a){var b,c,d,e=this.Ta(),f=this.U(),g=db(),h=null;if(b=void 0!==e&&0<e[0]&&0<e[1]&&f)b=!!f.qa()&&void 0!==f.O();if(b){d=this.c?this.c.viewHints:void 0;void 0!==d?(d[0]=f.c[0],d[1]=f.c[1],h=d):h=f.c.slice();var k=fk(this).Pb(),l={};b=0;for(c=k.length;b<c;++b)l[J(k[b].layer)]=k[b];d=f.T();h={animate:!1,attributions:{},coordinateToPixelTransform:this.Fa,extent:g,focus:this.W?this.W:d.center,index:this.Ga++,layerStates:l,layerStatesArray:k,logos:pa({},this.Bb),pixelRatio:this.Cb,pixelToCoordinateTransform:this.zb,\r\npostRenderFunctions:[],size:e,skippedFeatureUids:this.Eb,tileQueue:this.wa,time:a,usedTiles:{},viewState:d,viewHints:h,wantedTiles:{}}}if(h){a=this.D;b=e=0;for(c=a.length;b<c;++b)f=a[b],f(this,h)&&(a[e++]=f);a.length=e;h.extent=ub(d.center,d.resolution,d.rotation,h.size,g)}this.c=h;this.N.vb(h);h&&(h.animate&&this.render(),Array.prototype.push.apply(this.na,h.postRenderFunctions),0!==this.D.length||h.viewHints[0]||h.viewHints[1]||lb(h.extent,this.va)||(U(this,new Td(\"moveend\",this,h)),gb(h.extent,\r\nthis.va)));U(this,new Td(\"postrender\",this,h));d=g=this.Fd;this&&(d=ea(g,this));\"function\"!=ba()||aa.Window&&aa.Window.prototype&&!xd(\"Edge\")&&aa.Window.prototype.setImmediate==aa.setImmediate?(fe||(fe=ge()),fe(d)):aa.setImmediate(d)};\r\nn.yb=function(){var a=this.Ra();if(a){var b=K.getComputedStyle(a);this.set(\"size\",[a.offsetWidth-parseFloat(b.borderLeftWidth)-parseFloat(b.paddingLeft)-parseFloat(b.paddingRight)-parseFloat(b.borderRightWidth),a.offsetHeight-parseFloat(b.borderTopWidth)-parseFloat(b.paddingTop)-parseFloat(b.paddingBottom)-parseFloat(b.borderBottomWidth)])}else this.set(\"size\",void 0)};\r\nfunction ek(a){var b=null;void 0!==a.keyboardEventTarget&&(b=\"string\"===typeof a.keyboardEventTarget?document.getElementById(a.keyboardEventTarget):a.keyboardEventTarget);var c={},d={};if(void 0===a.logo||\"boolean\"===typeof a.logo&&a.logo)d[\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHGAAABxgEXwfpGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAhNQTFRF////AP//AICAgP//AFVVQECA////K1VVSbbbYL/fJ05idsTYJFtbbcjbJllmZszWWMTOIFhoHlNiZszTa9DdUcHNHlNlV8XRIVdiasrUHlZjIVZjaMnVH1RlIFRkH1RkH1ZlasvYasvXVsPQH1VkacnVa8vWIVZjIFRjVMPQa8rXIVVkXsXRsNveIFVkIFZlIVVj3eDeh6GmbMvXH1ZkIFRka8rWbMvXIFVkIFVjIFVkbMvWH1VjbMvWIFVlbcvWIFVla8vVIFVkbMvWbMvVH1VkbMvWIFVlbcvWIFVkbcvVbMvWjNPbIFVkU8LPwMzNIFVkbczWIFVkbsvWbMvXIFVkRnB8bcvW2+TkW8XRIFVkIlZlJVloJlpoKlxrLl9tMmJwOWd0Omh1RXF8TneCT3iDUHiDU8LPVMLPVcLPVcPQVsPPVsPQV8PQWMTQWsTQW8TQXMXSXsXRX4SNX8bSYMfTYcfTYsfTY8jUZcfSZsnUaIqTacrVasrVa8jTa8rWbI2VbMvWbcvWdJObdcvUdszUd8vVeJaee87Yfc3WgJyjhqGnitDYjaarldPZnrK2oNbborW5o9bbo9fbpLa6q9ndrL3ArtndscDDutzfu8fJwN7gwt7gxc/QyuHhy+HizeHi0NfX0+Pj19zb1+Tj2uXk29/e3uLg3+Lh3+bl4uXj4ufl4+fl5Ofl5ufl5ujm5+jmySDnBAAAAFp0Uk5TAAECAgMEBAYHCA0NDg4UGRogIiMmKSssLzU7PkJJT1JTVFliY2hrdHZ3foSFhYeJjY2QkpugqbG1tre5w8zQ09XY3uXn6+zx8vT09vf4+Pj5+fr6/P39/f3+gz7SsAAAAVVJREFUOMtjYKA7EBDnwCPLrObS1BRiLoJLnte6CQy8FLHLCzs2QUG4FjZ5GbcmBDDjxJBXDWxCBrb8aM4zbkIDzpLYnAcE9VXlJSWlZRU13koIeW57mGx5XjoMZEUqwxWYQaQbSzLSkYGfKFSe0QMsX5WbjgY0YS4MBplemI4BdGBW+DQ11eZiymfqQuXZIjqwyadPNoSZ4L+0FVM6e+oGI6g8a9iKNT3o8kVzNkzRg5lgl7p4wyRUL9Yt2jAxVh6mQCogae6GmflI8p0r13VFWTHBQ0rWPW7ahgWVcPm+9cuLoyy4kCJDzCm6d8PSFoh0zvQNC5OjDJhQopPPJqph1doJBUD5tnkbZiUEqaCnB3bTqLTFG1bPn71kw4b+GFdpLElKIzRxxgYgWNYc5SCENVHKeUaltHdXx0dZ8uBI1hJ2UUDgq82CM2MwKeibqAvSO7MCABq0wXEPiqWEAAAAAElFTkSuQmCC\"]=\r\n\"http://openlayers.org/\";else{var e=a.logo;\"string\"===typeof e?d[e]=\"\":e instanceof HTMLElement?d[J(e).toString()]=e:e&&(L(\"string\"==typeof e.href,44),L(\"string\"==typeof e.src,45),d[e.src]=e.href)}e=a.layers instanceof Xg?a.layers:new Xg({layers:a.layers});c.layergroup=e;c.target=a.target;c.view=void 0!==a.view?a.view:new uc;var e=Nf,f;void 0!==a.renderer?Array.isArray(a.renderer)?f=a.renderer:\"string\"===typeof a.renderer?f=[a.renderer]:L(!1,46):f=dk;var g,h;g=0;for(h=f.length;g<h;++g){var k=f[g];\r\nif(\"canvas\"==k){if(qe){e=Ri;break}}else if(\"dom\"==k){e=Yi;break}else if(\"webgl\"==k&&je){e=ak;break}}void 0!==a.controls?Array.isArray(a.controls)?f=new cd(a.controls.slice()):(L(a.controls instanceof cd,47),f=a.controls):f=ee();if(void 0!==a.interactions)Array.isArray(a.interactions)?g=new cd(a.interactions.slice()):(L(a.interactions instanceof cd,48),g=a.interactions);else{g={};h=new cd;k=new $f;(void 0!==g.altShiftDragRotate?g.altShiftDragRotate:1)&&h.push(new vg);(void 0!==g.doubleClickZoom?g.doubleClickZoom:\r\n1)&&h.push(new fg({delta:g.zoomDelta,duration:g.zoomDuration}));(void 0!==g.dragPan?g.dragPan:1)&&h.push(new qg({kinetic:k}));(void 0!==g.pinchRotate?g.pinchRotate:1)&&h.push(new Pg);(void 0!==g.pinchZoom?g.pinchZoom:1)&&h.push(new Tg({duration:g.zoomDuration}));if(void 0!==g.keyboard?g.keyboard:1)h.push(new Jg),h.push(new Lg({delta:g.zoomDelta,duration:g.zoomDuration}));(void 0!==g.mouseWheelZoom?g.mouseWheelZoom:1)&&h.push(new Ng({duration:g.zoomDuration}));(void 0!==g.shiftDragZoom?g.shiftDragZoom:\r\n1)&&h.push(new Ig({duration:g.zoomDuration}));g=h}void 0!==a.overlays?Array.isArray(a.overlays)?a=new cd(a.overlays.slice()):(L(a.overlays instanceof cd,49),a=a.overlays):a=new cd;return{controls:f,interactions:g,keyboardEventTarget:b,logos:d,overlays:a,xe:e,values:c}}Ib(bh);Ib(ih);ih.forEach(function(a){bh.forEach(function(b){Jb(a,b,ch);Jb(b,a,dh)})});function gk(a){V.call(this);this.j=a.id;this.i=void 0!==a.insertFirst?a.insertFirst:!0;this.s=void 0!==a.stopEvent?a.stopEvent:!0;this.c=document.createElement(\"DIV\");this.c.className=\"ol-overlay-container\";this.c.style.position=\"absolute\";this.autoPan=void 0!==a.autoPan?a.autoPan:!1;this.g=void 0!==a.autoPanAnimation?a.autoPanAnimation:{};this.h=void 0!==a.autoPanMargin?a.autoPanMargin:20;this.a={lb:\"\",sb:\"\",wb:\"\",xb:\"\",visible:!0};this.f=null;R(this,La(\"element\"),this.td,this);R(this,La(\"map\"),\r\nthis.Ad,this);R(this,La(\"offset\"),this.Bd,this);R(this,La(\"position\"),this.Dd,this);R(this,La(\"positioning\"),this.Ed,this);void 0!==a.element&&this.set(\"element\",a.element);this.set(\"offset\",void 0!==a.offset?a.offset:[0,0]);this.set(\"positioning\",void 0!==a.positioning?a.positioning:\"top-left\");void 0!==a.position&&this.Ac(a.position)}B(gk,V);n=gk.prototype;n.Pa=function(){return this.j};n.td=function(){for(var a=this.c;a.lastChild;)a.removeChild(a.lastChild);(a=this.get(\"element\"))&&this.c.appendChild(a)};\r\nn.Ad=function(){this.f&&(Sd(this.c),M(this.f),this.f=null);var a=this.get(\"map\");a&&(this.f=R(a,\"postrender\",this.render,this),hk(this),a=this.s?a.j:a.s,this.i?a.insertBefore(this.c,a.childNodes[0]||null):a.appendChild(this.c))};n.render=function(){hk(this)};n.Bd=function(){hk(this)};\r\nn.Dd=function(){hk(this);if(void 0!==this.get(\"position\")&&this.autoPan){var a=this.get(\"map\");if(void 0!==a&&a.Ra()){var b=ik(a.Ra(),a.Ta()),c=this.get(\"element\"),d=c.offsetWidth,e=c.currentStyle||K.getComputedStyle(c),d=d+(parseInt(e.marginLeft,10)+parseInt(e.marginRight,10)),e=c.offsetHeight,f=c.currentStyle||K.getComputedStyle(c),e=e+(parseInt(f.marginTop,10)+parseInt(f.marginBottom,10)),g=ik(c,[d,e]),c=this.h;hb(b,g)||(d=g[0]-b[0],e=b[2]-g[2],f=g[1]-b[1],g=b[3]-g[3],b=[0,0],0>d?b[0]=d-c:0>e&&\r\n(b[0]=Math.abs(e)+c),0>f?b[1]=f-c:0>g&&(b[1]=Math.abs(g)+c),0===b[0]&&0===b[1])||(c=a.U().qa(),d=ug(a,c),b=[d[0]+b[0],d[1]+b[1]],this.g&&(this.g.source=c,a.oa(Dc(this.g))),a.U().xa(a.Ba(b)))}}};n.Ed=function(){hk(this)};n.setMap=function(a){this.set(\"map\",a)};n.Ac=function(a){this.set(\"position\",a)};function ik(a,b){var c=a.getBoundingClientRect(),d=c.left+K.pageXOffset,c=c.top+K.pageYOffset;return[d,c,d+b[0],c+b[1]]}\r\nfunction jk(a,b){a.a.visible!==b&&(a.c.style.display=b?\"\":\"none\",a.a.visible=b)}\r\nfunction hk(a){var b=a.get(\"map\"),c=a.get(\"position\");if(void 0!==b&&b.c&&void 0!==c){var c=ug(b,c),d=b.Ta(),b=a.c.style,e=a.get(\"offset\"),f=a.get(\"positioning\"),g=e[0],e=e[1];if(\"bottom-right\"==f||\"center-right\"==f||\"top-right\"==f)\"\"!==a.a.sb&&(a.a.sb=b.left=\"\"),g=Math.round(d[0]-c[0]-g)+\"px\",a.a.wb!=g&&(a.a.wb=b.right=g);else{\"\"!==a.a.wb&&(a.a.wb=b.right=\"\");if(\"bottom-center\"==f||\"center-center\"==f||\"top-center\"==f)g-=a.c.offsetWidth/2;g=Math.round(c[0]+g)+\"px\";a.a.sb!=g&&(a.a.sb=b.left=g)}if(\"bottom-left\"==\r\nf||\"bottom-center\"==f||\"bottom-right\"==f)\"\"!==a.a.xb&&(a.a.xb=b.top=\"\"),c=Math.round(d[1]-c[1]-e)+\"px\",a.a.lb!=c&&(a.a.lb=b.bottom=c);else{\"\"!==a.a.lb&&(a.a.lb=b.bottom=\"\");if(\"center-left\"==f||\"center-center\"==f||\"center-right\"==f)e-=a.c.offsetHeight/2;c=Math.round(c[1]+e)+\"px\";a.a.xb!=c&&(a.a.xb=b.top=c)}jk(a,!0)}else jk(a,!1)};function kk(a){V.call(this);this.g=void 0;this.a=\"geometry\";this.h=null;this.f=void 0;this.c=null;R(this,La(this.a),this.qb,this);void 0!==a&&(a instanceof Wb||!a?lk(this,a):this.l(a))}B(kk,V);n=kk.prototype;n.clone=function(){var a=new kk(this.Ea());mk(a,this.a);var b=this.S();b&&lk(a,b.clone());if(b=this.h)a.h=b,a.f=b?nk(b):void 0,a.w();return a};n.S=function(){return this.get(this.a)};n.Pa=function(){return this.g};n.ud=function(){this.w()};\r\nn.qb=function(){this.c&&(M(this.c),this.c=null);var a=this.S();a&&(this.c=R(a,\"change\",this.ud,this));this.w()};function lk(a,b){a.set(a.a,b)}function mk(a,b){ya(a,La(a.a),a.qb,a);a.a=b;R(a,La(a.a),a.qb,a);a.qb()}function nk(a){if(\"function\"!==typeof a){var b;Array.isArray(a)?b=a:(L(a instanceof yh,41),b=[a]);a=function(){return b}}return a};function ok(a,b,c){return function(d,e,f){var g=new XMLHttpRequest;g.open(\"GET\",\"function\"===typeof a?a(d,e,f):a,!0);\"arraybuffer\"==b.$()&&(g.responseType=\"arraybuffer\");g.onload=function(){if(!g.status||200<=g.status&&300>g.status){var a=b.$(),d;\"json\"==a||\"text\"==a?d=g.responseText:\"xml\"==a?(d=g.responseXML,d||(a=g.responseText,d=(new DOMParser).parseFromString(a,\"application/xml\"))):\"arraybuffer\"==a&&(d=g.response);d&&c.call(this,b.a(d,{featureProjection:f}),b.c(pk(d)))}}.bind(this);g.send()}}\r\nfunction qk(a,b){return ok(a,b,function(a){this.Gb(a)})};function rk(){this.defaultDataProjection=null}function sk(a,b,c){var d;c&&(d={dataProjection:c.dataProjection?c.dataProjection:a.c(pk(b)),featureProjection:c.featureProjection});var e;d&&(e={featureProjection:d.featureProjection,dataProjection:d.dataProjection?d.dataProjection:a.defaultDataProjection,rightHanded:d.rightHanded},d.decimals&&(e.decimals=d.decimals));return e}\r\nfunction tk(a,b){var c=b?Hb(b.featureProjection):null,d=b?Hb(b.dataProjection):null;if(c&&d&&!Tb(c,d))if(a instanceof Wb)c=a.transform(d,c);else{d=Ub(d,c);c=[a[0],a[1],a[0],a[3],a[2],a[1],a[2],a[3]];d(c,c,2);var e=[c[0],c[2],c[4],c[6]],f=[c[1],c[3],c[5],c[7]],c=Math.min.apply(null,e),d=Math.min.apply(null,f),e=Math.max.apply(null,e),f=Math.max.apply(null,f),c=ib(c,d,e,f,void 0)}else c=a;return c};function uk(){this.defaultDataProjection=null}B(uk,rk);function pk(a){return\"string\"===typeof a?(a=JSON.parse(a))?a:null:null!==a?a:null}uk.prototype.$=function(){return\"json\"};uk.prototype.g=function(a,b){return this.b(pk(a),sk(this,a,b))};uk.prototype.a=function(a,b){return this.h(pk(a),sk(this,a,b))};function vk(a,b,c,d,e){var f=NaN,g=NaN,h=(c-b)/d;if(0!==h)if(1==h)f=a[b],g=a[b+1];else if(2==h)f=.5*a[b]+.5*a[b+d],g=.5*a[b+1]+.5*a[b+d+1];else{var g=a[b],h=a[b+1],k=0,f=[0],l;for(l=b+d;l<c;l+=d){var m=a[l],p=a[l+1],k=k+Math.sqrt((m-g)*(m-g)+(p-h)*(p-h));f.push(k);g=m;h=p}c=.5*k;k=0;l=f.length;for(m=!1;k<l;)g=k+(l-k>>1),h=+Ma(f[g],c),0>h?k=g+1:(l=g,m=!h);g=m?k:~k;0>g?(c=(c-f[-g-2])/(f[-g-1]-f[-g-2]),b+=(-g-2)*d,f=a[b],f+=c*(a[b+d]-f),g=a[b+1],g+=c*(a[b+d+1]-g)):(f=a[b+g*d],g=a[b+g*d+1])}return e?\r\n(e[0]=f,e[1]=g,e):[f,g]};function wk(a,b){Yb.call(this);this.a=null;this.h=-1;this.ea(a,b)}B(wk,Yb);n=wk.prototype;n.clone=function(){var a=new wk(null);$b(a,this.c,this.o.slice());a.w();return a};n.za=function(){return ec(this.o,0,this.o.length,this.A)};function Nh(a){if(a.h!=a.b){var b;b=vk(a.o,0,a.o.length,a.A,a.a);a.a=b;a.h=a.b}return a.a}n.Qa=function(a){var b=[];b.length=gc(this.o,0,this.o.length,this.A,a,b,0);a=new wk(null);$b(a,\"XY\",b);a.w();return a};n.$=function(){return\"LineString\"};\r\nn.ea=function(a,b){a?(ac(this,b,a,1),this.o||(this.o=[]),this.o.length=cc(this.o,0,a,this.A)):$b(this,\"XY\",null);this.w()};function xk(a,b){Yb.call(this);this.ua=[];this.ea(a,b)}B(xk,Yb);n=xk.prototype;n.clone=function(){var a=new xk(null),b=this.ua.slice();$b(a,this.c,this.o.slice());a.ua=b;a.w();return a};n.za=function(){return fc(this.o,0,this.ua,this.A)};function Oh(a){var b=[],c=a.o,d=0,e=a.ua;a=a.A;var f,g;f=0;for(g=e.length;f<g;++f){var h=e[f],d=vk(c,d,h,a);Pa(b,d);d=h}return b}\r\nn.Qa=function(a){var b=[],c=[],d=this.o,e=this.ua,f=this.A,g=0,h=0,k,l;k=0;for(l=e.length;k<l;++k){var m=e[k],h=gc(d,g,m,f,a,b,h);c.push(h);g=m}b.length=h;a=new xk(null);$b(a,\"XY\",b);a.ua=c;a.w();return a};n.$=function(){return\"MultiLineString\"};n.ea=function(a,b){if(a){ac(this,b,a,2);this.o||(this.o=[]);var c=dc(this.o,0,a,this.A,this.ua);this.o.length=0===c.length?0:c[c.length-1]}else c=this.ua,$b(this,\"XY\",null),this.ua=c;this.w()};function yk(a,b){Yb.call(this);this.ea(a,b)}B(yk,Yb);yk.prototype.clone=function(){var a=new yk(null);$b(a,this.c,this.o.slice());a.w();return a};yk.prototype.za=function(){return ec(this.o,0,this.o.length,this.A)};yk.prototype.$=function(){return\"MultiPoint\"};yk.prototype.ea=function(a,b){a?(ac(this,b,a,1),this.o||(this.o=[]),this.o.length=cc(this.o,0,a,this.A)):$b(this,\"XY\",null);this.w()};function zk(a,b){Yb.call(this);this.a=[];this.v=-1;this.u=null;this.B=-1;this.h=null;this.ea(a,b)}B(zk,Yb);n=zk.prototype;n.clone=function(){for(var a=new zk(null),b=this.a.length,c=Array(b),d=0;d<b;++d)c[d]=this.a[d].slice();$b(a,this.c,this.o.slice());a.a=c;a.w();return a};n.za=function(a){var b;void 0!==a?(b=Ph(this).slice(),pc(b,this.a,this.A,a)):b=this.o;a=b;b=this.a;var c=this.A,d=0,e=[],f=0,g,h;g=0;for(h=b.length;g<h;++g){var k=b[g];e[f++]=fc(a,d,k,c,e[f]);d=k[k.length-1]}e.length=f;return e};\r\nfunction Qh(a){if(a.v!=a.b){var b=a.o,c=a.a,d=a.A,e=0,f=[],g,h,k;g=0;for(h=c.length;g<h;++g){var l=c[g];k=b;var m=l[0],p=d,q=jb(void 0);k=nb(q,k,e,m,p);f.push((k[0]+k[2])/2,(k[1]+k[3])/2);e=l[l.length-1]}b=Ph(a);c=a.a;d=a.A;g=0;h=[];l=0;for(k=c.length;l<k;++l)e=c[l],h=lc(b,g,e,d,f,2*l,h),g=e[e.length-1];a.u=h;a.v=a.b}return a.u}\r\nfunction Ph(a){if(a.B!=a.b){var b=a.o,c;a:{c=a.a;var d,e;d=0;for(e=c.length;d<e;++d)if(!nc(b,c[d],a.A,void 0)){c=!1;break a}c=!0}c?a.h=b:(a.h=b.slice(),a.h.length=pc(a.h,a.a,a.A));a.B=a.b}return a.h}n.Qa=function(a){var b=[],c=[],d=this.o,e=this.a,f=this.A;a=Math.sqrt(a);var g=0,h=0,k,l;k=0;for(l=e.length;k<l;++k){var m=e[k],p=[],h=hc(d,g,m,f,a,b,h,p);c.push(p);g=m[m.length-1]}b.length=h;d=new zk(null);$b(d,\"XY\",b);d.a=c;d.w();return d};n.$=function(){return\"MultiPolygon\"};\r\nn.ea=function(a,b){if(a){ac(this,b,a,3);this.o||(this.o=[]);var c=this.o,d=this.A,e=this.a,f=0,e=e?e:[],g=0,h,k;h=0;for(k=a.length;h<k;++h)f=dc(c,f,a[h],d,e[g]),e[g++]=f,f=f[f.length-1];e.length=g;0===e.length?this.o.length=0:(c=e[e.length-1],this.o.length=0===c.length?0:c[c.length-1])}else c=this.a,$b(this,\"XY\",null),this.a=c;this.w()};function Ak(a){a=a?a:{};this.defaultDataProjection=null;this.f=a.geometryName}B(Ak,uk);function Bk(a){var b=\"XY\";!0===a.hasZ&&!0===a.hasM?b=\"XYZM\":!0===a.hasZ?b=\"XYZ\":!0===a.hasM&&(b=\"XYM\");return b}\r\nvar Ck={Point:function(a){return void 0!==a.m&&void 0!==a.z?new jc([a.x,a.y,a.z,a.m],\"XYZM\"):void 0!==a.z?new jc([a.x,a.y,a.z],\"XYZ\"):void 0!==a.m?new jc([a.x,a.y,a.m],\"XYM\"):new jc([a.x,a.y])},LineString:function(a){return new wk(a.paths[0],Bk(a))},Polygon:function(a){return new qc(a.rings,Bk(a))},MultiPoint:function(a){return new yk(a.points,Bk(a))},MultiLineString:function(a){return new xk(a.paths,Bk(a))},MultiPolygon:function(a){return new zk(a.rings,Bk(a))}};\r\nAk.prototype.b=function(a,b){var c;if(c=a.geometry){var d;if(\"number\"===typeof c.x&&\"number\"===typeof c.y)d=\"Point\";else if(c.points)d=\"MultiPoint\";else if(c.paths)d=1===c.paths.length?\"LineString\":\"MultiLineString\";else if(c.rings){var e=c.rings,f=Bk(c),g=[];d=[];var h,k;h=0;for(k=e.length;h<k;++h){var l=Oa(e[h]);mc(l,0,l.length,f.length)?g.push([e[h]]):d.push(e[h])}for(;d.length;){e=d.shift();f=!1;for(h=g.length-1;0<=h;h--)if(hb((new ic(g[h][0])).G(),(new ic(e)).G())){g[h].push(e);f=!0;break}f||\r\ng.push([e.reverse()])}c=pa({},c);1===g.length?(d=\"Polygon\",c.rings=g[0]):(d=\"MultiPolygon\",c.rings=g)}c=tk((0,Ck[d])(c),b)}else c=null;g=new kk;this.f&&mk(g,this.f);lk(g,c);b&&b.Tb&&a.attributes[b.Tb]&&(g.g=a.attributes[b.Tb],g.w());a.attributes&&g.l(a.attributes);return g};Ak.prototype.h=function(a,b){var c=b?b:{};if(a.features){var d=[],e=a.features,f,g;c.Tb=a.objectIdFieldName;f=0;for(g=e.length;f<g;++f)d.push(this.b(e[f],c));return d}return[this.b(a,c)]};\r\nAk.prototype.c=function(a){return a.spatialReference&&a.spatialReference.wkid?Hb(\"EPSG:\"+a.spatialReference.wkid):null};function Dk(a){Wb.call(this);this.a=a?a:null;Ek(this)}B(Dk,Wb);function Fk(a){var b,c;if(a.a)for(b=0,c=a.a.length;b<c;++b)ya(a.a[b],\"change\",a.w,a)}function Ek(a){var b,c;if(a.a)for(b=0,c=a.a.length;b<c;++b)R(a.a[b],\"change\",a.w,a)}n=Dk.prototype;n.clone=function(){var a=new Dk(null),b=this.a,c=[],d,e;d=0;for(e=b.length;d<e;++d)c.push(b[d].clone());Fk(a);a.a=c;Ek(a);a.w();return a};n.mb=function(a){jb(a);for(var b=this.a,c=0,d=b.length;c<d;++c)mb(a,b[c].G());return a};\r\nn.Rb=function(a){this.i!=this.b&&(qa(this.f),this.g=0,this.i=this.b);if(0>a||0!==this.g&&a<this.g)return this;var b=a.toString();if(this.f.hasOwnProperty(b))return this.f[b];var c=[],d=this.a,e=!1,f,g;f=0;for(g=d.length;f<g;++f){var h=d[f],k=h.Rb(a);c.push(k);k!==h&&(e=!0)}if(e)return a=new Dk(null),Fk(a),a.a=c,Ek(a),a.w(),this.f[b]=a;this.g=a;return this};n.$=function(){return\"GeometryCollection\"};n.rotate=function(a,b){for(var c=this.a,d=0,e=c.length;d<e;++d)c[d].rotate(a,b);this.w()};\r\nn.scale=function(a,b,c){c||(c=tb(this.G()));for(var d=this.a,e=0,f=d.length;e<f;++e)d[e].scale(a,b,c);this.w()};n.Hb=function(a){var b=this.a,c,d;c=0;for(d=b.length;c<d;++c)b[c].Hb(a);this.w()};n.translate=function(a,b){var c=this.a,d,e;d=0;for(e=c.length;d<e;++d)c[d].translate(a,b);this.w()};n.R=function(){Fk(this);Wb.prototype.R.call(this)};function Gk(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=Hb(a.defaultDataProjection?a.defaultDataProjection:\"EPSG:4326\");this.f=a.geometryName}B(Gk,uk);function Hk(a,b){return a?tk((0,Ik[a.type])(a),b):null}\r\nvar Ik={Point:function(a){return new jc(a.coordinates)},LineString:function(a){return new wk(a.coordinates)},Polygon:function(a){return new qc(a.coordinates)},MultiPoint:function(a){return new yk(a.coordinates)},MultiLineString:function(a){return new xk(a.coordinates)},MultiPolygon:function(a){return new zk(a.coordinates)},GeometryCollection:function(a,b){var c=a.geometries.map(function(a){return Hk(a,b)});return new Dk(c)}};\r\nGk.prototype.b=function(a,b){var c=Hk(a.geometry,b),d=new kk;this.f&&mk(d,this.f);lk(d,c);void 0!==a.id&&(d.g=a.id,d.w());a.properties&&d.l(a.properties);return d};Gk.prototype.h=function(a,b){var c;if(\"Feature\"==a.type)c=[this.b(a,b)];else if(\"FeatureCollection\"==a.type){c=[];var d=a.features,e,f;e=0;for(f=d.length;e<f;++e)c.push(this.b(d[e],b))}else L(!1,35);return c};\r\nGk.prototype.c=function(a){a=a.crs;var b;a?\"name\"==a.type?b=Hb(a.properties.name):\"EPSG\"==a.type?b=Hb(\"EPSG:\"+a.properties.code):L(!1,36):b=this.defaultDataProjection;return b};function Jk(a,b,c,d,e,f){Ga.call(this);this.l=null;this.b=a?a:new Image;null!==d&&(this.b.crossOrigin=d);this.f=f?document.createElement(\"CANVAS\"):null;this.h=f;this.g=null;this.c=e;this.a=c;this.s=b;this.i=!1;2==this.c&&Kk(this)}B(Jk,Ga);function Kk(a){var b=Md(1,1);try{b.drawImage(a.b,0,0),b.getImageData(0,0,1,1)}catch(c){a.i=!0}}Jk.prototype.j=function(){this.c=3;this.g.forEach(M);this.g=null;U(this,\"change\")};\r\nJk.prototype.v=function(){this.c=2;this.a&&(this.b.width=this.a[0],this.b.height=this.a[1]);this.a=[this.b.width,this.b.height];this.g.forEach(M);this.g=null;Kk(this);if(!this.i&&null!==this.h){this.f.width=this.b.width;this.f.height=this.b.height;var a=this.f.getContext(\"2d\");a.drawImage(this.b,0,0);for(var b=a.getImageData(0,0,this.b.width,this.b.height),c=b.data,d=this.h[0]/255,e=this.h[1]/255,f=this.h[2]/255,g=0,h=c.length;g<h;g+=4)c[g]*=d,c[g+1]*=e,c[g+2]*=f;a.putImageData(b,0,0)}U(this,\"change\")};\r\nJk.prototype.Z=function(){return this.f?this.f:this.b};Jk.prototype.load=function(){if(0==this.c){this.c=1;this.g=[R(this.b,\"error\",this.j,this,!0),R(this.b,\"load\",this.v,this,!0)];try{this.b.src=this.s}catch(a){this.j()}}};function Lk(a){a=a||{};this.g=void 0!==a.anchor?a.anchor:[.5,.5];this.f=null;this.a=void 0!==a.anchorOrigin?a.anchorOrigin:\"top-left\";this.l=void 0!==a.anchorXUnits?a.anchorXUnits:\"fraction\";this.i=void 0!==a.anchorYUnits?a.anchorYUnits:\"fraction\";var b=void 0!==a.crossOrigin?a.crossOrigin:null,c=void 0!==a.img?a.img:null,d=void 0!==a.imgSize?a.imgSize:null,e=a.src;L(!(void 0!==e&&c),4);L(!c||c&&d,5);void 0!==e&&0!==e.length||!c||(e=c.src||J(c).toString());L(void 0!==e&&0<e.length,6);var f=void 0!==\r\na.src?0:2,g;void 0!==a.color?(g=a.color,g=Array.isArray(g)?g:pd(g)):g=null;var h=Af.get(e,b,g);h||(h=new Jk(c,e,d,b,f,g),Af.set(e,b,g,h));this.b=h;this.u=void 0!==a.offset?a.offset:[0,0];this.c=void 0!==a.offsetOrigin?a.offsetOrigin:\"top-left\";this.h=null;this.j=void 0!==a.size?a.size:null;oh.call(this,{opacity:void 0!==a.opacity?a.opacity:1,rotation:void 0!==a.rotation?a.rotation:0,scale:void 0!==a.scale?a.scale:1,snapToPixel:void 0!==a.snapToPixel?a.snapToPixel:!0,rotateWithView:void 0!==a.rotateWithView?\r\na.rotateWithView:!1})}B(Lk,oh);n=Lk.prototype;n.eb=function(){if(this.f)return this.f;var a=this.g,b=this.Ka();if(\"fraction\"==this.l||\"fraction\"==this.i){if(!b)return null;a=this.g.slice();\"fraction\"==this.l&&(a[0]*=b[0]);\"fraction\"==this.i&&(a[1]*=b[1])}if(\"top-left\"!=this.a){if(!b)return null;a===this.g&&(a=this.g.slice());if(\"top-right\"==this.a||\"bottom-right\"==this.a)a[0]=-a[0]+b[0];if(\"bottom-left\"==this.a||\"bottom-right\"==this.a)a[1]=-a[1]+b[1]}return this.f=a};n.Z=function(a){return this.b.Z(a)};\r\nn.Ob=function(){return this.b.a};n.ib=function(){return this.b.c};n.ub=function(){var a=this.b;if(!a.l)if(a.i){var b=a.a[0],c=a.a[1],d=Md(b,c);d.fillRect(0,0,b,c);a.l=d.canvas}else a.l=a.b;return a.l};n.pa=function(){if(this.h)return this.h;var a=this.u;if(\"top-left\"!=this.c){var b=this.Ka(),c=this.b.a;if(!b||!c)return null;a=a.slice();if(\"top-right\"==this.c||\"bottom-right\"==this.c)a[0]=c[0]-b[0]-a[0];if(\"bottom-left\"==this.c||\"bottom-right\"==this.c)a[1]=c[1]-b[1]-a[1]}return this.h=a};\r\nn.Ka=function(){return this.j?this.j:this.b.a};n.Vb=function(a,b){return R(this.b,\"change\",a,b)};n.load=function(){this.b.load()};n.bc=function(a,b){ya(this.b,\"change\",a,b)};function Mk(a,b,c){Yb.call(this);Nk(this,a,b?b:0,c)}B(Mk,Yb);Mk.prototype.clone=function(){var a=new Mk(null);$b(a,this.c,this.o.slice());a.w();return a};Mk.prototype.mb=function(a){var b=this.o,c=b[this.A]-b[0];return ib(b[0]-c,b[1]-c,b[0]+c,b[1]+c,a)};Mk.prototype.$=function(){return\"Circle\"};function Nk(a,b,c,d){if(b){ac(a,d,b,0);a.o||(a.o=[]);d=a.o;b=bc(d,b);d[b++]=d[0]+c;var e;c=1;for(e=a.A;c<e;++c)d[b++]=d[c];d.length=b}else $b(a,\"XY\",null);a.w()};function Ok(a,b,c,d,e){Sf.call(this,a,b);this.g=c;this.a=new Image;null!==d&&(this.a.crossOrigin=d);this.c={};this.f=null;this.h=e}B(Ok,Sf);n=Ok.prototype;n.R=function(){1==this.state&&Pk(this);this.b&&Da(this.b);this.state=5;Tf(this);Sf.prototype.R.call(this)};n.Z=function(a){if(void 0!==a){var b=J(a);if(b in this.c)return this.c[b];a=sa(this.c)?this.a:this.a.cloneNode(!1);return this.c[b]=a}return this.a};n.getKey=function(){return this.g};n.ce=function(){this.state=3;Pk(this);Tf(this)};\r\nn.de=function(){this.state=this.a.naturalWidth&&this.a.naturalHeight?2:4;Pk(this);Tf(this)};n.load=function(){if(0==this.state||3==this.state)this.state=1,Tf(this),this.f=[R(this.a,\"error\",this.ce,this,!0),R(this.a,\"load\",this.de,this,!0)],this.h(this,this.g)};function Pk(a){a.f.forEach(M);a.f=null};function Qk(){return[[-Infinity,-Infinity,Infinity,Infinity]]};var Rk;\r\n(function(){var a={},b={Aa:a};(function(c){if(\"object\"===typeof a&&\"undefined\"!==typeof b)b.Aa=c();else{var d;\"undefined\"!==typeof window?d=window:\"undefined\"!==typeof global?d=global:\"undefined\"!==typeof self?d=self:d=this;d.Re=c()}})(function(){return function d(a,b,g){function h(l,p){if(!b[l]){if(!a[l]){var q=\"function\"==typeof require&&require;if(!p&&q)return q(l,!0);if(k)return k(l,!0);q=Error(\"Cannot find module '\"+l+\"'\");throw q.code=\"MODULE_NOT_FOUND\",q;}q=b[l]={Aa:{}};a[l][0].call(q.Aa,function(b){var d=\r\na[l][1][b];return h(d?d:b)},q,q.Aa,d,a,b,g)}return b[l].Aa}for(var k=\"function\"==typeof require&&require,l=0;l<g.length;l++)h(g[l]);return h}({1:[function(a,b){function f(a,b){if(!(this instanceof f))return new f(a,b);this.Db=Math.max(4,a||9);this.gc=Math.max(2,Math.ceil(.4*this.Db));b&&this.ad(b);this.clear()}function g(a,b){h(a,0,a.children.length,b,a)}function h(a,b,d,e,g){g||(g=r(null));g.H=Infinity;g.J=Infinity;g.I=-Infinity;g.L=-Infinity;for(var f;b<d;b++)f=a.children[b],k(g,a.ga?e(f):f);return g}\r\nfunction k(a,b){a.H=Math.min(a.H,b.H);a.J=Math.min(a.J,b.J);a.I=Math.max(a.I,b.I);a.L=Math.max(a.L,b.L)}function l(a,b){return a.H-b.H}function m(a,b){return a.J-b.J}function p(a){return(a.I-a.H)*(a.L-a.J)}function q(a){return a.I-a.H+(a.L-a.J)}function u(a,b){return a.H<=b.H&&a.J<=b.J&&b.I<=a.I&&b.L<=a.L}function w(a,b){return b.H<=a.I&&b.J<=a.L&&b.I>=a.H&&b.L>=a.J}function r(a){return{children:a,height:1,ga:!0,H:Infinity,J:Infinity,I:-Infinity,L:-Infinity}}function x(a,b,d,e,g){for(var f=[b,d],\r\nh;f.length;)d=f.pop(),b=f.pop(),d-b<=e||(h=b+Math.ceil((d-b)/e/2)*e,D(a,h,b,d,g),f.push(b,h,h,d))}b.Aa=f;var D=a(\"quickselect\");f.prototype={all:function(){return this.cc(this.data,[])},search:function(a){var b=this.data,d=[],e=this.la;if(!w(a,b))return d;for(var g=[],f,h,k,l;b;){f=0;for(h=b.children.length;f<h;f++)k=b.children[f],l=b.ga?e(k):k,w(a,l)&&(b.ga?d.push(k):u(a,l)?this.cc(k,d):g.push(k));b=g.pop()}return d},load:function(a){if(!a||!a.length)return this;if(a.length<this.gc){for(var b=0,\r\nd=a.length;b<d;b++)this.Ha(a[b]);return this}a=this.ec(a.slice(),0,a.length-1,0);this.data.children.length?this.data.height===a.height?this.hc(this.data,a):(this.data.height<a.height&&(b=this.data,this.data=a,a=b),this.fc(a,this.data.height-a.height-1,!0)):this.data=a;return this},Ha:function(a){a&&this.fc(a,this.data.height-1);return this},clear:function(){this.data=r([]);return this},remove:function(a,b){if(!a)return this;for(var d=this.data,e=this.la(a),g=[],f=[],h,k,l,m;d||g.length;){d||(d=g.pop(),\r\nk=g[g.length-1],h=f.pop(),m=!0);if(d.ga){a:{l=a;var p=d.children,q=b;if(q){for(var r=0;r<p.length;r++)if(q(l,p[r])){l=r;break a}l=-1}else l=p.indexOf(l)}if(-1!==l){d.children.splice(l,1);g.push(d);this.$c(g);break}}m||d.ga||!u(d,e)?k?(h++,d=k.children[h],m=!1):d=null:(g.push(d),f.push(h),h=0,k=d,d=d.children[0])}return this},la:function(a){return a},Kb:l,Lb:m,toJSON:function(){return this.data},cc:function(a,b){for(var d=[];a;)a.ga?b.push.apply(b,a.children):d.push.apply(d,a.children),a=d.pop();return b},\r\nec:function(a,b,d,e){var f=d-b+1,h=this.Db,k;if(f<=h)return k=r(a.slice(b,d+1)),g(k,this.la),k;e||(e=Math.ceil(Math.log(f)/Math.log(h)),h=Math.ceil(f/Math.pow(h,e-1)));k=r([]);k.ga=!1;k.height=e;var f=Math.ceil(f/h),h=f*Math.ceil(Math.sqrt(h)),l,m,p;for(x(a,b,d,h,this.Kb);b<=d;b+=h)for(m=Math.min(b+h-1,d),x(a,b,m,f,this.Lb),l=b;l<=m;l+=f)p=Math.min(l+f-1,m),k.children.push(this.ec(a,l,p,e-1));g(k,this.la);return k},Zc:function(a,b,d,e){for(var f,g,h,k,l,m,q,r;;){e.push(b);if(b.ga||e.length-1===d)break;\r\nq=r=Infinity;f=0;for(g=b.children.length;f<g;f++)h=b.children[f],l=p(h),m=(Math.max(h.I,a.I)-Math.min(h.H,a.H))*(Math.max(h.L,a.L)-Math.min(h.J,a.J))-l,m<r?(r=m,q=l<q?l:q,k=h):m===r&&l<q&&(q=l,k=h);b=k||b.children[0]}return b},fc:function(a,b,d){var e=this.la;d=d?a:e(a);var e=[],f=this.Zc(d,this.data,b,e);f.children.push(a);for(k(f,d);0<=b;)if(e[b].children.length>this.Db)this.bd(e,b),b--;else break;this.Wc(d,e,b)},bd:function(a,b){var d=a[b],e=d.children.length,f=this.gc;this.Xc(d,f,e);e=this.Yc(d,\r\nf,e);e=r(d.children.splice(e,d.children.length-e));e.height=d.height;e.ga=d.ga;g(d,this.la);g(e,this.la);b?a[b-1].children.push(e):this.hc(d,e)},hc:function(a,b){this.data=r([a,b]);this.data.height=a.height+1;this.data.ga=!1;g(this.data,this.la)},Yc:function(a,b,d){var e,f,g,k,l,m,q;l=m=Infinity;for(e=b;e<=d-b;e++)f=h(a,0,e,this.la),g=h(a,e,d,this.la),k=Math.max(0,Math.min(f.I,g.I)-Math.max(f.H,g.H))*Math.max(0,Math.min(f.L,g.L)-Math.max(f.J,g.J)),f=p(f)+p(g),k<l?(l=k,q=e,m=f<m?f:m):k===l&&f<m&&(m=\r\nf,q=e);return q},Xc:function(a,b,d){var e=a.ga?this.Kb:l,f=a.ga?this.Lb:m,g=this.dc(a,b,d,e);b=this.dc(a,b,d,f);g<b&&a.children.sort(e)},dc:function(a,b,d,e){a.children.sort(e);e=this.la;var f=h(a,0,b,e),g=h(a,d-b,d,e),l=q(f)+q(g),m,p;for(m=b;m<d-b;m++)p=a.children[m],k(f,a.ga?e(p):p),l+=q(f);for(m=d-b-1;m>=b;m--)p=a.children[m],k(g,a.ga?e(p):p),l+=q(g);return l},Wc:function(a,b,d){for(;0<=d;d--)k(b[d],a)},$c:function(a){for(var b=a.length-1,d;0<=b;b--)0===a[b].children.length?0<b?(d=a[b-1].children,\r\nd.splice(d.indexOf(a[b]),1)):this.clear():g(a[b],this.la)},ad:function(a){var b=[\"return a\",\" - b\",\";\"];this.Kb=new Function(\"a\",\"b\",b.join(a[0]));this.Lb=new Function(\"a\",\"b\",b.join(a[1]));this.la=new Function(\"a\",\"return {minX: a\"+a[0]+\", minY: a\"+a[1]+\", maxX: a\"+a[2]+\", maxY: a\"+a[3]+\"};\")}}},{quickselect:2}],2:[function(a,b){function f(a,b,d,e,q){d=d||0;e=e||a.length-1;for(q=q||h;e>d;){if(600<e-d){var u=e-d+1,w=b-d+1,r=Math.log(u),x=.5*Math.exp(2*r/3),r=.5*Math.sqrt(r*x*(u-x)/u)*(0>w-u/2?-1:\r\n1);f(a,b,Math.max(d,Math.floor(b-w*x/u+r)),Math.min(e,Math.floor(b+(u-w)*x/u+r)),q)}u=a[b];w=d;x=e;g(a,d,b);for(0<q(a[e],u)&&g(a,d,e);w<x;){g(a,w,x);w++;for(x--;0>q(a[w],u);)w++;for(;0<q(a[x],u);)x--}0===q(a[d],u)?g(a,d,x):(x++,g(a,x,e));x<=b&&(d=x+1);b<=x&&(e=x-1)}}function g(a,b,d){var e=a[b];a[b]=a[d];a[d]=e}function h(a,b){return a<b?-1:a>b?1:0}b.Aa=f},{}]},{},[1])(1)});Rk=b.Aa})();function Sk(a){this.b=Rk(a);this.a={}}n=Sk.prototype;n.Ha=function(a,b){var c={H:a[0],J:a[1],I:a[2],L:a[3],value:b};this.b.Ha(c);this.a[J(b)]=c};n.load=function(a,b){for(var c=Array(b.length),d=0,e=b.length;d<e;d++){var f=a[d],g=b[d],f={H:f[0],J:f[1],I:f[2],L:f[3],value:g};c[d]=f;this.a[J(g)]=f}this.b.load(c)};n.remove=function(a){a=J(a);var b=this.a[a];delete this.a[a];return null!==this.b.remove(b)};function Tk(a){return a.b.all().map(function(a){return a.value})}\r\nfunction Uk(a,b){return a.b.search({H:b[0],J:b[1],I:b[2],L:b[3]}).map(function(a){return a.value})}function Vk(a,b,c,d){return Wk(Uk(a,b),c,d)}function Wk(a,b,c){for(var d,e=0,f=a.length;e<f&&!(d=b.call(c,a[e]));e++);return d}n.clear=function(){this.b.clear();this.a={}};n.G=function(){var a=this.b.data;return[a.H,a.J,a.I,a.L]};function Xk(a){a=a||{};vf.call(this,{attributions:a.attributions,logo:a.logo,projection:void 0,state:\"ready\",wrapX:void 0!==a.wrapX?a.wrapX:!0});this.j=I;this.s=a.format;this.u=void 0==a.overlaps?!0:a.overlaps;this.B=a.url;void 0!==a.loader?this.j=a.loader:void 0!==this.B&&(L(this.s,7),this.j=qk(this.B,this.s));this.W=void 0!==a.strategy?a.strategy:Qk;var b=void 0!==a.useSpatialIndex?a.useSpatialIndex:!0;this.X=b?new Sk:null;this.v=new Sk;this.ka={};this.c={};this.f={};this.g={};this.a=null;var c,\r\nd;a.features instanceof cd?(c=a.features,d=c.a):Array.isArray(a.features)&&(d=a.features);b||void 0!==c||(c=new cd(d));void 0!==d&&Yk(this,d);void 0!==c&&Zk(this,c)}B(Xk,vf);n=Xk.prototype;n.Fb=function(a){var b=J(a).toString();if($k(this,b,a)){al(this,b,a);var c=a.S();c?(b=c.G(),this.X&&this.X.Ha(b,a)):this.ka[b]=a;U(this,new bl(\"addfeature\",a))}this.w()};function al(a,b,c){a.g[b]=[R(c,\"change\",a.vc,a),R(c,\"propertychange\",a.vc,a)]}\r\nfunction $k(a,b,c){var d=!0,e=c.Pa();void 0!==e?e.toString()in a.c?d=!1:a.c[e.toString()]=c:(L(!(b in a.f),30),a.f[b]=c);return d}n.Gb=function(a){Yk(this,a);this.w()};function Yk(a,b){var c,d,e,f,g=[],h=[],k=[];d=0;for(e=b.length;d<e;d++)f=b[d],c=J(f).toString(),$k(a,c,f)&&h.push(f);d=0;for(e=h.length;d<e;d++){f=h[d];c=J(f).toString();al(a,c,f);var l=f.S();l?(c=l.G(),g.push(c),k.push(f)):a.ka[c]=f}a.X&&a.X.load(g,k);d=0;for(e=h.length;d<e;d++)U(a,new bl(\"addfeature\",h[d]))}\r\nfunction Zk(a,b){var c=!1;R(a,\"addfeature\",function(a){c||(c=!0,b.push(a.feature),c=!1)});R(a,\"removefeature\",function(a){c||(c=!0,b.remove(a.feature),c=!1)});R(b,hd,function(a){c||(c=!0,this.Fb(a.element),c=!1)},a);R(b,id,function(a){if(!c){c=!0;a=a.element;var b=J(a).toString();b in this.ka?delete this.ka[b]:this.X&&this.X.remove(a);this.Zb(a);this.w();c=!1}},a);a.a=b}\r\nn.clear=function(a){if(a){for(var b in this.g)this.g[b].forEach(M);this.a||(this.g={},this.c={},this.f={})}else if(this.X){a=this.Zb;Wk(Tk(this.X),a,this);for(var c in this.ka)this.Zb(this.ka[c])}this.a&&this.a.clear();this.X&&this.X.clear();this.v.clear();this.ka={};U(this,new bl(\"clear\"));this.w()};n.nd=function(a,b){if(this.X)return Wk(Tk(this.X),a,b);if(this.a)return ed(this.a,a,b)};function Qi(a,b,c,d){a.X?Vk(a.X,b,c,d):a.a&&ed(a.a,c,d)}\r\nn.pd=function(){var a;this.a?a=this.a.a:this.X&&(a=Tk(this.X),sa(this.ka)||Pa(a,ra(this.ka)));return a};n.G=function(){return this.X.G()};\r\nn.vc=function(a){a=a.target;var b=J(a).toString(),c=a.S();if(c)if(c=c.G(),b in this.ka)delete this.ka[b],this.X&&this.X.Ha(c,a);else{if(this.X){var d=this.X,e=d.a[J(a)];lb([e.H,e.J,e.I,e.L],c)||(d.remove(a),d.Ha(c,a))}}else b in this.ka||(this.X&&this.X.remove(a),this.ka[b]=a);c=a.Pa();void 0!==c?(c=c.toString(),b in this.f?(delete this.f[b],this.c[c]=a):this.c[c]!==a&&(cl(this,a),this.c[c]=a)):b in this.f||(cl(this,a),this.f[b]=a);this.w();U(this,new bl(\"changefeature\",a))};\r\nfunction Pi(a,b,c,d){var e=a.v;b=a.W(b,c);var f,g;f=0;for(g=b.length;f<g;++f){var h=b[f];Vk(e,h,function(a){return hb(a.extent,h)})||(a.j.call(a,h,c,d),e.Ha(h,{extent:h.slice()}))}}n.Zb=function(a){var b=J(a).toString();this.g[b].forEach(M);delete this.g[b];var c=a.Pa();void 0!==c?delete this.c[c.toString()]:delete this.f[b];U(this,new bl(\"removefeature\",a))};function cl(a,b){for(var c in a.c)if(a.c[c]===b){delete a.c[c];break}}function bl(a,b){T.call(this,a);this.feature=b}B(bl,T);function dl(a,b){T.call(this,a);this.feature=b}B(dl,T);\r\nfunction el(a){ng.call(this,{handleDownEvent:fl,handleEvent:gl,handleUpEvent:hl});this.W=null;this.s=!1;this.Ga=a.source?a.source:null;this.ma=a.features?a.features:null;this.jd=a.snapTolerance?a.snapTolerance:12;this.P=a.type;this.c=il(this.P);this.wa=a.minPoints?a.minPoints:this.c===jl?3:2;this.va=a.maxPoints?a.maxPoints:Infinity;this.Ab=a.finishCondition?a.finishCondition:yb;var b=a.geometryFunction;if(!b)if(\"Circle\"===this.P)b=function(a,b){var c=b?b:new Mk([NaN,NaN]),g=a[0],h=a[1],k=g[0]-h[0],\r\ng=g[1]-h[1];Nk(c,a[0],Math.sqrt(k*k+g*g));return c};else{var c,b=this.c;b===kl?c=jc:b===ll?c=wk:b===jl&&(c=qc);b=function(a,b){var f=b;f?f.ea(a):f=new c(a);return f}}this.u=b;this.D=this.i=this.a=this.j=this.g=this.h=null;this.kd=a.clickTolerance?a.clickTolerance*a.clickTolerance:36;this.ba=new Y({source:new Xk({useSpatialIndex:!1,wrapX:a.wrapX?a.wrapX:!1}),style:a.style?a.style:ml()});this.Fa=a.geometryName;this.gd=a.condition?a.condition:jg;this.na=a.freehandCondition?a.freehandCondition:kg;R(this,\r\nLa(\"active\"),this.kb,this)}B(el,ng);function ml(){var a=Eh();return function(b){return a[b.S().$()]}}el.prototype.setMap=function(a){ng.prototype.setMap.call(this,a);this.kb()};function gl(a){this.c!==ll&&this.c!==jl||!this.na(a)||(this.s=!0);var b=!this.s;this.s&&a.type===qf?(nl(this,a),b=!1):a.type===pf?b=pl(this,a):a.type===jf&&(b=!1);return og.call(this,a)&&b}function fl(a){return this.gd(a)?(this.W=a.pixel,!0):this.s?(this.W=a.pixel,this.h||ql(this,a),!0):!1}\r\nfunction hl(a){this.s=!1;var b=this.W,c=a.pixel,d=b[0]-c[0],b=b[1]-c[1],c=!0;d*d+b*b<=this.kd&&(pl(this,a),this.h?this.c===rl?sl(this):tl(this,a)?this.Ab(a)&&sl(this):nl(this,a):(ql(this,a),this.c===kl&&sl(this)),c=!1);return c}\r\nfunction pl(a,b){if(a.h){var c=b.coordinate,d=a.g.S(),e;a.c===kl?e=a.a:a.c===jl?(e=a.a[0],e=e[e.length-1],tl(a,b)&&(c=a.h.slice())):(e=a.a,e=e[e.length-1]);e[0]=c[0];e[1]=c[1];a.u(a.a,d);a.j&&a.j.S().ea(c);d instanceof qc&&a.c!==jl?(a.i||(a.i=new kk(new wk(null))),0>=d.ja.length?d=null:(c=new ic(null),$b(c,d.c,d.o.slice(0,d.ja[0])),c.w(),d=c),c=a.i.S(),$b(c,d.c,d.o),c.w()):a.D&&(c=a.i.S(),c.ea(a.D));ul(a)}else d=b.coordinate.slice(),a.j?a.j.S().ea(d):(a.j=new kk(new jc(d)),ul(a));return!0}\r\nfunction tl(a,b){var c=!1;if(a.g){var d=!1,e=[a.h];a.c===ll?d=a.a.length>a.wa:a.c===jl&&(d=a.a[0].length>a.wa,e=[a.a[0][0],a.a[0][a.a[0].length-2]]);if(d)for(var d=b.map,f=0,g=e.length;f<g;f++){var h=e[f],k=ug(d,h),l=b.pixel,c=l[0]-k[0],k=l[1]-k[1],l=a.s&&a.na(b)?1:a.jd;if(c=Math.sqrt(c*c+k*k)<=l){a.h=h;break}}}return c}\r\nfunction ql(a,b){var c=b.coordinate;a.h=c;a.c===kl?a.a=c.slice():a.c===jl?(a.a=[[c.slice(),c.slice()]],a.D=a.a[0]):(a.a=[c.slice(),c.slice()],a.c===rl&&(a.D=a.a));a.D&&(a.i=new kk(new wk(a.D)));c=a.u(a.a);a.g=new kk;a.Fa&&mk(a.g,a.Fa);lk(a.g,c);ul(a);U(a,new dl(\"drawstart\",a.g))}\r\nfunction nl(a,b){var c=b.coordinate,d=a.g.S(),e,f;if(a.c===ll)a.h=c.slice(),f=a.a,f.push(c.slice()),e=f.length>a.va,a.u(f,d);else if(a.c===jl){f=a.a[0];f.push(c.slice());if(e=f.length>a.va)a.h=f[0];a.u(a.a,d)}ul(a);e&&sl(a)}\r\nfunction sl(a){var b=vl(a),c=a.a,d=b.S();a.c===ll?(c.pop(),a.u(c,d)):a.c===jl&&(c[0].pop(),c[0].push(c[0][0]),a.u(c,d));\"MultiPoint\"===a.P?lk(b,new yk([c])):\"MultiLineString\"===a.P?lk(b,new xk([c])):\"MultiPolygon\"===a.P&&lk(b,new zk([c]));U(a,new dl(\"drawend\",b));a.ma&&a.ma.push(b);a.Ga&&a.Ga.Fb(b)}function vl(a){a.h=null;var b=a.g;b&&(a.g=null,a.j=null,a.i=null,a.ba.da().clear(!0));return b}el.prototype.B=zb;\r\nfunction ul(a){var b=[];a.g&&b.push(a.g);a.i&&b.push(a.i);a.j&&b.push(a.j);a=a.ba.da();a.clear(!0);a.Gb(b)}el.prototype.kb=function(){var a=this.aa,b=this.get(\"active\");a&&b||vl(this);this.ba.setMap(b?a:null)};function il(a){var b;\"Point\"===a||\"MultiPoint\"===a?b=kl:\"LineString\"===a||\"MultiLineString\"===a?b=ll:\"Polygon\"===a||\"MultiPolygon\"===a?b=jl:\"Circle\"===a&&(b=rl);return b}var kl=\"Point\",ll=\"LineString\",jl=\"Polygon\",rl=\"Circle\";function wl(a,b,c,d,e,f,g,h,k,l,m){Sf.call(this,e,0);this.u=void 0!==m?m:!1;this.v=g;this.s=h;this.f=null;this.c={};this.g=b;this.l=d;this.i=f?f:e;this.a=[];this.Va=null;this.h=0;f=Qc(d,this.i);h=this.l.G();e=this.g.G();f=h?vb(f,h):f;if(0===ob(f))this.state=4;else if((h=a.G())&&(e?e=vb(e,h):e=h),h=d.O(this.i[0]),m=tb(f),d=Ub(c,a)(m,void 0,m.length),h=c.getPointResolution(h,m),m=Lb(c),void 0!==m&&(h*=m),m=Lb(a),void 0!==m&&(h/=m),d=a.getPointResolution(h,d)/h,isFinite(d)&&0<d&&(h/=d),d=h,!isFinite(d)||\r\n0>=d)this.state=4;else if(this.j=new Ji(a,c,f,e,d*(void 0!==l?l:.5)),0===this.j.f.length)this.state=4;else if(this.h=Xc(b,d),c=Li(this.j),e&&(a.b?(c[1]=ia(c[1],e[1],e[3]),c[3]=ia(c[3],e[1],e[3])):c=vb(c,e)),ob(c)){a=Rc(b,c,this.h);for(b=a.H;b<=a.I;b++)for(c=a.J;c<=a.L;c++)(l=k(this.h,b,c,g))&&this.a.push(l);0===this.a.length&&(this.state=4)}else this.state=4}B(wl,Sf);wl.prototype.R=function(){1==this.state&&(this.Va.forEach(M),this.Va=null);Sf.prototype.R.call(this)};\r\nwl.prototype.Z=function(a){if(void 0!==a){var b=J(a);if(b in this.c)return this.c[b];a=sa(this.c)?this.f:this.f.cloneNode(!1);return this.c[b]=a}return this.f};\r\nwl.prototype.Tc=function(){var a=[];this.a.forEach(function(b){b&&2==b.T()&&a.push({extent:Qc(this.g,b.V),image:b.Z()})},this);this.a.length=0;if(0===a.length)this.state=3;else{var b=this.i[0],c=Wc(this.l,b),d=\"number\"===typeof c?c:c[0],c=\"number\"===typeof c?c:c[1],b=this.l.O(b),e=this.g.O(this.h),f=Qc(this.l,this.i);this.f=Ii(d,c,this.v,e,this.g.G(),b,f,this.j,a,this.s,this.u);this.state=2}Tf(this)};\r\nwl.prototype.load=function(){if(0==this.state){this.state=1;Tf(this);var a=0;this.Va=[];this.a.forEach(function(b){var c=b.T();if(0==c||1==c){a++;var d;d=R(b,\"change\",function(){var c=b.T();if(2==c||3==c||4==c)M(d),a--,0===a&&(this.Va.forEach(M),this.Va=null,this.Tc())},this);this.Va.push(d)}},this);this.a.forEach(function(a){0==a.T()&&a.load()});0===a&&K.setTimeout(this.Tc.bind(this),0)}};function xl(a,b){var c=/\\{z\\}/g,d=/\\{x\\}/g,e=/\\{y\\}/g,f=/\\{-y\\}/g;return function(g){if(g)return a.replace(c,g[0].toString()).replace(d,g[1].toString()).replace(e,function(){return(-g[2]-1).toString()}).replace(f,function(){var a=b.a?b.a[g[0]]:null;L(a,55);return(a.L-a.J+1+g[2]).toString()})}}function yl(a,b){for(var c=a.length,d=Array(c),e=0;e<c;++e)d[e]=xl(a[e],b);return zl(d)}function zl(a){return 1===a.length?a[0]:function(b,c,d){if(b)return a[la((b[1]<<b[0])+b[2],a.length)](b,c,d)}}\r\nfunction Al(){};function Bl(a){Xj.call(this);this.g=void 0!==a?a:2048}B(Bl,Xj);function Cl(a){return a.f>a.g}Bl.prototype.Oa=function(a){for(var b,c;Cl(this);){b=this.b.Na;c=b.V[0].toString();var d;if(d=c in a)b=b.V,d=Hc(a[c],b[1],b[2]);if(d)break;else Da(this.pop())}};function Dl(a){vf.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state,wrapX:a.wrapX});this.u=void 0!==a.opaque?a.opaque:!1;this.aa=void 0!==a.tilePixelRatio?a.tilePixelRatio:1;this.tileGrid=void 0!==a.tileGrid?a.tileGrid:null;this.a=new Bl(a.cacheSize);this.g=[0,0];this.Ia=\"\"}B(Dl,vf);n=Dl.prototype;n.Mc=function(){return Cl(this.a)};n.Oa=function(a,b){var c=this.fb(a);c&&c.Oa(b)};\r\nfunction Sh(a,b,c,d,e){b=a.fb(b);if(!b)return!1;for(var f=!0,g,h,k=d.H;k<=d.I;++k)for(var l=d.J;l<=d.L;++l)g=a.ob(c,k,l),h=!1,Uj(b,g)&&(g=b.get(g),(h=2===g.T())&&(h=!1!==e(g))),h||(f=!1);return f}n.nb=function(){return 0};n.getKey=function(){return this.Ia};n.ob=function(a,b,c){return a+\"/\"+b+\"/\"+c};n.Qb=function(){return this.u};n.sa=function(a){return this.tileGrid?this.tileGrid:Zc(a)};n.fb=function(a){var b=this.ia();return b&&!Tb(b,a)?null:this.a};n.pb=function(){return this.aa};\r\nfunction Ni(a,b,c,d){d=a.sa(d);c=a.pb(c);b=Lc(Wc(d,b),a.g);return 1==c?b:Kc(b,c,a.g)}function El(a,b,c){var d=void 0!==c?c:a.ia();c=a.sa(d);if(a.i&&d.c){var e=b;b=e[0];a=Vc(c,e);var d=$c(d),f=a[0],g=a[1];d[0]<=f&&f<=d[2]&&d[1]<=g&&g<=d[3]?b=e:(e=qb(d),a[0]+=e*Math.ceil((d[0]-a[0])/e),b=Yc(c,a,b))}d=b[0];a=b[1];e=b[2];c=c.minZoom>d||d>c.maxZoom?!1:(c=(f=c.G())?Rc(c,f,d):c.a?c.a[d]:null)?Hc(c,a,e):!0;return c?b:null}n.Ja=function(){this.a.clear();this.w()};n.Vc=I;\r\nfunction Fl(a,b){T.call(this,a);this.tile=b}B(Fl,T);function Gl(a){Dl.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tilePixelRatio:a.tilePixelRatio,wrapX:a.wrapX});this.tileLoadFunction=a.tileLoadFunction;this.tileUrlFunction=this.f?this.f.bind(this):Al;this.urls=null;if(a.urls){var b=a.urls;this.urls=b;var c=b.join(\"\\n\");Hl(this,this.f?this.f.bind(this):yl(b,this.tileGrid),c)}else a.url&&this.s(a.url);a.tileUrlFunction&&Hl(this,a.tileUrlFunction)}\r\nB(Gl,Dl);Gl.prototype.v=function(a){a=a.target;switch(a.T()){case 1:U(this,new Fl(\"tileloadstart\",a));break;case 2:U(this,new Fl(\"tileloadend\",a));break;case 3:U(this,new Fl(\"tileloaderror\",a))}};function Hl(a,b,c){a.tileUrlFunction=b;\"undefined\"!==typeof c?a.Ia!==c&&(a.Ia=c,a.w()):a.w()}\r\nGl.prototype.s=function(a){var b=[],c=/\\{(\\d)-(\\d)\\}/.exec(a)||/\\{([a-z])-([a-z])\\}/.exec(a);if(c){var d=c[2].charCodeAt(0),e;for(e=c[1].charCodeAt(0);e<=d;++e)b.push(a.replace(c[0],String.fromCharCode(e)))}else b.push(a);b=this.urls=b;Hl(this,this.f?this.f.bind(this):yl(b,this.tileGrid),a)};Gl.prototype.Vc=function(a,b,c){a=this.ob(a,b,c);Uj(this.a,a)&&this.a.get(a)};function Il(a){Gl.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:Jl,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:a.wrapX});this.crossOrigin=void 0!==a.crossOrigin?a.crossOrigin:null;this.tileClass=void 0!==a.tileClass?a.tileClass:Ok;this.c={};this.j={};this.W=a.reprojectionErrorThreshold}\r\nB(Il,Gl);n=Il.prototype;n.Mc=function(){if(Cl(this.a))return!0;for(var a in this.c)if(Cl(this.c[a]))return!0;return!1};n.Oa=function(a,b){var c=this.fb(a);this.a.Oa(this.a==c?b:{});for(var d in this.c){var e=this.c[d];e.Oa(e==c?b:{})}};n.nb=function(a){return this.ia()&&a&&Tb(this.ia(),a),0};n.Qb=function(a){return this.ia()&&a&&!Tb(this.ia(),a)?!1:Gl.prototype.Qb.call(this,a)};\r\nn.sa=function(a){var b=this.ia();return!this.tileGrid||b&&!Tb(b,a)?(b=J(a).toString(),b in this.j||(this.j[b]=Zc(a)),this.j[b]):this.tileGrid};n.fb=function(a){var b=this.ia();if(!b||Tb(b,a))return this.a;a=J(a).toString();a in this.c||(this.c[a]=new Bl);return this.c[a]};function Kl(a,b,c,d,e,f,g){b=[b,c,d];e=(c=El(a,b,f))?a.tileUrlFunction(c,e,f):void 0;e=new a.tileClass(b,void 0!==e?0:4,void 0!==e?e:\"\",a.crossOrigin,a.tileLoadFunction);e.key=g;R(e,\"change\",a.v,a);return e}\r\nfunction $h(a,b,c,d,e,f){if(a.ia()&&f&&!Tb(a.ia(),f)){var g=a.fb(f);d=[b,c,d];var h;b=a.ob.apply(a,d);Uj(g,b)&&(h=g.get(b));c=a.getKey();if(h&&h.key==c)return h;var k=a.ia(),l=a.sa(k),m=a.sa(f),p=El(a,d,f);a=new wl(k,l,f,m,d,p,a.pb(e),0,function(a,b,c,d){return Ll(this,a,b,c,d,k)}.bind(a),a.W,!1);a.key=c;h?(a.b=h,Zj(g,b,a)):g.set(b,a);return a}return Ll(a,b,c,d,e,f)}\r\nfunction Ll(a,b,c,d,e,f){var g,h=a.ob(b,c,d),k=a.getKey();if(Uj(a.a,h)){if(g=a.a.get(h),g.key!=k){var l=g;g.b&&g.b.key==k?(g=g.b,2==l.T()&&(g.b=l)):(g=Kl(a,b,c,d,e,f,k),2==l.T()?g.b=l:l.b&&2==l.b.T()&&(g.b=l.b,l.b=null));g.b&&(g.b.b=null);Zj(a.a,h,g)}}else g=Kl(a,b,c,d,e,f,k),a.a.set(h,g);return g}function Jl(a,b){a.Z().src=b};function Ml(a){a=a||{};var b=void 0!==a.projection?a.projection:\"EPSG:3857\",c;if(void 0!==a.tileGrid)c=a.tileGrid;else{c={extent:$c(b),maxZoom:a.maxZoom,minZoom:a.minZoom,tileSize:a.tileSize};var d={};pa(d,void 0!==c?c:{});void 0===d.extent&&(d.extent=Hb(\"EPSG:3857\").G());d.resolutions=ad(d.extent,d.maxZoom,d.tileSize);delete d.maxZoom;c=new Mc(d)}Il.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:a.opaque,projection:b,reprojectionErrorThreshold:a.reprojectionErrorThreshold,\r\ntileGrid:c,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0})}B(Ml,Il);function Nl(a,b){var c=[];Object.keys(b).forEach(function(a){null!==b[a]&&void 0!==b[a]&&c.push(a+\"=\"+encodeURIComponent(b[a]))});var d=c.join(\"&\");a=a.replace(/[?&]$/,\"\");a=-1===a.indexOf(\"?\")?a+\"?\":a+\"&\";return a+d};function Ol(a){a=a||{};var b;void 0!==a.attributions?b=a.attributions:b=[Pl];Ml.call(this,{attributions:b,cacheSize:a.cacheSize,crossOrigin:void 0!==a.crossOrigin?a.crossOrigin:\"anonymous\",opaque:void 0!==a.opaque?a.opaque:!0,maxZoom:void 0!==a.maxZoom?a.maxZoom:19,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:\"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png\",wrapX:a.wrapX})}B(Ol,Ml);var Pl=new bd({html:'© <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors.'});function Ql(a){a=a||{};Il.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.B=a.params||{};this.ba=db()}B(Ql,Il);Ql.prototype.pb=function(a){return a};\r\nQl.prototype.f=function(a,b,c){var d=this.tileGrid;d||(d=this.sa(c));if(!(d.b.length<=a[0])){var e=Qc(d,a,this.ba),f=Lc(Wc(d,a[0]),this.g);1!=b&&(f=Kc(f,b,this.g));d={F:\"image\",FORMAT:\"PNG32\",TRANSPARENT:!0};pa(d,this.B);var g=this.urls;g?(c=c.ya.split(\":\").pop(),d.SIZE=f[0]+\",\"+f[1],d.BBOX=e.join(\",\"),d.BBOXSR=c,d.IMAGESR=c,d.DPI=Math.round(d.DPI?d.DPI*b:90*b),a=1==g.length?g[0]:g[la((a[1]<<a[0])+a[2],g.length)],b=a.replace(/MapServer\\/?$/,\"MapServer/export\").replace(/ImageServer\\/?$/,\"ImageServer/exportImage\"),\r\nb==a&&L(!1,50),d=Nl(b,d)):d=void 0;return d}};function Rl(a){this.j=this.l=this.f=null;this.i=void 0!==a.fill?a.fill:null;this.M=[0,0];this.b=a.points;this.c=void 0!==a.radius?a.radius:a.radius1;this.g=void 0!==a.radius2?a.radius2:this.c;this.h=void 0!==a.angle?a.angle:0;this.a=void 0!==a.stroke?a.stroke:null;this.D=this.Y=this.u=null;var b=a.atlasManager,c=\"\",d=\"\",e=0,f=null,g,h=0;this.a&&(g=nd(this.a.a),h=this.a.c,void 0===h&&(h=1),f=this.a.b,pe||(f=null),d=this.a.g,void 0===d&&(d=\"round\"),c=this.a.f,void 0===c&&(c=\"round\"),e=this.a.h,void 0===\r\ne&&(e=10));var k=2*(this.c+h)+1,c={strokeStyle:g,jb:h,size:k,lineCap:c,lineDash:f,lineJoin:d,miterLimit:e};if(void 0===b){var l=Md(k,k);this.l=l.canvas;b=k=this.l.width;this.Qc(c,l,0,0);this.i?this.j=this.l:(l=Md(c.size,c.size),this.j=l.canvas,this.Pc(c,l,0,0))}else k=Math.round(k),(d=!this.i)&&(l=this.Pc.bind(this,c)),e=this.a?qh(this.a):\"-\",f=this.i?rh(this.i):\"-\",this.f&&e==this.f[1]&&f==this.f[2]&&this.c==this.f[3]&&this.g==this.f[4]&&this.h==this.f[5]&&this.b==this.f[6]||(this.f=[\"r\"+e+f+(void 0!==\r\nthis.c?this.c.toString():\"-\")+(void 0!==this.g?this.g.toString():\"-\")+(void 0!==this.h?this.h.toString():\"-\")+(void 0!==this.b?this.b.toString():\"-\"),e,f,this.c,this.g,this.h,this.b]),l=b.add(this.f[0],k,k,this.Qc.bind(this,c),l),this.l=l.image,this.M=[l.offsetX,l.offsetY],b=l.image.width,d?this.j=l.Nd:this.j=this.l;this.u=[k/2,k/2];this.Y=[k,k];this.D=[b,b];oh.call(this,{opacity:1,rotateWithView:void 0!==a.rotateWithView?a.rotateWithView:!1,rotation:void 0!==a.rotation?a.rotation:0,scale:1,snapToPixel:void 0!==\r\na.snapToPixel?a.snapToPixel:!0})}B(Rl,oh);n=Rl.prototype;n.eb=function(){return this.u};n.ub=function(){return this.j};n.Z=function(){return this.l};n.Ob=function(){return this.D};n.ib=function(){return 2};n.pa=function(){return this.M};n.Ka=function(){return this.Y};n.Vb=I;n.load=I;n.bc=I;\r\nn.Qc=function(a,b,c,d){var e;b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.g!==this.c&&(this.b*=2);for(c=0;c<=this.b;c++)d=2*c*Math.PI/this.b-Math.PI/2+this.h,e=0===c%2?this.c:this.g,b.lineTo(a.size/2+e*Math.cos(d),a.size/2+e*Math.sin(d));this.i&&(b.fillStyle=qd(this.i.b),b.fill());this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.lineCap=a.lineCap,b.lineJoin=a.lineJoin,b.miterLimit=a.miterLimit,b.stroke());b.closePath()};\r\nn.Pc=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.g!==this.c&&(this.b*=2);var e;for(c=0;c<=this.b;c++)e=2*c*Math.PI/this.b-Math.PI/2+this.h,d=0===c%2?this.c:this.g,b.lineTo(a.size/2+d*Math.cos(e),a.size/2+d*Math.sin(e));b.fillStyle=kh;b.fill();this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};y(\"ol.format.GeoJSON\",Gk);Gk.prototype.readFeatures=Gk.prototype.a;Gk.prototype.readFeature=Gk.prototype.g;y(\"ol.format.EsriJSON\",Ak);Ak.prototype.readFeatures=Ak.prototype.a;Ak.prototype.readFeature=Ak.prototype.g;y(\"ol.style.Style\",yh);y(\"ol.style.Circle\",ph);y(\"ol.style.RegularShape\",Rl);y(\"ol.style.Fill\",sh);y(\"ol.style.Stroke\",xh);y(\"ol.style.Icon\",Lk);\r\ny(\"ol.style.Text\",function(a){a=a||{};this.b=a.font;this.h=a.rotation;this.g=a.rotateWithView;this.l=a.scale;this.j=a.text;this.C=a.textAlign;this.K=a.textBaseline;this.f=void 0!==a.fill?a.fill:new sh({color:\"#333\"});this.i=void 0!==a.stroke?a.stroke:null;this.a=void 0!==a.offsetX?a.offsetX:0;this.c=void 0!==a.offsetY?a.offsetY:0});y(\"ol.View\",uc);uc.prototype.on=uc.prototype.Y;uc.prototype.getZoom=uc.prototype.rd;uc.prototype.setZoom=uc.prototype.ye;uc.prototype.getCenter=uc.prototype.qa;\r\nuc.prototype.setCenter=uc.prototype.xa;uc.prototype.calculateExtent=uc.prototype.lc;uc.prototype.getProjection=uc.prototype.ia;uc.prototype.fit=uc.prototype.md;y(\"ol.control.defaults\",ee);y(\"ol.layer.Tile\",W);W.prototype.getVisible=W.prototype.gb;W.prototype.setVisible=W.prototype.Cc;W.prototype.getZIndex=W.prototype.Yb;W.prototype.setZIndex=W.prototype.Dc;W.prototype.getOpacity=W.prototype.Xb;W.prototype.setOpacity=W.prototype.Bc;W.prototype.getSource=W.prototype.da;W.prototype.setSource=W.prototype.$b;\r\nW.prototype.on=W.prototype.Y;y(\"ol.layer.Vector\",Y);Y.prototype.getVisible=Y.prototype.gb;Y.prototype.setVisible=Y.prototype.Cc;Y.prototype.getSource=Y.prototype.da;Y.prototype.setStyle=Y.prototype.v;Y.prototype.getZIndex=Y.prototype.Yb;Y.prototype.setZIndex=Y.prototype.Dc;Y.prototype.getOpacity=Y.prototype.Xb;Y.prototype.setOpacity=Y.prototype.Bc;Y.prototype.getSource=Y.prototype.da;Y.prototype.setSource=Y.prototype.$b;Y.prototype.on=Y.prototype.Y;y(\"ol.source.OSM\",Ol);Ol.prototype.refresh=Ol.prototype.Ja;\r\ny(\"ol.source.XYZ\",Ml);Ml.prototype.refresh=Ml.prototype.Ja;Ml.prototype.setUrl=Ml.prototype.s;Ml.prototype.refresh=Ml.prototype.Ja;y(\"ol.Map\",Z);Z.prototype.on=Z.prototype.Y;Z.prototype.getTarget=Z.prototype.Wb;Z.prototype.getTargetElement=Z.prototype.Ra;Z.prototype.getView=Z.prototype.U;Z.prototype.addOverlay=Z.prototype.fd;Z.prototype.addLayer=Z.prototype.ed;Z.prototype.removeLayer=Z.prototype.te;Z.prototype.getEventPixel=Z.prototype.uc;Z.prototype.hasFeatureAtPixel=Z.prototype.Md;\r\nZ.prototype.getSize=Z.prototype.Ta;Z.prototype.updateSize=Z.prototype.yb;Z.prototype.forEachFeatureAtPixel=Z.prototype.od;Z.prototype.addInteraction=Z.prototype.dd;Z.prototype.removeInteraction=Z.prototype.se;Z.prototype.beforeRender=Z.prototype.oa;Z.prototype.addControl=Z.prototype.cd;Z.prototype.once=Z.prototype.hd;Z.prototype.renderSync=Z.prototype.we;y(\"ol.source.Vector\",Xk);Xk.prototype.getFeatures=Xk.prototype.pd;Xk.prototype.getExtent=Xk.prototype.G;Xk.prototype.refresh=Xk.prototype.Ja;\r\nXk.prototype.addFeatures=Xk.prototype.Gb;Xk.prototype.addFeature=Xk.prototype.Fb;Xk.prototype.clear=Xk.prototype.clear;Xk.prototype.forEachFeature=Xk.prototype.nd;Xk.prototype.refresh=Xk.prototype.Ja;y(\"ol.source.TileArcGISRest\",Ql);Ql.prototype.refresh=Ql.prototype.Ja;y(\"ol.Overlay\",gk);gk.prototype.setPosition=gk.prototype.Ac;y(\"ol.Feature\",kk);kk.prototype.getProperties=kk.prototype.Ea;kk.prototype.setProperties=kk.prototype.l;kk.prototype.getGeometry=kk.prototype.S;y(\"ol.geom.Point\",jc);\r\njc.prototype.transform=jc.prototype.transform;jc.prototype.getCoordinates=jc.prototype.za;jc.prototype.getExtent=jc.prototype.G;y(\"ol.geom.Polygon\",qc);qc.prototype.getCoordinates=qc.prototype.za;qc.prototype.getExtent=qc.prototype.G;qc.prototype.transform=qc.prototype.transform;y(\"ol.geom.LineString\",wk);wk.prototype.getCoordinates=wk.prototype.za;wk.prototype.getExtent=wk.prototype.G;wk.prototype.transform=wk.prototype.transform;y(\"ol.proj.Projection\",Eb);Eb.prototype.getCode=Eb.prototype.l;\r\ny(\"ol.interaction.Draw\",el);el.prototype.on=el.prototype.Y;y(\"ol.animation.pan\",Dc);y(\"ol.control.FullScreen\",Xd);y(\"ol.easing.inAndOut\",Bc);\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/custom-ol/ol/ol-build.js\n ** module id = 5\n ** module chunks = 0 2 3 7\n **/","/*!\n * jQuery JavaScript Library v2.2.3\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-04-05T19:26Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\"use strict\";\nvar arr = [];\n\nvar document = window.document;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"2.2.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\tvar realStringObj = obj && obj.toString();\n\t\treturn !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Not own constructor property must be Object\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj, \"constructor\" ) &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype || {}, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf( \"use strict\" ) === 1 ) {\n\t\t\t\tscript = document.createElement( \"script\" );\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\n\t\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t\t// and removal by using an indirect global eval\n\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\n// JSHint would error on this code due to the Symbol not being defined in ES5.\n// Defining this global in .jshintrc would create a danger of using the global\n// unguarded in another place, it seems safer to just disable JSHint for these\n// three lines.\n/* jshint ignore: start */\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n/* jshint ignore: end */\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, nidselect, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rescape, \"\\\\$&\" );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\tnidselect = ridentifier.test( nid ) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = nidselect + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( (parent = document.defaultView) && parent.top !== parent ) {\n\t\t// Support: IE 11\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( document.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\treturn m ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( (oldCache = uniqueCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/ );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && ( pos ?\n\t\t\t\t\tpos.index( cur ) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnotwhite = ( /\\S+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ) ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis === promise ? newDefer.promise() : this,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add( function() {\n\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 ||\n\t\t\t\t( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred.\n\t\t\t// If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) )\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n} );\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n} );\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called\n\t\t// after the browser event has already occurred.\n\t\t// Support: IE9-10 only\n\t\t// Older IE sometimes signals \"interactive\" too soon\n\t\tif ( document.readyState === \"complete\" ||\n\t\t\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\twindow.setTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tregister: function( owner, initial ) {\n\t\tvar value = initial || {};\n\n\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t// use plain assignment\n\t\tif ( owner.nodeType ) {\n\t\t\towner[ this.expando ] = value;\n\n\t\t// Otherwise secure it in a non-enumerable, non-writable property\n\t\t// configurability must be true to allow the property to be\n\t\t// deleted with the delete operator\n\t\t} else {\n\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\tvalue: value,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true\n\t\t\t} );\n\t\t}\n\t\treturn owner[ this.expando ];\n\t},\n\tcache: function( owner ) {\n\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return an empty object.\n\t\tif ( !acceptData( owner ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\t\t\towner[ this.expando ] && owner[ this.expando ][ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase( key ) );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.register( owner );\n\n\t\t} else {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <= 35-45+\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=378607\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data, camelKey;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = dataUser.get( elem, key ) ||\n\n\t\t\t\t\t// Try to find dashed key if it exists (gh-2779)\n\t\t\t\t\t// This is for 2.2.x only\n\t\t\t\t\tdataUser.get( elem, key.replace( rmultiDash, \"-$&\" ).toLowerCase() );\n\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = dataUser.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tcamelKey = jQuery.camelCase( key );\n\t\t\tthis.each( function() {\n\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = dataUser.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdataUser.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf( \"-\" ) > -1 && data !== undefined ) {\n\t\t\t\t\tdataUser.set( this, key, value );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" ||\n\t\t\t!jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() { return tween.cur(); } :\n\t\t\tfunction() { return jQuery.css( elem, prop, \"\" ); },\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([\\w:-]+)/ );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE9\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE9-11+\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret = typeof context.getElementsByTagName !== \"undefined\" ?\n\t\t\tcontext.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== \"undefined\" ?\n\t\t\t\tcontext.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0-4.3, Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE9\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Support (at least): Chrome, IE9\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t//\n\t\t// Support: Firefox<=42+\n\t\t// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)\n\t\tif ( delegateCount && cur.nodeType &&\n\t\t\t( event.type !== \"click\" || isNaN( event.button ) || event.button < 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== \"click\" ) ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matches } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: ( \"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase \" +\n\t\t\"metaKey relatedTarget shiftKey target timeStamp view which\" ).split( \" \" ),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split( \" \" ),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: ( \"button buttons clientX clientY offsetX offsetY pageX pageY \" +\n\t\t\t\"screenX screenY toElement\" ).split( \" \" ),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX +\n\t\t\t\t\t( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -\n\t\t\t\t\t( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY +\n\t\t\t\t\t( doc && doc.scrollTop || body && body.scrollTop || 0 ) -\n\t\t\t\t\t( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://code.google.com/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi,\n\n\t// Support: IE 10-11, Edge 10240+\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName( \"tbody\" )[ 0 ] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement( \"tbody\" ) ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\n\t// Keep domManip exposed until 3.0 (gh-2225)\n\tdomManip: domManip,\n\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\n\nvar iframe,\n\telemdisplay = {\n\n\t\t// Support: Firefox\n\t\t// We have to pre-define these values for FF (#10227)\n\t\tHTML: \"block\",\n\t\tBODY: \"block\"\n\t};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\tdisplay = jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" ) )\n\t\t\t\t.appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = iframe[ 0 ].contentDocument;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\nvar rmargin = ( /^margin/ );\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar documentElement = document.documentElement;\n\n\n\n( function() {\n\tvar pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE9-11+\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tcontainer.style.cssText = \"border:0;width:8px;height:0;top:0;left:-9999px;\" +\n\t\t\"padding:0;margin-top:1px;position:absolute\";\n\tcontainer.appendChild( div );\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\t\tdiv.style.cssText =\n\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;\" +\n\t\t\t\"position:relative;display:block;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"top:1%;width:50%\";\n\t\tdiv.innerHTML = \"\";\n\t\tdocumentElement.appendChild( container );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\t\treliableMarginLeftVal = divStyle.marginLeft === \"2px\";\n\t\tboxSizingReliableVal = divStyle.width === \"4px\";\n\n\t\t// Support: Android 4.0 - 4.3 only\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.marginRight = \"50%\";\n\t\tpixelMarginRightVal = divStyle.marginRight === \"4px\";\n\n\t\tdocumentElement.removeChild( container );\n\t}\n\n\tjQuery.extend( support, {\n\t\tpixelPosition: function() {\n\n\t\t\t// This test is executed only once but we still do memoizing\n\t\t\t// since we can use the boxSizingReliable pre-computing.\n\t\t\t// No need to check if the test was already performed, though.\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\tboxSizingReliable: function() {\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelMarginRight: function() {\n\n\t\t\t// Support: Android 4.0-4.3\n\t\t\t// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal\n\t\t\t// since that compresses better and they're computed together anyway.\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn pixelMarginRightVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\n\t\t\t// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\treliableMarginRight: function() {\n\n\t\t\t// Support: Android 2.3\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t// This support function is only executed once so no memoizing is needed.\n\t\t\tvar ret,\n\t\t\t\tmarginDiv = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\tmarginDiv.style.cssText = div.style.cssText =\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;box-sizing:content-box;\" +\n\t\t\t\t\"display:block;margin:0;border:0;padding:0\";\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\t\t\tdocumentElement.appendChild( container );\n\n\t\t\tret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );\n\n\t\t\tdocumentElement.removeChild( container );\n\t\t\tdiv.removeChild( marginDiv );\n\n\t\t\treturn ret;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;\n\n\t// Support: Opera 12.1x only\n\t// Fall back to style even without computed\n\t// computed is undefined for elems on document fragments\n\tif ( ( ret === \"\" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\tret = jQuery.style( elem, name );\n\t}\n\n\t// Support: IE9\n\t// getPropertyValue is only needed for .css('filter') (#12537)\n\tif ( computed ) {\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// http://dev.w3.org/csswg/cssom/#resolved-values\n\t\tif ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE9-11+\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// At this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// At this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// At this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// Support: IE11 only\n\t// In IE 11 fullscreen elements inside of an iframe have\n\t// 100x too small dimensions (gh-1764).\n\tif ( document.msFullscreenElement && window.top !== window ) {\n\n\t\t// Support: IE11 only\n\t\t// Running getBoundingClientRect on a disconnected node\n\t\t// in IE throws an error.\n\t\tif ( elem.getClientRects().length ) {\n\t\t\tval = Math.round( elem.getBoundingClientRect()[ name ] * 100 );\n\t\t}\n\t}\n\n\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test( val ) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// Use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = dataPriv.get( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = dataPriv.access(\n\t\t\t\t\telem,\n\t\t\t\t\t\"olddisplay\",\n\t\t\t\t\tdefaultDisplay( elem.nodeName )\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display !== \"none\" || !hidden ) {\n\t\t\t\tdataPriv.set(\n\t\t\t\t\telem,\n\t\t\t\t\t\"olddisplay\",\n\t\t\t\t\thidden ? display : jQuery.css( elem, \"display\" )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t\"float\": \"cssFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tstyle[ name ] = value;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\t\t\t\t\telem.offsetWidth === 0 ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = extra && getStyles( elem ),\n\t\t\t\tsubtract = extra && augmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ name ] = value;\n\t\t\t\tvalue = jQuery.css( elem, name );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// Support: Android 2.3\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE9\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE9-10 do not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tdataPriv.get( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\t\t\tstyle.display = \"inline-block\";\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show\n\t\t\t\t// and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// Store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done( function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t} );\n\t\t}\n\t\tanim.done( function() {\n\t\t\tvar prop;\n\n\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t} );\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( ( display === \"none\" ? defaultDisplay( elem.nodeName ) : display ) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( jQuery.isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tjQuery.proxy( result.stop, result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnotwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ?\n\t\topt.duration : opt.duration in jQuery.fx.speeds ?\n\t\t\tjQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\twindow.clearInterval( timerId );\n\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: iOS<=5.1, Android<=4.2+\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE<=11+\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: Android<=2.3\n\t// Options inside disabled selects are incorrectly marked as disabled\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<=11+\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tjQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle;\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ name ];\n\t\t\tattrHandle[ name ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tname.toLowerCase() :\n\t\t\t\tnull;\n\t\t\tattrHandle[ name ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\t\trclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t\t0 :\n\t\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnotwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + curValue + \" \" ).replace( rclass, \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnotwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + curValue + \" \" ).replace( rclass, \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( type === \"string\" ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + getClass( elem ) + \" \" ).replace( rclass, \" \" )\n\t\t\t\t\t.indexOf( className ) > -1\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g,\n\trspaces = /[\\x20\\t\\r\\n\\f]+/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\n\t\t\t\t\t// Handle most common string cases\n\t\t\t\t\tret.replace( rreturn, \"\" ) :\n\n\t\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) ).replace( rspaces, \" \" );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ?\n\t\t\t\t\t\t\t\t!option.disabled : option.getAttribute( \"disabled\" ) === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\n\t\t\t\t// Previously, `originalEvent: {}` was set here, so stopPropagation call\n\t\t\t\t// would not be triggered on donor event, since in our own\n\t\t\t\t// jQuery.event.stopPropagation function we had a check for existence of\n\t\t\t\t// originalEvent.stopPropagation method, so, consequently it would be a noop.\n\t\t\t\t//\n\t\t\t\t// But now, this \"simulate\" function is used only for events\n\t\t\t\t// for which stopPropagation() is noop, so there is no need for that anymore.\n\t\t\t\t//\n\t\t\t\t// For the 1.x branch though, guard for \"click\" and \"submit\"\n\t\t\t\t// events is still used, but was moved to jQuery.event.stopPropagation function\n\t\t\t\t// because `originalEvent` should point to the original event for the constancy\n\t\t\t\t// with other events and for more focused logic\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\n// Support: Firefox\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome, Safari\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = jQuery.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Support: Android 2.3\n// Workaround failure to string-cast null input\njQuery.parseJSON = function( data ) {\n\treturn JSON.parse( data + \"\" );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE9\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" ).replace( rhash, \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE8-11+\n\t\t\t// IE throws exception if url is malformed, e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE8-11+\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapAll( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( this[ 0 ] ) {\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each( function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t} ).end();\n\t}\n} );\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\treturn !jQuery.expr.filters.visible( elem );\n};\njQuery.expr.filters.visible = function( elem ) {\n\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\t// Use OR instead of AND as the element is not visible if either is true\n\t// See tickets #10406 and #13132\n\treturn elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t} ) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE9\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE9\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = callback( \"error\" );\n\n\t\t\t\t// Support: IE9\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = jQuery.trim( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\telem = this[ 0 ],\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\tbox = elem.getBoundingClientRect();\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top + win.pageYOffset - docElem.clientTop,\n\t\t\tleft: box.left + win.pageXOffset - docElem.clientLeft\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n\t\t// because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume getBoundingClientRect is there when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari<7-8+, Chrome<37-44+\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\tsize: function() {\n\t\treturn this.length;\n\t}\n} );\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\nreturn jQuery;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/jquery/dist/jquery.js\n ** module id = 6\n ** module chunks = 0 2 3 4 5 7 8\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport MapMoveCls from './mapMoveCls';\r\n\r\n/**\r\n * The single map move object catch is that it is common to multimap pages\r\n * @type {MapMoveCls}\r\n */\r\n\r\nexport const mapMove = new MapMoveCls();\r\nexport default mapMove;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapMove.ts\n **/","import LayerBaseVector from \"../layers/LayerBaseVector\";\r\nimport MapInteractionBase from './mapInteractionBase';\r\nimport * as checkDefined from '../util/checkDefined';\r\nimport provide from '../util/provide';\r\nimport makeGuid from '../util/makeGuid';\r\nimport ol from 'custom-ol';\r\nimport Timer = NodeJS.Timer;\r\nconst $ = require('jquery');\r\nconst nm = provide('olHelpers');\r\n\r\n\r\nexport interface extentObject{\r\n minX: number;\r\n minY: number;\r\n maxX: number;\r\n maxY: number;\r\n}\r\n\r\nexport interface mapMoveCallbackFunction{\r\n /**\r\n *\r\n * @param extent extent as predefined object minX, minX, maxX, maxY\r\n * @param zoomLevel current zoom level\r\n * @param evtType the event type 'change:center', 'change:resolution'\r\n */\r\n (extent: extentObject, zoomLevel: number, evtType?: string): any\r\n}\r\n\r\n\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nexport class MapMoveCls extends MapInteractionBase {\r\n _mapExtent: extentObject;\r\n _zoomLevel: number;\r\n _lookupLayer: Object;\r\n _arrLayer: Array<LayerBaseVector>;\r\n _arrLyrTimeout: Array<Timer>;\r\n _mapMoveCallbackTimeout: Array<Timer>;\r\n _mapMoveCallbackDelays: Array<number>;\r\n _mapMoveCallbacksLookup: Object;\r\n _mapMoveCallbackContext: Array<Object>;\r\n _mapMoveCallbacks: Array<mapMoveCallbackFunction>;\r\n _arrLyrRequest: Array<any>;\r\n\r\n /**\r\n * constructor called implicitly\r\n */\r\n constructor() {\r\n super('map move');\r\n this._arrLyrRequest = [];\r\n this._arrLyrTimeout = [];\r\n this._arrLayer = [];\r\n this._lookupLayer = {};\r\n\r\n this._mapMoveCallbacks = [];\r\n this._mapMoveCallbacksLookup = {};\r\n this._mapMoveCallbackDelays = [];\r\n this._mapMoveCallbackContext = [];\r\n this._mapMoveCallbackTimeout = [];\r\n\r\n this._mapExtent = undefined;\r\n this._zoomLevel = undefined;\r\n\r\n }\r\n\r\n /**\r\n * initialize the map move object\r\n * @param theMap - the ol map\r\n */\r\n init(theMap: ol.Map){\r\n super.init(theMap);\r\n\r\n this.map.getView().on(['change:center', 'change:resolution'], (e) =>{\r\n\r\n this._updateMapExtent();\r\n\r\n // trigger the layer updates\r\n for (let i = 0; i < this._arrLayer.length; i++) {\r\n this.triggerLyrLoad(this._arrLayer[i], i, e.type);\r\n }\r\n\r\n // trigger the map callbacks\r\n for (let i = 0; i < this._mapMoveCallbacks.length; i++) {\r\n this.triggerMoveCallback(i, e.type);\r\n }\r\n });\r\n }\r\n\r\n _updateMapExtent() {\r\n let theView = this.map.getView();\r\n this._zoomLevel = theView.getZoom();\r\n\r\n let extentArray = theView.calculateExtent(this.map.getSize());\r\n\r\n this._mapExtent = {\r\n minX: extentArray[0],\r\n minY: extentArray[1],\r\n maxX: extentArray[2],\r\n maxY: extentArray[3]\r\n };\r\n }\r\n\r\n /**\r\n * return the map extent\r\n */\r\n get mapExtent() {\r\n if (!this._mapExtent) {\r\n this._updateMapExtent();\r\n }\r\n\r\n return this._mapExtent;\r\n }\r\n\r\n /**\r\n * Trigger the layer load\r\n * @param lyr the layer being acted on\r\n * @param index index of the layer\r\n * @param eventType the event triggering the load, as 'change:center' or 'change:resolution'\r\n */\r\n triggerLyrLoad(lyr: LayerBaseVector, index?: number, eventType?: string) {\r\n\r\n if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n throw 'need to define lyr or index';\r\n } else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n index = this._arrLayer.indexOf(lyr);\r\n } else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n lyr = this._arrLayer[index];\r\n }\r\n\r\n // clear the timeout\r\n if (this._arrLyrTimeout[index] != null) {\r\n clearTimeout(this._arrLyrTimeout[index]);\r\n this._arrLyrTimeout[index] = null;\r\n }\r\n\r\n // abort if necessary and clear the request\r\n if (this._arrLyrRequest[index] != null && this._arrLyrRequest[index] != 4) {\r\n this._arrLyrRequest[index].abort();\r\n this._arrLyrRequest[index] = null;\r\n }\r\n\r\n // dummy callback used if before load returns false\r\n let callbackFunc = function () {};\r\n\r\n if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n\r\n let _this = this;\r\n\r\n callbackFunc = function () {\r\n function innerFunction(theLayer, theIndex) {\r\n let _innerThis = this;\r\n this._arrLyrRequest[theIndex] = $.get(\r\n theLayer.url,\r\n theLayer.mapMoveParams,\r\n function (d) {\r\n /**\r\n * @type {LayerBaseVector}\r\n */\r\n theLayer.mapMoveCallback(d);\r\n theLayer.loadCallback();\r\n }, 'json').fail(\r\n function (jqXHR) {\r\n if (jqXHR.statusText != 'abort') {\r\n console.log('failed');\r\n console.log(theLayer.url);\r\n console.log(theLayer.mapMoveParams);\r\n }\r\n }).always(\r\n function () {\r\n _innerThis._arrLyrTimeout[theIndex] = null;\r\n _innerThis._arrLyrRequest[theIndex] = null;\r\n });\r\n }\r\n innerFunction.call(_this, lyr, index);\r\n };\r\n } else {\r\n lyr.clear();\r\n }\r\n this._arrLyrTimeout[index] = setTimeout(callbackFunc, lyr.onDemandDelay);\r\n }\r\n\r\n /**\r\n * trigger the map move call back at the given index\r\n * @param ind - the index of the layer\r\n * @param eventType=undefined the event triggering the load as 'change:center' or 'change:resolution'\r\n * @param functionId=undefined the function id used to reference the added callback function\r\n */\r\n triggerMoveCallback(ind: number, eventType?: string, functionId?: string) {\r\n\r\n if (typeof ind == 'undefined' && typeof functionId == 'undefined'){\r\n throw 'either the function index or the id must be defined';\r\n }\r\n\r\n if (typeof ind !== 'number'){\r\n ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n }\r\n\r\n if (ind < 0){\r\n console.log('function not found');\r\n\r\n return;\r\n }\r\n\r\n // clear the timeout\r\n if (this._mapMoveCallbackTimeout[ind] != null) {\r\n clearTimeout(this._mapMoveCallbackTimeout[ind]);\r\n this._mapMoveCallbackTimeout[ind] = null;\r\n }\r\n\r\n let ctx = this._mapMoveCallbackContext[ind];\r\n let theFunc = this._mapMoveCallbacks[ind];\r\n\r\n let _this = this;\r\n\r\n let f = function () {\r\n if (ctx !== null) {\r\n theFunc.call(ctx, _this._mapExtent, _this._zoomLevel, eventType);\r\n } else {\r\n theFunc(_this._mapExtent, _this._zoomLevel, eventType);\r\n }\r\n };\r\n\r\n this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\r\n }\r\n\r\n /**\r\n * Add a layer to the interaction\r\n * @param lyr - layer to add\r\n * @param triggerOnAdd - if the layer should be loaded on add\r\n */\r\n addVectorLayer(lyr: LayerBaseVector, triggerOnAdd: boolean = true) {\r\n if (this._arrLayer.indexOf(lyr) > -1) {\r\n console.log('already added ' + lyr.name + ' to map move');\r\n\r\n return;\r\n }\r\n this._checkInit();\r\n\r\n this._arrLyrRequest.push(null);\r\n this._arrLyrTimeout.push(null);\r\n this._arrLayer.push(lyr);\r\n this._lookupLayer[lyr.id] = lyr;\r\n\r\n triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\r\n\r\n if (triggerOnAdd) {\r\n if (this._mapExtent === undefined) {\r\n this._updateMapExtent();\r\n }\r\n this.triggerLyrLoad(lyr, this._arrLayer.length - 1);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * add a callback to the map move event\r\n * @param func - callback function\r\n * @param context - the context to use for this function\r\n * @param delay=50 the delay before call load\r\n * @param triggerOnAdd if the layer should be loaded on add to mapMove\r\n * @param functionId optional id to reference the function later for outside triggering\r\n */\r\n addCallback(func: mapMoveCallbackFunction, context?: any, delay?: number, triggerOnAdd? : boolean, functionId?: string) {\r\n\r\n if (this._mapMoveCallbacks.indexOf(func) > -1) {\r\n console.log('this function already added to map move');\r\n return;\r\n }\r\n this._checkInit();\r\n if (!functionId){\r\n functionId = makeGuid();\r\n }\r\n\r\n this._mapMoveCallbacks.push(func);\r\n this._mapMoveCallbacksLookup[functionId] = functionId;\r\n this._mapMoveCallbackDelays.push(typeof delay == 'number' ? delay : 50);\r\n this._mapMoveCallbackContext.push(checkDefined.definedAndNotNull(context) ? context : null);\r\n this._mapMoveCallbackTimeout.push(null);\r\n\r\n triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\r\n\r\n if (triggerOnAdd) {\r\n if (this._mapExtent === undefined) {\r\n this._updateMapExtent();\r\n }\r\n this.triggerMoveCallback(this._mapMoveCallbacks.length - 1);\r\n }\r\n }\r\n}\r\n\r\nnm.MapMoveCls = MapMoveCls;\r\nexport default MapMoveCls;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapMoveCls.ts\n **/","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nconst nm = provide('olHelpers');\r\n\r\n\r\n\r\n/**\r\n * base interaction\r\n */\r\nexport class MapInteractionBase {\r\n _map: ol.Map;\r\n _initialized: boolean;\r\n _subtype: string;\r\n\r\n /**\r\n * map interaction base\r\n * @param subtype - the interaction subtype\r\n */\r\n constructor(subtype: string) {\r\n this._map = null;\r\n this._initialized = false;\r\n this._subtype = subtype;\r\n }\r\n\r\n /**\r\n * base initializer, returns true for already initialized\r\n * @param theMap - the ol Map\r\n * @returns true for already initialized\r\n */\r\n init(theMap: ol.Map){\r\n if (!this._initialized){\r\n this._map = theMap;\r\n this._initialized = true;\r\n }\r\n }\r\n\r\n /**\r\n * get reference to the ol map object\r\n * @returns {ol.Map} the map object\r\n */\r\n get map() {\r\n return this._map;\r\n }\r\n\r\n /**\r\n * get if is initialized\r\n * @returns {boolean} is initialized\r\n */\r\n get initialized() {\r\n return this._initialized;\r\n }\r\n\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n * @protected\r\n */\r\n _checkInit() {\r\n if (!this.initialized) {\r\n let msg = `${this._subtype} object not initialized`;\r\n alert(msg);\r\n console.log(msg);\r\n throw msg;\r\n }\r\n }\r\n\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n */\r\n checkInit(){\r\n this._checkInit();\r\n }\r\n}\r\n\r\nnm.MapInteractionBase = MapInteractionBase;\r\nexport default MapInteractionBase;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapInteractionBase.ts\n **/","import provide from './provide';\r\nlet nm = provide('util.checkDefined');\r\n\r\n/**\r\n * check if the input is undefined or null\r\n * @param input - input pointer\r\n * @returns true undefined or null\r\n */\r\nexport function undefinedOrNull (input): boolean{\r\n \"use strict\";\r\n\r\n return (typeof input === 'undefined' || input === null);\r\n}\r\n\r\nnm.undefinedOrNull = undefinedOrNull;\r\n\r\n\r\n/**\r\n * check if the input is defined and not null\r\n * @param input - input pointer\r\n * @returns true defined and not null\r\n */\r\nexport function definedAndNotNull (input: any): boolean{\r\n \"use strict\";\r\n\r\n return !(undefinedOrNull(input));\r\n}\r\n\r\nnm.definedAndNotNull = definedAndNotNull;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/util/checkDefined.ts\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport provide from './provide';\r\nlet nm = provide('util');\r\n\r\n\r\n/**\r\n * guids are used to uniquely identify groups and features\r\n * @returns {string} a new guid\r\n */\r\nfunction makeGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\r\n .replace(/[xy]/g, function (c) {\r\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\r\n\r\n return v.toString(16);\r\n });\r\n\r\n}\r\nnm.makeGuid = makeGuid;\r\nexport default makeGuid;\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/util/makeGuid.ts\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport MapPopupCls from './mapPopupCls';\r\n\r\n/**\r\n * The single popup object catch is that it is common to multimap pages\r\n * @type {MapPopupCls}\r\n */\r\n\r\nexport const mapPopup = new MapPopupCls() as MapPopupCls;\r\nexport default mapPopup;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapPopup.ts\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport MapInteractionBase from './mapInteractionBase';\r\nimport propertiesZoomStyle from '../olHelpers/propertiesZoomStyle';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nimport {LayerBaseVector} from \"../layers/LayerBaseVector\";\r\nimport LayerEsriMapServer from \"../layers/LayerEsriMapServer\";\r\n\r\nconst $ = require('jquery');\r\n\r\nconst nm = provide('olHelpers');\r\n\r\nexport interface popupChangedFunction {\r\n ($popContent: JQuery): any;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nexport interface popupCallback {\r\n /**\r\n * Callback function for the popup\r\n * @param featureProperties\r\n * @param jqRef\r\n */\r\n (featureProperties: Object, jqRef?: JQuery): string | boolean;\r\n}\r\n\r\ninterface mapEvent {\r\n coordinate: ol.Coordinate;\r\n pixel: ol.Pixel;\r\n dragging: boolean|any;\r\n originalEvent: Event;\r\n}\r\n\r\n\r\nexport class FeatureLayerProperties {\r\n\r\n feature: ol.Feature;\r\n layer: LayerBaseVector|LayerEsriMapServer;\r\n layerIndex: number;\r\n selectionLayer: ol.layer.Vector;\r\n popupContent: string;\r\n esriLayerName: string;\r\n\r\n /**\r\n *\r\n * @param feature the feature\r\n * @param layer - the layer in the popup\r\n * @param layerIndex - index of the layer\r\n * @param selectionLayer - the ol selection layer\r\n * @param [esriLayerName=undefined] - esri layer name\r\n */\r\n constructor(feature: ol.Feature, layer: LayerBaseVector|LayerEsriMapServer, layerIndex: number, selectionLayer: ol.layer.Vector, esriLayerName?: string) {\r\n this.feature = feature;\r\n this.layer = layer;\r\n this.layerIndex = layerIndex;\r\n this.selectionLayer = selectionLayer;\r\n this.popupContent = '';\r\n this.esriLayerName = typeof esriLayerName == 'string' ? esriLayerName : undefined;\r\n }\r\n\r\n get layerName() {\r\n if (typeof this.esriLayerName == 'string') {\r\n return this.esriLayerName;\r\n } else {\r\n return this.layer.name;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * map popup class\r\n * @augments MapInteractionBase\r\n */\r\nexport class MapPopupCls extends MapInteractionBase {\r\n _popupOpen: boolean;\r\n _passThroughLayerFeatureArray: Array<FeatureLayerProperties>;\r\n _currentPopupIndex: number;\r\n _popupContentLength: number;\r\n _esriMapServiceLayers: Array<LayerEsriMapServer>;\r\n _$popupCloser: JQuery;\r\n _$popupContent: JQuery;\r\n _$popupContainer: JQuery;\r\n _popupOverlay: ol.Overlay;\r\n _arrPopupLayers: Array<LayerBaseVector>;\r\n _popupCoordinate: ol.Coordinate;\r\n _popupChangedFunctions: Array<popupChangedFunction>;\r\n _mapClickFunctions: Array<Function>;\r\n _selectionLayerLookup: Object;\r\n _arrPopupLayerIds: Array<string>;\r\n _arrPopupLayerNames: Array<string>;\r\n _arrPopupOlLayers: Array<ol.layer.Vector>;\r\n _arrPopupContentFunction: Array<popupCallback>;\r\n _selectionLayers: Array<ol.layer.Vector>;\r\n\r\n /**\r\n * Definition for openlayers style function\r\n * @callback olStyleFunction\r\n * ¶m feature the openlayers vector feature\r\n * $param\r\n */\r\n\r\n\r\n /**\r\n * map popup constructor\r\n */\r\n constructor() {\r\n super('map popup');\r\n this._arrPopupLayerIds = [];\r\n this._arrPopupLayerNames = [];\r\n this._arrPopupLayers = [];\r\n this._arrPopupOlLayers = [];\r\n this._arrPopupContentFunction = [];\r\n this._$popupContainer = undefined;\r\n this._$popupContent = undefined;\r\n this._$popupCloser = undefined;\r\n this._popupOverlay = undefined;\r\n this._selectionLayers = [];\r\n this._selectionLayerLookup = {};\r\n this._mapClickFunctions = [];\r\n\r\n //let a = function($jqueryContent){console.log($jqueryContent)};\r\n //this._popupChangedLookup = {'a': a};\r\n this._popupChangedFunctions = [];\r\n this._esriMapServiceLayers = [];\r\n\r\n this._popupOpen = false;\r\n this._popupCoordinate = null;\r\n\r\n this._passThroughLayerFeatureArray = [];\r\n\r\n this._currentPopupIndex = -1;\r\n this._popupContentLength = 0;\r\n\r\n }\r\n\r\n /**\r\n * map popup initialization\r\n * @param {ol.Map} theMap - the ol map\r\n */\r\n init(theMap: ol.Map) {\r\n super.init(theMap);\r\n\r\n let $map;\r\n let target = this.map.getTarget();\r\n\r\n if (typeof target == 'string') {\r\n $map = $('#' + target);\r\n }\r\n else {\r\n $map = $(target);\r\n }\r\n\r\n $map.append(\r\n '<div class=\"ol-popup\">' +\r\n '<span class=\"ol-popup-closer\">X</span>' +\r\n '<div class=\"popup-content\"></div>' +\r\n '</div>'\r\n );\r\n\r\n this._$popupContainer = $map.find('.ol-popup');\r\n this._$popupContent = $map.find('.popup-content');\r\n this._$popupCloser = $map.find('.ol-popup-closer');\r\n\r\n let _ease = (n: number): number => {\r\n return ol.easing.inAndOut(n);\r\n };\r\n\r\n\r\n this._popupOverlay = new ol.Overlay({\r\n element: this._$popupContainer[0],\r\n autoPan: true,\r\n autoPanAnimation: {\r\n duration: 250,\r\n source: theMap.getView().getCenter(),\r\n easing: _ease\r\n }\r\n });\r\n\r\n this._map.addOverlay(this._popupOverlay);\r\n\r\n this._$popupCloser.click((evt) => {\r\n this.closePopup();\r\n });\r\n\r\n // display popup on click\r\n this._map.on('singleclick', (evt) => {\r\n\r\n this.closePopup();\r\n this._popupCoordinate = evt['coordinate'];\r\n\r\n // esri map service layers\r\n if (this._esriMapServiceLayers.length > 0) {\r\n\r\n let queryParams = {\r\n geometry: evt['coordinate'].join(','),\r\n geometryType: 'esriGeometryPoint',\r\n layers: 'all',\r\n sr: this._map.getView().getProjection().getCode().split(':')[1],\r\n mapExtent: (this._map.getView().calculateExtent(this._map.getSize()) as number[]).join(','),\r\n imageDisplay: (this._map.getSize() as number[]).join(',') + ',96',\r\n returnGeometry: true,\r\n tolerance: 15,\r\n f: 'pjson'\r\n };\r\n\r\n for (let l of this._esriMapServiceLayers) {\r\n l.getPopupInfo(queryParams);\r\n }\r\n }\r\n\r\n let layerFeatureObjectArray = this._featuresAtPixel(evt['pixel']);\r\n\r\n this._passThroughLayerFeatureArray = [];\r\n this._currentPopupIndex = -1;\r\n\r\n for (let i = 0; i < layerFeatureObjectArray.length; i++) {\r\n let featObj = layerFeatureObjectArray[i];\r\n\r\n let props = featObj.feature.getProperties();\r\n\r\n let popupContentResponse = this._arrPopupContentFunction[featObj.layerIndex](props, this._$popupContent);\r\n\r\n //skip if return was false\r\n if (popupContentResponse === false) {\r\n //continue;\r\n } else if (typeof popupContentResponse == 'string') {\r\n featObj.popupContent = popupContentResponse as string;\r\n this._passThroughLayerFeatureArray.push(featObj);\r\n } else {\r\n featObj.selectionLayer.getSource().addFeature(featObj.feature);\r\n }\r\n }\r\n\r\n this._popupContentLength = this._passThroughLayerFeatureArray.length;\r\n\r\n this._currentPopupIndex = -1;\r\n\r\n let popupHtml = '<div class=\"ol-popup-nav\">';\r\n popupHtml += '<span class=\"previous-popup ol-popup-nav-arrow\">◀</span>';\r\n popupHtml += '<span class=\"next-popup ol-popup-nav-arrow\">▶</span>';\r\n popupHtml += `<span class=\"current-popup-item-number\" style=\"font-weight: bold;\"></span>`;\r\n popupHtml += `<span> of </span>`;\r\n popupHtml += `<span class=\"popup-content-length\" style=\"font-weight: bold;\">${this._popupContentLength}</span>`;\r\n popupHtml += `<span> - </span>`;\r\n popupHtml += `<span class=\"current-popup-layer-name\"></span>`;\r\n popupHtml += '</div>';\r\n popupHtml += '<div class=\"ol-popup-inner\">';\r\n\r\n popupHtml += '</div>';\r\n\r\n this._$popupContent.html(popupHtml);\r\n\r\n this._$popupContent.find('.previous-popup').click(() => {\r\n if (this._popupContentLength == 1) {\r\n return;\r\n }\r\n\r\n if (this._currentPopupIndex == 0) {\r\n this._currentPopupIndex = this._popupContentLength - 1;\r\n } else {\r\n this._currentPopupIndex--;\r\n }\r\n this._triggerFeatSelect();\r\n });\r\n\r\n let nextPopup = this._$popupContent.find('.next-popup');\r\n\r\n nextPopup.click(() => {\r\n if (this._popupContentLength == 1 && this._currentPopupIndex > -1) {\r\n return;\r\n }\r\n\r\n if (this._currentPopupIndex == this._popupContentLength - 1) {\r\n this._currentPopupIndex = 0;\r\n } else {\r\n this._currentPopupIndex++;\r\n }\r\n this._triggerFeatSelect();\r\n });\r\n\r\n\r\n if (this._popupContentLength > 0) {\r\n nextPopup.trigger('click');\r\n this._popupOverlay.setPosition(this._popupCoordinate);\r\n this._$popupContent.scrollTop(0);\r\n this._popupOpen = true;\r\n }\r\n });\r\n\r\n //change mouse cursor when over marker\r\n this._map.on('pointermove', (evt) => {\r\n if (evt['dragging']) {\r\n return;\r\n }\r\n let pixel = this.map.getEventPixel(evt['originalEvent']);\r\n let hit = this.map.hasFeatureAtPixel(pixel, (lyrCandidate) => {\r\n for (let olLayer of this._arrPopupOlLayers) {\r\n if (lyrCandidate == olLayer) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n let mapElement = this.map.getTargetElement() as HTMLElement;\r\n mapElement.style.cursor = hit ? 'pointer' : '';\r\n });\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * helper to select features\r\n * @private\r\n */\r\n _triggerFeatSelect() {\r\n let $currentPopupItemNumber = this._$popupContent.find('.current-popup-item-number');\r\n let $innerPopup = this._$popupContent.find('.ol-popup-inner');\r\n let $layerNameSpan = this._$popupContent.find('.current-popup-layer-name');\r\n this.clearSelection();\r\n let lyrFeatObj = this._passThroughLayerFeatureArray[this._currentPopupIndex];\r\n $currentPopupItemNumber.html((this._currentPopupIndex + 1).toFixed());\r\n $layerNameSpan.html(lyrFeatObj.layerName);\r\n $innerPopup.html(lyrFeatObj.popupContent);\r\n lyrFeatObj.selectionLayer.getSource().addFeature(lyrFeatObj.feature);\r\n for (let f of this._popupChangedFunctions) {\r\n f(this._$popupContent);\r\n }\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param feature - the ol feature\r\n * @param {LayerEsriMapServer} lyr - the map server layer\r\n * @param {string} popupContent - popup content\r\n * @param {string} esriName - esri layer name\r\n */\r\n addMapServicePopupContent(feature: ol.Feature, lyr: LayerEsriMapServer, popupContent: string, esriName: string) {\r\n\r\n let featLayerObject = new FeatureLayerProperties(\r\n feature, lyr, this._popupContentLength, this._selectionLayerLookup[lyr.id], esriName\r\n );\r\n featLayerObject.popupContent = popupContent;\r\n\r\n this._passThroughLayerFeatureArray.push(featLayerObject);\r\n this._popupContentLength++;\r\n\r\n $('.popup-content-length').html(this._popupContentLength.toFixed());\r\n\r\n if (!this._popupOpen) {\r\n this._$popupContent.find('.next-popup').trigger('click');\r\n\r\n this._popupOverlay.setPosition(this._popupCoordinate);\r\n this._$popupContent.scrollTop(0);\r\n this._popupOpen = true;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param pixel - the ol pixel\r\n * @returns feature layer properties\r\n * @private\r\n */\r\n _featuresAtPixel(pixel: ol.Pixel): Array<FeatureLayerProperties> {\r\n let layerFeatureObjectArray = [];\r\n\r\n this.map.forEachFeatureAtPixel(pixel, (feature: ol.Feature, layer: ol.layer.Vector) => {\r\n let lyrIndex = this._arrPopupOlLayers.indexOf(layer);\r\n\r\n if (lyrIndex > -1) {\r\n layerFeatureObjectArray.push(\r\n new FeatureLayerProperties(\r\n feature, this._arrPopupLayers[lyrIndex], lyrIndex, this._selectionLayers[lyrIndex]));\r\n }\r\n });\r\n\r\n return layerFeatureObjectArray;\r\n }\r\n\r\n closePopup() {\r\n this._checkInit();\r\n this._popupOpen = false;\r\n this._popupOverlay.setPosition(undefined);\r\n this._$popupCloser[0].blur();\r\n this.clearSelection();\r\n this._$popupContent.html('');\r\n\r\n return false;\r\n };\r\n\r\n\r\n /**\r\n *\r\n * @param chgFunction - popup change function\r\n */\r\n addPopupChangedFunction(chgFunction: popupChangedFunction) {\r\n this._popupChangedFunctions.push(chgFunction);\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerBase|*} lyr - the layer being acted on\r\n * @param {object} [selectionStyle={}] the selection style configuration\r\n * @param {string} [selectionStyle.color=rgba(255,170,0,0.5)] the selection color\r\n * @param {number} [selectionStyle.width=10] the selection width for linear features\r\n * @param {object|function} [selectionStyle.olStyle=undefined] an openlayers style object or function\r\n * @returns the new selection layer\r\n * @private\r\n */\r\n _addPopupLayer(lyr, selectionStyle): ol.layer.Vector {\r\n this._checkInit();\r\n\r\n selectionStyle = selectionStyle || {};\r\n selectionStyle.color = selectionStyle.color || 'rgba(255,170,0,0.5)';\r\n selectionStyle.width = selectionStyle.width || 10;\r\n\r\n let theStyle;\r\n\r\n if (selectionStyle.olStyle) {\r\n theStyle = selectionStyle.olStyle;\r\n } else {\r\n theStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: selectionStyle.color,\r\n width: selectionStyle.width\r\n }),\r\n image: new ol.style.Circle({\r\n radius: 7,\r\n fill: new ol.style.Fill({color: selectionStyle.color}),\r\n stroke: new ol.style.Stroke({color: selectionStyle.color, width: 1})\r\n }),\r\n fill: new ol.style.Fill({\r\n color: selectionStyle.color\r\n })\r\n });\r\n }\r\n\r\n let selectionLayer = new ol.layer.Vector(\r\n {\r\n source: new ol.source.Vector(),\r\n style: theStyle\r\n }\r\n );\r\n\r\n selectionLayer.setZIndex(100);\r\n\r\n this._selectionLayers.push(selectionLayer);\r\n this._selectionLayerLookup[lyr.id] = selectionLayer;\r\n this.map.addLayer(selectionLayer);\r\n\r\n return selectionLayer;\r\n }\r\n\r\n\r\n /**\r\n * Add popup to the map\r\n * @param {LayerBase|*} lyr The layer that the popup with act on\r\n * @param {popupCallback} popupContentFunction - popup content function that makes popup info\r\n * @param {object} [selectionStyle={}] the selection style configuration\r\n * @param {string} [selectionStyle.color=rgba(255,170,0,0.5)] the selection color\r\n * @param {number} [selectionStyle.width=10] the selection width for linear features\r\n * @param {object|function} [selectionStyle.olStyle=undefined] an openlayers style object or function\r\n * @returns {object} a reference to the ol selection layer\r\n */\r\n addVectorPopup(lyr: LayerBaseVector, popupContentFunction: popupCallback,\r\n selectionStyle?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction) {\r\n let selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._arrPopupLayerIds.push(lyr.id);\r\n this._arrPopupLayerNames.push(lyr.name);\r\n this._arrPopupLayers.push(lyr);\r\n this._arrPopupOlLayers.push(lyr.olLayer);\r\n this._arrPopupContentFunction.push(popupContentFunction);\r\n\r\n return selectionLayer;\r\n };\r\n\r\n\r\n /**\r\n *\r\n * @param {LayerBase} lyr - layer\r\n */\r\n removeVectorPopup(lyr) {\r\n let idx = this._arrPopupLayerIds.indexOf(lyr.id);\r\n\r\n if (idx > -1) {\r\n this._arrPopupLayerIds.splice(idx, 1);\r\n this._arrPopupLayerNames.splice(idx, 1);\r\n this._arrPopupLayers.splice(idx, 1);\r\n this._arrPopupOlLayers.splice(idx, 1);\r\n this._arrPopupContentFunction.splice(idx, 1);\r\n this._selectionLayers.splice(idx, 1);\r\n delete this._selectionLayerLookup[lyr.id];\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerEsriMapServer} lyr - map server layer\r\n * @param {object} [selectionStyle={}] the selection style configuration\r\n * @param {string} [selectionStyle.color=rgba(255,170,0,0.5)] the selection color\r\n * @param {number} [selectionStyle.width=10] the selection width for linear features\r\n * @param {object|function} [selectionStyle.olStyle=undefined] an openlayers style object or function\r\n * @returns {object} a reference to the ol selection layer\r\n */\r\n addMapServicePopup(lyr, selectionStyle?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction) {\r\n let selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._esriMapServiceLayers.push(lyr);\r\n\r\n return selectionLayer;\r\n }\r\n\r\n clearSelection() {\r\n this._checkInit();\r\n for (let i = 0; i < this._selectionLayers.length; i++) {\r\n this._selectionLayers[i].getSource().clear();\r\n }\r\n for (let f of this._mapClickFunctions) {\r\n f();\r\n }\r\n };\r\n\r\n /**\r\n * Add a function to be called when the map is clicked but before any popups are implemented\r\n * @param {function} func - the map click function\r\n */\r\n addMapClickFunction(func: Function) {\r\n this._mapClickFunctions.push(func);\r\n }\r\n}\r\nnm.MapPopupCls = MapPopupCls;\r\nexport default MapPopupCls;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapPopupCls.ts\n **/","import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol'\r\nimport makeGuid from '../util/makeGuid';\r\nconst nm = provide('layers');\r\nconst $ = require('jquery');\r\n\r\n\r\n\r\n\r\n\r\nexport interface LayerBaseOptions{\r\n id?: string;\r\n name?: string;\r\n opacity?: number;\r\n visible?: boolean;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n params?: any;\r\n zIndex?: number;\r\n loadCallback?: Function;\r\n legendCollapse?: boolean;\r\n legendCheckbox?: boolean;\r\n legendContent?: string;\r\n}\r\n\r\n\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nexport abstract class LayerBase {\r\n\r\n _legendCheckbox: boolean;\r\n _url: string;\r\n _opacity: number;\r\n _minZoom: number;\r\n _maxZoom: number;\r\n _visible: boolean;\r\n _loaded: boolean;\r\n _zIndex: number;\r\n _legendContent: string;\r\n _params: any;\r\n id: string;\r\n _name: string;\r\n _source: ol.source.Source;\r\n animate: boolean;\r\n _legendCollapse: boolean;\r\n _maxResolution: number;\r\n _minResolution: number;\r\n _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n _olLayer: ol.layer.Layer;\r\n _applyCollapseCalled: boolean;\r\n\r\n\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - url for source\r\n * @param {object} options - config\r\n * @param {string} [options.id=makeGuid()] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] - the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] - the z index for the layer\r\n * @param {function} [options.loadCallback] - function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] - if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] - if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent=undefined] - additional content to add to the legend\r\n */\r\n constructor(url: string, options: LayerBaseOptions = {}) {\r\n options = options || {} as LayerBaseOptions;\r\n\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\r\n\r\n\r\n this._params = typeof options.params == 'object' ? options.params : {};\r\n this._legendCollapse = typeof options.legendCollapse == 'boolean' ? options.legendCollapse : false;\r\n this._legendCheckbox = typeof options.legendCheckbox == 'boolean' ? options.legendCheckbox : true;\r\n\r\n this.id = options.id || makeGuid();\r\n this._name = options.name || 'Unnamed Layer';\r\n this.animate = false;\r\n this._opacity = typeof options.opacity == 'number' ? options.opacity : 1;\r\n\r\n if (this._opacity > 1) {\r\n this._opacity = 1;\r\n } else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n\r\n this._source = undefined;\r\n\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\r\n\r\n this._maxResolution = zoomResolutionConvert.zoomToResolution(options.minZoom);\r\n if (typeof this._maxResolution !== 'undefined') {\r\n this._maxResolution += 0.00001;\r\n }\r\n this._minResolution = zoomResolutionConvert.zoomToResolution(options.maxZoom);\r\n\r\n this._minZoom = typeof options.minZoom == 'number' ? options.minZoom : undefined;\r\n this._maxZoom = typeof options.maxZoom == 'number' ? options.maxZoom : undefined;\r\n this._zIndex = typeof options.zIndex == 'number' ? options.zIndex : 0;\r\n\r\n this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n\r\n\r\n this._legendContent = '';\r\n\r\n if (this._legendCheckbox) {\r\n this._legendContent += `<input type=\"checkbox\" ${this.visible ? 'checked' : ''} ` +\r\n `class=\"legend-check\" id=\"${this.id}-legend-layer-check\"><span></span>`;\r\n this._legendContent += `<label for=\"${this.id}-legend-layer-check\" class=\"legend-layer-name\">${this.name}</label>`;\r\n } else {\r\n this._legendContent += `<label class=\"legend-layer-name\">${this.name}</label>`;\r\n }\r\n\r\n this._$legendDiv = null;\r\n this._applyCollapseCalled = false;\r\n this._addLegendContent(typeof options.legendContent === 'string' ? options.legendContent : undefined);\r\n }\r\n\r\n /**\r\n * base load function, sets _loaded = true if it is not already\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n _load() {\r\n if (this.loaded == true) {\r\n return true;\r\n } else {\r\n this._loaded = true;\r\n\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Get the legend html, be sure to only add to the DOM once\r\n * @returns {string} html for layer wrapped in a div\r\n */\r\n getLegendDiv() {\r\n return `<div class=\"legend-layer-div\" id=\"${this.id}-legend-layer-div\">${this._legendContent}</div>`;\r\n }\r\n\r\n /**\r\n *\r\n * @param {string|undefined} additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(additionalContent) {\r\n additionalContent = typeof additionalContent == 'string' ? additionalContent : '';\r\n\r\n let addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n\r\n this._legendContent += additionalContent;\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n this._$legendDiv.append(additionalContent);\r\n this.applyCollapse();\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n addLegendContent(additionalContent) {\r\n this._addLegendContent(additionalContent);\r\n }\r\n\r\n applyCollapse() {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n\r\n return undefined;\r\n }\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n\r\n let $expander = this._$legendDiv.find('.legend-items-expander');\r\n\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n\r\n $expander.click(function () {\r\n let $this = $(this);\r\n\r\n $this.siblings('ul').slideToggle();\r\n\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n } else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\r\n }\r\n });\r\n\r\n if (this._legendCollapse) {\r\n $expander.trigger('click');\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * trick to refresh the layer\r\n */\r\n refresh() {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get legendContent() {\r\n return this._legendContent;\r\n }\r\n\r\n /**\r\n * set the legend content directly\r\n * @param {string} newVal - new content\r\n * @protected\r\n */\r\n set legendContent(newVal) {\r\n this._legendContent = newVal;\r\n }\r\n\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get params() {\r\n return this._params;\r\n }\r\n\r\n /**\r\n * set the map get params\r\n * @param {object} newParams - new get params\r\n * @protected\r\n */\r\n set params(newParams) {\r\n this._params = newParams;\r\n }\r\n\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get minResolution() {\r\n return this._minResolution;\r\n }\r\n\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get maxResolution() {\r\n return this._maxResolution;\r\n }\r\n\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get minZoom() {\r\n return this._minZoom;\r\n }\r\n\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get maxZoom() {\r\n return this._maxZoom;\r\n }\r\n\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get url() {\r\n return this._url;\r\n }\r\n\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set visible(visibility: boolean) {\r\n this.setVisible(visibility);\r\n }\r\n\r\n protected setVisible(visibility: boolean) {\r\n this._visible = visibility;\r\n if (this.olLayer) {\r\n this.olLayer.setVisible(this._visible);\r\n if (visibility && !this._loaded) {\r\n this._load();\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get opacity() {\r\n return this._opacity;\r\n }\r\n\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set opacity(opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n }\r\n\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set name(newName) {\r\n this._name = newName;\r\n }\r\n\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get loaded() {\r\n return this._loaded;\r\n }\r\n\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get source(): ol.source.Source {\r\n return this.getSource();\r\n }\r\n\r\n\r\n protected getSource(): ol.source.Source{\r\n return this._source;\r\n }\r\n\r\n /**\r\n * get the z index\r\n */\r\n get zIndex(): number {\r\n return this._zIndex;\r\n }\r\n\r\n /**\r\n * set the z index\r\n */\r\n set zIndex(newZ: number) {\r\n this._zIndex = newZ;\r\n }\r\n\r\n protected setZIndex(newZ: number){\r\n\r\n }\r\n\r\n /**\r\n * the the ol layer\r\n */\r\n get olLayer(): ol.layer.Layer {\r\n return this.getOlLayer();\r\n }\r\n\r\n protected getOlLayer(): ol.layer.Layer{\r\n return this._olLayer;\r\n }\r\n}\r\n\r\nnm.LayerBase = LayerBase;\r\nexport default LayerBase;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/layers/LayerBase.ts\n **/","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nconst nm = provide('olHelpers.zoomResolutionConvert');\r\n\r\nlet _zoomResLookup = [\r\n 156543.03392804097, //0\r\n 78271.51696402048, //1\r\n 39135.75848201024, //2\r\n 19567.87924100512, //3\r\n 9783.93962050256, //4\r\n 4891.96981025128, //5\r\n 2445.98490512564, //6\r\n 1222.99245256282, //7\r\n 611.49622628141, //8\r\n 305.748113140705, //9\r\n 152.8740565703525, //10\r\n 76.43702828517625, //11\r\n 38.21851414258813, //12\r\n 19.109257071294063, //13\r\n 9.554628535647032, //14\r\n 4.777314267823516, //15\r\n 2.388657133911758, //16\r\n 1.194328566955879, //17\r\n 0.5971642834779395, //18\r\n 0.29858214173896974, //19\r\n 0.14929107086948487, //20\r\n 0.07464553543474244, //21\r\n 0.03732276771737122, //22\r\n 0.01866138385868561, //23\r\n 0.009330691929342804, //24\r\n 0.004665345964671402, //25\r\n 0.002332672982335701, //26\r\n 0.0011663364911678506, //27\r\n 0.0005831682455839253 //28\r\n];\r\n\r\n/**\r\n * Get the resolution given the zoom level\r\n * @param {number} zoomLevel - the zoom level\r\n * @returns {number|*} the map resolution\r\n */\r\nexport function zoomToResolution(zoomLevel) {\r\n \"use strict\";\r\n\r\n if (typeof zoomLevel == 'number') {\r\n if (zoomLevel % 1 === 0 && zoomLevel >= 0 && zoomLevel <= 28) {\r\n return _zoomResLookup[zoomLevel];\r\n } else {\r\n console.log(`invalid zoom level provided: ${zoomLevel}`);\r\n\r\n return undefined;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n}\r\nnm.zoomToResolution = zoomToResolution;\r\n\r\n\r\n/**\r\n * Get resolution from the zoom level\r\n * @param {number} resolution - the resolution\r\n * @returns {number|*} the zoom level\r\n */\r\nexport function resolutionToZoom(resolution){\r\n for (let i = 0; i < _zoomResLookup.length; i++){\r\n if (resolution >= _zoomResLookup[i] ){\r\n return i;\r\n }\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nnm.resolutionToZoom = resolutionToZoom;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/zoomResolutionConvert.ts\n **/","import provide from '../util/provide';\r\n\r\nconst nm = provide('domUtil');\r\n\r\nlet mouseIn = false;\r\nlet mouseDown = false;\r\nlet timeout = null;\r\nlet dragged = false;\r\nlet lastVal;\r\nconst $ = require('jquery');\r\n\r\n\r\n/**\r\n * callback on range change interaction, context of this is the firing dom element\r\n * @callback rangeChangeCallback\r\n * @param {number} newValue\r\n * @param {number} ratio value from 0 to 1 relative of the value to the min and max\r\n * @param {object} evt\r\n */\r\n\r\n/***\r\n * callback funcion after the slider has been moved\r\n */\r\nexport interface rangeChangedCallback{\r\n /**\r\n *\r\n * @param newValue new value of the slider\r\n * @param ratio ratio from low to high, 0 to 1\r\n * @param evt the original event\r\n */\r\n (newValue: number, ratio: number, evt: Event): any\r\n}\r\n\r\n\r\n/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nfunction triggerCallback(callback: rangeChangedCallback, evt) {\r\n \"use strict\";\r\n\r\n let val = parseFloat(this.value);\r\n let min = parseFloat(this.min);\r\n let max = parseFloat(this.max);\r\n let step = parseFloat(this.step);\r\n\r\n if (max - val < step){\r\n val = max;\r\n }\r\n\r\n let percent = (val - min) / (max - min);\r\n\r\n if (typeof lastVal == 'number' && val == lastVal){\r\n return;\r\n }\r\n lastVal = val;\r\n callback(val, percent, evt);\r\n}\r\n\r\n\r\n\r\n/**\r\n * Add a variety of listeners for range inputs applied to a common callback\r\n * @param $slider - jquery reference to the slider\r\n * @param {rangeChangeCallback} callback - the callback\r\n * @param {number} [changeTimeout=75] before the callback is called\r\n * @this {jQuery}\r\n * @returns {jQuery} the jQuery object\r\n */\r\nexport function rangeChange ($slider: JQuery, callback: rangeChangedCallback, changeTimeout: number) {\r\n\r\n changeTimeout = typeof changeTimeout == 'number' ? changeTimeout : 75;\r\n\r\n $slider.mouseenter(function () {\r\n mouseIn = true;\r\n });\r\n\r\n $slider.mouseleave(function () {\r\n mouseIn = false;\r\n mouseDown = false;\r\n });\r\n\r\n $slider.mousedown(function () {\r\n mouseDown = true;\r\n });\r\n\r\n $slider.mouseup(function () {\r\n mouseDown = false;\r\n });\r\n\r\n $slider.mousemove(\r\n /**\r\n *\r\n * @param {object} evt - event properties\r\n * @this {HTMLElement}\r\n */\r\n function (evt) {\r\n if (!(mouseIn && mouseDown)) {\r\n return;\r\n }\r\n\r\n dragged = true;\r\n\r\n if (lastVal == this['value']) {\r\n return;\r\n }\r\n lastVal = this['value'];\r\n\r\n if (timeout != null) {\r\n clearTimeout(timeout);\r\n }\r\n\r\n let _this = this;\r\n\r\n timeout = setTimeout(function () {\r\n triggerCallback.call(_this, callback, evt);\r\n timeout = null;\r\n\r\n }, changeTimeout);\r\n });\r\n\r\n $slider.keyup(\r\n /**\r\n *\r\n * @param {object} evt - event properties\r\n */\r\n function (evt) {\r\n if (evt.keyCode == 37 || evt.keyCode == 39) {\r\n triggerCallback.call(this, callback, evt);\r\n }\r\n });\r\n\r\n $slider.change(function (evt) {\r\n if (dragged) {\r\n dragged = false;\r\n\r\n return;\r\n }\r\n triggerCallback.call(this, callback, evt);\r\n });\r\n\r\n return this;\r\n}\r\n\r\nnm.rangeChange = rangeChange;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/domUtil/range-change.ts\n **/","/**\r\n * Created by gavorhes on 11/4/2015.\r\n */\r\n\r\nimport {LayerBaseXyzTile} from './LayerBaseXyzTile';\r\nimport {LayerBaseOptions} from './LayerBase';\r\nimport RealEarthAnimateTile from '../mixin/RealEarthAnimateTile';\r\nimport provide from '../util/provide';\r\nimport {IRealEarthAnimate} from \"../mixin/RealEarthAnimate\";\r\nconst nm = provide('layers');\r\n\r\nexport interface LayerRealEarthTileOptions extends LayerBaseOptions {\r\n products: string;\r\n animate?: boolean;\r\n}\r\n\r\n\r\n/**\r\n * Real earth tile\r\n * @augments LayerBaseXyzTile\r\n */\r\nexport class LayerRealEarthTile extends LayerBaseXyzTile implements IRealEarthAnimate {\r\n _products: string;\r\n animator: RealEarthAnimateTile;\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {object} options - config\r\n * @param {string} [options.id] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] the z index for the layer\r\n * @param {function} [options.loadCallback] function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent] additional content to add to the legend\r\n *\r\n * @param {string} options.products - the products to request\r\n * @param {boolean} [options.hasTimes=false] If the layer is time dependent, fixed set of dates\r\n * @param {boolean} [options.animate=false] if the layer should be animated\r\n */\r\n constructor(options: LayerRealEarthTileOptions) {\r\n options.animate = typeof options.animate == 'boolean' ? options.animate : false;\r\n if (options.animate) {\r\n super('', options);\r\n this._products = options.products;\r\n this.animator = new RealEarthAnimateTile(this);\r\n this.animator.timeInit();\r\n } else {\r\n super(`http://realearth.ssec.wisc.edu/api/image?products=${options.products}&x={x}&y={y}&z={z}`, options);\r\n this._products = options.products;\r\n }\r\n }\r\n\r\n setLayerTime(theTime: number): boolean {\r\n if (this.animator) {\r\n return this.animator.setLayerTime(theTime);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n _load(): boolean {\r\n if (this.animator) {\r\n return false;\r\n }\r\n return super._load();\r\n }\r\n}\r\n\r\nnm.LayerRealEarthTile = LayerRealEarthTile;\r\nexport default LayerRealEarthTile;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/layers/LayerRealEarthTile.ts\n **/","/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nimport {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nconst nm = provide('layers');\r\n\r\n\r\n/**\r\n * XYZ tile\r\n * @augments LayerBase\r\n */\r\nexport class LayerBaseXyzTile extends LayerBase {\r\n\r\n\r\n /**\r\n * The XYZ tile layer\r\n * @param {string} url - url for source\r\n * @param {object} options - config\r\n * @param {string} [options.id] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] the z index for the layer\r\n * @param {function} [options.loadCallback] function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent] additional content to add to the legend\r\n * @param {boolean} [options.useEsriStyle=false] if the map service style should be used\r\n */\r\n constructor(url: string, options: LayerBaseOptions) {\r\n super(url, options);\r\n this._source = new ol.source.XYZ({url: this.url == '' ? undefined : this.url});\r\n\r\n this._olLayer = new ol.layer.Tile({\r\n source: this._source as ol.source.XYZ,\r\n visible: this.visible,\r\n opacity: this.opacity,\r\n minResolution: this._minResolution,\r\n maxResolution: this._maxResolution\r\n } );\r\n\r\n this._olLayer.setZIndex(this._zIndex);\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.source.XYZ} the vector source\r\n */\r\n get source(): ol.source.XYZ {\r\n return this._source as ol.source.XYZ;\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.layer.Tile|ol.layer.Base|undefined} the ol layer\r\n */\r\n get olLayer() : ol.layer.Tile {\r\n return this._olLayer as ol.layer.Tile;\r\n }\r\n}\r\n\r\nnm.LayerBaseXyzTile = LayerBaseXyzTile;\r\nexport default LayerBaseXyzTile;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/layers/LayerBaseXyzTile.ts\n **/","/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nimport RealEarthAnimate from './RealEarthAnimate';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nimport LayerRealEarthTile from \"../layers/LayerRealEarthTile\";\r\nconst nm = provide('mixin');\r\n\r\n/**\r\n * Animate real earth tile\r\n * @augments RealEarthAnimate\r\n */\r\nclass RealEarthAnimateTile extends RealEarthAnimate {\r\n _sourceUrls: string[];\r\n _source: ol.source.XYZ;\r\n _olLayer: ol.layer.Tile;\r\n\r\n constructor(layer: LayerRealEarthTile, loadCallback?: (lyr: LayerRealEarthTile) => void){\r\n super(layer, loadCallback);\r\n this._source = layer.source;\r\n this._olLayer = layer.olLayer;\r\n }\r\n\r\n\r\n\r\n timeInit() {\r\n super.timeInit();\r\n this._sourceUrls = [];\r\n }\r\n\r\n _loadDates(inString: string): string {\r\n let rawDte = super._loadDates(inString);\r\n let dteProductUrl =\r\n `http://realearth.ssec.wisc.edu/api/image?products=${this._products}_${rawDte}&x={x}&y={y}&z={z}`;\r\n this._sourceUrls.push(dteProductUrl);\r\n return '';\r\n }\r\n\r\n /**\r\n * @protected\r\n */\r\n _loadLatest(): boolean {\r\n if (super._loadLatest()){\r\n this._source.setUrl(this._sourceUrls[this._sourceUrls.length - 1]);\r\n }\r\n return true;\r\n }\r\n\r\n setLayerTime(theTime: number): boolean {\r\n if (super.setLayerTime(theTime)) {\r\n if (this._olLayer.getZIndex() < 0){\r\n this._olLayer.setZIndex(0);\r\n }\r\n this._source.setUrl(this._sourceUrls[this._currentIndex]);\r\n } else {\r\n this._olLayer.setZIndex(-1);\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nnm.RealEarthAnimateTile = RealEarthAnimateTile;\r\nexport default RealEarthAnimateTile;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/mixin/RealEarthAnimateTile.ts\n **/","/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport mapPopup from '../olHelpers/mapPopup';\r\nimport LayerRealEarthTile from \"../layers/LayerRealEarthTile\";\r\nimport {LayerVectorRealEarth} from '../layers/LayerRealEarthVector'\r\nconst $ = require('jquery');\r\nconst nm = provide('mixin');\r\n\r\n\r\n/**\r\n * The GMT offset time in minutes\r\n * @type {number}\r\n */\r\nlet offsetMinutes = (new Date()).getTimezoneOffset();\r\n\r\nexport interface IRealEarthAnimate{\r\n setLayerTime(theTime: number): boolean;\r\n}\r\n\r\n\r\n/**\r\n * Mixin to get the product times\r\n * Be sure to call getTimeInit after the mixin has been applied\r\n */\r\nexport class RealEarthAnimate {\r\n _animateEnabled: boolean;\r\n _currentIndex: number;\r\n _localDates: Date[];\r\n _rawDateStrings: string[];\r\n _products: string;\r\n loadCallback: (lyr: LayerRealEarthTile|LayerVectorRealEarth) => void;\r\n localTimes: number[];\r\n _currentTime: number;\r\n\r\n lyr: LayerRealEarthTile|LayerVectorRealEarth;\r\n\r\n constructor(lyr: LayerRealEarthTile|LayerVectorRealEarth, loadCallback?: (lyr: LayerRealEarthTile|LayerVectorRealEarth) => void){\r\n this.lyr = lyr;\r\n this._products = lyr._products;\r\n if (loadCallback){\r\n this.loadCallback = loadCallback;\r\n } else {\r\n this.loadCallback = function(lyr: LayerRealEarthTile|LayerVectorRealEarth): void {return;};\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Call this after the mixin has been applied\r\n */\r\n timeInit() {\r\n\r\n this._rawDateStrings = [];\r\n this._localDates = [];\r\n this.localTimes = [];\r\n this._animateEnabled = true;\r\n // this._loaded = true;\r\n this._currentTime = undefined;\r\n this._currentIndex = undefined;\r\n\r\n $.get('http://realearth.ssec.wisc.edu/api/products', {products: this._products}, (d) => {\r\n if (d.length == 0) {\r\n console.log(`${this._products} layer not available or does not have times`);\r\n\r\n return;\r\n }\r\n d = d[0];\r\n for (let i = 0; i < d['times'].length; i++) {\r\n this._loadDates.call(this, d['times'][i]);\r\n }\r\n this.loadCallback.call(this.lyr);\r\n this._loadLatest.call(this);\r\n }, 'json');\r\n }\r\n\r\n\r\n /**\r\n * Given the raw time string, add to the arrays to keep track of dates and cache\r\n * @param {string} inString - input string to parse\r\n * @returns {string} the converted string\r\n * @protected\r\n */\r\n _loadDates(inString: string): string {\r\n let yr = inString.slice(0, 4);\r\n let month = inString.slice(4, 6);\r\n let d = inString.slice(6, 8);\r\n let hr = inString.slice(9, 11);\r\n let mn = inString.slice(11, 13);\r\n let sec = inString.slice(13, 15);\r\n\r\n let rawDateStr = inString.replace('.', '_');\r\n this._rawDateStrings.push(rawDateStr);\r\n\r\n let dteStr = `${month}/${d}/${yr} ${hr}:${mn}:${sec}`;\r\n let newDte = new Date(dteStr);\r\n newDte.setMinutes(newDte.getMinutes() - offsetMinutes);\r\n this._localDates.push(newDte);\r\n this.localTimes.push(newDte.getTime());\r\n\r\n return rawDateStr;\r\n }\r\n\r\n /**\r\n *\r\n * @protected\r\n * @returns {boolean} if should continue\r\n */\r\n _loadLatest(){\r\n mapPopup.closePopup();\r\n if (this.localTimes.length > 0){\r\n this._currentIndex = this.localTimes.length -1;\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {number} theTime - the time\r\n * @returns {boolean} true if new index, false if the same or below lowest value\r\n */\r\n setLayerTime(theTime: number): boolean{\r\n\r\n this._currentTime = theTime;\r\n\r\n let newIndex;\r\n\r\n if (theTime < this.localTimes[0]){\r\n return false;\r\n } else if (theTime > this.localTimes[this.localTimes.length - 1]){\r\n newIndex = this.localTimes.length - 1;\r\n }\r\n\r\n for (let i = 0; i < this.localTimes.length; i++){\r\n if (this.localTimes[i] >= theTime){\r\n newIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (newIndex == this._currentIndex){\r\n return false;\r\n } else {\r\n this._currentIndex = newIndex;\r\n mapPopup.closePopup();\r\n\r\n return true;\r\n }\r\n }\r\n}\r\n\r\nnm.RealEarthAnimate = RealEarthAnimate;\r\nexport default RealEarthAnimate;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/mixin/RealEarthAnimate.ts\n **/","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nimport Timer = NodeJS.Timer;\r\nimport provide from '../util/provide';\r\nimport {rangeChange} from './range-change';\r\nconst $ = require('jquery');\r\n\r\nlet nm = provide('domUtil');\r\n\r\n/**\r\n * @callback mediaCallback\r\n * @param {number} tm\r\n */\r\n\r\nfunction timeToLocalDateString(tm) {\r\n \"use strict\";\r\n let d = new Date(tm);\r\n let p1 = d.toLocaleTimeString().split(' ');\r\n let p2 = p1[0].split(':');\r\n p2 = p2.slice(0, 2);\r\n\r\n return d.toLocaleDateString() + '<br>' + p2.join(':') + ' ' + p1[1];\r\n}\r\n\r\nexport interface changeFunction{\r\n (newVal?: number): void;\r\n}\r\n\r\nexport interface mediaRangeConfig{\r\n min?: number;\r\n max?: number;\r\n val?: number;\r\n step?: number;\r\n playInterval?: number;\r\n showAsDate?: boolean;\r\n}\r\n\r\n\r\nexport class MediaControl {\r\n _container: JQuery;\r\n _min: number;\r\n _max: number;\r\n _playInterval: number;\r\n _step: number;\r\n _currentValue: number;\r\n\r\n _playing: boolean;\r\n\r\n _$btnStop: JQuery;\r\n _$slider: JQuery;\r\n _$valLabelVal: JQuery;\r\n _$valLabelMin: JQuery;\r\n _$valLabelMax: JQuery;\r\n _interval: Timer;\r\n _showAsDate: boolean;\r\n\r\n _changeFunc: changeFunction;\r\n\r\n /**\r\n *\r\n * @param element\r\n * @param changeFunc\r\n * @param mediaConfig\r\n */\r\n constructor(\r\n element: JQuery|HTMLElement|string,\r\n changeFunc: changeFunction = (): void => {return;},\r\n mediaConfig: mediaRangeConfig = {}) {\r\n\r\n mediaConfig.min = typeof mediaConfig.min == 'number' ? mediaConfig.min : 0;\r\n mediaConfig.max = typeof mediaConfig.max == 'number' ? mediaConfig.max : 100;\r\n mediaConfig.val = typeof mediaConfig.val == 'number' ? mediaConfig.val : 0;\r\n mediaConfig.step = typeof mediaConfig.step == 'number' ? mediaConfig.step : 5;\r\n mediaConfig.playInterval = typeof mediaConfig.playInterval == 'number' ? mediaConfig.playInterval : 500;\r\n mediaConfig.showAsDate = typeof mediaConfig.showAsDate == 'boolean' ? mediaConfig.showAsDate : false;\r\n\r\n if (typeof element == 'string'){\r\n this._container = $('#' + element);\r\n }\r\n else if (typeof element['style'] !== 'undefined'){\r\n this._container = $(element);\r\n } else {\r\n this._container = element as JQuery;\r\n }\r\n\r\n this._container.addClass('media-control-container');\r\n this._playInterval = mediaConfig.playInterval;\r\n this._changeFunc = changeFunc;\r\n\r\n this._showAsDate = mediaConfig.showAsDate;\r\n\r\n this._currentValue = undefined;\r\n this._min = undefined;\r\n this._max = undefined;\r\n this._step = undefined;\r\n this._playing = false;\r\n\r\n let htmlStr =\r\n '<span class=\"media-player-button media-back\"></span>' +\r\n '<span class=\"media-player-button media-play\"></span>' +\r\n '<span class=\"media-player-button media-pause media-disabled\"></span>' +\r\n '<span class=\"media-player-button media-stop media-disabled\" ></span>' +\r\n '<span class=\"media-player-button media-ahead\"></span>' +\r\n `<input type=\"range\">` +\r\n `<div class=\"media-control-value-label-container\">` +\r\n `<span class=\"media-control-value-label-min\"></span>` +\r\n `<span class=\"media-control-value-label-val\"></span>` +\r\n `<span class=\"media-control-value-label-max\"></span>` +\r\n `</div>`;\r\n\r\n this._container.append(htmlStr);\r\n\r\n // let btnPause = this._container.find('.media-pause');\r\n let btnPlay = this._container.find('.media-play');\r\n this._$btnStop = this._container.find('.media-stop');\r\n let btnAhead = this._container.find('.media-ahead');\r\n let btnBack = this._container.find('.media-back');\r\n this._$slider = this._container.find('input[type=range]');\r\n\r\n this._$valLabelMin = this._container.find('.media-control-value-label-min');\r\n this._$valLabelVal = this._container.find('.media-control-value-label-val');\r\n this._$valLabelMax = this._container.find('.media-control-value-label-max');\r\n\r\n this.setMinMaxValueStep(mediaConfig.min, mediaConfig.max, mediaConfig.val, mediaConfig.step);\r\n\r\n rangeChange(this._$slider,(newVal) => { this.currentValue = newVal;}, 100);\r\n\r\n let ___this = this;\r\n\r\n btnPlay.click(function () {\r\n let $this = $(this);\r\n $this.addClass('media-disabled');\r\n ___this._$btnStop.removeClass('media-disabled');\r\n btnAhead.addClass('media-locked');\r\n btnBack.addClass('media-locked');\r\n ___this._$slider.prop('disabled', true);\r\n ___this._playing = true;\r\n\r\n ___this._interval = setInterval(function () {\r\n ___this.currentValue += ___this._step;\r\n }, ___this._playInterval);\r\n });\r\n\r\n this._$btnStop.click(function () {\r\n clearInterval(___this._interval);\r\n let $this = $(this);\r\n $this.addClass('media-disabled');\r\n btnPlay.removeClass('media-disabled');\r\n btnAhead.removeClass('media-locked');\r\n btnBack.removeClass('media-locked');\r\n ___this._$slider.prop('disabled', false);\r\n ___this._playing = false;\r\n });\r\n\r\n btnAhead.click(function () {\r\n ___this.currentValue = ___this.currentValue + ___this._step;\r\n });\r\n\r\n btnBack.click(function () {\r\n ___this.currentValue = ___this.currentValue - ___this._step;\r\n });\r\n }\r\n\r\n stopPlaying(){\r\n if (this._playing){\r\n this._$btnStop.trigger('click');\r\n }\r\n }\r\n\r\n get playing(){\r\n return this._playing;\r\n }\r\n\r\n get min() {\r\n return this._min;\r\n }\r\n\r\n get max() {\r\n return this._max;\r\n }\r\n\r\n get step() {\r\n return this._step;\r\n }\r\n\r\n get currentValue() {\r\n return this._currentValue;\r\n }\r\n\r\n set currentValue(newValue) {\r\n if (newValue > this._max) {\r\n newValue = this._min;\r\n } else if (newValue < this._min) {\r\n newValue = this._max;\r\n }\r\n this._currentValue = newValue;\r\n this._$slider.val(this._currentValue.toFixed(2));\r\n\r\n if (this._showAsDate) {\r\n this._$valLabelVal.html(timeToLocalDateString(this.currentValue));\r\n } else {\r\n this._$valLabelVal.html(this.currentValue.toString());\r\n }\r\n\r\n this._changeFunc(newValue);\r\n }\r\n\r\n /**\r\n * set min and max value with step\r\n * @param {number} newMin the new min\r\n * @param {number} newMax the new mas\r\n * @param {number} [newValue=newMin] the value to set\r\n * @param {number} [newStep=(newMax-newMin)/20] step value\r\n */\r\n setMinMaxValueStep(newMin, newMax, newValue, newStep) {\r\n this._min = newMin;\r\n this._max = newMax;\r\n\r\n newValue = typeof newValue == 'number' ? newValue : newMin;\r\n newStep = typeof newStep == 'number' ? newStep : (newMax-newMin)/20;\r\n\r\n this._currentValue = newValue;\r\n this._step = newStep;\r\n\r\n this._$slider.prop('min', this.min.toString());\r\n this._$slider.prop('max', this.max.toString());\r\n this._$slider.prop('step', this.step.toString());\r\n this._$slider.val(this.currentValue.toString());\r\n\r\n if (this._showAsDate) {\r\n this._$valLabelMin.html(timeToLocalDateString(this._min));\r\n this._$valLabelVal.html(timeToLocalDateString(this.currentValue));\r\n this._$valLabelMax.html(timeToLocalDateString(this._max));\r\n } else {\r\n this._$valLabelMin.html(this._min.toString());\r\n this._$valLabelVal.html(this.currentValue.toString());\r\n this._$valLabelMax.html(this._max.toString());\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {mediaCallback} newFunc the callback on change\r\n */\r\n set changeFunction(newFunc: changeFunction) {\r\n this._changeFunc = newFunc;\r\n }\r\n}\r\n\r\nnm.MediaControl = MediaControl;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/domUtil/media-control.ts\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 5aab71d4569a7e44d654","webpack:///./src/_test/animate.ts","webpack:///./src/olHelpers/quickMap.ts","webpack:///./src/olHelpers/quickMapBase.ts","webpack:///./src/util/provide.ts","webpack:///./~/custom-ol/lib/index.js","webpack:///./~/custom-ol/ol/ol-build.js","webpack:///./~/jquery/dist/jquery.js","webpack:///./src/olHelpers/mapMove.ts","webpack:///./src/olHelpers/mapMoveCls.ts","webpack:///./src/olHelpers/mapInteractionBase.ts","webpack:///./src/util/checkDefined.ts","webpack:///./src/util/makeGuid.ts","webpack:///./src/olHelpers/mapPopup.ts","webpack:///./src/olHelpers/mapPopupCls.ts","webpack:///./src/layers/LayerBase.ts","webpack:///./src/olHelpers/zoomResolutionConvert.ts","webpack:///./src/domUtil/range-change.ts","webpack:///./src/layers/LayerRealEarthTile.ts","webpack:///./src/layers/LayerBaseXyzTile.ts","webpack:///./src/mixin/RealEarthAnimateTile.ts","webpack:///./src/mixin/RealEarthAnimate.ts","webpack:///./src/domUtil/media-control.ts"],"names":[],"mappings":"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mB,yCAAyC,mBAAmB,2CAA2C,0CAA0C,wCAAwC;AAC1d,+CAA8C,4CAA4C,sCAAsC,wBAAwB,4CAA4C,sCAAsC,8CAA8C,2BAA2B,4CAA4C,sCAAsC,8CAA8C,2BAA2B;AAC9c,6BAA4B,+BAA+B,yBAAyB,8BAA8B;;;;;;;;;;;ACrYlH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF,qBAAoB;;AAEpB;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF,iCAAgC;AAChC;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,UAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA,iBAAgB,IAAI;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA,yCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD,UAAS;;AAET;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,OAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,OAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;;AAEA;AACA;AACA,YAAW,gBAAgB;AAC3B,cAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,iCAAgC,MAAM;AACtC;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,gBAAe;;AAEf,UAAS;;AAET;AACA,SAAQ,iCAAiC;AACzC,SAAQ,oBAAoB;AAC5B,SAAQ,sCAAsC;AAC9C,SAAQ;AACR,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,iBAAgB,aAAa,EAAE;AAC/B;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA4D;;AAE5D;AACA;AACA;AACA,0CAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAO;AACP;AACA;AACA;AACA;AACA,8DAA6D;;AAE7D;AACA;AACA;AACA,2CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iEAAgE;;AAEhE;AACA;AACA;AACA,8CAA6C;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,kEAAiE,UAAU;AAC3E,uCAAsC,2BAA2B;AACjE;AACA,iCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,UAAU;AACpB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,cAAc;AACxB;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA,aAAY,uEAAuE;AACnF;AACA;AACA,aAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,4DAA2D;;AAE3D;AACA;AACA,qFAAoF;;AAEpF;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,SAAQ,SAAS;AACjB;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAiD;AACjD,WAAU,wCAAwC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;;AAEA,EAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,SAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA,eAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,OAAO;AAChB,0BAAyB,wBAAwB;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA,2CAA0C;AAC1C,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA,QAAO;AACP,OAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR,QAAO;AACP;AACA,OAAM;AACN,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA8C;AAC9C,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,KAAI;;AAEJ;;AAEA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAuB,aAAa;AACpC,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAoB,SAAS;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,gBAAe,oBAAoB,EAAE;AACrC,gBAAe,qCAAqC,EAAE;AACtD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,SAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,uBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,gBAAgB;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAoD;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gEAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA,kBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,+BAA+B;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,wDAAwD;AAC/E;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAsC,cAAc;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAwC,OAAO;AAC/C;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,UAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;;AAEA,UAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sCAAqC,UAAU,SAAS,MAAM,aAAa;AAC3E,cAAa,eAAe;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAkC,2BAA2B,sBAAsB;AACnF,uBAAsB,cAAc;AACpC,iBAAgB,WAAW,YAAY;AACvC,YAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,SAAS,QAAQ,QAAQ;AACrD;;AAEA;AACA;AACA,qCAAoC,uBAAuB;AAC3D,oBAAmB,SAAS,SAAS;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA,aAAY,+DAA+D;AAC3E;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,SAAQ,OAAO;;AAEf;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,mBAAkB,gBAAgB;AAClC;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;;AAEA,WAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,aAAY;AACZ;;AAEA;AACA;AACA;;AAEA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;;AAEX;AACA;AACA;AACA,SAAQ,QAAQ;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,kDAAiD;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAU,iBAAiB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,4BAA2B;AAC3B;AACA,sBAAqB;AACrB;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,iBAAiB;AAC5B;AACA;;AAEA,8CAA6C;AAC7C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA,SAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,UAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA,kEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAoB,cAAc;AAClC,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,kDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAU,kBAAkB;AAC5B,YAAW,kBAAkB;AAC7B,eAAc;AACd,EAAC;AACD;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;;AAEA,kCAAiC;AACjC;AACA;;AAEA,KAAI;AACJ;;AAEA,KAAI;AACJ;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,SAAS;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,WAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qCAAqC;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAK;AACL;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,iBAAgB;;AAEhB,iDAAgD;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,kBAAiB;AACjB,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC;;AAElC;AACA,uBAAsB;AACtB,4BAA2B;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;AACJ;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAc;AACd,OAAM;AACN,OAAM;AACN,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA,GAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA,oDAAmD;AACnD;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,YAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,KAAI;AACJ,IAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA,GAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,sDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,WAAU,kBAAkB;AAC5B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB;;AAEnB,6DAA4D,eAAe;AAC3E;AACA;;AAEA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA,eAAc,sDAAsD;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA,eAAc,mCAAmC;AACjD,gBAAe,6DAA6D;AAC5E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,GAAE;AACF,EAAC;;;AAGD;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,EAAC;;AAED;;;;;AAKA;AACA;AACA;AACA;AAC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","file":"animate.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5aab71d4569a7e44d654\n **/","import {quickMap} from '../olHelpers/quickMap';\r\nimport LayerRealEarthTile from \"../layers/LayerRealEarthTile\";\r\nimport {MediaControl, changeFunction} from \"../domUtil/media-control\";\r\nimport $ = require('jquery');\r\n\r\nlet nexrhresConfig = {\r\n products: 'nexrhres',\r\n id: 'nexrhres-static',\r\n opacity: 0.6,\r\n animate: true,\r\n name: 'Hybrid Reflectivity',\r\n // maxZoom: 10,\r\n loadCallback: null\r\n};\r\n\r\nlet nexrhresStatic = new LayerRealEarthTile(nexrhresConfig);\r\n\r\n\r\nlet d = new Date();\r\nlet endTime = d.getTime();\r\nd.setHours(d.getHours() - 4);\r\nlet startTime = d.getTime();\r\nlet rangeStep = Math.round((endTime - startTime) / 8);\r\n\r\nlet media = new MediaControl(\r\n $('#control'),\r\n (v: number) => {\r\n nexrhresStatic.setLayerTime(v);\r\n },\r\n {\r\n min: startTime,\r\n max: endTime,\r\n val: endTime,\r\n step: rangeStep,\r\n playInterval: 750,\r\n showAsDate: true\r\n }\r\n);\r\n\r\n\r\n\r\nlet map = quickMap();\r\nmap.addLayer(nexrhresStatic.olLayer);\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/_test/animate.ts\n **/","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport {quickMapOptions, quickMapBase} from './quickMapBase';\r\nimport provide from '../util/provide';\r\nimport mapMove from './mapMove';\r\nimport mapPopup from './mapPopup';\r\nimport ol from 'custom-ol'\r\nlet nm = provide('olHelpers');\r\n\r\n/**\r\n * Sets up a map with some default parameters and initializes\r\n * mapMove and mapPopup\r\n *\r\n * @param {object} [options={}] config options\r\n * @param {string} [options.divId=map] map div id\r\n * @param {object} [options.center={}] center config object\r\n * @param {number} [options.center.x=-10018378] center x, web mercator x or lon\r\n * @param {number} [options.center.y=5574910] center y, web mercator y or lat\r\n * @param {number} [options.zoom=7] zoom level\r\n * @param {number} [options.minZoom=undefined] min zoom\r\n * @param {number} [options.maxZoom=undefined] max zoom\r\n * @param {boolean} [options.baseSwitcher=true] if add base map switcher\r\n * @param {boolean} [options.fullScreen=false] if add base map switcher\r\n * @returns the ol map\r\n */\r\nexport function quickMap(options? : quickMapOptions): ol.Map {\r\n let m = quickMapBase(options);\r\n mapMove.init(m);\r\n mapPopup.init(m);\r\n\r\n return m;\r\n}\r\n\r\n\r\nnm.quickMap = quickMap;\r\nexport default quickMap;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/quickMap.ts\n **/","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nconst nm = provide('olHelpers');\r\nconst $ = require('jquery');\r\n\r\n\r\nexport interface quickMapOptions {\r\n divId?: string;\r\n center?: {x: number, y: number};\r\n zoom?: number;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n baseSwitcher?: boolean;\r\n fullScreen?: boolean;\r\n}\r\n\r\n/**\r\n * Sets up a map with some default parameters and initializes\r\n * mapMove and mapPopup\r\n *\r\n * @param [options={}] config options\r\n * @param [options.divId=map] map div id\r\n * @param [options.center={}] center config object\r\n * @param [options.center.x=-10018378] center x, web mercator x or lon\r\n * @param [options.center.y=5574910] center y, web mercator y or lat\r\n * @param [options.zoom=7] zoom level\r\n * @param [options.minZoom=undefined] min zoom\r\n * @param [options.maxZoom=undefined] max zoom\r\n * @param [options.baseSwitcher=true] if add base map switcher\r\n * @param [options.fullScreen=false] if add base map switcher\r\n * @returns the ol map\r\n */\r\nexport function quickMapBase(options?: quickMapOptions): ol.Map {\r\n options = options || {} as quickMapOptions;\r\n options.divId = options.divId || 'map';\r\n options.center = options.center || {x: -10018378, y: 5574910};\r\n options.zoom = typeof options.zoom == 'number' ? options.zoom : 7;\r\n options.baseSwitcher = typeof options.baseSwitcher == 'boolean' ? options.baseSwitcher : true;\r\n options.fullScreen = typeof options.fullScreen == 'boolean' ? options.fullScreen : false;\r\n\r\n\r\n let $mapDiv = $('#' + options.divId);\r\n $mapDiv.css('position', 'relative');\r\n\r\n let osmLayer = new ol.layer.Tile({source: new ol.source.OSM()});\r\n // let satLayer = new ol.layer.Tile({visible: false, source: new ol.source.MapQuest({layer: 'sat'})});\r\n\r\n let osmCss = \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAADQ1NDk5OURFREtLS1FHSFlZWGJRVGJiYWdmZWxsbHRmaXBpanN0c3V0dHp5eX5+fIVzd4F3eeV0jud5juZ8k4aHhomHhoyGh5eGj5OVlJiVlZiYl5qZmJydnKOTlaKZmqKdnaOioaqqqKuzsbOvrrSysLa3tbW4uLm6ub27ub+/vbGXwbCZwbCgxLKlxrOqyLStybO3yrSxyrWzzbW2y7a1zbK4y7W6zbW8y760yrTAzbTFzrPKzrLOzrTJzrTOzr7CwbXC0LXK0LTO0L3I0bPQz7TQz7PS0bXQ0LnR0brW1bzT0r7U077V1Lzc2dqNqteUsdyXscaquuOHneaGmueHnOeJnuiBleiKn+eNoOiOoOWUpOiRo+iSpeiUpeqYpumaqOmdrPSynemgruSqtOmisOmlsuuqtequuOW1vOuxu+uxvOq1ve+xvPK0pvW3o/W5pfO5qvS7qfCwvMOuwc2/wNenxNyyzNe/0Nq31Nq51dy72Oy3wOu4wOu+xey4wO+6xO2+xfTAr/TCsvfFtPHLvvTJuMPDwMfHxcXKyc3DxMvFyMvLyM3PzcDV08DV1MTX1cbY1s7X1sjZ1sra2Mnd3M7b2c7c2tfH1tnB1t7F2d7M29fX1tLY1tDd2tHe3NTf3NnS19rZ1tva2Nnf3t3d28rh3tXg3Nnh3tzj393k39ni4N7k4N7n5uXDyOfLz+zAxu3CyOzEyezKzeDJ3eLM3uvP0u3P0ePf2+7R0u7Q1u/U0+7U1ezc0+7a2e/d2+3f3vbFzvLOwfHN0PPQw/TUx/LWyvLYzPDQ1fPe0ubc4vve4uHh3+nh3+/h2u/h3vHj2vHl3uHm4eTn4uDp5ebo4+Xo5ODq6ebq6OTv6+nl4+/j4O7l4e7n5ujp4+np5Ozq5e7s5urt6O7t6Orw6u7x6u3x7vPj5PDl4fDo4vDq5fDt5vDu6PDv7PTv6fDx6vHx7fH17fXw6fXy7fb07/bz8fT18vn38vr39fr48/r59Pr6+P3++//+/gAAALNTSk0AAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjlsM35OAAAFNElEQVRIS1VVCZxVUxi/9l0UIUT2bMnY43bVI2c0Y01kSWIaS0j2JEtkN41piomZrPPKQ2aQ7JKImOZlnm2493TJzDufuU1Zi+v/fee+mZ//793vnPOd7zvfes5zDBEZkBBjAcIjb+Iiotqgdhat8AMK0vl7/R9N7GiWtshqIr+EZ5gYKibyUsXY1l/mfFpssvUlWQ0FkU3gy4+RB/+kwYcO8pRSnldcOU/r2lAHARSwk2ORgEmOdC1EsuRiYSqMPwwroMIraZk5V2fYJQjCKfZrRmh3gSAZi2i4b7wSylWu8EqZwS59JkFUaW96JbNSc+CEUmt4rorwuZmWdDaoc+uZETuQlTCU5xYzR7muUnVUVo+BcRhre/VwUpasgJwhH7JkYIYA0sNxhmCwUK+lw6vCKBZehw01dEiyw4Q4aE0Z4ahDhKaFQsGnJ2BgqKoTBsNjFy0SlW6whRAZTdm8DBJmkBZhDi1j4xJQBk6ywrWUTymaCxac8lROcdauRGzQSNtA7EHUYhXyEwhhgjFUqRuO+rauhF1awFpzCsmwUbjIFBR0u1bKtyGpulW/H/cVVzkyGaIWTIR9pFAV6GK2gPMXMX8gPk9zzxXgI1kimcAltEYr+cjio1imlKpEa9rOipLm+p+CZ6Bw//qd1/f/O+GwMxbSLpyoZEcwkyh2jIks+3hmdd2jWUw4scxNysnHxU7nSspTRcJjCZGL3IsjsYJMMg5mwgx7gaIOLBFCogAgBBoNa9w+DE6I+Bs7FTgwwrJbHjWDgpYo2KwtBTcYEDuloC9geQw+k2RGnPGpTaOlq7AS+YICUz4DZVaX2TiNDhuYfTtY4geLi0IoCm3XccwM9hx4kU28StQEljDs3ZEpFGA+8dKzLmV9ymIwF5FOGn2GdJM8KLHDJbXyiYVMG9MRTLiXGGg2QKaxM3khPSRrwM9zEIardxU2w/EiA0gOeYKHzDR0V7/QGV3lKIA9ktrDArxO3gdA+k6SKoBiVwcm7NjZb9+Hnztg282TuHVZ9LOISFNt9MgyCetZVczSxnyDbl17Penq6mqpg1IhRaEO2aVLUO4/r17H8tTv6f13h71dduvZI3Y+uMdWksNSauLovJw5hsqiPIUvt0ku7/iBeUR3sksmomYWtRbAjbiLfv2lX9/V7LVG4uYnUZXhQ7f2OPCZEx9wrYWTcePEQqPEML8pl4mMdr/jlXlvHiRiJ2+MSTFY4TTSYStuvz2R/JXh+PPeGXm055J+3/YDWuNu3R3DArPutyg0ZgykMVDU9Ndm22+wYalr2rse48CnsTIFcMn73vfhNrktx1EUcZnPv6ah3Yy5cDTRdBEoGoBeah71dqFyjZDJLkWk3N3v4uuktssjWpzciMPxQeHj8nMKzcGuB0tAyzFhdCKOYWv4HwOQVwIxLG99a6uvH3sJCyO3h+k4EZ+G7+xj5f4XXksoaGrdMRzSc8ARA8+cdOuk2x6fffNNt5x+Ro1omPlrT/CQDlcNlpx4NBIWXhkx7Y3Zp3ofNR7Uv89Om/beW0TLIynHv3vs1VsOFpSWSXvfuPUf9BrRFyxgXdHoKJnQFegPOovvzz59ntrzye240ig8UQ3lDI2VqwagrKIQcLXNFL3wglN2OHdBQ6/vI3kENDVBwRb3k1XtczFbjWn4EzMYi7CF3129+JTYuRSdrGuS92g5dpqn6qXoJQs5xmL8p+Wt4hLbt0mx2OLNZR2bbPy8zJNQGFM/f/CfXZekRYFjGCWjIJpM+WiCzGBPWHhoyaAsjRT/B2Gy5yzYJkwUAAAAAElFTkSuQmCC')\";\r\n let aerialCss = \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQALBgIMDQgOBwQOEQcTBwUSCwoVDAwdBw8ZDgUREwYUGAYZFQYZGgkTFQoVGQsZFAwZHBMeDhIbFBEbHAwWIA4bIREcIQ4hCQwjFw4lHBgkDB8sDxUiExIiGhAoGxohFRshGRorHQcrKQsiIQwmKgooJA0pKQ81Jw8yLRMiIxImKxUrJREuKhslJB0rIhooKRUuMBMyLhkwJhozKh48LxUzMRM9MBwzMiUvFCMtGiMwEiwzFCgzHDI+GSIsISkvJSQxIiM2LiY5Jic+Lyk0JSo0Ky49JSs9KSU1NSM7NCs2NS8+NDM1JzU9Ljg7IDJCHS1DLSNAMitCMSxIOjREITZLIDZJKDlFIjpFKztKJT1LKzJBMzpHMD1JMjpKPD1RKjlQNC1DQj5QQEA8MEJGJkBKJUJNK0lLLEJMMkVMPEpONENSLUdZL0pTLkpaLkRUMkRSPEVZMktUM0pVOklZMklZNEpcNU1ZMk1ZNUxfMk5dNkxcOVFUM1RUOFJbNVFZOVNYPVFdOVJdPFVaOVVaPVVdOlVdPVpaNlpdO0phN01hOlBiN1NhPFNoP1piPWFbPmRjPENOQEtPSURTQkJVS0xVQk1VSkxbQkxcS0heUVFXRFRcQlJfTFxeQlpeS05lQk1kSFRjQVRjSlZpQ1tkQlxlSlxpRF1rSVVnUVtlU1llXF9tU1xoXlxwSl9ramRfQmJlQ2FhSWFlSWFlTmVlSWRmTGFoQWFpRWFsRmVpRWVtRmNsSmtlRGpqRmpsS2BmWGRsUmFrW2ptUmZyR2RxTGpxTWVyU2RyW2d5V2tzUmt0WW15VG15WXFuTHNtVnFxTXF4T3h0TnJzUnJ1XHJ4VXN6Wnp0VHx1W315VXp8XGR0YGx0YHVzZXJ0aHR9ZXV+aHl9YHOCXXqBXXeCYHyCY3iEaHyIYn+JaXqKcYB5WIN6Y4SCXoCDZIGEaYCIZoOLa4iCaImJbIOOdYuMco6OeIuVcpOKbZKPc5aQb5eXe5ufg6KjhAAAAAAAAAAAAAAAAOGCeQgAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjlsM35OAAAH80lEQVRISy1WbXQUVxm+6wqnk3Zmpxl2FG2EGg92C8GDlWptVTwa+uF3xcKmDfFzCUzDsJNsunXipglJXJbrtJWmwZNSnHD3jojRgUIm2UumIZ0JZ7JByrALbMWW0IBW8aRa4+cf76TeX3Nm3uc+z/s+7/vugl4r/aMTrT4e1pPTqnnmJNn5AyUzRnrRle/qE33dsvrBtAQVoxtpZNK3zSzYjUjviWO2Ag+R77dl7W36n/1Ep9KBPG/S+Py0PkjU/gPKQGqwTHryiWYFAXSvMairsio7SjyNsnCzh0qKImV9/7mhfHQZx2yN1O+7rXUm33MUPaboOkAJHaoIdXfJj2xWeyD8jMFEXkvIu5qzpU988gWB5zl+GS+sFe55trEVPdWZB2miq8bBVkNFO2R0qnrfkiXhcJhtDNXE6tbW97/s9O9/7ZfVhx86/CwrROpfvvxboMqeLsuqPr1j44qEwDNMOBximUiYoU8sw7BC/a7T72uEnyJDlGxZ9KcglZRyuqqrv/tSZErgOI4NgRBTIw9EmHAoFGZZnp6aGaJ2GTxfxYs8kKVUQh7WB5hQeC3LsUxoxVKW14l3BX2WcoUYPiZyLLe8teZ+iuT4GGhvV5KpKWkpyzxEr2MZgQ1xdRjfRBoH+2k6lIHjKTHPPBo8CSJISqqq4wGGOcWylIGlgvgNX1Gd8vF5f+IUIwb30ng+Gg2QfBRIMvy0jG8SVkYo4N0zvUXVRztbJ/L6xL7lUZEXBEHkuZqlS6gEAUgKJurnhFtfpACOYd8b/hVbJPqwi44a6KA0sPVjIi/SIyxb3u8KlAJ0S8jRVgrlW+nVHPdrhiXCxu42d86ByksDc80P3MkJFBFQ8Ho1lQegpWJRWFGsDsRwwv7pIyvuQW0ZkrX6NDVFbqcvaQI8vbyqzt5AARrsbKx5yhQEGs+wPO56bOK+0rcwMrOKkpUbZWYxV04UeZZv/cBKFhRL6Qdv9y4LfEDA7/thg7tTmv1a5/GnO0wl0dQg80wglZaHUmxRvjwAHOfyN0mxrpqLUpcjsK3NHYMo4R1o6eho2ZyIb2FoeOC3ILK8kZ2HQMOuWywGXUkJBCeTbYFS0+ym1h2/6UgmvnrvKYZZtIEXGf75C2cIAp5LHNd71x7uPoTjakrWH9e3KFpaatjUvJUysFw0KrLMYMW2lTg4PeUQx6kJEALvxXEmCdVyPLHtCSjBhc01XCjIgafxou+PE6KC1dhxSCwoBCc+N4P3btM84pmdSSjJnjO/nvY4LQfVyz5/I+v6IwjUOMjy+MVCxIbKupTJaEktp7cTKU42Pvjh2m/8cSpC6aPsaX/MHSuUQLVVsIa4RUTs/r/BVAexNdjdnsNG7j/rV93xheLMzKnFrPeTEQchCyCcKb25aAIn7lrAertrZwyNXM8N6zfWrFo3d2SmOEcF83x/r+OOFgrAHYWF7cELjhV7UQo/6WAIUVl9JFl8a//HZ66VpbY3I9QKZqPru77lA+iOWAIr0hKxHCmmr0othSyeIl5y3qt4xT8gSNrKEZozs8Els67rgsLOZ+ygzwMfbtNhobfgzpEyGnz7htPtzUi6PuOoj7K0WF/MXiUFxwGajRD1hjYXHXI9p406qOyinp5/tiWcDHY0jIu4n64Qfq7kliB2gemag9QbOia0PbbDMbd43SHuvxFxrAocxins7MX5Kqbe1QixKBxoV4//PfAgGCu+Rlm4SvZizyDH+0reDHp92iO0BuX3bCfItl0PEwvYLqpwXG2MHlGsQ4S8pMJZv1JGmHiEoHQDdOjwmVlEP/nE9ADKjI8xLI0OOGITfy0SbeG/C2jKUDGSlDhM9I3IpK9iup6XnbRNC7yqueNsJCCIiXzdQhnaGN+46umnEdy5U5UbUJ48LFM9GkJo8BdDOiAZ7ZIQbKhYLMqvhU2wmNxjEAsS2AI7y4nWF64duePbk7YV3zvAVLEMD9AxJRNa3KDUibV7DjnkuprMEYjScFNcaR2ceP2u9R/5k1052Ryme5phAFRswlHjAudiP4dOy7CaxLgdJh9vUlU1702/+LPa1U9fvPi9qlA4XEUBJc3dFlpsR457IDl1iPqLp7o81NQgyV19iYU38uTiv975Pd3SiwQcsGjx+v4/6fl5T7EOOMTCtpbKxfemsQq/3olQZcminADAAI0cuGLHaHOFxbuGvRk/Z9u7CULqoVR6NE0yx1avj30oRhc/jWUoIALGxkz0dg1Dl9iaI7LqOOXKsXJFwjiuEAi70Jra2nW1PL08zLBhZsMABpW5csI7TPfew9ipFKcn5k1i+1KyCWKjC3W/8dF1d666+RaabBVTFTHacjoojBNDh0NDxk+IPTlwfqJkWpbnpFHXIbLbmpxEQ3ff/Z0g/mauXsoln9wDRjy/NHsQFw3P6vWuTJ43/+FZrk2cvAFRipCKdfD9y2+pjRj78s0KdCUDKJvdV91ChngV38T20TM+gghjpJaPlpFr2xbEz5g4A/NGt5rNwdwmYGeeeMXBSLHHUIc+6RsojRH9VTUm3/mLf/64b470XvoxoTKhlMBQ2jMEzo2PjxdGMppmn1RM24bWFJqaQv4BcuJa2Sam7Zokq1ldCsz06NCBHrhwqVQYpfFj42NZexz1EW9SR/kT58nEeQKJb2fPXjjp0u/YUkwHEgLeOnf2nOuf1TRTM02CLKLTPy60/x1CCztqn7Ev+BdsC3m+30decQvW/wBNTwU+CfUQAQAAAABJRU5ErkJggg==')\";\r\n\r\n if (options.baseSwitcher) {\r\n // let switcherContent = '<div class=\"base-map-switcher\" title=\"Toggle Base Layer\" style=\"';\r\n // switcherContent += 'position: absolute; top: 70px; left: 4px; border: solid black 1px; ';\r\n // switcherContent += `height: 50px; width: 50px; z-index: 10; border-radius: 4px; background: ${aerialCss};`;\r\n // switcherContent += '\"></div>';\r\n // $mapDiv.append(switcherContent);\r\n //\r\n // $mapDiv.find('.base-map-switcher').click(function() {\r\n // \"use strict\";\r\n // osmLayer.setVisible(!osmLayer.getVisible());\r\n // satLayer.setVisible(!satLayer.getVisible());\r\n //\r\n // if (osmLayer.getVisible()){\r\n // $(this).css('background', aerialCss);\r\n // } else {\r\n // $(this).css('background', osmCss);\r\n // }\r\n // });\r\n }\r\n\r\n if (options.zoom < 0 || options.zoom > 28) {\r\n throw 'zoom out of range';\r\n }\r\n\r\n if (options.center.x >= -180 && options.center.x <= 180 && options.center.y >= -90 && options.center.y <= 90) {\r\n let p = new ol.geom.Point([options.center.x, options.center.y]);\r\n new ol.proj.Projection({code: \"EPSG:4326\"});\r\n\r\n p.transform(new ol.proj.Projection({code: \"EPSG:4326\"}), new ol.proj.Projection({code: \"EPSG:3857\"}));\r\n let coordinates = p.getCoordinates();\r\n options.center.x = coordinates[0];\r\n options.center.y = coordinates[1];\r\n }\r\n\r\n let map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: ol.control.defaults({\r\n attributionOptions: {collapsible: false}\r\n }),\r\n view: new ol.View({\r\n center: [options.center.x, options.center.y],\r\n zoom: options.zoom,\r\n minZoom: options.minZoom,\r\n maxZoom: options.maxZoom\r\n })\r\n });\r\n\r\n if (options.fullScreen) {\r\n //TODO add full screen options to ts\r\n map.addControl(new ol.control.FullScreen({}));\r\n }\r\n\r\n return map;\r\n}\r\n\r\nnm.quickMapBase = quickMapBase;\r\nexport default quickMapBase;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/quickMapBase.ts\n **/","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\r\n\r\n/**\r\n * create a namespace on the gv object\r\n * @param {string} namespace to create\r\n * @returns {object} object representing the namespace\r\n */\r\nfunction provide(namespace){\r\n \"use strict\";\r\n if (typeof window['gv'] == 'undefined'){\r\n window['gv'] = {};\r\n }\r\n\r\n let parts = namespace.split('.');\r\n let nameSpace = window['gv'];\r\n\r\n for (let i=0; i< parts.length; i++){\r\n let newObject = nameSpace[parts[i]];\r\n\r\n if (typeof newObject == 'undefined'){\r\n nameSpace[parts[i]] = {};\r\n }\r\n\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n\r\n return nameSpace;\r\n}\r\n\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\n\r\nexport default provide;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/util/provide.ts\n **/","\"use strict\";\r\nvar ol_build_1 = require('../ol/ol-build');\r\nexports.ol = ol_build_1.ol;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = ol_build_1.ol;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/custom-ol/lib/index.js\n ** module id = 4\n ** module chunks = 0 2 3 7\n **/","// OpenLayers 3. See http://openlayers.org/\r\n// License: https://raw.githubusercontent.com/openlayers/ol3/master/LICENSE.md\r\nvar n,aa=this;\r\nfunction ba(){var a=aa.setImmediate,b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\r\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}function ca(a,b,c){return a.call.apply(a.bind,arguments)}function da(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}\r\nfunction ea(a,b,c){ea=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?ca:da;return ea.apply(null,arguments)}function y(a,b){var c=a.split(\".\"),d=aa;c[0]in d||!d.execScript||d.execScript(\"var \"+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b};var fa;function B(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function I(){}function J(a){return a.ie||(a.ie=++ga)}var ga=0;if(\"undefined\"!==typeof window)var K=window;else\"undefined\"!==typeof global?K=global:\"undefined\"!==typeof self&&(K=self);function ha(a){this.message=\"Assertion failed. See /doc/errors/#\"+a+\" for details.\";this.code=a;this.name=\"AssertionError\"}B(ha,Error);function L(a,b){if(!a)throw new ha(b);};function ia(a,b,c){return Math.min(Math.max(a,b),c)}var ja=function(){var a;\"cosh\"in Math?a=Math.cosh:a=function(a){a=Math.exp(a);return(a+1/a)/2};return a}();function ka(a){L(0<a,29);return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))}function la(a,b){var c=a%b;return 0>c*b?c+b:c};function ma(a){return function(b){if(b)return[ia(b[0],a[0],a[2]),ia(b[1],a[1],a[3])]}}function na(a){return a};function oa(a,b,c){this.center=a;this.resolution=b;this.rotation=c};var pa=\"function\"===typeof Object.assign?Object.assign:function(a,b){if(!a||!a)throw new TypeError(\"Cannot convert undefined or null to object\");for(var c=Object(a),d=1,e=arguments.length;d<e;++d){var f=arguments[d];if(void 0!==f&&null!==f)for(var g in f)f.hasOwnProperty(g)&&(c[g]=f[g])}return c};function qa(a){for(var b in a)delete a[b]}function ra(a){var b=[],c;for(c in a)b.push(a[c]);return b}function sa(a){for(var b in a)return!1;return!b};function ta(a){function b(b){var d=a.listener,e=a.jc||a.target;a.mc&&M(a);return d.call(e,b)}return a.kc=b}function ua(a,b,c,d){for(var e,f=0,g=a.length;f<g;++f)if(e=a[f],e.listener===b&&e.jc===c)return d&&(e.deleteIndex=f),e}function va(a,b){var c=a.ha;return c?c[b]:void 0}function wa(a){var b=a.ha;b||(b=a.ha={});return b}\r\nfunction xa(a,b){var c=va(a,b);if(c){for(var d=0,e=c.length;d<e;++d)a.removeEventListener(b,c[d].kc),qa(c[d]);c.length=0;if(c=a.ha)delete c[b],0===Object.keys(c).length&&delete a.ha}}function R(a,b,c,d,e){var f=wa(a),g=f[b];g||(g=f[b]=[]);(f=ua(g,c,d,!1))?e||(f.mc=!1):(f={jc:d,mc:!!e,listener:c,target:a,type:b},a.addEventListener(b,ta(f)),g.push(f));return f}function ya(a,b,c,d){(a=va(a,b))&&(c=ua(a,c,d,!0))&&M(c)}\r\nfunction M(a){if(a&&a.target){a.target.removeEventListener(a.type,a.kc);var b=va(a.target,a.type);if(b){var c=\"deleteIndex\"in a?a.deleteIndex:b.indexOf(a);-1!==c&&b.splice(c,1);0===b.length&&xa(a.target,a.type)}qa(a)}}function za(a){var b=wa(a),c;for(c in b)xa(a,c)};function Aa(){}Aa.prototype.ra=!1;function Da(a){a.ra||(a.ra=!0,a.R())}Aa.prototype.R=I;function T(a){this.type=a;this.target=null}T.prototype.preventDefault=T.prototype.stopPropagation=function(){this.qe=!0};function Ea(a){a.stopPropagation()}function Fa(a){a.preventDefault()};function Ga(){this.ca={};this.K={};this.C={}}B(Ga,Aa);Ga.prototype.addEventListener=function(a,b){var c=this.C[a];c||(c=this.C[a]=[]);-1===c.indexOf(b)&&c.push(b)};function U(a,b){var c=\"string\"===typeof b?new T(b):b,d=c.type;c.target=a;var e=a.C[d],f;if(e){d in a.K||(a.K[d]=0,a.ca[d]=0);++a.K[d];for(var g=0,h=e.length;g<h;++g)if(!1===e[g].call(a,c)||c.qe){f=!1;break}--a.K[d];if(0===a.K[d]){c=a.ca[d];for(delete a.ca[d];c--;)a.removeEventListener(d,I);delete a.K[d]}return f}}Ga.prototype.R=function(){za(this)};\r\nfunction Ha(a,b){return b?b in a.C:0<Object.keys(a.C).length}Ga.prototype.removeEventListener=function(a,b){var c=this.C[a];if(c){var d=c.indexOf(b);a in this.ca?(c[d]=I,++this.ca[a]):(c.splice(d,1),0===c.length&&delete this.C[a])}};function Ia(){Ga.call(this);this.b=0}B(Ia,Ga);Ia.prototype.w=function(){++this.b;U(this,\"change\")};Ia.prototype.Y=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=R(this,a[f],b,c);return e}return R(this,a,b,c)};Ia.prototype.hd=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=R(this,a[f],b,c,!0);return e}return R(this,a,b,c,!0)};function Ja(a,b,c){T.call(this,a);this.key=b;this.oldValue=c}B(Ja,T);function V(a){Ia.call(this);J(this);this.M={};void 0!==a&&this.l(a)}B(V,Ia);var Ka={};function La(a){return Ka.hasOwnProperty(a)?Ka[a]:Ka[a]=\"change:\"+a}V.prototype.get=function(a){var b;this.M.hasOwnProperty(a)&&(b=this.M[a]);return b};V.prototype.Ea=function(){return pa({},this.M)};V.prototype.set=function(a,b,c){c?this.M[a]=b:(c=this.M[a],this.M[a]=b,c!==b&&(b=La(a),U(this,new Ja(b,a,c)),U(this,new Ja(\"propertychange\",a,c))))};\r\nV.prototype.l=function(a,b){for(var c in a)this.set(c,a[c],b)};function Ma(a,b){return a>b?1:a<b?-1:0}function Na(a,b,c){var d=a.length;if(a[0]<=b)return 0;if(!(b<=a[d-1]))if(0<c)for(c=1;c<d;++c){if(a[c]<b)return c-1}else if(0>c)for(c=1;c<d;++c){if(a[c]<=b)return c}else for(c=1;c<d;++c){if(a[c]==b)return c;if(a[c]<b)return a[c-1]-b<b-a[c]?c-1:c}return d-1}function Oa(a){return a.reduce(function(a,c){return Array.isArray(c)?a.concat(Oa(c)):a.concat(c)},[])}function Pa(a,b){var c,d=Array.isArray(b)?b:[b],e=d.length;for(c=0;c<e;c++)a[a.length]=d[c]}\r\nfunction Qa(a,b){var c=a.indexOf(b),d=-1<c;d&&a.splice(c,1);return d}function Ra(a,b){var c=a.length;if(c!==b.length)return!1;for(var d=0;d<c;d++)if(a[d]!==b[d])return!1;return!0}function Sa(a){var b=Ta,c=a.length,d=Array(a.length),e;for(e=0;e<c;e++)d[e]={index:e,value:a[e]};d.sort(function(a,c){return b(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value}function Ua(a,b){var c=b||Ma;return a.every(function(b,e){if(0===e)return!0;var f=c(a[e-1],b);return!(0<f||0===f)})};function Va(a){return function(b,c,d){if(void 0!==b)return b=Na(a,b,d),b=ia(b+c,0,a.length-1),c=Math.floor(b),b!=c&&c<a.length-1?a[c]/Math.pow(a[c]/a[c+1],b-c):a[c]}}function Wa(a,b,c){return function(d,e,f){if(void 0!==d)return d=Math.max(Math.floor(Math.log(b/d)/Math.log(a)+(-f/2+.5))+e,0),void 0!==c&&(d=Math.min(d,c)),b/Math.pow(a,d)}};function Xa(a){if(void 0!==a)return 0}function Ya(a,b){if(void 0!==a)return a+b}function Za(a){var b=2*Math.PI/a;return function(a,d){if(void 0!==a)return a=Math.floor((a+d)/b+.5)*b}}function $a(){var a=5*Math.PI/180;return function(b,c){if(void 0!==b)return Math.abs(b+c)<=a?0:b+c}};function ab(a,b){a[0]+=b[0];a[1]+=b[1]}function bb(a,b){var c=Math.cos(b),d=Math.sin(b),e=a[1]*c+a[0]*d;a[0]=a[0]*c-a[1]*d;a[1]=e};function cb(a){for(var b=db(),c=0,d=a.length;c<d;++c)eb(b,a[c]);return b}function fb(a,b,c){return c?(c[0]=a[0]-b,c[1]=a[1]-b,c[2]=a[2]+b,c[3]=a[3]+b,c):[a[0]-b,a[1]-b,a[2]+b,a[3]+b]}function gb(a,b){return b?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b):a.slice()}function hb(a,b){return a[0]<=b[0]&&b[2]<=a[2]&&a[1]<=b[1]&&b[3]<=a[3]}function db(){return[Infinity,Infinity,-Infinity,-Infinity]}function ib(a,b,c,d,e){return e?(e[0]=a,e[1]=b,e[2]=c,e[3]=d,e):[a,b,c,d]}\r\nfunction jb(a){return ib(Infinity,Infinity,-Infinity,-Infinity,a)}function kb(a,b){var c=a[0],d=a[1];return ib(c,d,c,d,b)}function lb(a,b){return a[0]==b[0]&&a[2]==b[2]&&a[1]==b[1]&&a[3]==b[3]}function mb(a,b){b[0]<a[0]&&(a[0]=b[0]);b[2]>a[2]&&(a[2]=b[2]);b[1]<a[1]&&(a[1]=b[1]);b[3]>a[3]&&(a[3]=b[3])}function eb(a,b){b[0]<a[0]&&(a[0]=b[0]);b[0]>a[2]&&(a[2]=b[0]);b[1]<a[1]&&(a[1]=b[1]);b[1]>a[3]&&(a[3]=b[1])}\r\nfunction nb(a,b,c,d,e){for(;c<d;c+=e){var f=a,g=b[c],h=b[c+1];f[0]=Math.min(f[0],g);f[1]=Math.min(f[1],h);f[2]=Math.max(f[2],g);f[3]=Math.max(f[3],h)}return a}function ob(a){var b=0;pb(a)||(b=qb(a)*rb(a));return b}function sb(a){return[a[0],a[1]]}function tb(a){return[(a[0]+a[2])/2,(a[1]+a[3])/2]}\r\nfunction ub(a,b,c,d,e){var f=b*d[0]/2;d=b*d[1]/2;b=Math.cos(c);var g=Math.sin(c);c=f*b;f*=g;b*=d;var h=d*g,k=a[0],l=a[1];a=k-c+h;d=k-c-h;g=k+c-h;c=k+c+h;var h=l-f-b,k=l-f+b,m=l+f+b,f=l+f-b;return ib(Math.min(a,d,g,c),Math.min(h,k,m,f),Math.max(a,d,g,c),Math.max(h,k,m,f),e)}function rb(a){return a[3]-a[1]}function vb(a,b){var c=db();wb(a,b)&&(c[0]=a[0]>b[0]?a[0]:b[0],c[1]=a[1]>b[1]?a[1]:b[1],c[2]=a[2]<b[2]?a[2]:b[2],c[3]=a[3]<b[3]?a[3]:b[3]);return c}function xb(a){return[a[0],a[3]]}\r\nfunction qb(a){return a[2]-a[0]}function wb(a,b){return a[0]<=b[2]&&a[2]>=b[0]&&a[1]<=b[3]&&a[3]>=b[1]}function pb(a){return a[2]<a[0]||a[3]<a[1]};function yb(){return!0}function zb(){return!1};/*\r\n\r\n Latitude/longitude spherical geodesy formulae taken from\r\n http://www.movable-type.co.uk/scripts/latlong.html\r\n Licensed under CC-BY-3.0.\r\n*/\r\nfunction Ab(a){this.radius=a}function Bb(a,b){var c=a[1]*Math.PI/180,d=b[1]*Math.PI/180,e=(d-c)/2,f=(b[0]-a[0])*Math.PI/180/2,c=Math.sin(e)*Math.sin(e)+Math.sin(f)*Math.sin(f)*Math.cos(c)*Math.cos(d);return 2*Cb.radius*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))}\r\nAb.prototype.offset=function(a,b,c){var d=a[1]*Math.PI/180;b/=this.radius;var e=Math.asin(Math.sin(d)*Math.cos(b)+Math.cos(d)*Math.sin(b)*Math.cos(c));return[180*(a[0]*Math.PI/180+Math.atan2(Math.sin(c)*Math.sin(b)*Math.cos(d),Math.cos(b)-Math.sin(d)*Math.sin(e)))/Math.PI,180*e/Math.PI]};var Cb=new Ab(6370997);var Db={};Db.degrees=2*Math.PI*Cb.radius/360;Db.ft=.3048;Db.m=1;Db[\"us-ft\"]=1200/3937;\r\nfunction Eb(a){this.ya=a.code;this.a=a.units;this.h=void 0!==a.extent?a.extent:null;this.c=void 0!==a.global?a.global:!1;this.b=!(!this.c||!this.h);this.i=void 0!==a.getPointResolution?a.getPointResolution:this.j;this.f=null;this.g=a.metersPerUnit;var b=Fb,c=a.code,d=Gb||K.proj4;if(\"function\"==typeof d&&void 0===b[c]){var e=d.defs(c);if(void 0!==e){void 0===a.metersPerUnit&&(this.g=e.to_meter);void 0===a.units&&(this.a=e.units);var f,g;for(f in b)if(a=d.defs(f),void 0!==a)if(b=Hb(f),a===e)Ib([b,this]);\r\nelse{g=d(f,c);a=g.forward;g=g.inverse;var b=Hb(b),h=Hb(this);Jb(b,h,Kb(a));Jb(h,b,Kb(g))}}}}Eb.prototype.l=function(){return this.ya};Eb.prototype.G=function(){return this.h};function Lb(a){return a.g||Db[a.a]}Eb.prototype.j=function(a,b){if(\"degrees\"==this.a)return a;var c=Mb(this,Hb(\"EPSG:4326\")),d=[b[0]-a/2,b[1],b[0]+a/2,b[1],b[0],b[1]-a/2,b[0],b[1]+a/2],d=c(d,d,2),c=(Bb(d.slice(0,2),d.slice(2,4))+Bb(d.slice(4,6),d.slice(6,8)))/2,d=Lb(this);void 0!==d&&(c/=d);return c};\r\nEb.prototype.getPointResolution=function(a,b){return this.i(a,b)};var Fb={},Ob={},Gb=null;function Ib(a){Pb(a);a.forEach(function(b){a.forEach(function(a){b!==a&&Jb(b,a,Qb)})})}function Rb(a){Fb[a.ya]=a;Jb(a,a,Qb)}function Pb(a){var b=[];a.forEach(function(a){b.push(Rb(a))})}function Sb(a){return a?\"string\"===typeof a?Hb(a):a:Hb(\"EPSG:3857\")}function Jb(a,b,c){a=a.ya;b=b.ya;a in Ob||(Ob[a]={});Ob[a][b]=c}\r\nfunction Kb(a){return function(b,c,d){var e=b.length;d=void 0!==d?d:2;c=void 0!==c?c:Array(e);var f,g;for(g=0;g<e;g+=d)for(f=a([b[g],b[g+1]]),c[g]=f[0],c[g+1]=f[1],f=d-1;2<=f;--f)c[g+f]=b[g+f];return c}}function Hb(a){var b;if(a instanceof Eb)b=a;else if(\"string\"===typeof a){b=Fb[a];var c=Gb||K.proj4;void 0===b&&\"function\"==typeof c&&void 0!==c.defs(a)&&(b=new Eb({code:a}),Rb(b))}return b||null}function Tb(a,b){if(a===b)return!0;var c=a.a===b.a;return a.ya===b.ya?c:Mb(a,b)===Qb&&c}\r\nfunction Ub(a,b){var c=Hb(a),d=Hb(b);return Mb(c,d)}function Mb(a,b){var c=a.ya,d=b.ya,e;c in Ob&&d in Ob[c]&&(e=Ob[c][d]);void 0===e&&(e=Vb);return e}function Vb(a,b){if(void 0!==b&&a!==b){for(var c=0,d=a.length;c<d;++c)b[c]=a[c];a=b}return a}function Qb(a,b){var c;if(void 0!==b){c=0;for(var d=a.length;c<d;++c)b[c]=a[c];c=b}else c=a.slice();return c};function Wb(){V.call(this);this.j=db();this.s=-1;this.f={};this.i=this.g=0}B(Wb,V);Wb.prototype.G=function(a){this.s!=this.b&&(this.j=this.mb(this.j),this.s=this.b);var b=this.j;a?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a=b;return a};Wb.prototype.transform=function(a,b){this.Hb(Ub(a,b));return this};function Xb(a,b,c,d,e,f){for(var g=f?f:[],h=0;b<c;b+=d){var k=a[b],l=a[b+1];g[h++]=e[0]*k+e[2]*l+e[4];g[h++]=e[1]*k+e[3]*l+e[5]}f&&g.length!=h&&(g.length=h);return g};function Yb(){Wb.call(this);this.c=\"XY\";this.A=2;this.o=null}B(Yb,Wb);function Zb(a){var b;\"XY\"==a?b=2:\"XYZ\"==a||\"XYM\"==a?b=3:\"XYZM\"==a&&(b=4);return b}n=Yb.prototype;n.mb=function(a){var b=this.o,c=this.o.length,d=this.A;a=jb(a);return nb(a,b,0,c,d)};n.Rb=function(a){this.i!=this.b&&(qa(this.f),this.g=0,this.i=this.b);if(0>a||0!==this.g&&a<=this.g)return this;var b=a.toString();if(this.f.hasOwnProperty(b))return this.f[b];var c=this.Qa(a);if(c.o.length<this.o.length)return this.f[b]=c;this.g=a;return this};\r\nn.Qa=function(){return this};function $b(a,b,c){a.A=Zb(b);a.c=b;a.o=c}function ac(a,b,c,d){if(b)c=Zb(b);else{for(b=0;b<d;++b){if(0===c.length){a.c=\"XY\";a.A=2;return}c=c[0]}c=c.length;var e;2==c?e=\"XY\":3==c?e=\"XYZ\":4==c&&(e=\"XYZM\");b=e}a.c=b;a.A=c}n.Hb=function(a){this.o&&(a(this.o,this.o,this.A),this.w())};\r\nn.rotate=function(a,b){var c=this.o;if(c){for(var d=c.length,e=this.A,f=c?c:[],g=Math.cos(a),h=Math.sin(a),k=b[0],l=b[1],m=0,p=0;p<d;p+=e){var q=c[p]-k,u=c[p+1]-l;f[m++]=k+q*g-u*h;f[m++]=l+q*h+u*g;for(q=p+2;q<p+e;++q)f[m++]=c[q]}c&&f.length!=m&&(f.length=m);this.w()}};\r\nn.scale=function(a,b,c){var d=b;void 0===d&&(d=a);var e=c;e||(e=tb(this.G()));if(c=this.o){b=c.length;for(var f=this.A,g=c?c:[],h=e[0],e=e[1],k=0,l=0;l<b;l+=f){var m=c[l]-h,p=c[l+1]-e;g[k++]=h+a*m;g[k++]=e+d*p;for(m=l+2;m<l+f;++m)g[k++]=c[m]}c&&g.length!=k&&(g.length=k);this.w()}};n.translate=function(a,b){var c=this.o;if(c){var d=c.length,e=this.A,f=c?c:[],g=0,h,k;for(h=0;h<d;h+=e)for(f[g++]=c[h]+a,f[g++]=c[h+1]+b,k=h+2;k<h+e;++k)f[g++]=c[k];c&&f.length!=g&&(f.length=g);this.w()}};function bc(a,b){var c=0,d,e;d=0;for(e=b.length;d<e;++d)a[c++]=b[d];return c}function cc(a,b,c,d){var e,f;e=0;for(f=c.length;e<f;++e){var g=c[e],h;for(h=0;h<d;++h)a[b++]=g[h]}return b}function dc(a,b,c,d,e){e=e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g)b=cc(a,b,c[g],d),e[f++]=b;e.length=f;return e};function ec(a,b,c,d,e){e=void 0!==e?e:[];for(var f=0;b<c;b+=d)e[f++]=a.slice(b,b+d);e.length=f;return e}function fc(a,b,c,d,e){e=void 0!==e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g){var k=c[g];e[f++]=ec(a,b,k,d,e[f]);b=k}e.length=f;return e};function gc(a,b,c,d,e,f,g){var h=(c-b)/d;if(3>h){for(;b<c;b+=d)f[g++]=a[b],f[g++]=a[b+1];return g}var k=Array(h);k[0]=1;k[h-1]=1;c=[b,c-d];for(var l=0,m;0<c.length;){var p=c.pop(),q=c.pop(),u=0,w=a[q],r=a[q+1],x=a[p],D=a[p+1];for(m=q+d;m<p;m+=d){var t,z=a[m];t=a[m+1];var C=w,E=r,v=x-C,H=D-E;if(0!==v||0!==H){var G=((z-C)*v+(t-E)*H)/(v*v+H*H);1<G?(C=x,E=D):0<G&&(C+=v*G,E+=H*G)}z=C-z;t=E-t;t=z*z+t*t;t>u&&(l=m,u=t)}u>e&&(k[(l-b)/d]=1,q+d<l&&c.push(q,l),l+d<p&&c.push(l,p))}for(m=0;m<h;++m)k[m]&&(f[g++]=\r\na[b+m*d],f[g++]=a[b+m*d+1]);return g}\r\nfunction hc(a,b,c,d,e,f,g,h){var k,l;k=0;for(l=c.length;k<l;++k){var m=c[k];a:{var p=a,q=m,u=d,w=e,r=f;if(b!=q){var x=w*Math.round(p[b]/w),D=w*Math.round(p[b+1]/w);b+=u;r[g++]=x;r[g++]=D;var t,z;do if(t=w*Math.round(p[b]/w),z=w*Math.round(p[b+1]/w),b+=u,b==q){r[g++]=t;r[g++]=z;break a}while(t==x&&z==D);for(;b<q;){var C,E;C=w*Math.round(p[b]/w);E=w*Math.round(p[b+1]/w);b+=u;if(C!=t||E!=z){var v=t-x,H=z-D,G=C-x,A=E-D;v*A==H*G&&(0>v&&G<v||v==G||0<v&&G>v)&&(0>H&&A<H||H==A||0<H&&A>H)||(r[g++]=t,r[g++]=\r\nz,x=t,D=z);t=C;z=E}}r[g++]=t;r[g++]=z}}h.push(g);b=m}return g};function ic(a,b){Yb.call(this);this.ea(a,b)}B(ic,Yb);n=ic.prototype;n.clone=function(){var a=new ic(null);$b(a,this.c,this.o.slice());a.w();return a};n.za=function(){return ec(this.o,0,this.o.length,this.A)};n.Qa=function(a){var b=[];b.length=gc(this.o,0,this.o.length,this.A,a,b,0);a=new ic(null);$b(a,\"XY\",b);a.w();return a};n.$=function(){return\"LinearRing\"};n.ea=function(a,b){a?(ac(this,b,a,1),this.o||(this.o=[]),this.o.length=cc(this.o,0,a,this.A)):$b(this,\"XY\",null);this.w()};function jc(a,b){Yb.call(this);this.ea(a,b)}B(jc,Yb);n=jc.prototype;n.clone=function(){var a=new jc(null);$b(a,this.c,this.o.slice());a.w();return a};n.za=function(){return this.o?this.o.slice():[]};n.mb=function(a){return kb(this.o,a)};n.$=function(){return\"Point\"};n.ea=function(a,b){a?(ac(this,b,a,0),this.o||(this.o=[]),this.o.length=bc(this.o,a)):$b(this,\"XY\",null);this.w()};function kc(a,b,c,d,e,f){for(var g=!1,h=a[c-d],k=a[c-d+1];b<c;b+=d){var l=a[b],m=a[b+1];k>f!=m>f&&e<(l-h)*(f-k)/(m-k)+h&&(g=!g);h=l;k=m}return g};function lc(a,b,c,d,e,f,g){var h,k,l,m,p,q=e[f+1],u=[],w=c[0];l=a[w-d];p=a[w-d+1];for(h=b;h<w;h+=d){m=a[h];k=a[h+1];if(q<=p&&k<=q||p<=q&&q<=k)l=(q-p)/(k-p)*(m-l)+l,u.push(l);l=m;p=k}w=NaN;p=-Infinity;u.sort(Ma);l=u[0];h=1;for(k=u.length;h<k;++h){m=u[h];var r=Math.abs(m-l);if(r>p){l=(l+m)/2;var x;a:if(0!==c.length&&kc(a,b,c[0],d,l,q)){var D;x=1;for(D=c.length;x<D;++x)if(kc(a,c[x-1],c[x],d,l,q)){x=!1;break a}x=!0}else x=!1;x&&(w=l,p=r)}l=m}isNaN(w)&&(w=e[f]);return g?(g.push(w,q),g):[w,q]};function mc(a,b,c,d){for(var e=0,f=a[c-d],g=a[c-d+1];b<c;b+=d)var h=a[b],k=a[b+1],e=e+(h-f)*(k+g),f=h,g=k;return 0<e}function nc(a,b,c,d){var e=0;d=void 0!==d?d:!1;var f,g;f=0;for(g=b.length;f<g;++f){var h=b[f],e=mc(a,e,h,c);if(0===f){if(d&&e||!d&&!e)return!1}else if(d&&!e||!d&&e)return!1;e=h}return!0}\r\nfunction oc(a,b,c,d,e){e=void 0!==e?e:!1;var f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],k=mc(a,b,h,d);if(0===f?e&&k||!e&&!k:e&&!k||!e&&k)for(var k=a,l=h,m=d;b<l-m;){var p;for(p=0;p<m;++p){var q=k[b+p];k[b+p]=k[l-m+p];k[l-m+p]=q}b+=m;l-=m}b=h}return b}function pc(a,b,c,d){var e=0,f,g;f=0;for(g=b.length;f<g;++f)e=oc(a,e,b[f],c,d);return e};function qc(a,b){Yb.call(this);this.ja=[];this.h=-1;this.v=null;this.u=-1;this.a=null;this.ea(a,b)}B(qc,Yb);n=qc.prototype;n.clone=function(){var a=new qc(null);rc(a,this.c,this.o.slice(),this.ja.slice());return a};n.za=function(a){var b;void 0!==a?(b=sc(this).slice(),oc(b,0,this.ja,this.A,a)):b=this.o;return fc(b,0,this.ja,this.A)};function tc(a){if(a.h!=a.b){var b=tb(a.G());a.v=lc(sc(a),0,a.ja,a.A,b,0);a.h=a.b}return a.v}\r\nfunction sc(a){if(a.u!=a.b){var b=a.o;nc(b,a.ja,a.A)?a.a=b:(a.a=b.slice(),a.a.length=oc(a.a,0,a.ja,a.A));a.u=a.b}return a.a}n.Qa=function(a){var b=[],c=[];b.length=hc(this.o,0,this.ja,this.A,Math.sqrt(a),b,0,c);a=new qc(null);rc(a,\"XY\",b,c);return a};n.$=function(){return\"Polygon\"};n.ea=function(a,b){if(a){ac(this,b,a,2);this.o||(this.o=[]);var c=dc(this.o,0,a,this.A,this.ja);this.o.length=0===c.length?0:c[c.length-1];this.w()}else rc(this,\"XY\",null,this.ja)};\r\nfunction rc(a,b,c,d){$b(a,b,c);a.ja=d;a.w()};function uc(a){V.call(this);a=a||{};this.c=[0,0];var b={};b[vc]=void 0!==a.center?a.center:null;this.j=Sb(a.projection);var c,d,e,f=void 0!==a.minZoom?a.minZoom:0;c=void 0!==a.maxZoom?a.maxZoom:28;var g=void 0!==a.zoomFactor?a.zoomFactor:2;if(void 0!==a.resolutions)c=a.resolutions,d=c[0],e=c[c.length-1],c=Va(c);else{d=Sb(a.projection);e=d.G();var h=(e?Math.max(qb(e),rb(e)):360*Db.degrees/Lb(d))/256/Math.pow(2,0),k=h/Math.pow(2,28);d=a.maxResolution;void 0!==d?f=0:d=h/Math.pow(g,f);e=a.minResolution;\r\nvoid 0===e&&(e=void 0!==a.maxZoom?void 0!==a.maxResolution?d/Math.pow(g,c):h/Math.pow(g,c):k);c=f+Math.floor(Math.log(d/e)/Math.log(g));e=d/Math.pow(g,c-f);c=Wa(g,d,c-f)}this.f=d;this.i=e;this.s=g;this.g=a.resolutions;this.h=f;f=void 0!==a.extent?ma(a.extent):na;(void 0!==a.enableRotation?a.enableRotation:1)?(g=a.constrainRotation,g=void 0===g||!0===g?$a():!1===g?Ya:\"number\"===typeof g?Za(g):Ya):g=Xa;this.a=new oa(f,c,g);void 0!==a.resolution?b[wc]=a.resolution:void 0!==a.zoom&&(b[wc]=this.constrainResolution(this.f,\r\na.zoom-this.h));b[xc]=void 0!==a.rotation?a.rotation:0;this.l(b)}B(uc,V);n=uc.prototype;n.constrainResolution=function(a,b,c){return this.a.resolution(a,b||0,c||0)};n.constrainRotation=function(a,b){return this.a.rotation(a,b||0)};n.qa=function(){return this.get(vc)};n.lc=function(a){var b=this.qa();L(b,1);var c=this.O();L(void 0!==c,2);var d=this.get(xc);L(void 0!==d,3);return ub(b,c,d,a)};n.ia=function(){return this.j};n.O=function(){return this.get(wc)};\r\nfunction yc(a,b){return Math.max(qb(a)/b[0],rb(a)/b[1])}n.T=function(){var a=this.qa(),b=this.ia(),c=this.O(),d=this.get(xc);return{center:a.slice(),projection:void 0!==b?b:null,resolution:c,rotation:d}};n.rd=function(){var a,b=this.O();if(void 0!==b&&b>=this.i&&b<=this.f){a=this.h||0;var c,d;if(this.g){d=Na(this.g,b,1);a+=d;if(d==this.g.length-1)return a;c=this.g[d];d=c/this.g[d+1]}else c=this.f,d=this.s;a+=Math.log(c/b)/Math.log(d)}return a};\r\nn.md=function(a,b,c){if(!(a instanceof Yb)){L(Array.isArray(a),24);L(!pb(a),25);var d=a[0],e=a[1],f=a[2],g=a[3],d=[d,e,d,g,f,g,f,e,d,e],e=new qc(null);rc(e,\"XY\",d,[d.length]);a=e}d=c||{};c=void 0!==d.padding?d.padding:[0,0,0,0];var g=void 0!==d.constrainResolution?d.constrainResolution:!0,e=void 0!==d.nearest?d.nearest:!1,h;void 0!==d.minResolution?h=d.minResolution:void 0!==d.maxZoom?h=this.constrainResolution(this.f,d.maxZoom-this.h,0):h=0;var k=a.o,f=this.get(xc),d=Math.cos(-f),f=Math.sin(-f),\r\nl=Infinity,m=Infinity,p=-Infinity,q=-Infinity;a=a.A;for(var u=0,w=k.length;u<w;u+=a)var r=k[u]*d-k[u+1]*f,x=k[u]*f+k[u+1]*d,l=Math.min(l,r),m=Math.min(m,x),p=Math.max(p,r),q=Math.max(q,x);b=yc([l,m,p,q],[b[0]-c[1]-c[3],b[1]-c[0]-c[2]]);b=isNaN(b)?h:Math.max(b,h);g&&(h=this.constrainResolution(b,0,0),!e&&h<b&&(h=this.constrainResolution(h,-1,0)),b=h);this.set(wc,b);f=-f;h=(l+p)/2+(c[1]-c[3])/2*b;b=(m+q)/2+(c[0]-c[2])/2*b;this.xa([h*d-b*f,b*d+h*f])};\r\nn.rotate=function(a,b){if(void 0!==b){var c,d=this.qa();void 0!==d&&(c=[d[0]-b[0],d[1]-b[1]],bb(c,a-this.get(xc)),ab(c,b));this.xa(c)}this.set(xc,a)};n.xa=function(a){this.set(vc,a)};function zc(a,b){a.c[1]+=b}n.ye=function(a){a=this.constrainResolution(this.f,a-this.h,0);this.set(wc,a)};var vc=\"center\",wc=\"resolution\",xc=\"rotation\";function Ac(a){return 1-Math.pow(1-a,3)}function Bc(a){return 3*a*a-2*a*a*a}function Cc(a){return a};function Dc(a){var b=a.source,c=a.start?a.start:Date.now(),d=b[0],e=b[1],f=void 0!==a.duration?a.duration:1E3,g=a.easing?a.easing:Bc;return function(a,b){if(b.time<c)return b.animate=!0,b.viewHints[0]+=1,!0;if(b.time<c+f){var l=1-g((b.time-c)/f),m=d-b.viewState.center[0],p=e-b.viewState.center[1];b.animate=!0;b.viewState.center[0]+=l*m;b.viewState.center[1]+=l*p;b.viewHints[0]+=1;return!0}return!1}}\r\nfunction Ec(a){var b=a.rotation?a.rotation:0,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Bc,f=a.anchor?a.anchor:null;return function(a,h){if(h.time<c)return h.animate=!0,h.viewHints[0]+=1,!0;if(h.time<c+d){var k=1-e((h.time-c)/d),k=(b-h.viewState.rotation)*k;h.animate=!0;h.viewState.rotation+=k;if(f){var l=h.viewState.center;l[0]-=f[0];l[1]-=f[1];bb(l,k);ab(l,f)}h.viewHints[0]+=1;return!0}return!1}}\r\nfunction Fc(a){var b=a.resolution,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Bc;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[0]+=1,!0;if(g.time<c+d){var h=1-e((g.time-c)/d),k=b-g.viewState.resolution;g.animate=!0;g.viewState.resolution+=h*k;g.viewHints[0]+=1;return!0}return!1}};function Gc(a,b,c,d){this.H=a;this.I=b;this.J=c;this.L=d}function Hc(a,b,c){return a.H<=b&&b<=a.I&&a.J<=c&&c<=a.L}function Ic(a,b){return a.H==b.H&&a.J==b.J&&a.I==b.I&&a.L==b.L}function Jc(a,b){return a.H<=b.I&&a.I>=b.H&&a.J<=b.L&&a.L>=b.J};function Kc(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]*b+.5|0;c[1]=a[1]*b+.5|0;return c}function Lc(a,b){if(Array.isArray(a))return a;void 0===b?b=[a,a]:b[0]=b[1]=a;return b};function Mc(a){this.minZoom=void 0!==a.minZoom?a.minZoom:0;this.b=a.resolutions;L(Ua(this.b,function(a,b){return b-a}),17);this.maxZoom=this.b.length-1;this.c=void 0!==a.origin?a.origin:null;this.f=null;void 0!==a.origins&&(this.f=a.origins,L(this.f.length==this.b.length,20));var b=a.extent;void 0===b||this.c||this.f||(this.c=xb(b));L(!this.c&&this.f||this.c&&!this.f,18);this.g=null;void 0!==a.tileSizes&&(this.g=a.tileSizes,L(this.g.length==this.b.length,19));this.h=void 0!==a.tileSize?a.tileSize:\r\nthis.g?null:256;L(!this.h&&this.g||this.h&&!this.g,22);this.i=void 0!==b?b:null;this.a=null;this.l=[0,0];void 0!==a.sizes?this.a=a.sizes.map(function(a){return new Gc(Math.min(0,a[0]),Math.max(a[0]-1,-1),Math.min(0,a[1]),Math.max(a[1]-1,-1))},this):b&&Nc(this,b)}var Oc=[0,0,0];function Pc(a,b,c,d,e){e=Qc(a,b,e);for(b=b[0]-1;b>=a.minZoom;){if(c.call(null,b,Rc(a,e,b,d)))return!0;--b}return!1}Mc.prototype.G=function(){return this.i};Mc.prototype.pa=function(a){return this.c?this.c:this.f[a]};\r\nMc.prototype.O=function(a){return this.b[a]};function Sc(a,b,c,d){return b[0]<a.maxZoom?(d=Qc(a,b,d),Rc(a,d,b[0]+1,c)):null}function Tc(a,b,c,d){Uc(a,b[0],b[1],c,!1,Oc);var e=Oc[1],f=Oc[2];Uc(a,b[2],b[3],c,!0,Oc);a=Oc[1];b=Oc[2];void 0!==d?(d.H=e,d.I=a,d.J=f,d.L=b):d=new Gc(e,a,f,b);return d}function Rc(a,b,c,d){c=a.O(c);return Tc(a,b,c,d)}function Vc(a,b){var c=a.pa(b[0]),d=a.O(b[0]),e=Lc(Wc(a,b[0]),a.l);return[c[0]+(b[1]+.5)*e[0]*d,c[1]+(b[2]+.5)*e[1]*d]}\r\nfunction Qc(a,b,c){var d=a.pa(b[0]),e=a.O(b[0]);a=Lc(Wc(a,b[0]),a.l);var f=d[0]+b[1]*a[0]*e;b=d[1]+b[2]*a[1]*e;return ib(f,b,f+a[0]*e,b+a[1]*e,c)}function Uc(a,b,c,d,e,f){var g=Xc(a,d),h=d/a.O(g),k=a.pa(g);a=Lc(Wc(a,g),a.l);b=h*Math.floor((b-k[0])/d+(e?.5:0))/a[0];c=h*Math.floor((c-k[1])/d+(e?0:.5))/a[1];e?(b=Math.ceil(b)-1,c=Math.ceil(c)-1):(b=Math.floor(b),c=Math.floor(c));e=b;void 0!==f?(f[0]=g,f[1]=e,f[2]=c):f=[g,e,c];return f}function Yc(a,b,c,d){c=a.O(c);return Uc(a,b[0],b[1],c,!1,d)}\r\nfunction Wc(a,b){return a.h?a.h:a.g[b]}function Xc(a,b,c){return ia(Na(a.b,b,c||0),a.minZoom,a.maxZoom)}function Nc(a,b){for(var c=a.b.length,d=Array(c),e=a.minZoom;e<c;++e)d[e]=Rc(a,b,e);a.a=d};function Zc(a){var b=a.f;if(!b){var b=$c(a),c=ad(b,void 0,void 0),b=new Mc({extent:b,origin:xb(b),resolutions:c,tileSize:void 0});a.f=b}return b}function ad(a,b,c){b=void 0!==b?b:42;var d=rb(a);a=qb(a);c=Lc(void 0!==c?c:256);c=Math.max(a/c[0],d/c[1]);b+=1;d=Array(b);for(a=0;a<b;++a)d[a]=c/Math.pow(2,a);return d}function $c(a){a=Hb(a);var b=a.G();b||(a=180*Db.degrees/Lb(a),b=ib(-a,-a,a,a));return b};function bd(a){this.a=a.html;this.b=a.tileRanges?a.tileRanges:null};function cd(a){V.call(this);this.a=a?a:[];dd(this)}B(cd,V);cd.prototype.clear=function(){for(;0<this.get(\"length\");)this.pop()};function ed(a,b,c){a.a.forEach(b,c)}cd.prototype.pop=function(){return fd(this,this.get(\"length\")-1)};cd.prototype.push=function(a){var b=this.a.length;this.a.splice(b,0,a);dd(this);U(this,new gd(hd,a));return b};cd.prototype.remove=function(a){var b=this.a,c,d;c=0;for(d=b.length;c<d;++c)if(b[c]===a)return fd(this,c)};\r\nfunction fd(a,b){var c=a.a[b];a.a.splice(b,1);dd(a);U(a,new gd(id,c));return c}function dd(a){a.set(\"length\",a.a.length)}var hd=\"add\",id=\"remove\";function gd(a,b){T.call(this,a);this.element=b}B(gd,T);var jd=/^#(?:[0-9a-f]{3}){1,2}$/i,kd=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i,ld=/^(?:rgba)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|1|0\\.\\d{0,10})\\)$/i,md=/^([a-z]*)$/i;function nd(a){if(\"string\"!==typeof a){var b=a[0];b!=(b|0)&&(b=b+.5|0);var c=a[1];c!=(c|0)&&(c=c+.5|0);var d=a[2];d!=(d|0)&&(d=d+.5|0);a=\"rgba(\"+b+\",\"+c+\",\"+d+\",\"+(void 0===a[3]?1:a[3])+\")\"}return a}\r\nvar pd=function(){var a={},b=0;return function(c){var d;if(a.hasOwnProperty(c))d=a[c];else{if(1024<=b){d=0;for(var e in a)0===(d++&3)&&(delete a[e],--b)}d=c;var f,g;md.exec(d)&&(e=document.createElement(\"div\"),e.style.color=d,document.body.appendChild(e),d=window.getComputedStyle(e).color,document.body.removeChild(e));jd.exec(d)?(f=d.length-1,L(3==f||6==f,54),g=3==f?1:2,f=parseInt(d.substr(1+0*g,g),16),e=parseInt(d.substr(1+1*g,g),16),d=parseInt(d.substr(1+2*g,g),16),1==g&&(f=(f<<4)+f,e=(e<<4)+e,\r\nd=(d<<4)+d),f=[f,e,d,1]):(g=ld.exec(d))?(f=Number(g[1]),e=Number(g[2]),d=Number(g[3]),g=Number(g[4]),f=od([f,e,d,g])):(g=kd.exec(d))?(f=Number(g[1]),e=Number(g[2]),d=Number(g[3]),f=od([f,e,d,1])):L(!1,14);d=f;a[c]=d;++b}return d}}();function od(a){var b=[];b[0]=ia(a[0]+.5|0,0,255);b[1]=ia(a[1]+.5|0,0,255);b[2]=ia(a[2]+.5|0,0,255);b[3]=ia(a[3],0,1);return b};function qd(a){return\"string\"===typeof a||a instanceof CanvasPattern||a instanceof CanvasGradient?a:nd(a)};var rd=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\")};function sd(a,b){return a<b?-1:a>b?1:0};function td(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var ud;a:{var vd=aa.navigator;if(vd){var wd=vd.userAgent;if(wd){ud=wd;break a}}ud=\"\"}function xd(a){return-1!=ud.indexOf(a)};var yd=xd(\"Opera\"),zd=xd(\"Trident\")||xd(\"MSIE\"),Ad=xd(\"Edge\"),Bd=xd(\"Gecko\")&&!(-1!=ud.toLowerCase().indexOf(\"webkit\")&&!xd(\"Edge\"))&&!(xd(\"Trident\")||xd(\"MSIE\"))&&!xd(\"Edge\"),Cd=-1!=ud.toLowerCase().indexOf(\"webkit\")&&!xd(\"Edge\"),Dd;\r\na:{var Ed=\"\",Fd=function(){var a=ud;if(Bd)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(Ad)return/Edge\\/([\\d\\.]+)/.exec(a);if(zd)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(Cd)return/WebKit\\/(\\S+)/.exec(a);if(yd)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();Fd&&(Ed=Fd?Fd[1]:\"\");if(zd){var Gd,Hd=aa.document;Gd=Hd?Hd.documentMode:void 0;if(null!=Gd&&Gd>parseFloat(Ed)){Dd=String(Gd);break a}}Dd=Ed}var Id={};function Jd(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Kd(a,b){a[0]=b[0];a[1]=b[1];a[4]=b[2];a[5]=b[3];a[12]=b[4];a[13]=b[5];return a};var Ld=Jd();function Md(a,b){var c=document.createElement(\"CANVAS\");a&&(c.width=a);b&&(c.height=b);return c.getContext(\"2d\")}\r\nvar Nd=function(){var a;return function(){if(void 0===a){var b=document.createElement(\"P\"),c,d={webkitTransform:\"-webkit-transform\",OTransform:\"-o-transform\",msTransform:\"-ms-transform\",MozTransform:\"-moz-transform\",transform:\"transform\"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]=\"translate(1px,1px)\",c=K.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&\"none\"!==c}return a}}(),Od=function(){var a;return function(){if(void 0===a){var b=document.createElement(\"P\"),\r\nc,d={webkitTransform:\"-webkit-transform\",OTransform:\"-o-transform\",msTransform:\"-ms-transform\",MozTransform:\"-moz-transform\",transform:\"transform\"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]=\"translate3d(1px,1px,1px)\",c=K.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&\"none\"!==c}return a}}();\r\nfunction Pd(a,b){var c=a.style;c.WebkitTransform=b;c.MozTransform=b;c.b=b;c.msTransform=b;c.transform=b;if((c=zd)&&!(c=Id[\"9.0\"])){for(var c=0,d=rd(String(Dd)).split(\".\"),e=rd(\"9.0\").split(\".\"),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||\"\",k=e[g]||\"\",l=RegExp(\"(\\\\d*)(\\\\D*)\",\"g\"),m=RegExp(\"(\\\\d*)(\\\\D*)\",\"g\");do{var p=l.exec(h)||[\"\",\"\",\"\"],q=m.exec(k)||[\"\",\"\",\"\"];if(0==p[0].length&&0==q[0].length)break;c=sd(0==p[1].length?0:parseInt(p[1],10),0==q[1].length?0:parseInt(q[1],10))||sd(0==\r\np[2].length,0==q[2].length)||sd(p[2],q[2])}while(0==c)}c=Id[\"9.0\"]=0<=c}c&&(a.style.transformOrigin=\"0 0\")}function Qd(a,b){var c;if(Od()){var d=Kd(Ld,b),e=Array(16);for(c=0;16>c;++c)e[c]=d[c].toFixed(6);Pd(a,\"matrix3d(\"+e.join(\",\")+\")\")}else if(Nd()){d=Array(6);for(c=0;6>c;++c)d[c]=b[c].toFixed(6);Pd(a,\"matrix(\"+d.join(\",\")+\")\")}else a.style.left=Math.round(b[4])+\"px\",a.style.top=Math.round(b[5])+\"px\"}function Rd(a,b){var c=b.parentNode;c&&c.replaceChild(a,b)}\r\nfunction Sd(a){a&&a.parentNode&&a.parentNode.removeChild(a)};function Td(a,b,c){T.call(this,a);this.map=b;this.frameState=void 0!==c?c:null}B(Td,T);function Ud(a){V.call(this);this.element=a.element?a.element:null;this.f=this.D=null;this.i=[];this.render=a.render?a.render:I;a.target&&(a=a.target,this.D=\"string\"===typeof a?document.getElementById(a):a)}B(Ud,V);Ud.prototype.R=function(){Sd(this.element);V.prototype.R.call(this)};\r\nUd.prototype.setMap=function(a){this.f&&Sd(this.element);for(var b=0,c=this.i.length;b<c;++b)M(this.i[b]);this.i.length=0;if(this.f=a)(this.D?this.D:a.j).appendChild(this.element),this.render!==I&&this.i.push(R(a,\"postrender\",this.render,this)),a.render()};function Vd(a){a=a?a:{};this.B=document.createElement(\"UL\");this.j=document.createElement(\"LI\");this.B.appendChild(this.j);this.j.style.display=\"none\";this.g=void 0!==a.collapsed?a.collapsed:!0;this.v=void 0!==a.collapsible?a.collapsible:!0;this.v||(this.g=!1);var b=void 0!==a.className?a.className:\"ol-attribution\",c=void 0!==a.tipLabel?a.tipLabel:\"Attributions\",d=void 0!==a.collapseLabel?a.collapseLabel:\"\\u00bb\";\"string\"===typeof d?(this.h=document.createElement(\"span\"),this.h.textContent=d):this.h=\r\nd;d=void 0!==a.label?a.label:\"i\";\"string\"===typeof d?(this.s=document.createElement(\"span\"),this.s.textContent=d):this.s=d;var e=this.v&&!this.g?this.h:this.s,d=document.createElement(\"button\");d.setAttribute(\"type\",\"button\");d.title=c;d.appendChild(e);R(d,\"click\",this.P,this);c=document.createElement(\"div\");c.className=b+\" ol-unselectable ol-control\"+(this.g&&this.v?\" ol-collapsed\":\"\")+(this.v?\"\":\" ol-uncollapsible\");c.appendChild(this.B);c.appendChild(d);Ud.call(this,{element:c,render:a.render?\r\na.render:Wd,target:a.target});this.u=!0;this.c={};this.a={};this.N={}}B(Vd,Ud);\r\nfunction Wd(a){if(a=a.frameState){var b,c,d,e,f,g,h,k,l,m,p,q=a.layerStatesArray,u=pa({},a.attributions),w={},r=a.viewState.projection;c=0;for(b=q.length;c<b;c++)if(g=q[c].layer.da())if(m=J(g).toString(),l=g.h)for(d=0,e=l.length;d<e;d++)if(h=l[d],k=J(h).toString(),!(k in u)){if(f=a.usedTiles[m]){var x=g.sa(r);a:{p=h;var D=r;if(p.b){var t,z,C,E=void 0;for(E in f)if(E in p.b){C=f[E];var v;t=0;for(z=p.b[E].length;t<z;++t){v=p.b[E][t];if(Jc(v,C)){p=!0;break a}var H=Rc(x,$c(D),parseInt(E,10)),G=H.I-H.H+\r\n1;if(C.H<H.H||C.I>H.I)if(Jc(v,new Gc(la(C.H,G),la(C.I,G),C.J,C.L))||C.I-C.H+1>G&&Jc(v,H)){p=!0;break a}}}p=!1}else p=!0}}else p=!1;p?(k in w&&delete w[k],u[k]=h):w[k]=h}b=[u,w];c=b[0];b=b[1];for(var A in this.c)A in c?(this.a[A]||(this.c[A].style.display=\"\",this.a[A]=!0),delete c[A]):A in b?(this.a[A]&&(this.c[A].style.display=\"none\",delete this.a[A]),delete b[A]):(Sd(this.c[A]),delete this.c[A],delete this.a[A]);for(A in c)d=document.createElement(\"LI\"),d.innerHTML=c[A].a,this.B.appendChild(d),this.c[A]=\r\nd,this.a[A]=!0;for(A in b)d=document.createElement(\"LI\"),d.innerHTML=b[A].a,d.style.display=\"none\",this.B.appendChild(d),this.c[A]=d;A=!sa(this.a)||!sa(a.logos);this.u!=A&&(this.element.style.display=A?\"\":\"none\",this.u=A);A&&sa(this.a)?this.element.classList.add(\"ol-logo-only\"):this.element.classList.remove(\"ol-logo-only\");var F;a=a.logos;A=this.N;for(F in A)F in a||(Sd(A[F]),delete A[F]);for(var Q in a)b=a[Q],b instanceof HTMLElement&&(this.j.appendChild(b),A[Q]=b),Q in A||(F=new Image,F.src=Q,\"\"===\r\nb?c=F:(c=document.createElement(\"a\"),c.href=b,c.appendChild(F)),this.j.appendChild(c),A[Q]=c);this.j.style.display=sa(a)?\"none\":\"\"}else this.u&&(this.element.style.display=\"none\",this.u=!1)}Vd.prototype.P=function(a){a.preventDefault();this.element.classList.toggle(\"ol-collapsed\");this.g?Rd(this.h,this.s):Rd(this.s,this.h);this.g=!this.g};function Xd(a){a=a?a:{};this.a=void 0!==a.className?a.className:\"ol-full-screen\";var b=void 0!==a.label?a.label:\"\\u2922\";this.g=\"string\"===typeof b?document.createTextNode(b):b;b=void 0!==a.labelActive?a.labelActive:\"\\u00d7\";this.h=\"string\"===typeof b?document.createTextNode(b):b;var c=a.tipLabel?a.tipLabel:\"Toggle full-screen\",b=document.createElement(\"button\");b.className=this.a+\"-\"+Yd();b.setAttribute(\"type\",\"button\");b.title=c;b.appendChild(this.g);R(b,\"click\",this.v,this);c=document.createElement(\"div\");\r\nc.className=this.a+\" ol-unselectable ol-control \"+(Zd()?\"\":\"ol-unsupported\");c.appendChild(b);Ud.call(this,{element:c,target:a.target});this.s=void 0!==a.keys?a.keys:!1;this.c=a.source}B(Xd,Ud);\r\nXd.prototype.v=function(a){a.preventDefault();Zd()&&(a=this.f)&&(Yd()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(a=this.c?\"string\"===typeof this.c?document.getElementById(this.c):this.c:a.Ra(),this.s?a.mozRequestFullScreenWithKeys?a.mozRequestFullScreenWithKeys():a.webkitRequestFullscreen?a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):\r\n$d(a):$d(a)))};Xd.prototype.j=function(){var a=this.element.firstElementChild,b=this.f;Yd()?(a.className=this.a+\"-true\",Rd(this.h,this.g)):(a.className=this.a+\"-false\",Rd(this.g,this.h));b&&b.yb()};Xd.prototype.setMap=function(a){Ud.prototype.setMap.call(this,a);a&&this.i.push(R(K.document,ae(),this.j,this))};\r\nfunction Zd(){var a=document.body;return!!(a.webkitRequestFullscreen||a.mozRequestFullScreen&&document.mozFullScreenEnabled||a.msRequestFullscreen&&document.msFullscreenEnabled||a.requestFullscreen&&document.fullscreenEnabled)}function Yd(){return!!(document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement||document.fullscreenElement)}\r\nfunction $d(a){a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()}var ae=function(){var a;return function(){if(!a){var b=document.body;b.webkitRequestFullscreen?a=\"webkitfullscreenchange\":b.mozRequestFullScreen?a=\"mozfullscreenchange\":b.msRequestFullscreen?a=\"MSFullscreenChange\":b.requestFullscreen&&(a=\"fullscreenchange\")}return a}}();function be(a){a=a?a:{};var b=void 0!==a.className?a.className:\"ol-rotate\",c=void 0!==a.label?a.label:\"\\u21e7\";this.a=null;\"string\"===typeof c?(this.a=document.createElement(\"span\"),this.a.className=\"ol-compass\",this.a.textContent=c):(this.a=c,this.a.classList.add(\"ol-compass\"));var d=a.tipLabel?a.tipLabel:\"Reset rotation\",c=document.createElement(\"button\");c.className=b+\"-reset\";c.setAttribute(\"type\",\"button\");c.title=d;c.appendChild(this.a);R(c,\"click\",be.prototype.s,this);d=document.createElement(\"div\");\r\nd.className=b+\" ol-unselectable ol-control\";d.appendChild(c);b=a.render?a.render:ce;this.g=a.resetNorth?a.resetNorth:void 0;Ud.call(this,{element:d,render:b,target:a.target});this.h=void 0!==a.duration?a.duration:250;this.c=void 0!==a.autoHide?a.autoHide:!0;this.j=void 0;this.c&&this.element.classList.add(\"ol-hidden\")}B(be,Ud);\r\nbe.prototype.s=function(a){a.preventDefault();if(void 0!==this.g)this.g();else{a=this.f;var b=a.U();if(b){var c=b.get(xc);void 0!==c&&(0<this.h&&(c%=2*Math.PI,c<-Math.PI&&(c+=2*Math.PI),c>Math.PI&&(c-=2*Math.PI),a.oa(Ec({rotation:c,duration:this.h,easing:Ac}))),b.set(xc,0))}}};\r\nfunction ce(a){if(a=a.frameState){a=a.viewState.rotation;if(a!=this.j){var b=\"rotate(\"+a+\"rad)\";if(this.c){var c=this.element.classList.contains(\"ol-hidden\");c||0!==a?c&&0!==a&&this.element.classList.remove(\"ol-hidden\"):this.element.classList.add(\"ol-hidden\")}this.a.style.msTransform=b;this.a.style.webkitTransform=b;this.a.style.transform=b}this.j=a}};function de(a){a=a?a:{};var b=void 0!==a.className?a.className:\"ol-zoom\",c=void 0!==a.delta?a.delta:1,d=void 0!==a.zoomInLabel?a.zoomInLabel:\"+\",e=void 0!==a.zoomOutLabel?a.zoomOutLabel:\"\\u2212\",f=void 0!==a.zoomInTipLabel?a.zoomInTipLabel:\"Zoom in\",g=void 0!==a.zoomOutTipLabel?a.zoomOutTipLabel:\"Zoom out\",h=document.createElement(\"button\");h.className=b+\"-in\";h.setAttribute(\"type\",\"button\");h.title=f;h.appendChild(\"string\"===typeof d?document.createTextNode(d):d);R(h,\"click\",de.prototype.c.bind(this,\r\nc));d=document.createElement(\"button\");d.className=b+\"-out\";d.setAttribute(\"type\",\"button\");d.title=g;d.appendChild(\"string\"===typeof e?document.createTextNode(e):e);R(d,\"click\",de.prototype.c.bind(this,-c));c=document.createElement(\"div\");c.className=b+\" ol-unselectable ol-control\";c.appendChild(h);c.appendChild(d);Ud.call(this,{element:c,target:a.target});this.a=void 0!==a.duration?a.duration:250}B(de,Ud);\r\nde.prototype.c=function(a,b){b.preventDefault();var c=this.f,d=c.U();if(d){var e=d.O();e&&(0<this.a&&c.oa(Fc({resolution:e,duration:this.a,easing:Ac})),c=d.constrainResolution(e,a),d.set(wc,c))}};function ee(a){a=a?a:{};var b=new cd;(void 0!==a.zoom?a.zoom:1)&&b.push(new de(a.zoomOptions));(void 0!==a.rotate?a.rotate:1)&&b.push(new be(a.rotateOptions));(void 0!==a.attribution?a.attribution:1)&&b.push(new Vd(a.attributionOptions));return b};var fe;\r\nfunction ge(){var a=aa.MessageChannel;\"undefined\"===typeof a&&\"undefined\"!==typeof window&&window.postMessage&&window.addEventListener&&!xd(\"Presto\")&&(a=function(){var a=document.createElement(\"IFRAME\");a.style.display=\"none\";a.src=\"\";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write(\"\");a.close();var c=\"callImmediate\"+Math.random(),d=\"file:\"==b.location.protocol?\"*\":b.location.protocol+\"//\"+b.location.host,a=ea(function(a){if((\"*\"==d||a.origin==d)&&a.data==\r\nc)this.port1.onmessage()},this);b.addEventListener(\"message\",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if(\"undefined\"!==typeof a&&!xd(\"Trident\")&&!xd(\"MSIE\")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.nc;c.nc=null;a()}};return function(a){d.next={nc:a};d=d.next;b.port2.postMessage(0)}}return\"undefined\"!==typeof document&&\"onreadystatechange\"in document.createElement(\"SCRIPT\")?function(a){var b=document.createElement(\"SCRIPT\");\r\nb.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){aa.setTimeout(a,0)}};var he=[\"experimental-webgl\",\"webgl\",\"webkit-3d\",\"moz-webgl\"];function ie(a,b){var c,d,e=he.length;for(d=0;d<e;++d)try{if(c=a.getContext(he[d],b))return c}catch(f){}return null};var je,ke=\"undefined\"!==typeof navigator?navigator.userAgent.toLowerCase():\"\",le=-1!==ke.indexOf(\"firefox\"),me=-1!==ke.indexOf(\"safari\")&&-1===ke.indexOf(\"chrom\"),ne=-1!==ke.indexOf(\"macintosh\"),oe=K.devicePixelRatio||1,pe=!1,qe=function(){if(!(\"HTMLCanvasElement\"in K))return!1;try{var a=Md();return a?(a.setLineDash&&(pe=!0),!0):!1}catch(b){return!1}}(),re=\"ontouchstart\"in K,se=\"PointerEvent\"in K,te=!!K.navigator.msPointerEnabled,ue=!1,ve=[];\r\nif(\"WebGLRenderingContext\"in K)try{var we=ie(document.createElement(\"CANVAS\"),{failIfMajorPerformanceCaveat:!0});we&&(ue=!0,ve=we.getSupportedExtensions())}catch(a){}je=ue;fa=ve;function xe(a,b){this.b=a;this.g=b};function ye(a){xe.call(this,a,{mousedown:this.Pd,mousemove:this.Qd,mouseup:this.Td,mouseover:this.Sd,mouseout:this.Rd});this.a=a.a;this.c=[]}B(ye,xe);function ze(a,b){for(var c=a.c,d=b.clientX,e=b.clientY,f=0,g=c.length,h;f<g&&(h=c[f]);f++){var k=Math.abs(e-h[1]);if(25>=Math.abs(d-h[0])&&25>=k)return!0}return!1}function Ae(a){var b=Be(a,a),c=b.preventDefault;b.preventDefault=function(){a.preventDefault();c()};b.pointerId=1;b.isPrimary=!0;b.pointerType=\"mouse\";return b}n=ye.prototype;\r\nn.Pd=function(a){if(!ze(this,a)){if((1).toString()in this.a){var b=Ae(a);Ce(this.b,De,b,a);delete this.a[(1).toString()]}b=Ae(a);this.a[(1).toString()]=a;Ce(this.b,Ee,b,a)}};n.Qd=function(a){if(!ze(this,a)){var b=Ae(a);Ce(this.b,Fe,b,a)}};n.Td=function(a){if(!ze(this,a)){var b=this.a[(1).toString()];b&&b.button===a.button&&(b=Ae(a),Ce(this.b,Ge,b,a),delete this.a[(1).toString()])}};n.Sd=function(a){if(!ze(this,a)){var b=Ae(a);He(this.b,b,a)}};\r\nn.Rd=function(a){if(!ze(this,a)){var b=Ae(a);Ie(this.b,b,a)}};function Je(a){xe.call(this,a,{MSPointerDown:this.Yd,MSPointerMove:this.Zd,MSPointerUp:this.be,MSPointerOut:this.$d,MSPointerOver:this.ae,MSPointerCancel:this.Xd,MSGotPointerCapture:this.Vd,MSLostPointerCapture:this.Wd});this.a=a.a;this.c=[\"\",\"unavailable\",\"touch\",\"pen\",\"mouse\"]}B(Je,xe);function Ke(a,b){var c=b;\"number\"===typeof b.pointerType&&(c=Be(b,b),c.pointerType=a.c[b.pointerType]);return c}n=Je.prototype;n.Yd=function(a){this.a[a.pointerId.toString()]=a;var b=Ke(this,a);Ce(this.b,Ee,b,a)};\r\nn.Zd=function(a){var b=Ke(this,a);Ce(this.b,Fe,b,a)};n.be=function(a){var b=Ke(this,a);Ce(this.b,Ge,b,a);delete this.a[a.pointerId.toString()]};n.$d=function(a){var b=Ke(this,a);Ie(this.b,b,a)};n.ae=function(a){var b=Ke(this,a);He(this.b,b,a)};n.Xd=function(a){var b=Ke(this,a);Ce(this.b,De,b,a);delete this.a[a.pointerId.toString()]};n.Wd=function(a){U(this.b,new Le(\"lostpointercapture\",a,a))};n.Vd=function(a){U(this.b,new Le(\"gotpointercapture\",a,a))};function Me(a){xe.call(this,a,{pointerdown:this.le,pointermove:this.me,pointerup:this.pe,pointerout:this.ne,pointerover:this.oe,pointercancel:this.ke,gotpointercapture:this.sd,lostpointercapture:this.Od})}B(Me,xe);n=Me.prototype;n.le=function(a){Ne(this.b,a)};n.me=function(a){Ne(this.b,a)};n.pe=function(a){Ne(this.b,a)};n.ne=function(a){Ne(this.b,a)};n.oe=function(a){Ne(this.b,a)};n.ke=function(a){Ne(this.b,a)};n.Od=function(a){Ne(this.b,a)};n.sd=function(a){Ne(this.b,a)};function Le(a,b,c){T.call(this,a);this.b=b;a=c?c:{};this.buttons=Oe(a);this.pressure=Pe(a,this.buttons);this.bubbles=\"bubbles\"in a?a.bubbles:!1;this.cancelable=\"cancelable\"in a?a.cancelable:!1;this.view=\"view\"in a?a.view:null;this.detail=\"detail\"in a?a.detail:null;this.screenX=\"screenX\"in a?a.screenX:0;this.screenY=\"screenY\"in a?a.screenY:0;this.clientX=\"clientX\"in a?a.clientX:0;this.clientY=\"clientY\"in a?a.clientY:0;this.button=\"button\"in a?a.button:0;this.relatedTarget=\"relatedTarget\"in a?a.relatedTarget:\r\nnull;this.pointerId=\"pointerId\"in a?a.pointerId:0;this.width=\"width\"in a?a.width:0;this.height=\"height\"in a?a.height:0;this.pointerType=\"pointerType\"in a?a.pointerType:\"\";this.isPrimary=\"isPrimary\"in a?a.isPrimary:!1;b.preventDefault&&(this.preventDefault=function(){b.preventDefault()})}B(Le,T);function Oe(a){if(a.buttons||Qe)a=a.buttons;else switch(a.which){case 1:a=1;break;case 2:a=4;break;case 3:a=2;break;default:a=0}return a}function Pe(a,b){var c=0;a.pressure?c=a.pressure:c=b?.5:0;return c}\r\nvar Qe=!1;try{Qe=1===(new MouseEvent(\"click\",{buttons:1})).buttons}catch(a){};function Re(a,b){xe.call(this,a,{touchstart:this.Ce,touchmove:this.Be,touchend:this.Ae,touchcancel:this.ze});this.a=a.a;this.l=b;this.c=void 0;this.h=0;this.f=void 0}B(Re,xe);n=Re.prototype;n.Uc=function(){this.h=0;this.f=void 0};\r\nfunction Se(a,b,c){b=Be(b,c);b.pointerId=c.identifier+2;b.bubbles=!0;b.cancelable=!0;b.detail=a.h;b.button=0;b.buttons=1;b.width=c.webkitRadiusX||c.radiusX||0;b.height=c.webkitRadiusY||c.radiusY||0;b.pressure=c.webkitForce||c.force||.5;b.isPrimary=a.c===c.identifier;b.pointerType=\"touch\";b.clientX=c.clientX;b.clientY=c.clientY;b.screenX=c.screenX;b.screenY=c.screenY;return b}\r\nfunction Te(a,b,c){function d(){b.preventDefault()}var e=Array.prototype.slice.call(b.changedTouches),f=e.length,g,h;for(g=0;g<f;++g)h=Se(a,b,e[g]),h.preventDefault=d,c.call(a,b,h)}\r\nn.Ce=function(a){var b=a.touches,c=Object.keys(this.a),d=c.length;if(d>=b.length){var e=[],f,g,h;for(f=0;f<d;++f){g=c[f];h=this.a[g];var k;if(!(k=1==g))a:{k=b.length;for(var l,m=0;m<k;m++)if(l=b[m],l.identifier===g-2){k=!0;break a}k=!1}k||e.push(h.out)}for(f=0;f<e.length;++f)this.Ib(a,e[f])}b=a.changedTouches[0];c=Object.keys(this.a).length;if(0===c||1===c&&(1).toString()in this.a)this.c=b.identifier,b=K,void 0!==this.f&&b.clearTimeout(this.f);Ue(this,a);this.h++;Te(this,a,this.je)};\r\nn.je=function(a,b){this.a[b.pointerId]={target:b.target,out:b,Rc:b.target};var c=this.b;b.bubbles=!0;Ce(c,Ve,b,a);c=this.b;b.bubbles=!1;Ce(c,We,b,a);Ce(this.b,Ee,b,a)};n.Be=function(a){a.preventDefault();Te(this,a,this.Ud)};n.Ud=function(a,b){var c=this.a[b.pointerId];if(c){var d=c.out,e=c.Rc;Ce(this.b,Fe,b,a);d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,d.target=e,b.target?(Ie(this.b,d,a),He(this.b,b,a)):(b.target=e,b.relatedTarget=null,this.Ib(a,b)));c.out=b;c.Rc=b.target}};\r\nn.Ae=function(a){Ue(this,a);Te(this,a,this.De)};n.De=function(a,b){Ce(this.b,Ge,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;Ce(c,Xe,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.c=void 0,this.f=K.setTimeout(this.Uc.bind(this),200))};n.ze=function(a){Te(this,a,this.Ib)};n.Ib=function(a,b){Ce(this.b,De,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;Ce(c,Xe,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.c=void 0,this.f=K.setTimeout(this.Uc.bind(this),200))};\r\nfunction Ue(a,b){var c=a.l.c,d=b.changedTouches[0];if(a.c===d.identifier){var e=[d.clientX,d.clientY];c.push(e);K.setTimeout(function(){Qa(c,e)},2500)}};function Ye(a){Ga.call(this);this.g=a;this.a={};this.f={};this.b=[];se?Ze(this,new Me(this)):te?Ze(this,new Je(this)):(a=new ye(this),Ze(this,a),re&&Ze(this,new Re(this,a)));a=this.b.length;for(var b,c=0;c<a;c++)b=this.b[c],$e(this,Object.keys(b.g))}B(Ye,Ga);function Ze(a,b){var c=Object.keys(b.g);c&&(c.forEach(function(a){var c=b.g[a];c&&(this.f[a]=c.bind(b))},a),a.b.push(b))}Ye.prototype.c=function(a){var b=this.f[a.type];b&&b(a)};\r\nfunction $e(a,b){b.forEach(function(a){R(this.g,a,this.c,this)},a)}function af(a,b){b.forEach(function(a){ya(this.g,a,this.c,this)},a)}function Be(a,b){for(var c={},d,e=0,f=bf.length;e<f;e++)d=bf[e][0],c[d]=a[d]||b[d]||bf[e][1];return c}Ye.prototype.out=function(a,b){a.bubbles=!0;Ce(this,cf,a,b)};function Ie(a,b,c){a.out(b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,Ce(a,Xe,b,c))}\r\nfunction He(a,b,c){b.bubbles=!0;Ce(a,Ve,b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,Ce(a,We,b,c))}function Ce(a,b,c,d){U(a,new Le(b,d,c))}function Ne(a,b){U(a,new Le(b.type,b,b))}Ye.prototype.R=function(){for(var a=this.b.length,b,c=0;c<a;c++)b=this.b[c],af(this,Object.keys(b.g));Ga.prototype.R.call(this)};\r\nvar Fe=\"pointermove\",Ee=\"pointerdown\",Ge=\"pointerup\",Ve=\"pointerover\",cf=\"pointerout\",We=\"pointerenter\",Xe=\"pointerleave\",De=\"pointercancel\",bf=[[\"bubbles\",!1],[\"cancelable\",!1],[\"view\",null],[\"detail\",null],[\"screenX\",0],[\"screenY\",0],[\"clientX\",0],[\"clientY\",0],[\"ctrlKey\",!1],[\"altKey\",!1],[\"shiftKey\",!1],[\"metaKey\",!1],[\"button\",0],[\"relatedTarget\",null],[\"buttons\",0],[\"pointerId\",0],[\"width\",0],[\"height\",0],[\"pressure\",0],[\"tiltX\",0],[\"tiltY\",0],[\"pointerType\",\"\"],[\"hwTimestamp\",0],[\"isPrimary\",\r\n!1],[\"type\",\"\"],[\"target\",null],[\"currentTarget\",null],[\"which\",0]];function df(a,b,c,d,e){Td.call(this,a,b,e);this.originalEvent=c;this.pixel=b.uc(c);this.coordinate=b.Ba(this.pixel);this.dragging=void 0!==d?d:!1}B(df,Td);df.prototype.preventDefault=function(){Td.prototype.preventDefault.call(this);this.originalEvent.preventDefault()};df.prototype.stopPropagation=function(){Td.prototype.stopPropagation.call(this);this.originalEvent.stopPropagation()};function ef(a,b,c,d,e){df.call(this,a,b,c.b,d,e);this.b=c}B(ef,df);\r\nfunction ff(a){Ga.call(this);this.c=a;this.h=0;this.l=!1;this.f=[];this.a=null;a=this.c.a;this.v=0;this.s={};this.g=new Ye(a);this.b=null;this.i=R(this.g,Ee,this.Cd,this);this.j=R(this.g,Fe,this.re,this)}B(ff,Ga);function gf(a,b){var c;c=new ef(hf,a.c,b);U(a,c);0!==a.h?(K.clearTimeout(a.h),a.h=0,c=new ef(jf,a.c,b),U(a,c)):a.h=K.setTimeout(function(){this.h=0;var a=new ef(kf,this.c,b);U(this,a)}.bind(a),250)}\r\nfunction lf(a,b){b.type==mf||b.type==nf?delete a.s[b.pointerId]:b.type==of&&(a.s[b.pointerId]=!0);a.v=Object.keys(a.s).length}n=ff.prototype;n.xc=function(a){lf(this,a);var b=new ef(mf,this.c,a);U(this,b);!this.l&&0===a.button&&gf(this,this.a);0===this.v&&(this.f.forEach(M),this.f.length=0,this.l=!1,this.a=null,Da(this.b),this.b=null)};\r\nn.Cd=function(a){lf(this,a);var b=new ef(of,this.c,a);U(this,b);this.a=a;0===this.f.length&&(this.b=new Ye(document),this.f.push(R(this.b,pf,this.ee,this),R(this.b,mf,this.xc,this),R(this.g,nf,this.xc,this)))};n.ee=function(a){if(a.clientX!=this.a.clientX||a.clientY!=this.a.clientY){this.l=!0;var b=new ef(qf,this.c,a,this.l);U(this,b)}a.preventDefault()};n.re=function(a){U(this,new ef(a.type,this.c,a,!(!this.a||a.clientX==this.a.clientX&&a.clientY==this.a.clientY)))};\r\nn.R=function(){this.j&&(M(this.j),this.j=null);this.i&&(M(this.i),this.i=null);this.f.forEach(M);this.f.length=0;this.b&&(Da(this.b),this.b=null);this.g&&(Da(this.g),this.g=null);Ga.prototype.R.call(this)};var kf=\"singleclick\",hf=\"click\",jf=\"dblclick\",qf=\"pointerdrag\",pf=\"pointermove\",of=\"pointerdown\",mf=\"pointerup\",nf=\"pointercancel\",rf={Pe:kf,Ee:hf,Fe:jf,Ie:qf,Le:pf,He:of,Oe:mf,Ne:\"pointerover\",Me:\"pointerout\",Je:\"pointerenter\",Ke:\"pointerleave\",Ge:nf};function sf(a){V.call(this);var b=pa({},a);b.opacity=void 0!==a.opacity?a.opacity:1;b.visible=void 0!==a.visible?a.visible:!0;b.zIndex=void 0!==a.zIndex?a.zIndex:0;b.maxResolution=void 0!==a.maxResolution?a.maxResolution:Infinity;b.minResolution=void 0!==a.minResolution?a.minResolution:0;this.l(b)}B(sf,V);\r\nfunction tf(a){var b=a.Xb(),c=a.Sb(),d=a.gb(),e=a.G(),f=a.Yb(),g=a.get(\"maxResolution\"),h=a.get(\"minResolution\");return{layer:a,opacity:ia(b,0,1),ac:c,visible:d,hb:!0,extent:e,zIndex:f,maxResolution:g,minResolution:Math.max(h,0)}}n=sf.prototype;n.G=function(){return this.get(\"extent\")};n.Xb=function(){return this.get(\"opacity\")};n.gb=function(){return this.get(\"visible\")};n.Yb=function(){return this.get(\"zIndex\")};n.Bc=function(a){this.set(\"opacity\",a)};n.Cc=function(a){this.set(\"visible\",a)};\r\nn.Dc=function(a){this.set(\"zIndex\",a)};function uf(a,b,c,d,e){T.call(this,a);this.vectorContext=b;this.frameState=c;this.context=d;this.glContext=e}B(uf,T);function vf(a){V.call(this);this.N=Hb(a.projection);this.h=wf(a.attributions);this.D=a.logo;this.P=void 0!==a.state?a.state:\"ready\";this.i=void 0!==a.wrapX?a.wrapX:!1}B(vf,V);function wf(a){if(\"string\"===typeof a)return[new bd({html:a})];if(a instanceof bd)return[a];if(Array.isArray(a)){for(var b=a.length,c=Array(b),d=0;d<b;d++){var e=a[d];c[d]=\"string\"===typeof e?new bd({html:e}):e}return c}return null}vf.prototype.fa=I;vf.prototype.ia=function(){return this.N};vf.prototype.T=function(){return this.P};\r\nvf.prototype.Ja=function(){this.w()};function xf(a){var b=pa({},a);delete b.source;sf.call(this,b);this.h=this.f=this.c=null;a.map&&this.setMap(a.map);R(this,La(\"source\"),this.Hd,this);this.$b(a.source?a.source:null)}B(xf,sf);function yf(a,b){return a.visible&&b>=a.minResolution&&b<a.maxResolution}n=xf.prototype;n.Pb=function(a){a=a?a:[];a.push(tf(this));return a};n.da=function(){return this.get(\"source\")||null};n.Sb=function(){var a=this.da();return a?a.T():\"undefined\"};n.fe=function(){this.w()};\r\nn.Hd=function(){this.h&&(M(this.h),this.h=null);var a=this.da();a&&(this.h=R(a,\"change\",this.fe,this));this.w()};n.setMap=function(a){this.c&&(M(this.c),this.c=null);a||this.w();this.f&&(M(this.f),this.f=null);a&&(this.c=R(a,\"precompose\",function(a){var c=tf(this);c.hb=!1;c.zIndex=Infinity;a.frameState.layerStatesArray.push(c);a.frameState.layerStates[J(this)]=c},this),this.f=R(this,\"change\",a.render,a),this.w())};n.$b=function(a){this.set(\"source\",a)};function zf(){this.b={};this.a=0}zf.prototype.clear=function(){this.b={};this.a=0};zf.prototype.get=function(a,b,c){a=b+\":\"+a+\":\"+(c?nd(c):\"null\");return a in this.b?this.b[a]:null};zf.prototype.set=function(a,b,c,d){this.b[b+\":\"+a+\":\"+(c?nd(c):\"null\")]=d;++this.a};var Af=new zf;var Bf=Array(6);function Cf(){return[1,0,0,1,0,0]}function Df(a){return Ef(a,1,0,0,1,0,0)}function Ff(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],k=b[0],l=b[1],m=b[2],p=b[3],q=b[4],u=b[5];a[0]=c*k+e*l;a[1]=d*k+f*l;a[2]=c*m+e*p;a[3]=d*m+f*p;a[4]=c*q+e*u+g;a[5]=d*q+f*u+h}function Ef(a,b,c,d,e,f,g){a[0]=b;a[1]=c;a[2]=d;a[3]=e;a[4]=f;a[5]=g;return a}function Gf(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];return a}\r\nfunction Hf(a,b){var c=b[0],d=b[1];b[0]=a[0]*c+a[2]*d+a[4];b[1]=a[1]*c+a[3]*d+a[5];return b}function If(a,b){var c=Math.cos(b),d=Math.sin(b);Ff(a,Ef(Bf,c,d,-d,c,0,0))}function Jf(a,b,c){Ff(a,Ef(Bf,b,0,0,c,0,0))}function Kf(a,b,c){Ff(a,Ef(Bf,1,0,0,1,b,c))}function Lf(a,b,c,d,e,f,g,h){var k=Math.sin(f);f=Math.cos(f);a[0]=d*f;a[1]=e*k;a[2]=-d*k;a[3]=e*f;a[4]=g*d*f-h*d*k+b;a[5]=g*e*k+h*e*f+c;return a}\r\nfunction Mf(a){var b=a[0]*a[3]-a[1]*a[2];L(0!==b,32);var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5];a[0]=f/b;a[1]=-d/b;a[2]=-e/b;a[3]=c/b;a[4]=(e*h-f*g)/b;a[5]=-(c*h-d*g)/b};function Nf(a,b){this.g=b;this.c={};this.j={}}B(Nf,Aa);function Of(a){var b=a.viewState,c=a.coordinateToPixelTransform,d=a.pixelToCoordinateTransform;Lf(c,a.size[0]/2,a.size[1]/2,1/b.resolution,-1/b.resolution,-b.rotation,-b.center[0],-b.center[1]);Mf(Gf(d,c))}n=Nf.prototype;n.R=function(){for(var a in this.c)Da(this.c[a])};function Pf(){if(32<Af.a){var a=0,b,c;for(b in Af.b)c=Af.b[b],0!==(a++&3)||Ha(c)||(delete Af.b[b],--Af.a)}}\r\nn.fa=function(a,b,c,d,e,f){function g(a,e){var f=J(a).toString(),g=b.layerStates[J(e)].hb;if(!(f in b.skippedFeatureUids)||g)return c.call(d,a,g?e:null)}var h,k=b.viewState,l=k.resolution,m=k.projection,k=a;if(m.b){var m=m.G(),p=qb(m),q=a[0];if(q<m[0]||q>m[2])k=[q+p*Math.ceil((m[0]-q)/p),a[1]]}m=b.layerStatesArray;for(p=m.length-1;0<=p;--p){var u=m[p],q=u.layer;if(yf(u,l)&&e.call(f,q)&&(u=Qf(this,q),q.da()&&(h=u.fa(q.da().i?k:a,b,g,d)),h))return h}};\r\nn.Fc=function(a,b,c,d){return void 0!==this.fa(a,b,yb,this,c,d)};function Qf(a,b){var c=J(b).toString();if(c in a.c)return a.c[c];var d=a.Mb(b);a.c[c]=d;a.j[c]=R(d,\"change\",a.wd,a);return d}n.wd=function(){this.g.render()};n.vb=I;n.ue=function(a,b){for(var c in this.c)if(!(b&&c in b.layerStates)){var d=c,e=this.c[d];delete this.c[d];M(this.j[d]);delete this.j[d];Da(e)}};function Rf(a,b){for(var c in a.c)if(!(c in b.layerStates)){b.postRenderFunctions.push(a.ue.bind(a));break}}\r\nfunction Ta(a,b){return a.zIndex-b.zIndex};function Sf(a,b){Ga.call(this);this.V=a;this.state=b;this.b=null;this.key=\"\"}B(Sf,Ga);function Tf(a){U(a,\"change\")}Sf.prototype.getKey=function(){return this.key+\"/\"+this.V};Sf.prototype.T=function(){return this.state};function Uf(a,b){this.j=a;this.f=b;this.b=[];this.c=[];this.a={}}Uf.prototype.clear=function(){this.b.length=0;this.c.length=0;qa(this.a)};function Vf(a){var b=a.b,c=a.c,d=b[0];1==b.length?(b.length=0,c.length=0):(b[0]=b.pop(),c[0]=c.pop(),Wf(a,0));b=a.f(d);delete a.a[b];return d}Uf.prototype.g=function(a){L(!(this.f(a)in this.a),31);var b=this.j(a);return Infinity!=b?(this.b.push(a),this.c.push(b),this.a[this.f(a)]=!0,Xf(this,0,this.b.length-1),!0):!1};\r\nfunction Wf(a,b){for(var c=a.b,d=a.c,e=c.length,f=c[b],g=d[b],h=b;b<e>>1;){var k=2*b+1,l=2*b+2,k=l<e&&d[l]<d[k]?l:k;c[b]=c[k];d[b]=d[k];b=k}c[b]=f;d[b]=g;Xf(a,h,b)}function Xf(a,b,c){var d=a.b;a=a.c;for(var e=d[c],f=a[c];c>b;){var g=c-1>>1;if(a[g]>f)d[c]=d[g],a[c]=a[g],c=g;else break}d[c]=e;a[c]=f}function Yf(a){var b=a.j,c=a.b,d=a.c,e=0,f=c.length,g,h,k;for(h=0;h<f;++h)g=c[h],k=b(g),Infinity==k?delete a.a[a.f(g)]:(d[e]=k,c[e++]=g);c.length=e;d.length=e;for(b=(a.b.length>>1)-1;0<=b;b--)Wf(a,b)};function Zf(a,b){Uf.call(this,function(b){return a.apply(null,b)},function(a){return a[0].getKey()});this.C=b;this.l=0;this.h={}}B(Zf,Uf);Zf.prototype.g=function(a){var b=Uf.prototype.g.call(this,a);b&&R(a[0],\"change\",this.i,this);return b};Zf.prototype.i=function(a){a=a.target;var b=a.T();if(2===b||3===b||4===b||5===b)ya(a,\"change\",this.i,this),a=a.getKey(),a in this.h&&(delete this.h[a],--this.l),this.C()};function $f(){this.b=[];this.a=this.c=0}function ag(a,b){var c=a.a,d=.05-c,e=Math.log(.05/a.a)/-.005;return Dc({source:b,duration:e,easing:function(a){return c*(Math.exp(-.005*a*e)-1)/d}})};function bg(a){V.call(this);this.aa=null;this.set(\"active\",!0);this.handleEvent=a.handleEvent}B(bg,V);bg.prototype.setMap=function(a){this.aa=a};function cg(a,b,c,d,e){if(void 0!==c){var f=b.get(xc),g=b.qa();void 0!==f&&g&&e&&0<e&&(a.oa(Ec({rotation:f,duration:e,easing:Ac})),d&&a.oa(Dc({source:g,duration:e,easing:Ac})));b.rotate(c,d)}}function dg(a,b,c,d,e){var f=b.O();c=b.constrainResolution(f,c,0);eg(a,b,c,d,e)}\r\nfunction eg(a,b,c,d,e){if(c){var f=b.O(),g=b.qa();void 0!==f&&g&&c!==f&&e&&0<e&&(a.oa(Fc({resolution:f,duration:e,easing:Ac})),d&&a.oa(Dc({source:g,duration:e,easing:Ac})));if(d){var h;a=b.qa();e=b.O();void 0!==a&&void 0!==e&&(h=[d[0]-c*(d[0]-a[0])/e,d[1]-c*(d[1]-a[1])/e]);b.xa(h)}b.set(wc,c)}};function fg(a){a=a?a:{};this.a=a.delta?a.delta:1;bg.call(this,{handleEvent:gg});this.c=void 0!==a.duration?a.duration:250}B(fg,bg);function gg(a){var b=!1,c=a.originalEvent;if(a.type==jf){var b=a.map,d=a.coordinate,c=c.shiftKey?-this.a:this.a,e=b.U();dg(b,e,c,d,this.c);a.preventDefault();b=!0}return!b};function hg(a){a=a.originalEvent;return a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}function ig(a){a=a.originalEvent;return 0==a.button&&!(Cd&&ne&&a.ctrlKey)}function jg(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&!a.shiftKey}function kg(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}function lg(a){a=a.originalEvent.target.tagName;return\"INPUT\"!==a&&\"SELECT\"!==a&&\"TEXTAREA\"!==a}function mg(a){L(a.b,56);return\"mouse\"==a.b.pointerType};function ng(a){a=a?a:{};bg.call(this,{handleEvent:a.handleEvent?a.handleEvent:og});this.Bb=a.handleDownEvent?a.handleDownEvent:zb;this.Cb=a.handleDragEvent?a.handleDragEvent:I;this.zb=a.handleMoveEvent?a.handleMoveEvent:I;this.Eb=a.handleUpEvent?a.handleUpEvent:zb;this.v=!1;this.N={};this.f=[]}B(ng,bg);function pg(a){for(var b=a.length,c=0,d=0,e=0;e<b;e++)c+=a[e].clientX,d+=a[e].clientY;return[c/b,d/b]}\r\nfunction og(a){if(!(a instanceof ef))return!0;var b=!1,c=a.type;if(c===of||c===qf||c===mf)c=a.b,a.type==mf?delete this.N[c.pointerId]:a.type==of?this.N[c.pointerId]=c:c.pointerId in this.N&&(this.N[c.pointerId]=c),this.f=ra(this.N);this.v&&(a.type==qf?this.Cb(a):a.type==mf&&(this.v=this.Eb(a)));a.type==of?(this.v=a=this.Bb(a),b=this.B(a)):a.type==pf&&this.zb(a);return!b}ng.prototype.B=function(a){return a};function qg(a){ng.call(this,{handleDownEvent:rg,handleDragEvent:sg,handleUpEvent:tg});a=a?a:{};this.a=a.kinetic;this.c=this.g=null;this.i=a.condition?a.condition:jg;this.h=!1}B(qg,ng);function sg(a){var b=pg(this.f);this.a&&this.a.b.push(b[0],b[1],Date.now());if(this.c){var c=this.c[0]-b[0],d=b[1]-this.c[1];a=a.map.U();var e=a.T(),d=c=[c,d],f=e.resolution;d[0]*=f;d[1]*=f;bb(c,e.rotation);ab(c,e.center);c=a.a.center(c);a.xa(c)}this.c=b}\r\nfunction tg(a){var b=a.map;a=b.U();if(0===this.f.length){var c;if(c=!this.h&&this.a)if(c=this.a,6>c.b.length)c=!1;else{var d=Date.now()-100,e=c.b.length-3;if(c.b[e+2]<d)c=!1;else{for(var f=e-3;0<f&&c.b[f+2]>d;)f-=3;var d=c.b[e+2]-c.b[f+2],g=c.b[e]-c.b[f],e=c.b[e+1]-c.b[f+1];c.c=Math.atan2(e,g);c.a=Math.sqrt(g*g+e*e)/d;c=.05<c.a}}c?(c=(.05-this.a.a)/-.005,e=this.a.c,f=a.qa(),this.g=ag(this.a,f),b.oa(this.g),f=ug(b,f),b=b.Ba([f[0]-c*Math.cos(e),f[1]-c*Math.sin(e)]),b=a.a.center(b),a.xa(b)):b.render();\r\nzc(a,-1);return!1}this.c=null;return!0}function rg(a){if(0<this.f.length&&this.i(a)){var b=a.map,c=b.U();this.c=null;this.v||zc(c,1);this.g&&Qa(b.D,this.g)&&(c.xa(a.frameState.viewState.center),this.g=null);this.a&&(a=this.a,a.b.length=0,a.c=0,a.a=0);this.h=1<this.f.length;return!0}return!1}qg.prototype.B=zb;function vg(a){a=a?a:{};ng.call(this,{handleDownEvent:wg,handleDragEvent:xg,handleUpEvent:yg});this.c=a.condition?a.condition:hg;this.a=void 0;this.g=void 0!==a.duration?a.duration:250}B(vg,ng);function xg(a){if(mg(a)){var b=a.map,c=b.Ta();a=a.pixel;c=Math.atan2(c[1]/2-a[1],a[0]-c[0]/2);if(void 0!==this.a){a=c-this.a;var d=b.U(),e=d.get(xc);cg(b,d,e-a)}this.a=c}}\r\nfunction yg(a){if(!mg(a))return!0;a=a.map;var b=a.U();zc(b,-1);var c=b.get(xc),d=this.g,c=b.constrainRotation(c,0);cg(a,b,c,void 0,d);return!1}function wg(a){return mg(a)&&ig(a)&&this.c(a)?(zc(a.map.U(),1),this.a=void 0,!0):!1}vg.prototype.B=zb;function zg(a){this.f=null;this.a=document.createElement(\"div\");this.a.style.position=\"absolute\";this.a.className=\"ol-box \"+a;this.c=this.g=this.b=null}B(zg,Aa);zg.prototype.R=function(){this.setMap(null)};function Ag(a){var b=a.g,c=a.c;a=a.a.style;a.left=Math.min(b[0],c[0])+\"px\";a.top=Math.min(b[1],c[1])+\"px\";a.width=Math.abs(c[0]-b[0])+\"px\";a.height=Math.abs(c[1]-b[1])+\"px\"}\r\nzg.prototype.setMap=function(a){if(this.b){this.b.s.removeChild(this.a);var b=this.a.style;b.left=b.top=b.width=b.height=\"inherit\"}(this.b=a)&&this.b.s.appendChild(this.a)};function Bg(a){var b=a.g,c=a.c,b=[b,[b[0],c[1]],c,[c[0],b[1]]].map(a.b.Ba,a.b);b[4]=b[0].slice();a.f?a.f.ea([b]):a.f=new qc([b])}zg.prototype.S=function(){return this.f};function Cg(a,b,c){T.call(this,a);this.coordinate=b;this.mapBrowserEvent=c}B(Cg,T);function Dg(a){ng.call(this,{handleDownEvent:Eg,handleDragEvent:Fg,handleUpEvent:Gg});a=a?a:{};this.a=new zg(a.className||\"ol-dragbox\");this.c=null;this.j=a.condition?a.condition:yb;this.i=a.boxEndCondition?a.boxEndCondition:Hg}B(Dg,ng);function Hg(a,b,c){a=c[0]-b[0];b=c[1]-b[1];return 64<=a*a+b*b}\r\nfunction Fg(a){if(mg(a)){var b=this.a,c=a.pixel;b.g=this.c;b.c=c;Bg(b);Ag(b);U(this,new Cg(\"boxdrag\",a.coordinate,a))}}Dg.prototype.S=function(){return this.a.S()};Dg.prototype.h=I;function Gg(a){if(!mg(a))return!0;this.a.setMap(null);this.i(a,this.c,a.pixel)&&(this.h(a),U(this,new Cg(\"boxend\",a.coordinate,a)));return!1}\r\nfunction Eg(a){if(mg(a)&&ig(a)&&this.j(a)){this.c=a.pixel;this.a.setMap(a.map);var b=this.a,c=this.c;b.g=this.c;b.c=c;Bg(b);Ag(b);U(this,new Cg(\"boxstart\",a.coordinate,a));return!0}return!1};function Ig(a){a=a?a:{};var b=a.condition?a.condition:kg;this.g=void 0!==a.duration?a.duration:200;this.s=void 0!==a.out?a.out:!1;Dg.call(this,{condition:b,className:a.className||\"ol-dragzoom\"})}B(Ig,Dg);\r\nIg.prototype.h=function(){var a=this.aa,b=a.U(),c=a.Ta(),d=this.S().G();if(this.s){var e=b.lc(c),d=[ug(a,sb(d)),ug(a,[d[2],d[3]])],f=jb(void 0),g,h;g=0;for(h=d.length;g<h;++g)eb(f,d[g]);f=1/yc(f,c);d=(e[2]-e[0])/2*(f-1);f=(e[3]-e[1])/2*(f-1);e[0]-=d;e[2]+=d;e[1]-=f;e[3]+=f;d=e}c=b.constrainResolution(yc(d,c));e=b.O();f=b.qa();a.oa(Fc({resolution:e,duration:this.g,easing:Ac}));a.oa(Dc({source:f,duration:this.g,easing:Ac}));b.xa(tb(d));b.set(wc,c)};function Jg(a){bg.call(this,{handleEvent:Kg});a=a||{};this.a=function(a){return jg(a)&&lg(a)};this.c=void 0!==a.condition?a.condition:this.a;this.f=void 0!==a.duration?a.duration:100;this.g=void 0!==a.pixelDelta?a.pixelDelta:128}B(Jg,bg);\r\nfunction Kg(a){var b=!1;if(\"keydown\"==a.type){var c=a.originalEvent.keyCode;if(this.c(a)&&(40==c||37==c||39==c||38==c)){var d=a.map,b=d.U(),e=b.O()*this.g,f=0,g=0;40==c?g=-e:37==c?f=-e:39==c?f=e:g=e;c=[f,g];bb(c,b.get(xc));e=this.f;if(f=b.qa())e&&0<e&&d.oa(Dc({source:f,duration:e,easing:Cc})),d=b.a.center([f[0]+c[0],f[1]+c[1]]),b.xa(d);a.preventDefault();b=!0}}return!b};function Lg(a){bg.call(this,{handleEvent:Mg});a=a?a:{};this.c=a.condition?a.condition:lg;this.a=a.delta?a.delta:1;this.f=void 0!==a.duration?a.duration:100}B(Lg,bg);function Mg(a){var b=!1;if(\"keydown\"==a.type||\"keypress\"==a.type){var c=a.originalEvent.charCode;if(this.c(a)&&(43==c||45==c)){var b=a.map,c=43==c?this.a:-this.a,d=b.U();dg(b,d,c,void 0,this.f);a.preventDefault();b=!0}}return!b};function Ng(a){bg.call(this,{handleEvent:Og});a=a||{};this.a=0;this.i=void 0!==a.duration?a.duration:250;this.j=void 0!==a.useAnchor?a.useAnchor:!0;this.f=null;this.g=this.c=void 0}B(Ng,bg);\r\nfunction Og(a){var b=!1;if(\"wheel\"==a.type||\"mousewheel\"==a.type){var b=a.map,c=a.originalEvent;this.j&&(this.f=a.coordinate);var d;\"wheel\"==a.type?(d=c.deltaY,le&&c.deltaMode===K.WheelEvent.DOM_DELTA_PIXEL&&(d/=oe),c.deltaMode===K.WheelEvent.DOM_DELTA_LINE&&(d*=40)):\"mousewheel\"==a.type&&(d=-c.wheelDeltaY,me&&(d/=3));this.a+=d;void 0===this.c&&(this.c=Date.now());d=Math.max(80-(Date.now()-this.c),0);K.clearTimeout(this.g);this.g=K.setTimeout(this.h.bind(this,b),d);a.preventDefault();b=!0}return!b}\r\nNg.prototype.h=function(a){var b=ia(this.a,-1,1),c=a.U();dg(a,c,-b,this.f,this.i);this.a=0;this.f=null;this.g=this.c=void 0};function Pg(a){ng.call(this,{handleDownEvent:Qg,handleDragEvent:Rg,handleUpEvent:Sg});a=a||{};this.c=null;this.g=void 0;this.a=!1;this.h=0;this.j=void 0!==a.threshold?a.threshold:.3;this.i=void 0!==a.duration?a.duration:250}B(Pg,ng);\r\nfunction Rg(a){var b=0,c=this.f[0],d=this.f[1],c=Math.atan2(d.clientY-c.clientY,d.clientX-c.clientX);void 0!==this.g&&(b=c-this.g,this.h+=b,!this.a&&Math.abs(this.h)>this.j&&(this.a=!0));this.g=c;a=a.map;c=a.a.getBoundingClientRect();d=pg(this.f);d[0]-=c.left;d[1]-=c.top;this.c=a.Ba(d);this.a&&(c=a.U(),d=c.get(xc),a.render(),cg(a,c,d+b,this.c))}\r\nfunction Sg(a){if(2>this.f.length){a=a.map;var b=a.U();zc(b,-1);if(this.a){var c=b.get(xc),d=this.c,e=this.i,c=b.constrainRotation(c,0);cg(a,b,c,d,e)}return!1}return!0}function Qg(a){return 2<=this.f.length?(a=a.map,this.c=null,this.g=void 0,this.a=!1,this.h=0,this.v||zc(a.U(),1),a.render(),!0):!1}Pg.prototype.B=zb;function Tg(a){ng.call(this,{handleDownEvent:Ug,handleDragEvent:Vg,handleUpEvent:Wg});a=a?a:{};this.c=null;this.h=void 0!==a.duration?a.duration:400;this.a=void 0;this.g=1}B(Tg,ng);function Vg(a){var b=1,c=this.f[0],d=this.f[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);void 0!==this.a&&(b=this.a/e);this.a=e;1!=b&&(this.g=b);a=a.map;var e=a.U(),c=e.O(),d=a.a.getBoundingClientRect(),f=pg(this.f);f[0]-=d.left;f[1]-=d.top;this.c=a.Ba(f);a.render();eg(a,e,c*b,this.c)}\r\nfunction Wg(a){if(2>this.f.length){a=a.map;var b=a.U();zc(b,-1);var c=b.O(),d=this.c,e=this.h,c=b.constrainResolution(c,0,this.g-1);eg(a,b,c,d,e);return!1}return!0}function Ug(a){return 2<=this.f.length?(a=a.map,this.c=null,this.a=void 0,this.g=1,this.v||zc(a.U(),1),a.render(),!0):!1}Tg.prototype.B=zb;function Xg(a){var b=a||{};a=pa({},b);delete a.layers;b=b.layers;sf.call(this,a);this.c=[];this.a={};R(this,La(\"layers\"),this.yd,this);b?Array.isArray(b)?b=new cd(b.slice()):L(b instanceof cd,43):b=new cd;this.set(\"layers\",b)}B(Xg,sf);n=Xg.prototype;n.rb=function(){this.gb()&&this.w()};\r\nn.yd=function(){this.c.forEach(M);this.c.length=0;var a=this.get(\"layers\");this.c.push(R(a,hd,this.xd,this),R(a,id,this.zd,this));for(var b in this.a)this.a[b].forEach(M);qa(this.a);var a=a.a,c,d;b=0;for(c=a.length;b<c;b++)d=a[b],this.a[J(d).toString()]=[R(d,\"propertychange\",this.rb,this),R(d,\"change\",this.rb,this)];this.w()};n.xd=function(a){a=a.element;var b=J(a).toString();this.a[b]=[R(a,\"propertychange\",this.rb,this),R(a,\"change\",this.rb,this)];this.w()};\r\nn.zd=function(a){a=J(a.element).toString();this.a[a].forEach(M);delete this.a[a];this.w()};n.Pb=function(a){var b=void 0!==a?a:[],c=b.length;ed(this.get(\"layers\"),function(a){a.Pb(b)});a=tf(this);var d,e;for(d=b.length;c<d;c++)e=b[c],e.opacity*=a.opacity,e.visible=e.visible&&a.visible,e.maxResolution=Math.min(e.maxResolution,a.maxResolution),e.minResolution=Math.max(e.minResolution,a.minResolution),void 0!==a.extent&&(e.extent=void 0!==e.extent?vb(e.extent,a.extent):a.extent);return b};n.Sb=function(){return\"ready\"};function Yg(a){Eb.call(this,{code:a,units:\"m\",extent:Zg,global:!0,worldExtent:$g})}B(Yg,Eb);Yg.prototype.getPointResolution=function(a,b){return a/ja(b[1]/6378137)};var ah=6378137*Math.PI,Zg=[-ah,-ah,ah,ah],$g=[-180,-85,180,85],bh=\"EPSG:3857 EPSG:102100 EPSG:102113 EPSG:900913 urn:ogc:def:crs:EPSG:6.18:3:3857 urn:ogc:def:crs:EPSG::3857 http://www.opengis.net/gml/srs/epsg.xml#3857\".split(\" \").map(function(a){return new Yg(a)});\r\nfunction ch(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=6378137*Math.PI*a[e]/180,b[e+1]=6378137*Math.log(Math.tan(Math.PI*(a[e+1]+90)/360));return b}function dh(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=180*a[e]/(6378137*Math.PI),b[e+1]=360*Math.atan(Math.exp(a[e+1]/6378137))/Math.PI-90;return b};var eh=new Ab(6378137);function fh(a,b){Eb.call(this,{code:a,units:\"degrees\",extent:gh,axisOrientation:b,global:!0,metersPerUnit:hh,worldExtent:gh})}B(fh,Eb);fh.prototype.getPointResolution=function(a){return a};\r\nvar gh=[-180,-90,180,90],hh=Math.PI*eh.radius/180,ih=[new fh(\"CRS:84\"),new fh(\"EPSG:4326\",\"neu\"),new fh(\"urn:ogc:def:crs:EPSG::4326\",\"neu\"),new fh(\"urn:ogc:def:crs:EPSG:6.6:4326\",\"neu\"),new fh(\"urn:ogc:def:crs:OGC:1.3:CRS84\"),new fh(\"urn:ogc:def:crs:OGC:2:84\"),new fh(\"http://www.opengis.net/gml/srs/epsg.xml#4326\",\"neu\"),new fh(\"urn:x-ogc:def:crs:EPSG:4326\",\"neu\")];function W(a){a=a?a:{};var b=pa({},a);delete b.preload;delete b.useInterimTilesOnError;xf.call(this,b);this.set(\"preload\",void 0!==a.preload?a.preload:0);this.set(\"useInterimTilesOnError\",void 0!==a.useInterimTilesOnError?a.useInterimTilesOnError:!0)}B(W,xf);function jh(a){return a.get(\"useInterimTilesOnError\")};var kh=[0,0,0,1],lh=[],mh=[0,0,0,1];function nh(a,b,c,d){0!==b&&(a.translate(c,d),a.rotate(b),a.translate(-c,-d))};function oh(a){this.C=a.opacity;this.K=a.rotateWithView;this.s=a.rotation;this.v=a.scale;this.B=a.snapToPixel};function ph(a){a=a||{};this.h=this.c=this.f=null;this.g=void 0!==a.fill?a.fill:null;this.b=void 0!==a.stroke?a.stroke:null;this.a=a.radius;this.j=[0,0];this.i=this.u=this.l=null;var b=a.atlasManager,c,d=null,e,f=0;this.b&&(e=nd(this.b.a),f=this.b.c,void 0===f&&(f=1),d=this.b.b,pe||(d=null));var g=2*(this.a+f)+1;e={strokeStyle:e,jb:f,size:g,lineDash:d};if(void 0===b)b=Md(g,g),this.c=b.canvas,c=g=this.c.width,this.Oc(e,b,0,0),this.g?this.h=this.c:(b=Md(e.size,e.size),this.h=b.canvas,this.Nc(e,b,0,0));\r\nelse{g=Math.round(g);(d=!this.g)&&(c=this.Nc.bind(this,e));var f=this.b?qh(this.b):\"-\",h=this.g?rh(this.g):\"-\";this.f&&f==this.f[1]&&h==this.f[2]&&this.a==this.f[3]||(this.f=[\"c\"+f+h+(void 0!==this.a?this.a.toString():\"-\"),f,h,this.a]);b=b.add(this.f[0],g,g,this.Oc.bind(this,e),c);this.c=b.image;this.j=[b.offsetX,b.offsetY];c=b.image.width;d?this.h=b.Nd:this.h=this.c}this.l=[g/2,g/2];this.u=[g,g];this.i=[c,c];oh.call(this,{opacity:1,rotateWithView:!1,rotation:0,scale:1,snapToPixel:void 0!==a.snapToPixel?\r\na.snapToPixel:!0})}B(ph,oh);n=ph.prototype;n.eb=function(){return this.l};n.ub=function(){return this.h};n.Z=function(){return this.c};n.ib=function(){return 2};n.Ob=function(){return this.i};n.pa=function(){return this.j};n.Ka=function(){return this.u};n.Vb=I;n.load=I;n.bc=I;\r\nn.Oc=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);this.g&&(b.fillStyle=qd(this.g.b),b.fill());this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};\r\nn.Nc=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);b.fillStyle=nd(kh);b.fill();this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};function sh(a){a=a||{};this.b=void 0!==a.color?a.color:null;this.a=void 0}function rh(a){void 0===a.a&&(a.a=a.b instanceof CanvasPattern||a.b instanceof CanvasGradient?J(a.b).toString():\"f\"+(a.b?nd(a.b):\"-\"));return a.a};function th(){this.a=-1};function uh(){this.a=64;this.b=Array(4);this.g=Array(this.a);this.b[0]=1732584193;this.b[1]=4023233417;this.b[2]=2562383102;this.b[3]=271733878;this.f=this.c=0}(function(){function a(){}a.prototype=th.prototype;uh.a=th.prototype;uh.prototype=new a;uh.prototype.constructor=uh;uh.b=function(a,c,d){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return th.prototype[c].apply(a,e)}})();\r\nfunction vh(a,b,c){c||(c=0);var d=Array(16);if(\"string\"==typeof b)for(var e=0;16>e;++e)d[e]=b.charCodeAt(c++)|b.charCodeAt(c++)<<8|b.charCodeAt(c++)<<16|b.charCodeAt(c++)<<24;else for(e=0;16>e;++e)d[e]=b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24;b=a.b[0];c=a.b[1];var e=a.b[2],f=a.b[3],g;g=b+(f^c&(e^f))+d[0]+3614090360&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[1]+3905402710&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[2]+606105819&4294967295;e=f+(g<<17&4294967295|g>>>15);g=\r\nc+(b^e&(f^b))+d[3]+3250441966&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[4]+4118548399&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[5]+1200080426&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[6]+2821735955&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[7]+4249261313&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[8]+1770035416&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[9]+2336552879&4294967295;f=b+(g<<12&4294967295|g>>>\r\n20);g=e+(c^f&(b^c))+d[10]+4294925233&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[11]+2304563134&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[12]+1804603682&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[13]+4254626195&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[14]+2792965006&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[15]+1236535329&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(e^f&(c^e))+d[1]+4129170786&4294967295;b=c+(g<<5&4294967295|\r\ng>>>27);g=f+(c^e&(b^c))+d[6]+3225465664&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[11]+643717713&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[0]+3921069994&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[5]+3593408605&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[10]+38016083&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[15]+3634488961&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[4]+3889429448&4294967295;c=e+(g<<20&4294967295|\r\ng>>>12);g=b+(e^f&(c^e))+d[9]+568446438&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[14]+3275163606&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[3]+4107603335&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[8]+1163531501&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[13]+2850285829&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[2]+4243563512&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[7]+1735328473&4294967295;e=f+(g<<14&4294967295|\r\ng>>>18);g=c+(f^b&(e^f))+d[12]+2368359562&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(c^e^f)+d[5]+4294588738&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[8]+2272392833&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[11]+1839030562&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[14]+4259657740&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[1]+2763975236&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[4]+1272893353&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^\r\nb^c)+d[7]+4139469664&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[10]+3200236656&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[13]+681279174&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[0]+3936430074&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[3]+3572445317&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[6]+76029189&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[9]+3654602809&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[12]+3873151461&4294967295;\r\nf=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[15]+530742520&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[2]+3299628645&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(e^(c|~f))+d[0]+4096336452&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[7]+1126891415&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[14]+2878612391&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[5]+4237533241&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[12]+1700485571&4294967295;b=c+\r\n(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[3]+2399980690&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[10]+4293915773&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[1]+2240044497&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[8]+1873313359&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[15]+4264355552&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[6]+2734768916&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[13]+1309151649&4294967295;\r\nc=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[4]+4149444226&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[11]+3174756917&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[2]+718787259&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[9]+3951481745&4294967295;a.b[0]=a.b[0]+b&4294967295;a.b[1]=a.b[1]+(e+(g<<21&4294967295|g>>>11))&4294967295;a.b[2]=a.b[2]+e&4294967295;a.b[3]=a.b[3]+f&4294967295}\r\nfunction wh(a,b){var c;void 0===c&&(c=b.length);for(var d=c-a.a,e=a.g,f=a.c,g=0;g<c;){if(0==f)for(;g<=d;)vh(a,b,g),g+=a.a;if(\"string\"==typeof b)for(;g<c;){if(e[f++]=b.charCodeAt(g++),f==a.a){vh(a,e);f=0;break}}else for(;g<c;)if(e[f++]=b[g++],f==a.a){vh(a,e);f=0;break}}a.c=f;a.f+=c};function xh(a){a=a||{};this.a=void 0!==a.color?a.color:null;this.f=a.lineCap;this.b=void 0!==a.lineDash?a.lineDash:null;this.g=a.lineJoin;this.h=a.miterLimit;this.c=a.width;this.l=void 0}\r\nfunction qh(a){if(void 0===a.l){var b=\"s\"+(a.a?nd(a.a):\"-\")+\",\"+(void 0!==a.f?a.f.toString():\"-\")+\",\"+(a.b?a.b.toString():\"-\")+\",\"+(void 0!==a.g?a.g:\"-\")+\",\"+(void 0!==a.h?a.h.toString():\"-\")+\",\"+(void 0!==a.c?a.c.toString():\"-\"),c=new uh;wh(c,b);var d=Array((56>c.c?c.a:2*c.a)-c.c);d[0]=128;for(b=1;b<d.length-8;++b)d[b]=0;for(var e=8*c.f,b=d.length-8;b<d.length;++b)d[b]=e&255,e/=256;wh(c,d);d=Array(16);for(b=e=0;4>b;++b)for(var f=0;32>f;f+=8)d[e++]=c.b[b]>>>f&255;if(8192>=d.length)c=String.fromCharCode.apply(null,\r\nd);else for(c=\"\",b=0;b<d.length;b+=8192)c+=String.fromCharCode.apply(null,td(d,b,b+8192));a.l=c}return a.l};function yh(a){a=a||{};this.h=null;this.c=zh;void 0!==a.geometry&&Ah(this,a.geometry);this.g=void 0!==a.fill?a.fill:null;this.l=void 0!==a.image?a.image:null;this.f=void 0!==a.stroke?a.stroke:null;this.a=void 0!==a.text?a.text:null;this.b=a.zIndex}yh.prototype.S=function(){return this.h};yh.prototype.Z=function(){return this.l};function Ah(a,b){\"function\"===typeof b?a.c=b:\"string\"===typeof b?a.c=function(a){return a.get(b)}:b?b&&(a.c=function(){return b}):a.c=zh;a.h=b}\r\nfunction Bh(a){if(\"function\"!==typeof a){var b;Array.isArray(a)?b=a:(L(a instanceof yh,41),b=[a]);a=function(){return b}}return a}var Ch=null;function Dh(){if(!Ch){var a=new sh({color:\"rgba(255,255,255,0.4)\"}),b=new xh({color:\"#3399CC\",width:1.25});Ch=[new yh({image:new ph({fill:a,stroke:b,radius:5}),fill:a,stroke:b})]}return Ch}\r\nfunction Eh(){var a={},b=[255,255,255,1],c=[0,153,255,1];a.Polygon=[new yh({fill:new sh({color:[255,255,255,.5]})})];a.MultiPolygon=a.Polygon;a.LineString=[new yh({stroke:new xh({color:b,width:5})}),new yh({stroke:new xh({color:c,width:3})})];a.MultiLineString=a.LineString;a.Circle=a.Polygon.concat(a.LineString);a.Point=[new yh({image:new ph({radius:6,fill:new sh({color:c}),stroke:new xh({color:b,width:1.5})}),zIndex:Infinity})];a.MultiPoint=a.Point;a.GeometryCollection=a.Polygon.concat(a.LineString,\r\na.Point);return a}function zh(a){return a.S()};function Y(a){a=a?a:{};var b=pa({},a);delete b.style;delete b.renderBuffer;delete b.updateWhileAnimating;delete b.updateWhileInteracting;xf.call(this,b);this.a=void 0!==a.renderBuffer?a.renderBuffer:100;this.s=null;this.g=void 0;this.v(a.style);this.i=void 0!==a.updateWhileAnimating?a.updateWhileAnimating:!1;this.j=void 0!==a.updateWhileInteracting?a.updateWhileInteracting:!1}B(Y,xf);Y.prototype.v=function(a){this.s=void 0!==a?a:Dh;this.g=null===a?void 0:Bh(this.s);this.w()};function Fh(){};function Gh(a,b,c,d,e){this.f=a;this.v=b;this.l=c;this.u=d;this.Ga=e;this.g=this.b=this.a=this.ha=this.P=this.N=null;this.aa=this.W=this.K=this.M=this.D=this.B=0;this.ba=!1;this.h=this.ra=0;this.ma=!1;this.Y=0;this.c=\"\";this.Ea=this.na=0;this.va=!1;this.j=this.wa=0;this.ca=this.C=this.i=null;this.s=[];this.Fa=Cf()}B(Gh,Fh);\r\nfunction Hh(a,b,c){if(a.g){b=Xb(b,0,c,2,a.u,a.s);c=a.f;var d=a.Fa,e=c.globalAlpha;1!=a.K&&(c.globalAlpha=e*a.K);var f=a.ra;a.ba&&(f+=a.Ga);var g,h;g=0;for(h=b.length;g<h;g+=2){var k=b[g]-a.B,l=b[g+1]-a.D;a.ma&&(k=Math.round(k),l=Math.round(l));if(0!==f||1!=a.h){var m=k+a.B,p=l+a.D;Lf(d,m,p,a.h,a.h,f,-m,-p);c.setTransform.apply(c,d)}c.drawImage(a.g,a.W,a.aa,a.Y,a.M,k,l,a.Y,a.M)}0===f&&1==a.h||c.setTransform(1,0,0,1,0,0);1!=a.K&&(c.globalAlpha=e)}}\r\nfunction Ih(a,b,c,d){var e=0;if(a.ca&&\"\"!==a.c){a.i&&Jh(a,a.i);a.C&&Kh(a,a.C);var f=a.ca,g=a.f,h=a.ha;h?(h.font!=f.font&&(h.font=g.font=f.font),h.textAlign!=f.textAlign&&(h.textAlign=g.textAlign=f.textAlign),h.textBaseline!=f.textBaseline&&(h.textBaseline=g.textBaseline=f.textBaseline)):(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline,a.ha={font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});b=Xb(b,e,c,d,a.u,a.s);f=a.f;g=a.wa;for(a.va&&(g+=a.Ga);e<c;e+=d){var h=b[e]+\r\na.na,k=b[e+1]+a.Ea;if(0!==g||1!=a.j){var l=Lf(a.Fa,h,k,a.j,a.j,g,-h,-k);f.setTransform.apply(f,l)}a.C&&f.strokeText(a.c,h,k);a.i&&f.fillText(a.c,h,k)}0===g&&1==a.j||f.setTransform(1,0,0,1,0,0)}}function Lh(a,b,c,d,e,f){var g=a.f;a=Xb(b,c,d,e,a.u,a.s);g.moveTo(a[0],a[1]);b=a.length;f&&(b-=2);for(c=2;c<b;c+=2)g.lineTo(a[c],a[c+1]);f&&g.closePath();return d}function Mh(a,b,c,d,e){var f,g;f=0;for(g=d.length;f<g;++f)c=Lh(a,b,c,d[f],e,!0);return c}n=Gh.prototype;\r\nn.pc=function(a){if(wb(this.l,a.G())){if(this.a||this.b){this.a&&Jh(this,this.a);this.b&&Kh(this,this.b);var b;b=(b=a.o)?Xb(b,0,b.length,a.A,this.u,this.s):null;var c=b[2]-b[0],d=b[3]-b[1],c=Math.sqrt(c*c+d*d),d=this.f;d.beginPath();d.arc(b[0],b[1],c,0,2*Math.PI);this.a&&d.fill();this.b&&d.stroke()}\"\"!==this.c&&Ih(this,a.o.slice(0,a.A),2,2)}};n.cb=function(a){var b=a.o;a=a.A;this.g&&Hh(this,b,b.length);\"\"!==this.c&&Ih(this,b,b.length,a)};\r\nn.bb=function(a){var b=a.o;a=a.A;this.g&&Hh(this,b,b.length);\"\"!==this.c&&Ih(this,b,b.length,a)};n.qc=function(a){if(wb(this.l,a.G())){if(this.b){Kh(this,this.b);var b=this.f,c=a.o;b.beginPath();Lh(this,c,0,c.length,a.A,!1);b.stroke()}\"\"!==this.c&&(a=Nh(a),Ih(this,a,2,2))}};\r\nn.rc=function(a){var b=a.G();if(wb(this.l,b)){if(this.b){Kh(this,this.b);var b=this.f,c=a.o,d=0,e=a.ua,f=a.A;b.beginPath();var g,h;g=0;for(h=e.length;g<h;++g)d=Lh(this,c,d,e[g],f,!1);b.stroke()}\"\"!==this.c&&(a=Oh(a),Ih(this,a,a.length,2))}};n.tc=function(a){if(wb(this.l,a.G())){if(this.b||this.a){this.a&&Jh(this,this.a);this.b&&Kh(this,this.b);var b=this.f;b.beginPath();Mh(this,sc(a),0,a.ja,a.A);this.a&&b.fill();this.b&&b.stroke()}\"\"!==this.c&&(a=tc(a),Ih(this,a,2,2))}};\r\nn.sc=function(a){if(wb(this.l,a.G())){if(this.b||this.a){this.a&&Jh(this,this.a);this.b&&Kh(this,this.b);var b=this.f,c=Ph(a),d=0,e=a.a,f=a.A,g,h;g=0;for(h=e.length;g<h;++g){var k=e[g];b.beginPath();d=Mh(this,c,d,k,f);this.a&&b.fill();this.b&&b.stroke()}}\"\"!==this.c&&(a=Qh(a),Ih(this,a,a.length,2))}};function Jh(a,b){var c=a.f,d=a.N;d?d.fillStyle!=b.fillStyle&&(d.fillStyle=c.fillStyle=b.fillStyle):(c.fillStyle=b.fillStyle,a.N={fillStyle:b.fillStyle})}\r\nfunction Kh(a,b){var c=a.f,d=a.P;d?(d.lineCap!=b.lineCap&&(d.lineCap=c.lineCap=b.lineCap),pe&&!Ra(d.lineDash,b.lineDash)&&c.setLineDash(d.lineDash=b.lineDash),d.lineJoin!=b.lineJoin&&(d.lineJoin=c.lineJoin=b.lineJoin),d.lineWidth!=b.lineWidth&&(d.lineWidth=c.lineWidth=b.lineWidth),d.miterLimit!=b.miterLimit&&(d.miterLimit=c.miterLimit=b.miterLimit),d.strokeStyle!=b.strokeStyle&&(d.strokeStyle=c.strokeStyle=b.strokeStyle)):(c.lineCap=b.lineCap,pe&&c.setLineDash(b.lineDash),c.lineJoin=b.lineJoin,c.lineWidth=\r\nb.lineWidth,c.miterLimit=b.miterLimit,c.strokeStyle=b.strokeStyle,a.P={lineCap:b.lineCap,lineDash:b.lineDash,lineJoin:b.lineJoin,lineWidth:b.lineWidth,miterLimit:b.miterLimit,strokeStyle:b.strokeStyle})}\r\nn.La=function(a,b){if(a){var c=a.b;this.a={fillStyle:qd(c?c:kh)}}else this.a=null;if(b){var c=b.a,d=b.f,e=b.b,f=b.g,g=b.c,h=b.h;this.b={lineCap:void 0!==d?d:\"round\",lineDash:e?e:lh,lineJoin:void 0!==f?f:\"round\",lineWidth:this.v*(void 0!==g?g:1),miterLimit:void 0!==h?h:10,strokeStyle:nd(c?c:mh)}}else this.b=null};\r\nn.Ma=function(a){if(a){var b=a.eb(),c=a.Z(1),d=a.pa(),e=a.Ka();this.B=b[0];this.D=b[1];this.M=e[1];this.g=c;this.K=a.C;this.W=d[0];this.aa=d[1];this.ba=a.K;this.ra=a.s;this.h=a.v;this.ma=a.B;this.Y=e[0]}else this.g=null};\r\nn.Ca=function(a){if(a){var b=a.f;b?(b=b.b,this.i={fillStyle:qd(b?b:kh)}):this.i=null;var c=a.i;if(c){var b=c.a,d=c.f,e=c.b,f=c.g,g=c.c,c=c.h;this.C={lineCap:void 0!==d?d:\"round\",lineDash:e?e:lh,lineJoin:void 0!==f?f:\"round\",lineWidth:void 0!==g?g:1,miterLimit:void 0!==c?c:10,strokeStyle:nd(b?b:mh)}}else this.C=null;var b=a.b,d=a.a,e=a.c,f=a.g,g=a.h,c=a.l,h=a.j,k=a.C;a=a.K;this.ca={font:void 0!==b?b:\"10px sans-serif\",textAlign:void 0!==k?k:\"center\",textBaseline:void 0!==a?a:\"middle\"};this.c=void 0!==\r\nh?h:\"\";this.na=void 0!==d?this.v*d:0;this.Ea=void 0!==e?this.v*e:0;this.va=void 0!==f?f:!1;this.wa=void 0!==g?g:0;this.j=this.v*(void 0!==c?c:1)}else this.c=\"\"};function Rh(a){Ia.call(this);this.a=a}B(Rh,Ia);Rh.prototype.fa=I;Rh.prototype.Ec=zb;Rh.prototype.l=function(a,b,c){return function(d,e){return Sh(a,b,d,e,function(a){c[d]||(c[d]={});c[d][a.V.toString()]=a})}};function Th(a){var b=a.a;b.gb()&&\"ready\"==b.Sb()&&a.w()}function Uh(a,b){b.Mc()&&a.postRenderFunctions.push(function(a,b,e){b=J(a).toString();a.Oa(e.viewState.projection,e.usedTiles[b])}.bind(null,b))}function Vh(a,b){if(b){var c,d,e;d=0;for(e=b.length;d<e;++d)c=b[d],a[J(c).toString()]=c}}\r\nfunction Wh(a,b){var c=b.D;void 0!==c&&(\"string\"===typeof c?a.logos[c]=\"\":c&&(L(\"string\"==typeof c.href,44),L(\"string\"==typeof c.src,45),a.logos[c.src]=c.href))}function Xh(a,b,c,d){b=J(b).toString();c=c.toString();b in a?c in a[b]?(a=a[b][c],d.H<a.H&&(a.H=d.H),d.I>a.I&&(a.I=d.I),d.J<a.J&&(a.J=d.J),d.L>a.L&&(a.L=d.L)):a[b][c]=d:(a[b]={},a[b][c]=d)}function Yh(a,b,c){return[b*(Math.round(a[0]/b)+c[0]%2/2),b*(Math.round(a[1]/b)+c[1]%2/2)]}\r\nfunction Zh(a,b,c,d,e,f,g,h,k,l){var m=J(b).toString();m in a.wantedTiles||(a.wantedTiles[m]={});var p=a.wantedTiles[m];a=a.tileQueue;var q=c.minZoom,u,w,r,x,D,t;for(t=g;t>=q;--t)for(w=Rc(c,f,t,w),r=c.O(t),x=w.H;x<=w.I;++x)for(D=w.J;D<=w.L;++D)g-t<=h?(u=$h(b,t,x,D,d,e),0==u.T()&&(p[u.getKey()]=!0,u.getKey()in a.a||a.g([u,m,Vc(c,u.V),r])),void 0!==k&&k.call(l,u)):b.Vc(t,x,D,e)};function ai(a){Rh.call(this,a);this.M=Cf()}B(ai,Rh);function bi(a,b,c){var d=b.pixelRatio,e=b.size[0]*d,f=b.size[1]*d,g=b.viewState.rotation,h=xb(c),k=[c[2],c[3]],l=[c[2],c[1]];c=sb(c);Hf(b.coordinateToPixelTransform,h);Hf(b.coordinateToPixelTransform,k);Hf(b.coordinateToPixelTransform,l);Hf(b.coordinateToPixelTransform,c);a.save();nh(a,-g,e/2,f/2);a.beginPath();a.moveTo(h[0]*d,h[1]*d);a.lineTo(k[0]*d,k[1]*d);a.lineTo(l[0]*d,l[1]*d);a.lineTo(c[0]*d,c[1]*d);a.clip();nh(a,g,e/2,f/2)}\r\nai.prototype.g=function(a,b,c){ci(this,\"precompose\",c,a,void 0);var d=this.Z();if(d){var e=b.extent,f=void 0!==e;f&&bi(c,a,e);var e=this.N,g=c.globalAlpha;c.globalAlpha=b.opacity;c.drawImage(d,0,0,+d.width,+d.height,Math.round(e[4]),Math.round(e[5]),Math.round(d.width*e[0]),Math.round(d.height*e[3]));c.globalAlpha=g;f&&c.restore()}ci(this,\"postcompose\",c,a,void 0)};\r\nfunction ci(a,b,c,d,e){var f=a.a;if(Ha(f,b)){var g=d.size[0]*d.pixelRatio,h=d.size[1]*d.pixelRatio,k=d.viewState.rotation;nh(c,-k,g/2,h/2);a=void 0!==e?e:di(a,d,0);U(f,new uf(b,new Gh(c,d.pixelRatio,d.extent,a,d.viewState.rotation),d,c,null));nh(c,k,g/2,h/2)}}function di(a,b,c){var d=b.viewState,e=b.pixelRatio,f=e/d.resolution;return Lf(a.M,e*b.size[0]/2,e*b.size[1]/2,f,-f,-d.rotation,-d.center[0]+c,-d.center[1])};function ei(){};var fi=[\"Polygon\",\"LineString\",\"Image\",\"Text\"];function gi(a,b,c,d){this.ra=a;this.P=b;this.overlaps=d;this.g=null;this.h=0;this.resolution=c;this.ca=this.Y=null;this.a=[];this.coordinates=[];this.W=Cf();this.b=[];this.ha=[];this.aa=Cf();this.ba=Cf()}B(gi,Fh);\r\nfunction hi(a,b,c,d,e,f){var g=a.coordinates.length,h=a.Nb(),k=[b[c],b[c+1]],l=[NaN,NaN],m=!0,p,q,u;for(p=c+e;p<d;p+=e){l[0]=b[p];l[1]=b[p+1];u=h[1];var w=h[2],r=h[3],x=l[0],D=l[1],t=0;x<h[0]?t|=16:x>w&&(t|=4);D<u?t|=8:D>r&&(t|=2);0===t&&(t=1);u=t;u!==q?(m&&(a.coordinates[g++]=k[0],a.coordinates[g++]=k[1]),a.coordinates[g++]=l[0],a.coordinates[g++]=l[1],m=!1):1===u?(a.coordinates[g++]=l[0],a.coordinates[g++]=l[1],m=!1):m=!0;k[0]=l[0];k[1]=l[1];q=u}p===c+e&&(a.coordinates[g++]=k[0],a.coordinates[g++]=\r\nk[1]);f&&(a.coordinates[g++]=b[c],a.coordinates[g++]=b[c+1]);return g}function ii(a,b){a.Y=[0,b,0];a.a.push(a.Y);a.ca=[0,b,0];a.b.push(a.ca)}\r\nfunction ji(a,b,c,d,e,f,g,h,k){var l;Ra(d,a.W)?l=a.ha:(l=Xb(a.coordinates,0,a.coordinates.length,2,d,a.ha),Gf(a.W,d));d=!sa(f);var m=0,p=g.length,q,u,w=a.aa,r=a.ba,x,D,t,z,C=0,E=0;for(a=a.a!=g||a.overlaps?0:200;m<p;){var v=g[m],H,G,A,F;switch(v[0]){case 0:q=v[1];d&&f[J(q).toString()]||!q.S()?m=v[2]:void 0===k||wb(k,q.S().G())?++m:m=v[2]+1;break;case 1:C>a&&(b.fill(),C=0);E>a&&(b.stroke(),E=0);C||E||b.beginPath();++m;break;case 2:q=v[1];u=l[q];v=l[q+1];t=l[q+2]-u;q=l[q+3]-v;q=Math.sqrt(t*t+q*q);b.moveTo(u+\r\nq,v);b.arc(u,v,q,0,2*Math.PI,!0);++m;break;case 3:b.closePath();++m;break;case 4:q=v[1];u=v[2];H=v[3];G=v[4]*c;A=v[5]*c;var Q=v[6],N=v[7],O=v[8],S=v[9];F=v[10];t=v[11];z=v[12];var X=v[13],P=v[14];for(F&&(t+=e);q<u;q+=2){v=l[q]-G;F=l[q+1]-A;X&&(v=Math.round(v),F=Math.round(F));if(1!=z||0!==t){var Ba=v+G,Nb=F+A;Lf(w,Ba,Nb,z,z,t,-Ba,-Nb);b.transform.apply(b,w)}Ba=b.globalAlpha;1!=N&&(b.globalAlpha=Ba*N);var Nb=P+O>H.width?H.width-O:P,Ca=Q+S>H.height?H.height-S:Q;b.drawImage(H,O,S,Nb,Ca,v,F,Nb*c,Ca*c);\r\n1!=N&&(b.globalAlpha=Ba);if(1!=z||0!==t)Mf(Gf(r,w)),b.transform.apply(b,r)}++m;break;case 5:q=v[1];u=v[2];A=v[3];Q=v[4]*c;N=v[5]*c;t=v[6];z=v[7]*c;H=v[8];G=v[9];for((F=v[10])&&(t+=e);q<u;q+=2){v=l[q]+Q;F=l[q+1]+N;if(1!=z||0!==t)Lf(w,v,F,z,z,t,-v,-F),b.transform.apply(b,w);O=A.split(\"\\n\");S=O.length;1<S?(X=Math.round(1.5*b.measureText(\"M\").width),F-=(S-1)/2*X):X=0;for(P=0;P<S;P++)Ba=O[P],G&&b.strokeText(Ba,v,F),H&&b.fillText(Ba,v,F),F+=X;if(1!=z||0!==t)Mf(Gf(r,w)),b.transform.apply(b,r)}++m;break;\r\ncase 6:if(void 0!==h&&(q=v[1],q=h(q)))return q;++m;break;case 7:a?C++:b.fill();++m;break;case 8:q=v[1];u=v[2];v=l[q];F=l[q+1];t=v+.5|0;z=F+.5|0;if(t!==x||z!==D)b.moveTo(v,F),x=t,D=z;for(q+=2;q<u;q+=2)if(v=l[q],F=l[q+1],t=v+.5|0,z=F+.5|0,q==u-2||t!==x||z!==D)b.lineTo(v,F),x=t,D=z;++m;break;case 9:C&&(b.fill(),C=0);b.fillStyle=v[1];++m;break;case 10:x=void 0!==v[7]?v[7]:!0;D=v[2];E&&(b.stroke(),E=0);b.strokeStyle=v[1];b.lineWidth=x?D*c:D;b.lineCap=v[3];b.lineJoin=v[4];b.miterLimit=v[5];pe&&b.setLineDash(v[6]);\r\nD=x=NaN;++m;break;case 11:b.font=v[1];b.textAlign=v[2];b.textBaseline=v[3];++m;break;case 12:a?E++:b.stroke();++m;break;default:++m}}C&&b.fill();E&&b.stroke()}gi.prototype.f=function(a,b,c,d,e){ji(this,a,b,c,d,e,this.a,void 0,void 0)};function ki(a){var b=a.b;b.reverse();var c,d=b.length,e,f,g=-1;for(c=0;c<d;++c)if(e=b[c],f=e[0],6==f)g=c;else if(0==f){e[2]=c;e=a.b;for(f=c;g<f;){var h=e[g];e[g]=e[f];e[f]=h;++g;--f}g=-1}}\r\nfunction li(a,b){a.Y[2]=a.a.length;a.Y=null;a.ca[2]=a.b.length;a.ca=null;var c=[6,b];a.a.push(c);a.b.push(c)}gi.prototype.tb=I;gi.prototype.Nb=function(){return this.P};function mi(a,b,c,d){gi.call(this,a,b,c,d);this.j=this.N=null;this.M=this.D=this.B=this.u=this.v=this.s=this.K=this.C=this.i=this.l=this.c=void 0}B(mi,gi);\r\nmi.prototype.cb=function(a,b){if(this.j){ii(this,b);var c=a.o,d=this.coordinates.length,c=hi(this,c,0,c.length,a.A,!1);this.a.push([4,d,c,this.j,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);this.b.push([4,d,c,this.N,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);li(this,b)}};\r\nmi.prototype.bb=function(a,b){if(this.j){ii(this,b);var c=a.o,d=this.coordinates.length,c=hi(this,c,0,c.length,a.A,!1);this.a.push([4,d,c,this.j,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);this.b.push([4,d,c,this.N,this.c,this.l,this.i,this.C,this.K,this.s,this.v,this.u,this.B,this.D,this.M]);li(this,b)}};mi.prototype.tb=function(){ki(this);this.l=this.c=void 0;this.j=this.N=null;this.M=this.D=this.u=this.v=this.s=this.K=this.C=this.B=this.i=void 0};\r\nmi.prototype.Ma=function(a){var b=a.eb(),c=a.Ka(),d=a.ub(1),e=a.Z(1),f=a.pa();this.c=b[0];this.l=b[1];this.N=d;this.j=e;this.i=c[1];this.C=a.C;this.K=f[0];this.s=f[1];this.v=a.K;this.u=a.s;this.B=a.v;this.D=a.B;this.M=c[0]};function ni(a,b,c,d){gi.call(this,a,b,c,d);this.c={ab:void 0,Wa:void 0,Xa:null,Ya:void 0,Za:void 0,$a:void 0,Ub:0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}B(ni,gi);\r\nfunction oi(a,b,c,d,e){var f=a.coordinates.length;b=hi(a,b,c,d,e,!1);f=[8,f,b];a.a.push(f);a.b.push(f);return d}n=ni.prototype;n.Nb=function(){this.g||(this.g=gb(this.P),0<this.h&&fb(this.g,this.resolution*(this.h+1)/2,this.g));return this.g};\r\nfunction pi(a){var b=a.c,c=b.strokeStyle,d=b.lineCap,e=b.lineDash,f=b.lineJoin,g=b.lineWidth,h=b.miterLimit;b.ab==c&&b.Wa==d&&Ra(b.Xa,e)&&b.Ya==f&&b.Za==g&&b.$a==h||(b.Ub!=a.coordinates.length&&(a.a.push([12]),b.Ub=a.coordinates.length),a.a.push([10,c,g,d,f,h,e],[1]),b.ab=c,b.Wa=d,b.Xa=e,b.Ya=f,b.Za=g,b.$a=h)}\r\nn.qc=function(a,b){var c=this.c,d=c.lineWidth;void 0!==c.strokeStyle&&void 0!==d&&(pi(this),ii(this,b),this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]),c=a.o,oi(this,c,0,c.length,a.A),this.b.push([12]),li(this,b))};\r\nn.rc=function(a,b){var c=this.c,d=c.lineWidth;if(void 0!==c.strokeStyle&&void 0!==d){pi(this);ii(this,b);this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]);var c=a.ua,d=a.o,e=a.A,f=0,g,h;g=0;for(h=c.length;g<h;++g)f=oi(this,d,f,c[g],e);this.b.push([12]);li(this,b)}};n.tb=function(){this.c.Ub!=this.coordinates.length&&this.a.push([12]);ki(this);this.c=null};\r\nn.La=function(a,b){var c=b.a;this.c.strokeStyle=nd(c?c:mh);c=b.f;this.c.lineCap=void 0!==c?c:\"round\";c=b.b;this.c.lineDash=c?c:lh;c=b.g;this.c.lineJoin=void 0!==c?c:\"round\";c=b.c;this.c.lineWidth=void 0!==c?c:1;c=b.h;this.c.miterLimit=void 0!==c?c:10;this.c.lineWidth>this.h&&(this.h=this.c.lineWidth,this.g=null)};\r\nfunction qi(a,b,c,d){gi.call(this,a,b,c,d);this.c={oc:void 0,ab:void 0,Wa:void 0,Xa:null,Ya:void 0,Za:void 0,$a:void 0,fillStyle:void 0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}B(qi,gi);\r\nfunction ri(a,b,c,d,e){var f=a.c,g=void 0!==f.fillStyle,f=void 0!=f.strokeStyle,h=d.length;if(!g&&!f)return d[h-1];var k=[1];a.a.push(k);a.b.push(k);for(k=0;k<h;++k){var l=d[k],m=a.coordinates.length;c=hi(a,b,c,l,e,!0);c=[8,m,c];a.a.push(c);a.b.push(c);f&&(c=[3],a.a.push(c),a.b.push(c));c=l}b=[7];a.b.push(b);g&&a.a.push(b);f&&(g=[12],a.a.push(g),a.b.push(g));return c}n=qi.prototype;\r\nn.pc=function(a,b){var c=this.c,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){si(this);ii(this,b);this.b.push([9,nd(kh)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var e=a.o,d=this.coordinates.length;hi(this,e,0,e.length,a.A,!1);e=[1];d=[2,d];this.a.push(e,d);this.b.push(e,d);d=[7];this.b.push(d);void 0!==c.fillStyle&&this.a.push(d);void 0!==c.strokeStyle&&(c=[12],this.a.push(c),this.b.push(c));li(this,b)}};\r\nn.tc=function(a,b){var c=this.c,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d)si(this),ii(this,b),this.b.push([9,nd(kh)]),void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]),c=a.ja,d=sc(a),ri(this,d,0,c,a.A),li(this,b)};\r\nn.sc=function(a,b){var c=this.c,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){si(this);ii(this,b);this.b.push([9,nd(kh)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var c=a.a,d=Ph(a),e=a.A,f=0,g,h;g=0;for(h=c.length;g<h;++g)f=ri(this,d,f,c[g],e);li(this,b)}};n.tb=function(){ki(this);this.c=null;var a=this.ra;if(0!==a){var b=this.coordinates,c,d;c=0;for(d=b.length;c<d;++c)b[c]=a*Math.round(b[c]/a)}};\r\nn.Nb=function(){this.g||(this.g=gb(this.P),0<this.h&&fb(this.g,this.resolution*(this.h+1)/2,this.g));return this.g};\r\nn.La=function(a,b){var c=this.c;if(a){var d=a.b;c.fillStyle=qd(d?d:kh)}else c.fillStyle=void 0;b?(d=b.a,c.strokeStyle=nd(d?d:mh),d=b.f,c.lineCap=void 0!==d?d:\"round\",d=b.b,c.lineDash=d?d.slice():lh,d=b.g,c.lineJoin=void 0!==d?d:\"round\",d=b.c,c.lineWidth=void 0!==d?d:1,d=b.h,c.miterLimit=void 0!==d?d:10,c.lineWidth>this.h&&(this.h=c.lineWidth,this.g=null)):(c.strokeStyle=void 0,c.lineCap=void 0,c.lineDash=null,c.lineJoin=void 0,c.lineWidth=void 0,c.miterLimit=void 0)};\r\nfunction si(a){var b=a.c,c=b.fillStyle,d=b.strokeStyle,e=b.lineCap,f=b.lineDash,g=b.lineJoin,h=b.lineWidth,k=b.miterLimit;void 0!==c&&b.oc!=c&&(a.a.push([9,c]),b.oc=b.fillStyle);void 0===d||b.ab==d&&b.Wa==e&&b.Xa==f&&b.Ya==g&&b.Za==h&&b.$a==k||(a.a.push([10,d,h,e,g,k,f]),b.ab=d,b.Wa=e,b.Xa=f,b.Ya=g,b.Za=h,b.$a=k)}function ti(a,b,c,d){gi.call(this,a,b,c,d);this.M=this.D=this.B=null;this.j=\"\";this.K=this.C=0;this.s=void 0;this.u=this.v=0;this.i=this.l=this.c=null}B(ti,gi);\r\nfunction ui(a,b,c,d,e){if(\"\"!==a.j&&a.i&&(a.c||a.l)){if(a.c){var f=a.c,g=a.B;if(!g||g.fillStyle!=f.fillStyle){var h=[9,f.fillStyle];a.a.push(h);a.b.push(h);g?g.fillStyle=f.fillStyle:a.B={fillStyle:f.fillStyle}}}a.l&&(f=a.l,g=a.D,g&&g.lineCap==f.lineCap&&g.lineDash==f.lineDash&&g.lineJoin==f.lineJoin&&g.lineWidth==f.lineWidth&&g.miterLimit==f.miterLimit&&g.strokeStyle==f.strokeStyle||(h=[10,f.strokeStyle,f.lineWidth,f.lineCap,f.lineJoin,f.miterLimit,f.lineDash,!1],a.a.push(h),a.b.push(h),g?(g.lineCap=\r\nf.lineCap,g.lineDash=f.lineDash,g.lineJoin=f.lineJoin,g.lineWidth=f.lineWidth,g.miterLimit=f.miterLimit,g.strokeStyle=f.strokeStyle):a.D={lineCap:f.lineCap,lineDash:f.lineDash,lineJoin:f.lineJoin,lineWidth:f.lineWidth,miterLimit:f.miterLimit,strokeStyle:f.strokeStyle}));f=a.i;g=a.M;g&&g.font==f.font&&g.textAlign==f.textAlign&&g.textBaseline==f.textBaseline||(h=[11,f.font,f.textAlign,f.textBaseline],a.a.push(h),a.b.push(h),g?(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline):a.M=\r\n{font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});ii(a,e);f=a.coordinates.length;b=hi(a,b,0,c,d,!1);b=[5,f,b,a.j,a.C,a.K,a.v,a.u,!!a.c,!!a.l,a.s];a.a.push(b);a.b.push(b);li(a,e)}}\r\nti.prototype.Ca=function(a){if(a){var b=a.f;b?(b=b.b,b=qd(b?b:kh),this.c?this.c.fillStyle=b:this.c={fillStyle:b}):this.c=null;var c=a.i;if(c){var b=c.a,d=c.f,e=c.b,f=c.g,g=c.c,c=c.h,d=void 0!==d?d:\"round\",e=e?e.slice():lh,f=void 0!==f?f:\"round\",g=void 0!==g?g:1,c=void 0!==c?c:10,b=nd(b?b:mh);if(this.l){var h=this.l;h.lineCap=d;h.lineDash=e;h.lineJoin=f;h.lineWidth=g;h.miterLimit=c;h.strokeStyle=b}else this.l={lineCap:d,lineDash:e,lineJoin:f,lineWidth:g,miterLimit:c,strokeStyle:b}}else this.l=null;\r\nvar k=a.b,b=a.a,d=a.c,e=a.g,g=a.h,c=a.l,f=a.j,h=a.C,l=a.K;a=void 0!==k?k:\"10px sans-serif\";h=void 0!==h?h:\"center\";l=void 0!==l?l:\"middle\";this.i?(k=this.i,k.font=a,k.textAlign=h,k.textBaseline=l):this.i={font:a,textAlign:h,textBaseline:l};this.j=void 0!==f?f:\"\";this.C=void 0!==b?b:0;this.K=void 0!==d?d:0;this.s=void 0!==e?e:!1;this.v=void 0!==g?g:0;this.u=void 0!==c?c:1}else this.j=\"\"};function vi(a,b,c,d,e){this.K=a;this.g=b;this.j=d;this.C=c;this.h=e;this.a={};this.l=Md(1,1);this.i=Cf()}B(vi,ei);\r\nfunction wi(a){for(var b in a.a){var c=a.a[b],d;for(d in c)c[d].tb()}}vi.prototype.fa=function(a,b,c,d,e){var f=Lf(this.i,.5,.5,1/b,-1/b,-c,-a[0],-a[1]),g=this.l;g.clearRect(0,0,1,1);var h;void 0!==this.h&&(h=db(),eb(h,a),fb(h,b*this.h,h));return xi(this,g,f,c,d,function(a){if(0<g.getImageData(0,0,1,1).data[3]){if(a=e(a))return a;g.clearRect(0,0,1,1)}},h)};\r\nvi.prototype.b=function(a,b){var c=void 0!==a?a.toString():\"0\",d=this.a[c];void 0===d&&(d={},this.a[c]=d);c=d[b];void 0===c&&(c=new yi[b](this.K,this.g,this.C,this.j),d[b]=c);return c};vi.prototype.c=function(){return sa(this.a)};\r\nvi.prototype.f=function(a,b,c,d,e,f){var g=Object.keys(this.a).map(Number);g.sort(Ma);var h=this.g,k=h[0],l=h[1],m=h[2],h=h[3],k=[k,l,k,h,m,h,m,l];Xb(k,0,8,2,c,k);a.save();a.beginPath();a.moveTo(k[0],k[1]);a.lineTo(k[2],k[3]);a.lineTo(k[4],k[5]);a.lineTo(k[6],k[7]);a.clip();f=f?f:fi;for(var p,q,k=0,l=g.length;k<l;++k)for(p=this.a[g[k].toString()],m=0,h=f.length;m<h;++m)q=p[f[m]],void 0!==q&&q.f(a,b,c,d,e);a.restore()};\r\nfunction xi(a,b,c,d,e,f,g){var h=Object.keys(a.a).map(Number);h.sort(function(a,b){return b-a});var k,l,m,p,q;k=0;for(l=h.length;k<l;++k)for(p=a.a[h[k].toString()],m=fi.length-1;0<=m;--m)if(q=p[fi[m]],void 0!==q&&(q=ji(q,b,1,c,d,e,q.b,f,g)))return q}var yi={Image:mi,LineString:ni,Polygon:qi,Text:ti};function zi(a,b){return J(a)-J(b)}function Ai(a,b){var c=.5*a/b;return c*c}function Bi(a,b,c,d,e,f){var g=!1,h,k;if(h=c.Z())k=h.ib(),2==k||3==k?h.bc(e,f):(0==k&&h.load(),h.Vb(e,f),g=!0);if(e=(0,c.c)(b))d=e.Rb(d),(0,Ci[d.$()])(a,d,c,b);return g}\r\nvar Ci={Point:function(a,b,c,d){var e=c.Z();if(e){if(2!=e.ib())return;var f=a.b(c.b,\"Image\");f.Ma(e);f.cb(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,b.o,2,2,d)},LineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,\"LineString\");f.La(null,e);f.qc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,Nh(b),2,2,d)},Polygon:function(a,b,c,d){var e=c.g,f=c.f;if(e||f){var g=a.b(c.b,\"Polygon\");g.La(e,f);g.tc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,tc(b),2,2,d)},MultiPoint:function(a,b,c,d){var e=c.Z();\r\nif(e){if(2!=e.ib())return;var f=a.b(c.b,\"Image\");f.Ma(e);f.bb(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),c=b.o,ui(a,c,c.length,b.A,d)},MultiLineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,\"LineString\");f.La(null,e);f.rc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),b=Oh(b),ui(a,b,b.length,2,d)},MultiPolygon:function(a,b,c,d){var e=c.g,f=c.f;if(f||e){var g=a.b(c.b,\"Polygon\");g.La(e,f);g.sc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),b=Qh(b),ui(a,b,b.length,2,d)},GeometryCollection:function(a,b,c,d){b=\r\nb.a;var e,f;e=0;for(f=b.length;e<f;++e)(0,Ci[b[e].$()])(a,b[e],c,d)},Circle:function(a,b,c,d){var e=c.g,f=c.f;if(e||f){var g=a.b(c.b,\"Polygon\");g.La(e,f);g.pc(b,d)}if(e=c.a)a=a.b(c.b,\"Text\"),a.Ca(e),ui(a,b.o.slice(0,b.A),2,2,d)}};var Di,Ei=K,Fi=-1<Ei.navigator.userAgent.indexOf(\"OPR\"),Gi=-1<Ei.navigator.userAgent.indexOf(\"Edge\");Di=!(!Ei.navigator.userAgent.match(\"CriOS\")&&null!==Ei.chrome&&void 0!==Ei.chrome&&\"Google Inc.\"===Ei.navigator.vendor&&0==Fi&&0==Gi);function Hi(a,b,c,d){a=c-a;b=d-b;var e=Math.sqrt(a*a+b*b);return[Math.round(c+a/e),Math.round(d+b/e)]}\r\nfunction Ii(a,b,c,d,e,f,g,h,k,l,m){var p=Md(Math.round(c*a),Math.round(c*b));if(0===k.length)return p.canvas;p.scale(c,c);var q=db();k.forEach(function(a){mb(q,a.extent)});var u=Md(Math.round(c*qb(q)/d),Math.round(c*rb(q)/d)),w=c/d;k.forEach(function(a){u.drawImage(a.image,l,l,a.image.width-2*l,a.image.height-2*l,(a.extent[0]-q[0])*w,-(a.extent[3]-q[3])*w,qb(a.extent)*w,rb(a.extent)*w)});var r=xb(g);h.f.forEach(function(a){var b=a.source,e=a.target,g=b[1][0],h=b[1][1],k=b[2][0],l=b[2][1];a=(e[0][0]-\r\nr[0])/f;var m=-(e[0][1]-r[1])/f,w=(e[1][0]-r[0])/f,A=-(e[1][1]-r[1])/f,F=(e[2][0]-r[0])/f,Q=-(e[2][1]-r[1])/f,e=b[0][0],b=b[0][1],g=g-e,h=h-b,k=k-e,l=l-b;a:{g=[[g,h,0,0,w-a],[k,l,0,0,F-a],[0,0,g,h,A-m],[0,0,k,l,Q-m]];h=g.length;for(k=0;k<h;k++){for(var l=k,N=Math.abs(g[k][k]),O=k+1;O<h;O++){var S=Math.abs(g[O][k]);S>N&&(N=S,l=O)}if(0===N){g=null;break a}N=g[l];g[l]=g[k];g[k]=N;for(l=k+1;l<h;l++)for(N=-g[l][k]/g[k][k],O=k;O<h+1;O++)g[l][O]=k==O?0:g[l][O]+N*g[k][O]}k=Array(h);for(l=h-1;0<=l;l--)for(k[l]=\r\ng[l][h]/g[l][l],N=l-1;0<=N;N--)g[N][h]-=g[N][l]*k[l];g=k}g&&(p.save(),p.beginPath(),Di?(k=(a+w+F)/3,l=(m+A+Q)/3,h=Hi(k,l,a,m),w=Hi(k,l,w,A),F=Hi(k,l,F,Q),p.moveTo(w[0],w[1]),p.lineTo(h[0],h[1]),p.lineTo(F[0],F[1])):(p.moveTo(w,A),p.lineTo(a,m),p.lineTo(F,Q)),p.clip(),p.transform(g[0],g[2],g[1],g[3],a,m),p.translate(q[0]-e,q[3]-b),p.scale(d/c,-d/c),p.drawImage(u.canvas,0,0),p.restore())});m&&(p.save(),p.strokeStyle=\"black\",p.lineWidth=1,h.f.forEach(function(a){var b=a.target;a=(b[0][0]-r[0])/f;var c=\r\n-(b[0][1]-r[1])/f,d=(b[1][0]-r[0])/f,e=-(b[1][1]-r[1])/f,g=(b[2][0]-r[0])/f,b=-(b[2][1]-r[1])/f;p.beginPath();p.moveTo(d,e);p.lineTo(a,c);p.lineTo(g,b);p.closePath();p.stroke()}),p.restore());return p.canvas};function Ji(a,b,c,d,e){this.c=a;this.g=b;var f={},g=Ub(this.g,this.c);this.a=function(a){var b=a[0]+\"/\"+a[1];f[b]||(f[b]=g(a));return f[b]};this.h=d;this.C=e*e;this.f=[];this.i=!1;this.j=this.c.b&&!!d&&!!this.c.G()&&qb(d)==qb(this.c.G());this.b=this.c.G()?qb(this.c.G()):null;this.l=this.g.G()?qb(this.g.G()):null;a=xb(c);b=[c[2],c[3]];d=[c[2],c[1]];c=sb(c);e=this.a(a);var h=this.a(b),k=this.a(d),l=this.a(c);Ki(this,a,b,d,c,e,h,k,l,10);if(this.i){var m=Infinity;this.f.forEach(function(a){m=Math.min(m,\r\na.source[0][0],a.source[1][0],a.source[2][0])});this.f.forEach(function(a){if(Math.max(a.source[0][0],a.source[1][0],a.source[2][0])-m>this.b/2){var b=[[a.source[0][0],a.source[0][1]],[a.source[1][0],a.source[1][1]],[a.source[2][0],a.source[2][1]]];b[0][0]-m>this.b/2&&(b[0][0]-=this.b);b[1][0]-m>this.b/2&&(b[1][0]-=this.b);b[2][0]-m>this.b/2&&(b[2][0]-=this.b);Math.max(b[0][0],b[1][0],b[2][0])-Math.min(b[0][0],b[1][0],b[2][0])<this.b/2&&(a.source=b)}},this)}f={}}\r\nfunction Ki(a,b,c,d,e,f,g,h,k,l){var m=cb([f,g,h,k]),p=a.b?qb(m)/a.b:null,q=a.b,u=a.c.b&&.5<p&&1>p,w=!1;if(0<l){if(a.g.c&&a.l)var r=cb([b,c,d,e]),w=w|.25<qb(r)/a.l;!u&&a.c.c&&p&&(w|=.25<p)}if(w||!a.h||wb(m,a.h)){if(!(w||isFinite(f[0])&&isFinite(f[1])&&isFinite(g[0])&&isFinite(g[1])&&isFinite(h[0])&&isFinite(h[1])&&isFinite(k[0])&&isFinite(k[1])))if(0<l)w=!0;else return;if(0<l&&(w||(m=a.a([(b[0]+d[0])/2,(b[1]+d[1])/2]),q=u?(la(f[0],q)+la(h[0],q))/2-la(m[0],q):(f[0]+h[0])/2-m[0],m=(f[1]+h[1])/2-m[1],\r\nw=q*q+m*m>a.C),w)){Math.abs(b[0]-d[0])<=Math.abs(b[1]-d[1])?(u=[(c[0]+d[0])/2,(c[1]+d[1])/2],q=a.a(u),m=[(e[0]+b[0])/2,(e[1]+b[1])/2],p=a.a(m),Ki(a,b,c,u,m,f,g,q,p,l-1),Ki(a,m,u,d,e,p,q,h,k,l-1)):(u=[(b[0]+c[0])/2,(b[1]+c[1])/2],q=a.a(u),m=[(d[0]+e[0])/2,(d[1]+e[1])/2],p=a.a(m),Ki(a,b,u,m,e,f,q,p,k,l-1),Ki(a,u,c,d,m,q,g,h,p,l-1));return}if(u){if(!a.j)return;a.i=!0}a.f.push({source:[f,h,k],target:[b,d,e]});a.f.push({source:[f,g,h],target:[b,c,d]})}}\r\nfunction Li(a){var b=db();a.f.forEach(function(a){a=a.source;eb(b,a[0]);eb(b,a[1]);eb(b,a[2])});return b};function Mi(a){ai.call(this,a);this.f=Md();this.c=null;this.j=db();this.s=[0,0,0];this.h=Cf()}B(Mi,ai);\r\nMi.prototype.g=function(a,b,c){var d=di(this,a,0);ci(this,\"precompose\",c,a,d);var e=a.pixelRatio,f=a.viewState,g=f.center,h=f.projection,k=f.rotation,l=a.size,m=Math.round(e*l[0]/2),l=Math.round(e*l[1]/2),f=e/f.resolution,p=this.a,q=p.da(),u=e*q.nb(h),w=q.sa(h),p=Ha(p,\"render\"),r=c,x=1,D,t,z;if(k||p){r=this.f;D=r.canvas;var x=q.pb(e)/e,C=c.canvas.width*x;t=c.canvas.height*x;z=Math.round(Math.sqrt(C*C+t*t));D.width!=z?D.width=D.height=z:r.clearRect(0,0,z,z);D=(z-C)/2/x;t=(z-t)/2/x;f*=x;m=Math.round(x*\r\n(m+D));l=Math.round(x*(l+t))}C=r.globalAlpha;r.globalAlpha=b.opacity;var E=this.c,v,H=q.Qb(h)&&1==b.opacity;H||(E.reverse(),v=[]);var G=b.extent;if(b=void 0!==G){var A=xb(G),F=[G[2],G[3]],Q=[G[2],G[1]],G=sb(G);Hf(a.coordinateToPixelTransform,A);Hf(a.coordinateToPixelTransform,F);Hf(a.coordinateToPixelTransform,Q);Hf(a.coordinateToPixelTransform,G);var N=D||0,O=t||0;r.save();var S=r.canvas.width/2,X=r.canvas.height/2;nh(r,-k,S,X);r.beginPath();r.moveTo(x*(A[0]*e+N),x*(A[1]*e+O));r.lineTo(x*(F[0]*e+\r\nN),x*(F[1]*e+O));r.lineTo(x*(Q[0]*e+N),x*(Q[1]*e+O));r.lineTo(x*(G[0]*e+N),x*(G[1]*e+O));r.clip();nh(r,k,S,X)}A=0;for(F=E.length;A<F;++A){var Q=E[A],G=Q.V,X=Qc(w,G,this.j),S=G[0],P=sb(Qc(w,Yc(w,g,S,this.s))),G=Math.round(qb(X)*f),N=Math.round(rb(X)*f),O=Math.round((X[0]-P[0])*f/G)*G+m+Math.round((P[0]-g[0])*f),X=Math.round((P[1]-X[3])*f/N)*N+l+Math.round((g[1]-P[1])*f);if(!H){P=[O,X,O+G,X+N];r.save();for(var Ba=0,Nb=v.length;Ba<Nb;++Ba){var Ca=v[Ba];wb(P,Ca)&&(r.beginPath(),r.moveTo(P[0],P[1]),r.lineTo(P[0],\r\nP[3]),r.lineTo(P[2],P[3]),r.lineTo(P[2],P[1]),r.moveTo(Ca[0],Ca[1]),r.lineTo(Ca[2],Ca[1]),r.lineTo(Ca[2],Ca[3]),r.lineTo(Ca[0],Ca[3]),r.closePath(),r.clip())}v.push(P)}S=Ni(q,S,e,h);r.drawImage(Q.Z(),u,u,S[0],S[1],O,X,G,N);H||r.restore()}b&&r.restore();p&&(e=D-m/x+m,h=t-l/x+l,g=Lf(this.h,z/2-e,z/2-h,f,-f,-k,-g[0]+e/f,-g[1]-h/f),ci(this,\"render\",r,a,g));(k||p)&&c.drawImage(r.canvas,-Math.round(D),-Math.round(t),z/x,z/x);r.globalAlpha=C;ci(this,\"postcompose\",c,a,d)};\r\nMi.prototype.i=function(a,b){function c(a){a=a.T();return 2==a||4==a||3==a&&!u}var d=a.pixelRatio,e=a.viewState,f=e.projection,g=this.a,h=g.da(),k=h.sa(f),l=Xc(k,e.resolution,0),m=k.O(l),p=e.center;m==e.resolution?(p=Yh(p,m,a.size),e=ub(p,m,e.rotation,a.size)):e=a.extent;void 0!==b.extent&&(e=vb(e,b.extent));if(pb(e))return!1;m=Tc(k,e,m);p={};p[l]={};var q=this.l(h,f,p),u=jh(g),w=db(),r=new Gc(0,0,0,0),x,D,t,z;for(t=m.H;t<=m.I;++t)for(z=m.J;z<=m.L;++z)x=$h(h,l,t,z,d,f),!c(x)&&x.b&&(x=x.b),c(x)?p[l][x.V.toString()]=\r\nx:(D=Pc(k,x.V,q,r,w),D||(x=Sc(k,x.V,r,w))&&q(l+1,x));q=Object.keys(p).map(Number);q.sort(Ma);var w=[],C,r=0;for(t=q.length;r<t;++r)for(C in x=q[r],z=p[x],z)x=z[C],2==x.T()&&w.push(x);this.c=w;Xh(a.usedTiles,h,l,m);Zh(a,h,k,d,f,e,l,g.get(\"preload\"));Uh(a,h);Wh(a,h);return!0};function Oi(a){ai.call(this,a);this.c=!1;this.B=-1;this.u=NaN;this.j=db();this.f=this.s=null;this.h=Md()}B(Oi,ai);\r\nOi.prototype.g=function(a,b,c){var d=a.extent,e=a.pixelRatio,f=b.hb?a.skippedFeatureUids:{},g=a.viewState,h=g.projection,g=g.rotation,k=h.G(),l=this.a.da(),m=di(this,a,0);ci(this,\"precompose\",c,a,m);var p=b.extent,q=void 0!==p;q&&bi(c,a,p);if((p=this.f)&&!p.c()){var u=0,w=0,r;if(Ha(this.a,\"render\")){r=c.canvas.width;var x=c.canvas.height;if(g){var D=Math.round(Math.sqrt(r*r+x*x)),u=(D-r)/2,w=(D-x)/2;r=x=D}this.h.canvas.width=r;this.h.canvas.height=x;r=this.h}else r=c;x=r.globalAlpha;r.globalAlpha=\r\nb.opacity;r!=c&&r.translate(u,w);b=a.size[0]*e;D=a.size[1]*e;nh(r,-g,b/2,D/2);p.f(r,e,m,g,f);if(l.i&&h.b&&!hb(k,d)){for(var h=d[0],l=qb(k),t=0;h<k[0];)--t,m=l*t,m=di(this,a,m),p.f(r,e,m,g,f),h+=l;t=0;for(h=d[2];h>k[2];)++t,m=l*t,m=di(this,a,m),p.f(r,e,m,g,f),h-=l;m=di(this,a,0)}nh(r,g,b/2,D/2);r!=c&&(ci(this,\"render\",r,a,m),c.drawImage(r.canvas,-u,-w),r.translate(-u,-w));r.globalAlpha=x}q&&c.restore();ci(this,\"postcompose\",c,a,m)};\r\nOi.prototype.fa=function(a,b,c,d){if(this.f){var e=this.a,f={};return this.f.fa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=J(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};Oi.prototype.D=function(){Th(this)};\r\nOi.prototype.i=function(a){function b(a){var b,d=a.f;d?b=d.call(a,l):(d=c.g)&&(b=d(a,l));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=Bi(q,a,b[e],Ai(l,m),this.D,this)||d;else d=Bi(q,a,b,Ai(l,m),this.D,this)||d;a=d}else a=!1;this.c=this.c||a}}var c=this.a,d=c.da();Vh(a.attributions,d.h);Wh(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.i,h=c.j;if(!this.c&&!g&&e||!h&&f)return!0;var k=a.extent,h=a.viewState,e=h.projection,l=h.resolution,m=a.pixelRatio,f=c.b,p=c.a,g=c.get(\"renderOrder\");\r\nvoid 0===g&&(g=zi);k=fb(k,p*l);p=h.projection.G();d.i&&h.projection.b&&!hb(p,a.extent)&&(a=Math.max(qb(k)/2,qb(p)),k[0]=p[0]-a,k[2]=p[2]+a);if(!this.c&&this.u==l&&this.B==f&&this.s==g&&hb(this.j,k))return!0;this.f=null;this.c=!1;var q=new vi(.5*l/m,k,l,d.u,c.a);Pi(d,k,l,e);if(g){var u=[];Qi(d,k,function(a){u.push(a)},this);u.sort(g);u.forEach(b,this)}else Qi(d,k,b,this);wi(q);this.u=l;this.B=f;this.s=g;this.j=k;this.f=q;return!0};function Ri(a,b){Nf.call(this,0,b);this.f=Md();this.b=this.f.canvas;this.b.style.width=\"100%\";this.b.style.height=\"100%\";this.b.className=\"ol-unselectable\";a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0;this.h=Cf()}B(Ri,Nf);Ri.prototype.Mb=function(a){return a instanceof W?new Mi(a):a instanceof Y?new Oi(a):null};\r\nfunction Si(a,b,c){var d=a.g,e=a.f;if(Ha(d,b)){var f=c.extent,g=c.pixelRatio,h=c.viewState.rotation,k=c.viewState,l=c.pixelRatio/k.resolution;a=Lf(a.h,a.b.width/2,a.b.height/2,l,-l,-k.rotation,-k.center[0],-k.center[1]);U(d,new uf(b,new Gh(e,g,f,a,h),c,e,null))}}Ri.prototype.$=function(){return\"canvas\"};\r\nRi.prototype.vb=function(a){if(a){var b=this.f,c=a.pixelRatio,d=Math.round(a.size[0]*c),c=Math.round(a.size[1]*c);this.b.width!=d||this.b.height!=c?(this.b.width=d,this.b.height=c):b.clearRect(0,0,d,c);var e=a.viewState.rotation;Of(a);Si(this,\"precompose\",a);var f=a.layerStatesArray;Sa(f);nh(b,e,d/2,c/2);var g=a.viewState.resolution,h,k,l,m;h=0;for(k=f.length;h<k;++h)m=f[h],l=m.layer,l=Qf(this,l),yf(m,g)&&\"ready\"==m.ac&&l.i(a,m)&&l.g(a,m,b);nh(b,-e,d/2,c/2);Si(this,\"postcompose\",a);this.a||(this.b.style.display=\r\n\"\",this.a=!0);Rf(this,a);a.postRenderFunctions.push(Pf)}else this.a&&(this.b.style.display=\"none\",this.a=!1)};function Ti(a,b){Rh.call(this,a);this.target=b}B(Ti,Rh);Ti.prototype.Jb=I;Ti.prototype.Gc=I;function Ui(a){var b=document.createElement(\"DIV\");b.style.position=\"absolute\";Ti.call(this,a,b);this.f=!0;this.h=1;this.g=0;this.c={}}B(Ui,Ti);Ui.prototype.Jb=function(){for(var a=this.target;a.lastChild;)a.removeChild(a.lastChild);this.g=0};\r\nUi.prototype.Hc=function(a,b){if(!b.visible)return this.f&&(this.target.style.display=\"none\",this.f=!1),!0;var c=a.pixelRatio,d=a.viewState,e=d.projection,f=this.a,g=f.da(),h=g.sa(e),k=c*g.nb(e),l=Xc(h,d.resolution),m=h.O(l),p=d.center,q;m==d.resolution?(p=Yh(p,m,a.size),q=ub(p,m,d.rotation,a.size)):q=a.extent;void 0!==b.extent&&(q=vb(q,b.extent));var m=Tc(h,q,m),u={};u[l]={};var w=this.l(g,e,u),r=jh(f),x=db(),D=new Gc(0,0,0,0),t,z,C,E;for(C=m.H;C<=m.I;++C)for(E=m.J;E<=m.L;++E)t=$h(g,l,C,E,c,e),z=\r\nt.T(),z=2==z||4==z||3==z&&!r,!z&&t.b&&(t=t.b),z=t.T(),2==z?u[l][t.V.toString()]=t:4==z||3==z&&!r||(z=Pc(h,t.V,w,D,x),z||(t=Sc(h,t.V,D,x))&&w(l+1,t));var v;if(this.g!=g.b){for(v in this.c)r=this.c[+v],Sd(r.target);this.c={};this.g=g.b}x=Object.keys(u).map(Number);x.sort(Ma);var w={},H;C=0;for(E=x.length;C<E;++C){v=x[C];v in this.c?r=this.c[v]:(r=Yc(h,p,v),r=new Vi(h,r),w[v]=!0,this.c[v]=r);v=u[v];for(H in v){t=r;z=v[H];var G=k,A=z.V,F=A[0],Q=A[1],N=A[2],A=A.toString();if(!(A in t.a)){var F=Lc(Wc(t.g,\r\nF),t.i),O=z.Z(t),S=O.style;S.maxWidth=\"none\";var X,P;0<G?(X=document.createElement(\"DIV\"),P=X.style,P.overflow=\"hidden\",P.width=F[0]+\"px\",P.height=F[1]+\"px\",S.position=\"absolute\",S.left=-G+\"px\",S.top=-G+\"px\",S.width=F[0]+2*G+\"px\",S.height=F[1]+2*G+\"px\",X.appendChild(O)):(S.width=F[0]+\"px\",S.height=F[1]+\"px\",X=O,P=S);P.position=\"absolute\";P.left=(Q-t.c[1])*F[0]+\"px\";P.top=(t.c[2]-N)*F[1]+\"px\";t.b||(t.b=document.createDocumentFragment());t.b.appendChild(X);t.a[A]=z}}r.b&&(r.target.appendChild(r.b),\r\nr.b=null)}k=Object.keys(this.c).map(Number);k.sort(Ma);C=Cf();H=0;for(x=k.length;H<x;++H)if(v=k[H],r=this.c[v],v in u)if(t=r.O(),E=r.pa(),Lf(C,a.size[0]/2,a.size[1]/2,t/d.resolution,t/d.resolution,d.rotation,(E[0]-p[0])/t,(p[1]-E[1])/t),r.setTransform(C),v in w){for(--v;0<=v;--v)if(v in this.c){this.c[v].target.parentNode&&this.c[v].target.parentNode.insertBefore(r.target,this.c[v].target.nextSibling);break}0>v&&this.target.insertBefore(r.target,this.target.childNodes[0]||null)}else{if(!a.viewHints[0]&&\r\n!a.viewHints[1]){z=Rc(r.g,q,r.c[0],D);v=[];t=void 0;for(t in r.a)E=r.a[t],G=E.V,Hc(z,G[1],G[2])||v.push(E);z=0;for(G=v.length;z<G;++z)E=v[z],t=E.V.toString(),Sd(E.Z(r)),delete r.a[t]}}else Sd(r.target),delete this.c[v];b.opacity!=this.h&&(this.h=this.target.style.opacity=b.opacity);b.visible&&!this.f&&(this.target.style.display=\"\",this.f=!0);Xh(a.usedTiles,g,l,m);Zh(a,g,h,c,e,q,l,f.get(\"preload\"));Uh(a,g);Wh(a,g);return!0};\r\nfunction Vi(a,b){this.target=document.createElement(\"DIV\");this.target.style.position=\"absolute\";this.target.style.width=\"100%\";this.target.style.height=\"100%\";this.g=a;this.c=b;this.h=xb(Qc(a,b));this.l=a.O(b[0]);this.a={};this.b=null;this.f=Cf();this.i=[0,0]}Vi.prototype.pa=function(){return this.h};Vi.prototype.O=function(){return this.l};Vi.prototype.setTransform=function(a){Ra(a,this.f)||(Qd(this.target,a),Gf(this.f,a))};function Wi(a){this.g=Md();var b=this.g.canvas;b.style.maxWidth=\"none\";b.style.position=\"absolute\";Ti.call(this,a,b);this.c=!1;this.h=-1;this.s=NaN;this.i=db();this.f=this.j=null;this.B=Cf();this.u=Cf()}B(Wi,Ti);n=Wi.prototype;n.Jb=function(){var a=this.g.canvas;a.width=a.width;this.h=0};\r\nn.Gc=function(a,b){var c=a.viewState,d=c.center,e=c.rotation,f=c.resolution,c=a.pixelRatio,g=a.size[0],h=a.size[1],k=g*c,l=h*c,d=Lf(this.B,c*g/2,c*h/2,c/f,-c/f,-e,-d[0],-d[1]),f=this.g;f.canvas.width=k;f.canvas.height=l;var m=Df(this.u);Jf(m,1/c,1/c);Kf(m,-(k-g)/2*c,-(l-h)/2*c);Qd(f.canvas,m);Xi(this,\"precompose\",a,d);(g=this.f)&&!g.c()&&(f.globalAlpha=b.opacity,g.f(f,c,d,e,b.hb?a.skippedFeatureUids:{}),Xi(this,\"render\",a,d));Xi(this,\"postcompose\",a,d)};\r\nfunction Xi(a,b,c,d){var e=a.g;a=a.a;Ha(a,b)&&U(a,new uf(b,new Gh(e,c.pixelRatio,c.extent,d,c.viewState.rotation),c,e,null))}n.fa=function(a,b,c,d){if(this.f){var e=this.a,f={};return this.f.fa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=J(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};n.Ic=function(){Th(this)};\r\nn.Hc=function(a){function b(a){var b,d=a.f;d?b=d.call(a,k):(d=c.g)&&(b=d(a,k));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=Bi(m,a,b[e],Ai(k,l),this.Ic,this)||d;else d=Bi(m,a,b,Ai(k,l),this.Ic,this)||d;a=d}else a=!1;this.c=this.c||a}}var c=this.a,d=c.da();Vh(a.attributions,d.h);Wh(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.i,h=c.j;if(!this.c&&!g&&e||!h&&f)return!0;var f=a.extent,g=a.viewState,e=g.projection,k=g.resolution,l=a.pixelRatio;a=c.b;h=c.a;g=c.get(\"renderOrder\");\r\nvoid 0===g&&(g=zi);f=fb(f,h*k);if(!this.c&&this.s==k&&this.h==a&&this.j==g&&hb(this.i,f))return!0;this.f=null;this.c=!1;var m=new vi(.5*k/l,f,k,d.u,c.a);Pi(d,f,k,e);if(g){var p=[];Qi(d,f,function(a){p.push(a)},this);p.sort(g);p.forEach(b,this)}else Qi(d,f,b,this);wi(m);this.s=k;this.h=a;this.j=g;this.i=f;this.f=m;return!0};function Yi(a,b){Nf.call(this,0,b);this.f=Md();var c=this.f.canvas;c.style.position=\"absolute\";c.style.width=\"100%\";c.style.height=\"100%\";c.className=\"ol-unselectable\";a.insertBefore(c,a.childNodes[0]||null);this.h=Cf();this.b=document.createElement(\"DIV\");this.b.className=\"ol-unselectable\";c=this.b.style;c.position=\"absolute\";c.width=\"100%\";c.height=\"100%\";R(this.b,\"touchstart\",Fa);a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0}B(Yi,Nf);Yi.prototype.R=function(){Sd(this.b);Nf.prototype.R.call(this)};\r\nYi.prototype.Mb=function(a){if(a instanceof W)a=new Ui(a);else if(a instanceof Y)a=new Wi(a);else return null;return a};function Zi(a,b,c){var d=a.g;if(Ha(d,b)){var e=c.extent,f=c.pixelRatio,g=c.viewState,h=g.rotation,k=a.f,l=k.canvas;a=Lf(a.h,l.width/2,l.height/2,f/g.resolution,-f/g.resolution,-h,-g.center[0],-g.center[1]);U(d,new uf(b,new Gh(k,f,e,a,h),c,k,null))}}Yi.prototype.$=function(){return\"dom\"};\r\nYi.prototype.vb=function(a){if(a){var b=this.g;if(Ha(b,\"precompose\")||Ha(b,\"postcompose\")){var b=this.f.canvas,c=a.pixelRatio;b.width=a.size[0]*c;b.height=a.size[1]*c}Zi(this,\"precompose\",a);b=a.layerStatesArray;Sa(b);var c=a.viewState.resolution,d,e,f,g;d=0;for(e=b.length;d<e;++d)g=b[d],f=g.layer,f=Qf(this,f),this.b.insertBefore(f.target,this.b.childNodes[d]||null),yf(g,c)&&\"ready\"==g.ac?f.Hc(a,g)&&f.Gc(a,g):f.Jb();var b=a.layerStates,h;for(h in this.c)h in b||(f=this.c[h],Sd(f.target));this.a||\r\n(this.b.style.display=\"\",this.a=!0);Of(a);Rf(this,a);a.postRenderFunctions.push(Pf);Zi(this,\"postcompose\",a)}else this.a&&(this.b.style.display=\"none\",this.a=!1)};function $i(a){this.b=a};function aj(a){this.b=a}B(aj,$i);aj.prototype.$=function(){return 35632};function bj(a){this.b=a}B(bj,$i);bj.prototype.$=function(){return 35633};function cj(){this.b=\"precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}\"}B(cj,aj);var dj=new cj;\r\nfunction ej(){this.b=\"varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.,0.);gl_Position=h*vec4(c,0.,1.)+offsets;a=d;b=f;}\"}B(ej,bj);var fj=new ej;\r\nfunction gj(a,b){this.i=a.getUniformLocation(b,\"j\");this.j=a.getUniformLocation(b,\"i\");this.h=a.getUniformLocation(b,\"k\");this.l=a.getUniformLocation(b,\"h\");this.b=a.getAttribLocation(b,\"e\");this.a=a.getAttribLocation(b,\"f\");this.f=a.getAttribLocation(b,\"c\");this.c=a.getAttribLocation(b,\"g\");this.g=a.getAttribLocation(b,\"d\")};function hj(a){this.b=void 0!==a?a:[];this.a=ij}var ij=35044;function jj(a,b){this.C=a;this.b=b;this.a={};this.g={};this.f={};this.i=this.j=this.h=this.l=null;(this.c=0<=fa.indexOf(\"OES_element_index_uint\"))&&b.getExtension(\"OES_element_index_uint\");R(this.C,\"webglcontextlost\",this.K,this);R(this.C,\"webglcontextrestored\",this.s,this)}B(jj,Aa);\r\nfunction kj(a,b,c){var d=a.b,e=c.b,f=String(J(c));if(f in a.a)d.bindBuffer(b,a.a[f].buffer);else{var g=d.createBuffer();d.bindBuffer(b,g);var h;34962==b?h=new Float32Array(e):34963==b&&(h=a.c?new Uint32Array(e):new Uint16Array(e));d.bufferData(b,h,c.a);a.a[f]={Qe:c,buffer:g}}}function lj(a,b){var c=a.b,d=String(J(b)),e=a.a[d];c.isContextLost()||c.deleteBuffer(e.buffer);delete a.a[d]}\r\njj.prototype.R=function(){za(this.C);var a=this.b;if(!a.isContextLost()){for(var b in this.a)a.deleteBuffer(this.a[b].buffer);for(b in this.f)a.deleteProgram(this.f[b]);for(b in this.g)a.deleteShader(this.g[b]);a.deleteFramebuffer(this.h);a.deleteRenderbuffer(this.i);a.deleteTexture(this.j)}};\r\nfunction mj(a){if(!a.h){var b=a.b,c=b.createFramebuffer();b.bindFramebuffer(b.FRAMEBUFFER,c);var d=nj(b,1,1),e=b.createRenderbuffer();b.bindRenderbuffer(b.RENDERBUFFER,e);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,1,1);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,d,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,e);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null);a.h=c;\r\na.j=d;a.i=e}return a.h}function oj(a,b){var c=String(J(b));if(c in a.g)return a.g[c];var d=a.b,e=d.createShader(b.$());d.shaderSource(e,b.b);d.compileShader(e);return a.g[c]=e}function pj(a,b,c){var d=J(b)+\"/\"+J(c);if(d in a.f)return a.f[d];var e=a.b,f=e.createProgram();e.attachShader(f,oj(a,b));e.attachShader(f,oj(a,c));e.linkProgram(f);return a.f[d]=f}jj.prototype.K=function(){qa(this.a);qa(this.g);qa(this.f);this.i=this.j=this.h=this.l=null};jj.prototype.s=function(){};\r\nfunction qj(a,b){if(b==a.l)return!1;a.b.useProgram(b);a.l=b;return!0}function rj(a,b,c){var d=a.createTexture();a.bindTexture(a.TEXTURE_2D,d);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);void 0!==b&&a.texParameteri(3553,10242,b);void 0!==c&&a.texParameteri(3553,10243,c);return d}function nj(a,b,c){var d=rj(a,void 0,void 0);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,c,0,a.RGBA,a.UNSIGNED_BYTE,null);return d};function sj(a,b){this.B=this.u=void 0;this.C=tb(b);this.v=[];this.l=[];this.M=void 0;this.h=[];this.g=[];this.ca=this.Y=void 0;this.a=[];this.D=this.j=null;this.N=void 0;this.Ea=Cf();this.va=Cf();this.ha=this.P=void 0;this.wa=Cf();this.ra=Jd();this.ba=this.aa=this.W=void 0;this.na=[];this.i=[];this.b=[];this.s=null;this.c=[];this.K=[];this.ma=void 0}B(sj,Fh);\r\nfunction tj(a,b){var c=a.s,d=a.j,e=a.na,f=a.i,g=b.b;return function(){if(!g.isContextLost()){var a,k;a=0;for(k=e.length;a<k;++a)g.deleteTexture(e[a]);a=0;for(k=f.length;a<k;++a)g.deleteTexture(f[a])}lj(b,c);lj(b,d)}}\r\nfunction uj(a,b,c,d){var e=a.u,f=a.B,g=a.M,h=a.Y,k=a.ca,l=a.N,m=a.P,p=a.ha,q=a.W?1:0,u=a.aa,w=a.ba,r=a.ma,x=Math.cos(u),u=Math.sin(u),D=a.a.length,t=a.b.length,z,C,E,v,H,G;for(z=0;z<c;z+=d)H=b[z]-a.C[0],G=b[z+1]-a.C[1],C=t/8,E=-w*e,v=-w*(g-f),a.b[t++]=H,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=m/k,a.b[t++]=(p+g)/h,a.b[t++]=l,a.b[t++]=q,E=w*(r-e),v=-w*(g-f),a.b[t++]=H,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=(m+r)/k,a.b[t++]=(p+g)/h,a.b[t++]=l,a.b[t++]=q,E=w*(r-e),v=w*f,a.b[t++]=\r\nH,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=(m+r)/k,a.b[t++]=p/h,a.b[t++]=l,a.b[t++]=q,E=-w*e,v=w*f,a.b[t++]=H,a.b[t++]=G,a.b[t++]=E*x-v*u,a.b[t++]=E*u+v*x,a.b[t++]=m/k,a.b[t++]=p/h,a.b[t++]=l,a.b[t++]=q,a.a[D++]=C,a.a[D++]=C+1,a.a[D++]=C+2,a.a[D++]=C,a.a[D++]=C+2,a.a[D++]=C+3}sj.prototype.bb=function(a,b){this.c.push(this.a.length);this.K.push(b);var c=a.o;uj(this,c,c.length,a.A)};sj.prototype.cb=function(a,b){this.c.push(this.a.length);this.K.push(b);var c=a.o;uj(this,c,c.length,a.A)};\r\nfunction vj(a,b){var c=b.b;a.v.push(a.a.length);a.l.push(a.a.length);a.s=new hj(a.b);kj(b,34962,a.s);a.j=new hj(a.a);kj(b,34963,a.j);var d={};wj(a.na,a.h,d,c);wj(a.i,a.g,d,c);a.u=void 0;a.B=void 0;a.M=void 0;a.h=null;a.g=null;a.Y=void 0;a.ca=void 0;a.a=null;a.N=void 0;a.P=void 0;a.ha=void 0;a.W=void 0;a.aa=void 0;a.ba=void 0;a.b=null;a.ma=void 0}\r\nfunction wj(a,b,c,d){var e,f,g,h,k=b.length;for(h=0;h<k;++h){f=b[h];g=J(f).toString();if(g in c)e=c[g];else{e=d;var l=rj(e,33071,33071);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,f);e=l;c[g]=e}a[h]=e}}\r\nsj.prototype.f=function(a,b,c,d,e,f,g,h,k,l,m){f=a.b;kj(a,34962,this.s);kj(a,34963,this.j);var p=pj(a,dj,fj),q;this.D?q=this.D:this.D=q=new gj(f,p);qj(a,p);f.enableVertexAttribArray(q.f);f.vertexAttribPointer(q.f,2,5126,!1,32,0);f.enableVertexAttribArray(q.b);f.vertexAttribPointer(q.b,2,5126,!1,32,8);f.enableVertexAttribArray(q.g);f.vertexAttribPointer(q.g,2,5126,!1,32,16);f.enableVertexAttribArray(q.a);f.vertexAttribPointer(q.a,1,5126,!1,32,24);f.enableVertexAttribArray(q.c);f.vertexAttribPointer(q.c,\r\n1,5126,!1,32,28);p=Df(this.wa);Jf(p,2/(c*e[0]),2/(c*e[1]));If(p,-d);Kf(p,-(b[0]-this.C[0]),-(b[1]-this.C[1]));b=Df(this.va);Jf(b,2/e[0],2/e[1]);e=Df(this.Ea);0!==d&&If(e,-d);f.uniformMatrix4fv(q.l,!1,Kd(this.ra,p));f.uniformMatrix4fv(q.j,!1,Kd(this.ra,b));f.uniformMatrix4fv(q.i,!1,Kd(this.ra,e));f.uniform1f(q.h,g);var u;if(void 0===k)xj(this,f,a,h,this.na,this.v);else{if(l)a:{d=a.c?5125:5123;a=a.c?4:2;e=this.c.length-1;for(g=this.i.length-1;0<=g;--g)for(f.bindTexture(3553,this.i[g]),l=0<g?this.l[g-\r\n1]:0,b=this.l[g];0<=e&&this.c[e]>=l;){u=this.c[e];c=this.K[e];p=J(c).toString();if(void 0===h[p]&&c.S()&&(void 0===m||wb(m,c.S().G()))&&(f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),f.drawElements(4,b-u,d,u*a),b=k(c))){h=b;break a}b=u;e--}h=void 0}else f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),xj(this,f,a,h,this.i,this.l),h=(h=k(null))?h:void 0;u=h}f.disableVertexAttribArray(q.f);f.disableVertexAttribArray(q.b);f.disableVertexAttribArray(q.g);f.disableVertexAttribArray(q.a);f.disableVertexAttribArray(q.c);\r\nreturn u};function xj(a,b,c,d,e,f){var g=c.c?5125:5123;c=c.c?4:2;if(sa(d)){var h;a=0;d=e.length;for(h=0;a<d;++a){b.bindTexture(3553,e[a]);var k=f[a];b.drawElements(4,k-h,g,h*c);h=k}}else{h=0;var l,k=0;for(l=e.length;k<l;++k){b.bindTexture(3553,e[k]);for(var m=0<k?f[k-1]:0,p=f[k],q=m;h<a.c.length&&a.c[h]<=p;){var u=J(a.K[h]).toString();void 0!==d[u]?(q!==m&&b.drawElements(4,m-q,g,q*c),m=q=h===a.c.length-1?p:a.c[h+1]):m=h===a.c.length-1?p:a.c[h+1];h++}q!==m&&b.drawElements(4,m-q,g,q*c)}}}\r\nsj.prototype.Ma=function(a){var b=a.eb(),c=a.Z(1),d=a.Ob(),e=a.ub(1),f=a.C,g=a.pa(),h=a.K,k=a.s,l=a.Ka();a=a.v;var m;0===this.h.length?this.h.push(c):(m=this.h[this.h.length-1],J(m)!=J(c)&&(this.v.push(this.a.length),this.h.push(c)));0===this.g.length?this.g.push(e):(m=this.g[this.g.length-1],J(m)!=J(e)&&(this.l.push(this.a.length),this.g.push(e)));this.u=b[0];this.B=b[1];this.M=l[1];this.Y=d[1];this.ca=d[0];this.N=f;this.P=g[0];this.ha=g[1];this.aa=k;this.W=h;this.ba=a;this.ma=l[0]};\r\nfunction yj(a,b,c){this.h=b;this.l=a;this.g=c;this.a={}}B(yj,ei);function zj(a,b){var c=[],d;for(d in a.a)c.push(tj(a.a[d],b));return function(){for(var a=c.length,b,d=0;d<a;d++)b=c[d].apply(this,arguments);return b}}function Aj(a,b){for(var c in a.a)vj(a.a[c],b)}yj.prototype.b=function(a,b){var c=this.a[b];void 0===c&&(c=new Bj[b](this.l,this.h),this.a[b]=c);return c};yj.prototype.c=function(){return sa(this.a)};\r\nyj.prototype.f=function(a,b,c,d,e,f,g,h){var k,l,m;k=0;for(l=fi.length;k<l;++k)m=this.a[fi[k]],void 0!==m&&m.f(a,b,c,d,e,f,g,h,void 0,!1)};function Cj(a,b,c,d,e,f,g,h,k,l,m){var p=Dj,q,u;for(q=fi.length-1;0<=q;--q)if(u=a.a[fi[q]],void 0!==u&&(u=u.f(b,c,d,e,p,f,g,h,k,l,m)))return u}\r\nyj.prototype.fa=function(a,b,c,d,e,f,g,h,k,l){var m=b.b;m.bindFramebuffer(m.FRAMEBUFFER,mj(b));var p;void 0!==this.g&&(p=fb(kb(a),d*this.g));return Cj(this,b,a,d,e,g,h,k,function(a){var b=new Uint8Array(4);m.readPixels(0,0,1,1,m.RGBA,m.UNSIGNED_BYTE,b);if(0<b[3]&&(a=l(a)))return a},!0,p)};\r\nfunction Ej(a,b,c,d,e,f,g,h){var k=c.b;k.bindFramebuffer(k.FRAMEBUFFER,mj(c));return void 0!==Cj(a,c,b,d,e,f,g,h,function(){var a=new Uint8Array(4);k.readPixels(0,0,1,1,k.RGBA,k.UNSIGNED_BYTE,a);return 0<a[3]},!1)}var Bj={Image:sj},Dj=[1,1];function Fj(a,b,c,d,e,f,g){this.b=a;this.c=b;this.f=f;this.g=g;this.i=e;this.l=d;this.h=c;this.a=null}B(Fj,Fh);Fj.prototype.cb=function(a,b){var c=this.b,d=(new yj(1,this.f)).b(0,\"Image\");d.Ma(this.a);d.cb(a,b);vj(d,c);d.f(this.b,this.c,this.h,this.l,this.i,this.g,1,{},void 0,!1);tj(d,c)()};Fj.prototype.bb=function(a,b){var c=this.b,d=(new yj(1,this.f)).b(0,\"Image\");d.Ma(this.a);d.bb(a,b);vj(d,c);d.f(this.b,this.c,this.h,this.l,this.i,this.g,1,{},void 0,!1);tj(d,c)()};\r\nFj.prototype.Ma=function(a){this.a=a};function Gj(){this.b=\"precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}\"}B(Gj,aj);var Hj=new Gj;function Ij(){this.b=\"varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}\"}B(Ij,bj);var Jj=new Ij;\r\nfunction Kj(a,b){this.c=a.getUniformLocation(b,\"f\");this.f=a.getUniformLocation(b,\"e\");this.h=a.getUniformLocation(b,\"d\");this.g=a.getUniformLocation(b,\"g\");this.b=a.getAttribLocation(b,\"b\");this.a=a.getAttribLocation(b,\"c\")};function Lj(a,b){Rh.call(this,b);this.f=a;this.W=new hj([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]);this.i=this.Da=null;this.j=void 0;this.P=Cf();this.aa=Cf();this.B=Jd();this.s=null}B(Lj,Rh);\r\nfunction Mj(a,b,c){var d=a.f.f;if(void 0===a.j||a.j!=c){b.postRenderFunctions.push(function(a,b,c){a.isContextLost()||(a.deleteFramebuffer(b),a.deleteTexture(c))}.bind(null,d,a.i,a.Da));b=nj(d,c,c);var e=d.createFramebuffer();d.bindFramebuffer(36160,e);d.framebufferTexture2D(36160,36064,3553,b,0);a.Da=b;a.i=e;a.j=c}else d.bindFramebuffer(36160,a.i)}\r\nLj.prototype.Jc=function(a,b,c){Nj(this,\"precompose\",c,a);kj(c,34962,this.W);var d=c.b,e=pj(c,Hj,Jj),f;this.s?f=this.s:this.s=f=new Kj(d,e);qj(c,e)&&(d.enableVertexAttribArray(f.b),d.vertexAttribPointer(f.b,2,5126,!1,16,0),d.enableVertexAttribArray(f.a),d.vertexAttribPointer(f.a,2,5126,!1,16,8),d.uniform1i(f.g,0));d.uniformMatrix4fv(f.h,!1,Kd(this.B,this.P));d.uniformMatrix4fv(f.f,!1,Kd(this.B,this.aa));d.uniform1f(f.c,b.opacity);d.bindTexture(3553,this.Da);d.drawArrays(5,0,4);Nj(this,\"postcompose\",\r\nc,a)};function Nj(a,b,c,d){a=a.a;if(Ha(a,b)){var e=d.viewState;U(a,new uf(b,new Fj(c,e.center,e.resolution,e.rotation,d.size,d.extent,d.pixelRatio),d,null,c))}}Lj.prototype.v=function(){this.i=this.Da=null;this.j=void 0};function Oj(){this.b=\"precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}\"}B(Oj,aj);var Pj=new Oj;function Qj(){this.b=\"varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}\"}B(Qj,bj);var Rj=new Qj;function Sj(a,b){this.c=a.getUniformLocation(b,\"e\");this.f=a.getUniformLocation(b,\"d\");this.b=a.getAttribLocation(b,\"b\");this.a=a.getAttribLocation(b,\"c\")};function Tj(a,b){Lj.call(this,a,b);this.M=Pj;this.ba=Rj;this.c=null;this.D=new hj([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]);this.u=this.g=null;this.h=-1;this.N=[0,0]}B(Tj,Lj);Tj.prototype.R=function(){lj(this.f.getContext(),this.D);Lj.prototype.R.call(this)};Tj.prototype.l=function(a,b,c){var d=this.f;return function(e,f){return Sh(a,b,e,f,function(a){var b=Uj(d.a,a.getKey());b&&(c[e]||(c[e]={}),c[e][a.V.toString()]=a);return b})}};Tj.prototype.v=function(){Lj.prototype.v.call(this);this.c=null};\r\nTj.prototype.Kc=function(a,b,c){var d=this.f,e=c.b,f=a.viewState,g=f.projection,h=this.a,k=h.da(),l=k.sa(g),m=Xc(l,f.resolution),p=l.O(m),q=Ni(k,m,a.pixelRatio,g),u=q[0]/Lc(Wc(l,m),this.N)[0],w=p/u,r=a.pixelRatio*k.nb(g),x=f.center,D;p==f.resolution?(x=Yh(x,p,a.size),D=ub(x,p,f.rotation,a.size)):D=a.extent;p=Tc(l,D,p);if(this.g&&Ic(this.g,p)&&this.h==k.b)w=this.u;else{var t=[p.I-p.H+1,p.L-p.J+1],z=ka(Math.max(t[0]*q[0],t[1]*q[1])),t=w*z,C=l.pa(m),E=C[0]+p.H*q[0]*w,w=C[1]+p.J*q[1]*w,w=[E,w,E+t,w+t];\r\nMj(this,a,z);e.viewport(0,0,z,z);e.clearColor(0,0,0,0);e.clear(16384);e.disable(3042);z=pj(c,this.M,this.ba);qj(c,z);this.c||(this.c=new Sj(e,z));kj(c,34962,this.D);e.enableVertexAttribArray(this.c.b);e.vertexAttribPointer(this.c.b,2,5126,!1,16,0);e.enableVertexAttribArray(this.c.a);e.vertexAttribPointer(this.c.a,2,5126,!1,16,8);e.uniform1i(this.c.c,0);c={};c[m]={};var v=this.l(k,g,c),H=jh(h),z=!0,E=db(),G=new Gc(0,0,0,0),A,F,Q;for(F=p.H;F<=p.I;++F)for(Q=p.J;Q<=p.L;++Q){C=$h(k,m,F,Q,u,g);if(void 0!==\r\nb.extent&&(A=Qc(l,C.V,E),!wb(A,b.extent)))continue;A=C.T();A=2==A||4==A||3==A&&!H;!A&&C.b&&(C=C.b);A=C.T();if(2==A){if(Uj(d.a,C.getKey())){c[m][C.V.toString()]=C;continue}}else if(4==A||3==A&&!H)continue;z=!1;A=Pc(l,C.V,v,G,E);A||(C=Sc(l,C.V,G,E))&&v(m+1,C)}b=Object.keys(c).map(Number);b.sort(Ma);for(var v=new Float32Array(4),N,H=0,G=b.length;H<G;++H)for(N in F=c[b[H]],F)C=F[N],A=Qc(l,C.V,E),v[0]=2*(A[2]-A[0])/t,v[1]=2*(A[3]-A[1])/t,v[2]=2*(A[0]-w[0])/t-1,v[3]=2*(A[1]-w[1])/t-1,e.uniform4fv(this.c.f,\r\nv),Vj(d,C,q,r*u),e.drawArrays(5,0,4);z?(this.g=p,this.u=w,this.h=k.b):(this.u=this.g=null,this.h=-1,a.animate=!0)}Xh(a.usedTiles,k,m,p);var O=d.l;Zh(a,k,l,u,g,D,m,h.get(\"preload\"),function(a){var b;(b=2!=a.T()||Uj(d.a,a.getKey()))||(b=a.getKey()in O.a);b||O.g([a,Vc(l,a.V),l.O(a.V[0]),q,r*u])},this);Uh(a,k);Wh(a,k);e=this.P;Df(e);Kf(e,(x[0]-w[0])/(w[2]-w[0]),(x[1]-w[1])/(w[3]-w[1]));0!==f.rotation&&If(e,f.rotation);Jf(e,a.size[0]*f.resolution/(w[2]-w[0]),a.size[1]*f.resolution/(w[3]-w[1]));Kf(e,-.5,\r\n-.5);return!0};function Wj(a,b){Lj.call(this,a,b);this.h=!1;this.N=-1;this.M=NaN;this.u=db();this.g=this.c=this.D=null}B(Wj,Lj);n=Wj.prototype;n.Jc=function(a,b,c){this.g=b;var d=a.viewState,e=this.c;e&&!e.c()&&e.f(c,d.center,d.resolution,d.rotation,a.size,a.pixelRatio,b.opacity,b.hb?a.skippedFeatureUids:{})};n.R=function(){var a=this.c;if(a){var b=this.f.getContext();zj(a,b)();this.c=null}Lj.prototype.R.call(this)};\r\nn.fa=function(a,b,c,d){if(this.c&&this.g){var e=this.f.getContext(),f=b.viewState,g=this.a,h={};return this.c.fa(a,e,f.center,f.resolution,f.rotation,b.size,b.pixelRatio,this.g.opacity,{},function(a){var b=J(a).toString();if(!(b in h))return h[b]=!0,c.call(d,a,g)})}};n.Ec=function(a,b){if(this.c&&this.g){var c=this.f.getContext(),d=b.viewState;return Ej(this.c,a,c,d.resolution,d.rotation,b.pixelRatio,this.g.opacity,b.skippedFeatureUids)}return!1};n.Lc=function(){Th(this)};\r\nn.Kc=function(a,b,c){function d(a){var b,c=a.f;c?b=c.call(a,l):(c=e.g)&&(b=c(a,l));if(b){if(b){c=!1;if(Array.isArray(b))for(var d=0,f=b.length;d<f;++d)c=Bi(q,a,b[d],Ai(l,m),this.Lc,this)||c;else c=Bi(q,a,b,Ai(l,m),this.Lc,this)||c;a=c}else a=!1;this.h=this.h||a}}var e=this.a;b=e.da();Vh(a.attributions,b.h);Wh(a,b);var f=a.viewHints[0],g=a.viewHints[1],h=e.i,k=e.j;if(!this.h&&!h&&f||!k&&g)return!0;var g=a.extent,h=a.viewState,f=h.projection,l=h.resolution,m=a.pixelRatio,h=e.b,p=e.a,k=e.get(\"renderOrder\");\r\nvoid 0===k&&(k=zi);g=fb(g,p*l);if(!this.h&&this.M==l&&this.N==h&&this.D==k&&hb(this.u,g))return!0;this.c&&a.postRenderFunctions.push(zj(this.c,c));this.h=!1;var q=new yj(.5*l/m,g,e.a);Pi(b,g,l,f);if(k){var u=[];Qi(b,g,function(a){u.push(a)},this);u.sort(k);u.forEach(d,this)}else Qi(b,g,d,this);Aj(q,c);this.M=l;this.N=h;this.D=k;this.u=g;this.c=q;return!0};function Xj(){this.f=0;this.c={};this.a=this.b=null}Xj.prototype.clear=function(){this.f=0;this.c={};this.a=this.b=null};function Uj(a,b){return a.c.hasOwnProperty(b)}function Yj(a,b){for(var c=a.b;c;)b.call(void 0,c.Na,c.Ia,a),c=c.ta}Xj.prototype.get=function(a){a=this.c[a];L(void 0!==a,15);if(a===this.a)return a.Na;a===this.b?(this.b=this.b.ta,this.b.Ua=null):(a.ta.Ua=a.Ua,a.Ua.ta=a.ta);a.ta=null;a.Ua=this.a;this.a=this.a.ta=a;return a.Na};\r\nXj.prototype.pop=function(){var a=this.b;delete this.c[a.Ia];a.ta&&(a.ta.Ua=null);this.b=a.ta;this.b||(this.a=null);--this.f;return a.Na};function Zj(a,b,c){a.get(b);a.c[b].Na=c}Xj.prototype.set=function(a,b){L(!(a in this.c),16);var c={Ia:a,ta:null,Ua:this.a,Na:b};this.a?this.a.ta=c:this.b=c;this.a=c;this.c[a]=c;++this.f};function ak(a,b){Nf.call(this,0,b);this.b=document.createElement(\"CANVAS\");this.b.style.width=\"100%\";this.b.style.height=\"100%\";this.b.className=\"ol-unselectable\";a.insertBefore(this.b,a.childNodes[0]||null);this.s=this.v=0;this.u=Md();this.i=!0;this.f=ie(this.b,{antialias:!0,depth:!1,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0});this.C=new jj(this.b,this.f);R(this.b,\"webglcontextlost\",this.ge,this);R(this.b,\"webglcontextrestored\",this.he,this);this.a=new Xj;this.K=null;this.l=\r\nnew Uf(function(a){var b=a[1];a=a[2];var e=b[0]-this.K[0],b=b[1]-this.K[1];return 65536*Math.log(a)+Math.sqrt(e*e+b*b)/a}.bind(this),function(a){return a[0].getKey()});this.B=function(){if(0!==this.l.b.length){Yf(this.l);var a=Vf(this.l);Vj(this,a[0],a[3],a[4])}return!1}.bind(this);this.h=0;bk(this)}B(ak,Nf);\r\nfunction Vj(a,b,c,d){var e=a.f,f=b.getKey();if(Uj(a.a,f))a=a.a.get(f),e.bindTexture(3553,a.Da),9729!=a.yc&&(e.texParameteri(3553,10240,9729),a.yc=9729),9729!=a.zc&&(e.texParameteri(3553,10241,9729),a.zc=9729);else{var g=e.createTexture();e.bindTexture(3553,g);if(0<d){var h=a.u.canvas,k=a.u;a.v!==c[0]||a.s!==c[1]?(h.width=c[0],h.height=c[1],a.v=c[0],a.s=c[1]):k.clearRect(0,0,c[0],c[1]);k.drawImage(b.Z(),d,d,c[0],c[1],0,0,c[0],c[1]);e.texImage2D(3553,0,6408,6408,5121,h)}else e.texImage2D(3553,0,6408,\r\n6408,5121,b.Z());e.texParameteri(3553,10240,9729);e.texParameteri(3553,10241,9729);e.texParameteri(3553,10242,33071);e.texParameteri(3553,10243,33071);a.a.set(f,{Da:g,yc:9729,zc:9729})}}n=ak.prototype;n.Mb=function(a){return a instanceof W?new Tj(this,a):a instanceof Y?new Wj(this,a):null};function ck(a,b,c){var d=a.g;if(Ha(d,b)){a=a.C;var e=c.viewState;U(d,new uf(b,new Fj(a,e.center,e.resolution,e.rotation,c.size,c.extent,c.pixelRatio),c,null,a))}}\r\nn.R=function(){var a=this.f;a.isContextLost()||Yj(this.a,function(b){b&&a.deleteTexture(b.Da)});Da(this.C);Nf.prototype.R.call(this)};n.ld=function(a,b){for(var c=this.f,d;1024<this.a.f-this.h;){if(d=this.a.b.Na)c.deleteTexture(d.Da);else if(+this.a.b.Ia==b.index)break;else--this.h;this.a.pop()}};n.getContext=function(){return this.C};n.$=function(){return\"webgl\"};n.ge=function(a){a.preventDefault();this.a.clear();this.h=0;a=this.c;for(var b in a)a[b].v()};n.he=function(){bk(this);this.g.render()};\r\nfunction bk(a){a=a.f;a.activeTexture(33984);a.blendFuncSeparate(770,771,1,771);a.disable(2884);a.disable(2929);a.disable(3089);a.disable(2960)}\r\nn.vb=function(a){var b=this.getContext(),c=this.f;if(c.isContextLost())return!1;if(!a)return this.i&&(this.b.style.display=\"none\",this.i=!1),!1;this.K=a.focus;this.a.set((-a.index).toString(),null);++this.h;ck(this,\"precompose\",a);var d=[],e=a.layerStatesArray;Sa(e);var f=a.viewState.resolution,g,h,k,l;g=0;for(h=e.length;g<h;++g)l=e[g],yf(l,f)&&\"ready\"==l.ac&&(k=Qf(this,l.layer),k.Kc(a,l,b)&&d.push(l));e=a.size[0]*a.pixelRatio;f=a.size[1]*a.pixelRatio;if(this.b.width!=e||this.b.height!=f)this.b.width=\r\ne,this.b.height=f;c.bindFramebuffer(36160,null);c.clearColor(0,0,0,0);c.clear(16384);c.enable(3042);c.viewport(0,0,this.b.width,this.b.height);g=0;for(h=d.length;g<h;++g)l=d[g],k=Qf(this,l.layer),k.Jc(a,l,b);this.i||(this.b.style.display=\"\",this.i=!0);Of(a);1024<this.a.f-this.h&&a.postRenderFunctions.push(this.ld.bind(this));0!==this.l.b.length&&(a.postRenderFunctions.push(this.B),a.animate=!0);ck(this,\"postcompose\",a);Rf(this,a);a.postRenderFunctions.push(Pf)};\r\nn.fa=function(a,b,c,d,e,f){var g;if(this.f.isContextLost())return!1;var h=b.viewState,k=b.layerStatesArray,l;for(l=k.length-1;0<=l;--l){g=k[l];var m=g.layer;if(yf(g,h.resolution)&&e.call(f,m)&&(g=Qf(this,m).fa(a,b,c,d)))return g}};n.Fc=function(a,b,c,d){var e=!1;if(this.f.isContextLost())return!1;var f=b.viewState,g=b.layerStatesArray,h;for(h=g.length-1;0<=h;--h){var k=g[h],l=k.layer;if(yf(k,f.resolution)&&c.call(d,l)&&(e=Qf(this,l).Ec(a,b)))return!0}return e};var dk=[\"canvas\",\"webgl\",\"dom\"];\r\nfunction Z(a){V.call(this);var b=ek(a);this.kb=void 0!==a.loadTilesWhileAnimating?a.loadTilesWhileAnimating:!1;this.Ab=void 0!==a.loadTilesWhileInteracting?a.loadTilesWhileInteracting:!1;this.Cb=void 0!==a.pixelRatio?a.pixelRatio:oe;this.Bb=b.logos;this.aa=function(){this.g=void 0;this.ve.call(this,Date.now())}.bind(this);this.Fa=Cf();this.zb=Cf();this.Ga=0;this.c=null;this.va=db();this.u=this.P=null;this.a=document.createElement(\"DIV\");this.a.className=\"ol-viewport\"+(re?\" ol-touch\":\"\");this.a.style.position=\r\n\"relative\";this.a.style.overflow=\"hidden\";this.a.style.width=\"100%\";this.a.style.height=\"100%\";this.a.style.msTouchAction=\"none\";this.a.style.touchAction=\"none\";this.s=document.createElement(\"DIV\");this.s.className=\"ol-overlaycontainer\";this.a.appendChild(this.s);this.j=document.createElement(\"DIV\");this.j.className=\"ol-overlaycontainer-stopevent\";a=[\"click\",\"dblclick\",\"mousedown\",\"touchstart\",\"mspointerdown\",of,\"mousewheel\",\"wheel\"];for(var c=0,d=a.length;c<d;++c)R(this.j,a[c],Ea);this.a.appendChild(this.j);\r\nthis.ma=new ff(this);for(var e in rf)R(this.ma,rf[e],this.wc,this);this.ba=b.keyboardEventTarget;this.i=null;R(this.a,\"wheel\",this.Sa,this);R(this.a,\"mousewheel\",this.Sa,this);this.v=b.controls;this.h=b.interactions;this.B=b.overlays;this.Sc={};this.N=new b.xe(this.a,this);this.W=null;this.D=[];this.na=[];this.wa=new Zf(this.qd.bind(this),this.Jd.bind(this));this.Eb={};R(this,La(\"layergroup\"),this.vd,this);R(this,La(\"view\"),this.Kd,this);R(this,La(\"size\"),this.Gd,this);R(this,La(\"target\"),this.Id,\r\nthis);this.l(b.values);ed(this.v,function(a){a.setMap(this)},this);R(this.v,hd,function(a){a.element.setMap(this)},this);R(this.v,id,function(a){a.element.setMap(null)},this);ed(this.h,function(a){a.setMap(this)},this);R(this.h,hd,function(a){a.element.setMap(this)},this);R(this.h,id,function(a){a.element.setMap(null)},this);ed(this.B,this.ic,this);R(this.B,hd,function(a){this.ic(a.element)},this);R(this.B,id,function(a){var b=a.element.Pa();void 0!==b&&delete this.Sc[b.toString()];a.element.setMap(null)},\r\nthis)}B(Z,V);n=Z.prototype;n.cd=function(a){this.v.push(a)};n.dd=function(a){this.h.push(a)};n.ed=function(a){fk(this).get(\"layers\").push(a)};n.fd=function(a){this.B.push(a)};n.ic=function(a){var b=a.Pa();void 0!==b&&(this.Sc[b.toString()]=a);a.setMap(this)};n.oa=function(a){this.render();Array.prototype.push.apply(this.D,arguments)};\r\nn.R=function(){Da(this.ma);Da(this.N);ya(this.a,\"wheel\",this.Sa,this);ya(this.a,\"mousewheel\",this.Sa,this);void 0!==this.f&&(K.removeEventListener(\"resize\",this.f,!1),this.f=void 0);this.g&&(K.cancelAnimationFrame(this.g),this.g=void 0);this.set(\"target\",null);V.prototype.R.call(this)};n.od=function(a,b,c,d,e){if(this.c)return a=this.Ba(a),this.N.fa(a,this.c,b,void 0!==c?c:null,void 0!==d?d:yb,void 0!==e?e:null)};\r\nn.Md=function(a,b,c){if(!this.c)return!1;a=this.Ba(a);return this.N.Fc(a,this.c,void 0!==b?b:yb,void 0!==c?c:null)};n.uc=function(a){var b=this.a.getBoundingClientRect();a=a.changedTouches?a.changedTouches[0]:a;return[a.clientX-b.left,a.clientY-b.top]};n.Wb=function(){return this.get(\"target\")};n.Ra=function(){var a=this.Wb();return void 0!==a?\"string\"===typeof a?document.getElementById(a):a:null};n.Ba=function(a){var b=this.c;return b?Hf(b.pixelToCoordinateTransform,a.slice()):null};\r\nfunction fk(a){return a.get(\"layergroup\")}function ug(a,b){var c=a.c;return c?Hf(c.coordinateToPixelTransform,b.slice(0,2)):null}n.Ta=function(){return this.get(\"size\")};n.U=function(){return this.get(\"view\")};n.qd=function(a,b,c,d){var e=this.c;if(!(e&&b in e.wantedTiles&&e.wantedTiles[b][a.getKey()]))return Infinity;a=c[0]-e.focus[0];c=c[1]-e.focus[1];return 65536*Math.log(d)+Math.sqrt(a*a+c*c)/d};n.Sa=function(a,b){var c=new df(b||a.type,this,a);this.wc(c)};\r\nn.wc=function(a){if(this.c){this.W=a.coordinate;a.frameState=this.c;var b=this.h.a,c;if(!1!==U(this,a))for(c=b.length-1;0<=c;c--){var d=b[c];if(d.get(\"active\")&&!d.handleEvent(a))break}}};\r\nn.Fd=function(){var a=this.c,b=this.wa;if(0!==b.b.length){var c=16,d=c;if(a){var e=a.viewHints;e[0]&&(c=this.kb?8:0,d=2);e[1]&&(c=this.Ab?8:0,d=2)}if(b.l<c){Yf(b);for(var e=0,f,g;b.l<c&&e<d&&0<b.b.length;)f=Vf(b)[0],g=f.getKey(),0!==f.T()||g in b.h||(b.h[g]=!0,++b.l,++e,f.load())}}b=this.na;c=0;for(d=b.length;c<d;++c)b[c](this,a);b.length=0};n.Gd=function(){this.render()};\r\nn.Id=function(){var a;this.Wb()&&(a=this.Ra());if(this.i){for(var b=0,c=this.i.length;b<c;++b)M(this.i[b]);this.i=null}a?(a.appendChild(this.a),a=this.ba?this.ba:a,this.i=[R(a,\"keydown\",this.Sa,this),R(a,\"keypress\",this.Sa,this)],this.f||(this.f=this.yb.bind(this),K.addEventListener(\"resize\",this.f,!1))):(Sd(this.a),void 0!==this.f&&(K.removeEventListener(\"resize\",this.f,!1),this.f=void 0));this.yb()};n.Jd=function(){this.render()};n.Ld=function(){this.render()};\r\nn.Kd=function(){this.P&&(M(this.P),this.P=null);var a=this.U();a&&(this.P=R(a,\"propertychange\",this.Ld,this));this.render()};n.vd=function(){this.u&&(this.u.forEach(M),this.u=null);var a=fk(this);a&&(this.u=[R(a,\"propertychange\",this.render,this),R(a,\"change\",this.render,this)]);this.render()};n.we=function(){this.g&&K.cancelAnimationFrame(this.g);this.aa()};n.render=function(){void 0===this.g&&(this.g=K.requestAnimationFrame(this.aa))};n.se=function(a){return this.h.remove(a)};n.te=function(a){return fk(this).get(\"layers\").remove(a)};\r\nn.ve=function(a){var b,c,d,e=this.Ta(),f=this.U(),g=db(),h=null;if(b=void 0!==e&&0<e[0]&&0<e[1]&&f)b=!!f.qa()&&void 0!==f.O();if(b){d=this.c?this.c.viewHints:void 0;void 0!==d?(d[0]=f.c[0],d[1]=f.c[1],h=d):h=f.c.slice();var k=fk(this).Pb(),l={};b=0;for(c=k.length;b<c;++b)l[J(k[b].layer)]=k[b];d=f.T();h={animate:!1,attributions:{},coordinateToPixelTransform:this.Fa,extent:g,focus:this.W?this.W:d.center,index:this.Ga++,layerStates:l,layerStatesArray:k,logos:pa({},this.Bb),pixelRatio:this.Cb,pixelToCoordinateTransform:this.zb,\r\npostRenderFunctions:[],size:e,skippedFeatureUids:this.Eb,tileQueue:this.wa,time:a,usedTiles:{},viewState:d,viewHints:h,wantedTiles:{}}}if(h){a=this.D;b=e=0;for(c=a.length;b<c;++b)f=a[b],f(this,h)&&(a[e++]=f);a.length=e;h.extent=ub(d.center,d.resolution,d.rotation,h.size,g)}this.c=h;this.N.vb(h);h&&(h.animate&&this.render(),Array.prototype.push.apply(this.na,h.postRenderFunctions),0!==this.D.length||h.viewHints[0]||h.viewHints[1]||lb(h.extent,this.va)||(U(this,new Td(\"moveend\",this,h)),gb(h.extent,\r\nthis.va)));U(this,new Td(\"postrender\",this,h));d=g=this.Fd;this&&(d=ea(g,this));\"function\"!=ba()||aa.Window&&aa.Window.prototype&&!xd(\"Edge\")&&aa.Window.prototype.setImmediate==aa.setImmediate?(fe||(fe=ge()),fe(d)):aa.setImmediate(d)};\r\nn.yb=function(){var a=this.Ra();if(a){var b=K.getComputedStyle(a);this.set(\"size\",[a.offsetWidth-parseFloat(b.borderLeftWidth)-parseFloat(b.paddingLeft)-parseFloat(b.paddingRight)-parseFloat(b.borderRightWidth),a.offsetHeight-parseFloat(b.borderTopWidth)-parseFloat(b.paddingTop)-parseFloat(b.paddingBottom)-parseFloat(b.borderBottomWidth)])}else this.set(\"size\",void 0)};\r\nfunction ek(a){var b=null;void 0!==a.keyboardEventTarget&&(b=\"string\"===typeof a.keyboardEventTarget?document.getElementById(a.keyboardEventTarget):a.keyboardEventTarget);var c={},d={};if(void 0===a.logo||\"boolean\"===typeof a.logo&&a.logo)d[\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHGAAABxgEXwfpGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAhNQTFRF////AP//AICAgP//AFVVQECA////K1VVSbbbYL/fJ05idsTYJFtbbcjbJllmZszWWMTOIFhoHlNiZszTa9DdUcHNHlNlV8XRIVdiasrUHlZjIVZjaMnVH1RlIFRkH1RkH1ZlasvYasvXVsPQH1VkacnVa8vWIVZjIFRjVMPQa8rXIVVkXsXRsNveIFVkIFZlIVVj3eDeh6GmbMvXH1ZkIFRka8rWbMvXIFVkIFVjIFVkbMvWH1VjbMvWIFVlbcvWIFVla8vVIFVkbMvWbMvVH1VkbMvWIFVlbcvWIFVkbcvVbMvWjNPbIFVkU8LPwMzNIFVkbczWIFVkbsvWbMvXIFVkRnB8bcvW2+TkW8XRIFVkIlZlJVloJlpoKlxrLl9tMmJwOWd0Omh1RXF8TneCT3iDUHiDU8LPVMLPVcLPVcPQVsPPVsPQV8PQWMTQWsTQW8TQXMXSXsXRX4SNX8bSYMfTYcfTYsfTY8jUZcfSZsnUaIqTacrVasrVa8jTa8rWbI2VbMvWbcvWdJObdcvUdszUd8vVeJaee87Yfc3WgJyjhqGnitDYjaarldPZnrK2oNbborW5o9bbo9fbpLa6q9ndrL3ArtndscDDutzfu8fJwN7gwt7gxc/QyuHhy+HizeHi0NfX0+Pj19zb1+Tj2uXk29/e3uLg3+Lh3+bl4uXj4ufl4+fl5Ofl5ufl5ujm5+jmySDnBAAAAFp0Uk5TAAECAgMEBAYHCA0NDg4UGRogIiMmKSssLzU7PkJJT1JTVFliY2hrdHZ3foSFhYeJjY2QkpugqbG1tre5w8zQ09XY3uXn6+zx8vT09vf4+Pj5+fr6/P39/f3+gz7SsAAAAVVJREFUOMtjYKA7EBDnwCPLrObS1BRiLoJLnte6CQy8FLHLCzs2QUG4FjZ5GbcmBDDjxJBXDWxCBrb8aM4zbkIDzpLYnAcE9VXlJSWlZRU13koIeW57mGx5XjoMZEUqwxWYQaQbSzLSkYGfKFSe0QMsX5WbjgY0YS4MBplemI4BdGBW+DQ11eZiymfqQuXZIjqwyadPNoSZ4L+0FVM6e+oGI6g8a9iKNT3o8kVzNkzRg5lgl7p4wyRUL9Yt2jAxVh6mQCogae6GmflI8p0r13VFWTHBQ0rWPW7ahgWVcPm+9cuLoyy4kCJDzCm6d8PSFoh0zvQNC5OjDJhQopPPJqph1doJBUD5tnkbZiUEqaCnB3bTqLTFG1bPn71kw4b+GFdpLElKIzRxxgYgWNYc5SCENVHKeUaltHdXx0dZ8uBI1hJ2UUDgq82CM2MwKeibqAvSO7MCABq0wXEPiqWEAAAAAElFTkSuQmCC\"]=\r\n\"http://openlayers.org/\";else{var e=a.logo;\"string\"===typeof e?d[e]=\"\":e instanceof HTMLElement?d[J(e).toString()]=e:e&&(L(\"string\"==typeof e.href,44),L(\"string\"==typeof e.src,45),d[e.src]=e.href)}e=a.layers instanceof Xg?a.layers:new Xg({layers:a.layers});c.layergroup=e;c.target=a.target;c.view=void 0!==a.view?a.view:new uc;var e=Nf,f;void 0!==a.renderer?Array.isArray(a.renderer)?f=a.renderer:\"string\"===typeof a.renderer?f=[a.renderer]:L(!1,46):f=dk;var g,h;g=0;for(h=f.length;g<h;++g){var k=f[g];\r\nif(\"canvas\"==k){if(qe){e=Ri;break}}else if(\"dom\"==k){e=Yi;break}else if(\"webgl\"==k&&je){e=ak;break}}void 0!==a.controls?Array.isArray(a.controls)?f=new cd(a.controls.slice()):(L(a.controls instanceof cd,47),f=a.controls):f=ee();if(void 0!==a.interactions)Array.isArray(a.interactions)?g=new cd(a.interactions.slice()):(L(a.interactions instanceof cd,48),g=a.interactions);else{g={};h=new cd;k=new $f;(void 0!==g.altShiftDragRotate?g.altShiftDragRotate:1)&&h.push(new vg);(void 0!==g.doubleClickZoom?g.doubleClickZoom:\r\n1)&&h.push(new fg({delta:g.zoomDelta,duration:g.zoomDuration}));(void 0!==g.dragPan?g.dragPan:1)&&h.push(new qg({kinetic:k}));(void 0!==g.pinchRotate?g.pinchRotate:1)&&h.push(new Pg);(void 0!==g.pinchZoom?g.pinchZoom:1)&&h.push(new Tg({duration:g.zoomDuration}));if(void 0!==g.keyboard?g.keyboard:1)h.push(new Jg),h.push(new Lg({delta:g.zoomDelta,duration:g.zoomDuration}));(void 0!==g.mouseWheelZoom?g.mouseWheelZoom:1)&&h.push(new Ng({duration:g.zoomDuration}));(void 0!==g.shiftDragZoom?g.shiftDragZoom:\r\n1)&&h.push(new Ig({duration:g.zoomDuration}));g=h}void 0!==a.overlays?Array.isArray(a.overlays)?a=new cd(a.overlays.slice()):(L(a.overlays instanceof cd,49),a=a.overlays):a=new cd;return{controls:f,interactions:g,keyboardEventTarget:b,logos:d,overlays:a,xe:e,values:c}}Ib(bh);Ib(ih);ih.forEach(function(a){bh.forEach(function(b){Jb(a,b,ch);Jb(b,a,dh)})});function gk(a){V.call(this);this.j=a.id;this.i=void 0!==a.insertFirst?a.insertFirst:!0;this.s=void 0!==a.stopEvent?a.stopEvent:!0;this.c=document.createElement(\"DIV\");this.c.className=\"ol-overlay-container\";this.c.style.position=\"absolute\";this.autoPan=void 0!==a.autoPan?a.autoPan:!1;this.g=void 0!==a.autoPanAnimation?a.autoPanAnimation:{};this.h=void 0!==a.autoPanMargin?a.autoPanMargin:20;this.a={lb:\"\",sb:\"\",wb:\"\",xb:\"\",visible:!0};this.f=null;R(this,La(\"element\"),this.td,this);R(this,La(\"map\"),\r\nthis.Ad,this);R(this,La(\"offset\"),this.Bd,this);R(this,La(\"position\"),this.Dd,this);R(this,La(\"positioning\"),this.Ed,this);void 0!==a.element&&this.set(\"element\",a.element);this.set(\"offset\",void 0!==a.offset?a.offset:[0,0]);this.set(\"positioning\",void 0!==a.positioning?a.positioning:\"top-left\");void 0!==a.position&&this.Ac(a.position)}B(gk,V);n=gk.prototype;n.Pa=function(){return this.j};n.td=function(){for(var a=this.c;a.lastChild;)a.removeChild(a.lastChild);(a=this.get(\"element\"))&&this.c.appendChild(a)};\r\nn.Ad=function(){this.f&&(Sd(this.c),M(this.f),this.f=null);var a=this.get(\"map\");a&&(this.f=R(a,\"postrender\",this.render,this),hk(this),a=this.s?a.j:a.s,this.i?a.insertBefore(this.c,a.childNodes[0]||null):a.appendChild(this.c))};n.render=function(){hk(this)};n.Bd=function(){hk(this)};\r\nn.Dd=function(){hk(this);if(void 0!==this.get(\"position\")&&this.autoPan){var a=this.get(\"map\");if(void 0!==a&&a.Ra()){var b=ik(a.Ra(),a.Ta()),c=this.get(\"element\"),d=c.offsetWidth,e=c.currentStyle||K.getComputedStyle(c),d=d+(parseInt(e.marginLeft,10)+parseInt(e.marginRight,10)),e=c.offsetHeight,f=c.currentStyle||K.getComputedStyle(c),e=e+(parseInt(f.marginTop,10)+parseInt(f.marginBottom,10)),g=ik(c,[d,e]),c=this.h;hb(b,g)||(d=g[0]-b[0],e=b[2]-g[2],f=g[1]-b[1],g=b[3]-g[3],b=[0,0],0>d?b[0]=d-c:0>e&&\r\n(b[0]=Math.abs(e)+c),0>f?b[1]=f-c:0>g&&(b[1]=Math.abs(g)+c),0===b[0]&&0===b[1])||(c=a.U().qa(),d=ug(a,c),b=[d[0]+b[0],d[1]+b[1]],this.g&&(this.g.source=c,a.oa(Dc(this.g))),a.U().xa(a.Ba(b)))}}};n.Ed=function(){hk(this)};n.setMap=function(a){this.set(\"map\",a)};n.Ac=function(a){this.set(\"position\",a)};function ik(a,b){var c=a.getBoundingClientRect(),d=c.left+K.pageXOffset,c=c.top+K.pageYOffset;return[d,c,d+b[0],c+b[1]]}\r\nfunction jk(a,b){a.a.visible!==b&&(a.c.style.display=b?\"\":\"none\",a.a.visible=b)}\r\nfunction hk(a){var b=a.get(\"map\"),c=a.get(\"position\");if(void 0!==b&&b.c&&void 0!==c){var c=ug(b,c),d=b.Ta(),b=a.c.style,e=a.get(\"offset\"),f=a.get(\"positioning\"),g=e[0],e=e[1];if(\"bottom-right\"==f||\"center-right\"==f||\"top-right\"==f)\"\"!==a.a.sb&&(a.a.sb=b.left=\"\"),g=Math.round(d[0]-c[0]-g)+\"px\",a.a.wb!=g&&(a.a.wb=b.right=g);else{\"\"!==a.a.wb&&(a.a.wb=b.right=\"\");if(\"bottom-center\"==f||\"center-center\"==f||\"top-center\"==f)g-=a.c.offsetWidth/2;g=Math.round(c[0]+g)+\"px\";a.a.sb!=g&&(a.a.sb=b.left=g)}if(\"bottom-left\"==\r\nf||\"bottom-center\"==f||\"bottom-right\"==f)\"\"!==a.a.xb&&(a.a.xb=b.top=\"\"),c=Math.round(d[1]-c[1]-e)+\"px\",a.a.lb!=c&&(a.a.lb=b.bottom=c);else{\"\"!==a.a.lb&&(a.a.lb=b.bottom=\"\");if(\"center-left\"==f||\"center-center\"==f||\"center-right\"==f)e-=a.c.offsetHeight/2;c=Math.round(c[1]+e)+\"px\";a.a.xb!=c&&(a.a.xb=b.top=c)}jk(a,!0)}else jk(a,!1)};function kk(a){V.call(this);this.g=void 0;this.a=\"geometry\";this.h=null;this.f=void 0;this.c=null;R(this,La(this.a),this.qb,this);void 0!==a&&(a instanceof Wb||!a?lk(this,a):this.l(a))}B(kk,V);n=kk.prototype;n.clone=function(){var a=new kk(this.Ea());mk(a,this.a);var b=this.S();b&&lk(a,b.clone());if(b=this.h)a.h=b,a.f=b?nk(b):void 0,a.w();return a};n.S=function(){return this.get(this.a)};n.Pa=function(){return this.g};n.ud=function(){this.w()};\r\nn.qb=function(){this.c&&(M(this.c),this.c=null);var a=this.S();a&&(this.c=R(a,\"change\",this.ud,this));this.w()};function lk(a,b){a.set(a.a,b)}function mk(a,b){ya(a,La(a.a),a.qb,a);a.a=b;R(a,La(a.a),a.qb,a);a.qb()}function nk(a){if(\"function\"!==typeof a){var b;Array.isArray(a)?b=a:(L(a instanceof yh,41),b=[a]);a=function(){return b}}return a};function ok(a,b,c){return function(d,e,f){var g=new XMLHttpRequest;g.open(\"GET\",\"function\"===typeof a?a(d,e,f):a,!0);\"arraybuffer\"==b.$()&&(g.responseType=\"arraybuffer\");g.onload=function(){if(!g.status||200<=g.status&&300>g.status){var a=b.$(),d;\"json\"==a||\"text\"==a?d=g.responseText:\"xml\"==a?(d=g.responseXML,d||(a=g.responseText,d=(new DOMParser).parseFromString(a,\"application/xml\"))):\"arraybuffer\"==a&&(d=g.response);d&&c.call(this,b.a(d,{featureProjection:f}),b.c(pk(d)))}}.bind(this);g.send()}}\r\nfunction qk(a,b){return ok(a,b,function(a){this.Gb(a)})};function rk(){this.defaultDataProjection=null}function sk(a,b,c){var d;c&&(d={dataProjection:c.dataProjection?c.dataProjection:a.c(pk(b)),featureProjection:c.featureProjection});var e;d&&(e={featureProjection:d.featureProjection,dataProjection:d.dataProjection?d.dataProjection:a.defaultDataProjection,rightHanded:d.rightHanded},d.decimals&&(e.decimals=d.decimals));return e}\r\nfunction tk(a,b){var c=b?Hb(b.featureProjection):null,d=b?Hb(b.dataProjection):null;if(c&&d&&!Tb(c,d))if(a instanceof Wb)c=a.transform(d,c);else{d=Ub(d,c);c=[a[0],a[1],a[0],a[3],a[2],a[1],a[2],a[3]];d(c,c,2);var e=[c[0],c[2],c[4],c[6]],f=[c[1],c[3],c[5],c[7]],c=Math.min.apply(null,e),d=Math.min.apply(null,f),e=Math.max.apply(null,e),f=Math.max.apply(null,f),c=ib(c,d,e,f,void 0)}else c=a;return c};function uk(){this.defaultDataProjection=null}B(uk,rk);function pk(a){return\"string\"===typeof a?(a=JSON.parse(a))?a:null:null!==a?a:null}uk.prototype.$=function(){return\"json\"};uk.prototype.g=function(a,b){return this.b(pk(a),sk(this,a,b))};uk.prototype.a=function(a,b){return this.h(pk(a),sk(this,a,b))};function vk(a,b,c,d,e){var f=NaN,g=NaN,h=(c-b)/d;if(0!==h)if(1==h)f=a[b],g=a[b+1];else if(2==h)f=.5*a[b]+.5*a[b+d],g=.5*a[b+1]+.5*a[b+d+1];else{var g=a[b],h=a[b+1],k=0,f=[0],l;for(l=b+d;l<c;l+=d){var m=a[l],p=a[l+1],k=k+Math.sqrt((m-g)*(m-g)+(p-h)*(p-h));f.push(k);g=m;h=p}c=.5*k;k=0;l=f.length;for(m=!1;k<l;)g=k+(l-k>>1),h=+Ma(f[g],c),0>h?k=g+1:(l=g,m=!h);g=m?k:~k;0>g?(c=(c-f[-g-2])/(f[-g-1]-f[-g-2]),b+=(-g-2)*d,f=a[b],f+=c*(a[b+d]-f),g=a[b+1],g+=c*(a[b+d+1]-g)):(f=a[b+g*d],g=a[b+g*d+1])}return e?\r\n(e[0]=f,e[1]=g,e):[f,g]};function wk(a,b){Yb.call(this);this.a=null;this.h=-1;this.ea(a,b)}B(wk,Yb);n=wk.prototype;n.clone=function(){var a=new wk(null);$b(a,this.c,this.o.slice());a.w();return a};n.za=function(){return ec(this.o,0,this.o.length,this.A)};function Nh(a){if(a.h!=a.b){var b;b=vk(a.o,0,a.o.length,a.A,a.a);a.a=b;a.h=a.b}return a.a}n.Qa=function(a){var b=[];b.length=gc(this.o,0,this.o.length,this.A,a,b,0);a=new wk(null);$b(a,\"XY\",b);a.w();return a};n.$=function(){return\"LineString\"};\r\nn.ea=function(a,b){a?(ac(this,b,a,1),this.o||(this.o=[]),this.o.length=cc(this.o,0,a,this.A)):$b(this,\"XY\",null);this.w()};function xk(a,b){Yb.call(this);this.ua=[];this.ea(a,b)}B(xk,Yb);n=xk.prototype;n.clone=function(){var a=new xk(null),b=this.ua.slice();$b(a,this.c,this.o.slice());a.ua=b;a.w();return a};n.za=function(){return fc(this.o,0,this.ua,this.A)};function Oh(a){var b=[],c=a.o,d=0,e=a.ua;a=a.A;var f,g;f=0;for(g=e.length;f<g;++f){var h=e[f],d=vk(c,d,h,a);Pa(b,d);d=h}return b}\r\nn.Qa=function(a){var b=[],c=[],d=this.o,e=this.ua,f=this.A,g=0,h=0,k,l;k=0;for(l=e.length;k<l;++k){var m=e[k],h=gc(d,g,m,f,a,b,h);c.push(h);g=m}b.length=h;a=new xk(null);$b(a,\"XY\",b);a.ua=c;a.w();return a};n.$=function(){return\"MultiLineString\"};n.ea=function(a,b){if(a){ac(this,b,a,2);this.o||(this.o=[]);var c=dc(this.o,0,a,this.A,this.ua);this.o.length=0===c.length?0:c[c.length-1]}else c=this.ua,$b(this,\"XY\",null),this.ua=c;this.w()};function yk(a,b){Yb.call(this);this.ea(a,b)}B(yk,Yb);yk.prototype.clone=function(){var a=new yk(null);$b(a,this.c,this.o.slice());a.w();return a};yk.prototype.za=function(){return ec(this.o,0,this.o.length,this.A)};yk.prototype.$=function(){return\"MultiPoint\"};yk.prototype.ea=function(a,b){a?(ac(this,b,a,1),this.o||(this.o=[]),this.o.length=cc(this.o,0,a,this.A)):$b(this,\"XY\",null);this.w()};function zk(a,b){Yb.call(this);this.a=[];this.v=-1;this.u=null;this.B=-1;this.h=null;this.ea(a,b)}B(zk,Yb);n=zk.prototype;n.clone=function(){for(var a=new zk(null),b=this.a.length,c=Array(b),d=0;d<b;++d)c[d]=this.a[d].slice();$b(a,this.c,this.o.slice());a.a=c;a.w();return a};n.za=function(a){var b;void 0!==a?(b=Ph(this).slice(),pc(b,this.a,this.A,a)):b=this.o;a=b;b=this.a;var c=this.A,d=0,e=[],f=0,g,h;g=0;for(h=b.length;g<h;++g){var k=b[g];e[f++]=fc(a,d,k,c,e[f]);d=k[k.length-1]}e.length=f;return e};\r\nfunction Qh(a){if(a.v!=a.b){var b=a.o,c=a.a,d=a.A,e=0,f=[],g,h,k;g=0;for(h=c.length;g<h;++g){var l=c[g];k=b;var m=l[0],p=d,q=jb(void 0);k=nb(q,k,e,m,p);f.push((k[0]+k[2])/2,(k[1]+k[3])/2);e=l[l.length-1]}b=Ph(a);c=a.a;d=a.A;g=0;h=[];l=0;for(k=c.length;l<k;++l)e=c[l],h=lc(b,g,e,d,f,2*l,h),g=e[e.length-1];a.u=h;a.v=a.b}return a.u}\r\nfunction Ph(a){if(a.B!=a.b){var b=a.o,c;a:{c=a.a;var d,e;d=0;for(e=c.length;d<e;++d)if(!nc(b,c[d],a.A,void 0)){c=!1;break a}c=!0}c?a.h=b:(a.h=b.slice(),a.h.length=pc(a.h,a.a,a.A));a.B=a.b}return a.h}n.Qa=function(a){var b=[],c=[],d=this.o,e=this.a,f=this.A;a=Math.sqrt(a);var g=0,h=0,k,l;k=0;for(l=e.length;k<l;++k){var m=e[k],p=[],h=hc(d,g,m,f,a,b,h,p);c.push(p);g=m[m.length-1]}b.length=h;d=new zk(null);$b(d,\"XY\",b);d.a=c;d.w();return d};n.$=function(){return\"MultiPolygon\"};\r\nn.ea=function(a,b){if(a){ac(this,b,a,3);this.o||(this.o=[]);var c=this.o,d=this.A,e=this.a,f=0,e=e?e:[],g=0,h,k;h=0;for(k=a.length;h<k;++h)f=dc(c,f,a[h],d,e[g]),e[g++]=f,f=f[f.length-1];e.length=g;0===e.length?this.o.length=0:(c=e[e.length-1],this.o.length=0===c.length?0:c[c.length-1])}else c=this.a,$b(this,\"XY\",null),this.a=c;this.w()};function Ak(a){a=a?a:{};this.defaultDataProjection=null;this.f=a.geometryName}B(Ak,uk);function Bk(a){var b=\"XY\";!0===a.hasZ&&!0===a.hasM?b=\"XYZM\":!0===a.hasZ?b=\"XYZ\":!0===a.hasM&&(b=\"XYM\");return b}\r\nvar Ck={Point:function(a){return void 0!==a.m&&void 0!==a.z?new jc([a.x,a.y,a.z,a.m],\"XYZM\"):void 0!==a.z?new jc([a.x,a.y,a.z],\"XYZ\"):void 0!==a.m?new jc([a.x,a.y,a.m],\"XYM\"):new jc([a.x,a.y])},LineString:function(a){return new wk(a.paths[0],Bk(a))},Polygon:function(a){return new qc(a.rings,Bk(a))},MultiPoint:function(a){return new yk(a.points,Bk(a))},MultiLineString:function(a){return new xk(a.paths,Bk(a))},MultiPolygon:function(a){return new zk(a.rings,Bk(a))}};\r\nAk.prototype.b=function(a,b){var c;if(c=a.geometry){var d;if(\"number\"===typeof c.x&&\"number\"===typeof c.y)d=\"Point\";else if(c.points)d=\"MultiPoint\";else if(c.paths)d=1===c.paths.length?\"LineString\":\"MultiLineString\";else if(c.rings){var e=c.rings,f=Bk(c),g=[];d=[];var h,k;h=0;for(k=e.length;h<k;++h){var l=Oa(e[h]);mc(l,0,l.length,f.length)?g.push([e[h]]):d.push(e[h])}for(;d.length;){e=d.shift();f=!1;for(h=g.length-1;0<=h;h--)if(hb((new ic(g[h][0])).G(),(new ic(e)).G())){g[h].push(e);f=!0;break}f||\r\ng.push([e.reverse()])}c=pa({},c);1===g.length?(d=\"Polygon\",c.rings=g[0]):(d=\"MultiPolygon\",c.rings=g)}c=tk((0,Ck[d])(c),b)}else c=null;g=new kk;this.f&&mk(g,this.f);lk(g,c);b&&b.Tb&&a.attributes[b.Tb]&&(g.g=a.attributes[b.Tb],g.w());a.attributes&&g.l(a.attributes);return g};Ak.prototype.h=function(a,b){var c=b?b:{};if(a.features){var d=[],e=a.features,f,g;c.Tb=a.objectIdFieldName;f=0;for(g=e.length;f<g;++f)d.push(this.b(e[f],c));return d}return[this.b(a,c)]};\r\nAk.prototype.c=function(a){return a.spatialReference&&a.spatialReference.wkid?Hb(\"EPSG:\"+a.spatialReference.wkid):null};function Dk(a){Wb.call(this);this.a=a?a:null;Ek(this)}B(Dk,Wb);function Fk(a){var b,c;if(a.a)for(b=0,c=a.a.length;b<c;++b)ya(a.a[b],\"change\",a.w,a)}function Ek(a){var b,c;if(a.a)for(b=0,c=a.a.length;b<c;++b)R(a.a[b],\"change\",a.w,a)}n=Dk.prototype;n.clone=function(){var a=new Dk(null),b=this.a,c=[],d,e;d=0;for(e=b.length;d<e;++d)c.push(b[d].clone());Fk(a);a.a=c;Ek(a);a.w();return a};n.mb=function(a){jb(a);for(var b=this.a,c=0,d=b.length;c<d;++c)mb(a,b[c].G());return a};\r\nn.Rb=function(a){this.i!=this.b&&(qa(this.f),this.g=0,this.i=this.b);if(0>a||0!==this.g&&a<this.g)return this;var b=a.toString();if(this.f.hasOwnProperty(b))return this.f[b];var c=[],d=this.a,e=!1,f,g;f=0;for(g=d.length;f<g;++f){var h=d[f],k=h.Rb(a);c.push(k);k!==h&&(e=!0)}if(e)return a=new Dk(null),Fk(a),a.a=c,Ek(a),a.w(),this.f[b]=a;this.g=a;return this};n.$=function(){return\"GeometryCollection\"};n.rotate=function(a,b){for(var c=this.a,d=0,e=c.length;d<e;++d)c[d].rotate(a,b);this.w()};\r\nn.scale=function(a,b,c){c||(c=tb(this.G()));for(var d=this.a,e=0,f=d.length;e<f;++e)d[e].scale(a,b,c);this.w()};n.Hb=function(a){var b=this.a,c,d;c=0;for(d=b.length;c<d;++c)b[c].Hb(a);this.w()};n.translate=function(a,b){var c=this.a,d,e;d=0;for(e=c.length;d<e;++d)c[d].translate(a,b);this.w()};n.R=function(){Fk(this);Wb.prototype.R.call(this)};function Gk(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=Hb(a.defaultDataProjection?a.defaultDataProjection:\"EPSG:4326\");this.f=a.geometryName}B(Gk,uk);function Hk(a,b){return a?tk((0,Ik[a.type])(a),b):null}\r\nvar Ik={Point:function(a){return new jc(a.coordinates)},LineString:function(a){return new wk(a.coordinates)},Polygon:function(a){return new qc(a.coordinates)},MultiPoint:function(a){return new yk(a.coordinates)},MultiLineString:function(a){return new xk(a.coordinates)},MultiPolygon:function(a){return new zk(a.coordinates)},GeometryCollection:function(a,b){var c=a.geometries.map(function(a){return Hk(a,b)});return new Dk(c)}};\r\nGk.prototype.b=function(a,b){var c=Hk(a.geometry,b),d=new kk;this.f&&mk(d,this.f);lk(d,c);void 0!==a.id&&(d.g=a.id,d.w());a.properties&&d.l(a.properties);return d};Gk.prototype.h=function(a,b){var c;if(\"Feature\"==a.type)c=[this.b(a,b)];else if(\"FeatureCollection\"==a.type){c=[];var d=a.features,e,f;e=0;for(f=d.length;e<f;++e)c.push(this.b(d[e],b))}else L(!1,35);return c};\r\nGk.prototype.c=function(a){a=a.crs;var b;a?\"name\"==a.type?b=Hb(a.properties.name):\"EPSG\"==a.type?b=Hb(\"EPSG:\"+a.properties.code):L(!1,36):b=this.defaultDataProjection;return b};function Jk(a,b,c,d,e,f){Ga.call(this);this.l=null;this.b=a?a:new Image;null!==d&&(this.b.crossOrigin=d);this.f=f?document.createElement(\"CANVAS\"):null;this.h=f;this.g=null;this.c=e;this.a=c;this.s=b;this.i=!1;2==this.c&&Kk(this)}B(Jk,Ga);function Kk(a){var b=Md(1,1);try{b.drawImage(a.b,0,0),b.getImageData(0,0,1,1)}catch(c){a.i=!0}}Jk.prototype.j=function(){this.c=3;this.g.forEach(M);this.g=null;U(this,\"change\")};\r\nJk.prototype.v=function(){this.c=2;this.a&&(this.b.width=this.a[0],this.b.height=this.a[1]);this.a=[this.b.width,this.b.height];this.g.forEach(M);this.g=null;Kk(this);if(!this.i&&null!==this.h){this.f.width=this.b.width;this.f.height=this.b.height;var a=this.f.getContext(\"2d\");a.drawImage(this.b,0,0);for(var b=a.getImageData(0,0,this.b.width,this.b.height),c=b.data,d=this.h[0]/255,e=this.h[1]/255,f=this.h[2]/255,g=0,h=c.length;g<h;g+=4)c[g]*=d,c[g+1]*=e,c[g+2]*=f;a.putImageData(b,0,0)}U(this,\"change\")};\r\nJk.prototype.Z=function(){return this.f?this.f:this.b};Jk.prototype.load=function(){if(0==this.c){this.c=1;this.g=[R(this.b,\"error\",this.j,this,!0),R(this.b,\"load\",this.v,this,!0)];try{this.b.src=this.s}catch(a){this.j()}}};function Lk(a){a=a||{};this.g=void 0!==a.anchor?a.anchor:[.5,.5];this.f=null;this.a=void 0!==a.anchorOrigin?a.anchorOrigin:\"top-left\";this.l=void 0!==a.anchorXUnits?a.anchorXUnits:\"fraction\";this.i=void 0!==a.anchorYUnits?a.anchorYUnits:\"fraction\";var b=void 0!==a.crossOrigin?a.crossOrigin:null,c=void 0!==a.img?a.img:null,d=void 0!==a.imgSize?a.imgSize:null,e=a.src;L(!(void 0!==e&&c),4);L(!c||c&&d,5);void 0!==e&&0!==e.length||!c||(e=c.src||J(c).toString());L(void 0!==e&&0<e.length,6);var f=void 0!==\r\na.src?0:2,g;void 0!==a.color?(g=a.color,g=Array.isArray(g)?g:pd(g)):g=null;var h=Af.get(e,b,g);h||(h=new Jk(c,e,d,b,f,g),Af.set(e,b,g,h));this.b=h;this.u=void 0!==a.offset?a.offset:[0,0];this.c=void 0!==a.offsetOrigin?a.offsetOrigin:\"top-left\";this.h=null;this.j=void 0!==a.size?a.size:null;oh.call(this,{opacity:void 0!==a.opacity?a.opacity:1,rotation:void 0!==a.rotation?a.rotation:0,scale:void 0!==a.scale?a.scale:1,snapToPixel:void 0!==a.snapToPixel?a.snapToPixel:!0,rotateWithView:void 0!==a.rotateWithView?\r\na.rotateWithView:!1})}B(Lk,oh);n=Lk.prototype;n.eb=function(){if(this.f)return this.f;var a=this.g,b=this.Ka();if(\"fraction\"==this.l||\"fraction\"==this.i){if(!b)return null;a=this.g.slice();\"fraction\"==this.l&&(a[0]*=b[0]);\"fraction\"==this.i&&(a[1]*=b[1])}if(\"top-left\"!=this.a){if(!b)return null;a===this.g&&(a=this.g.slice());if(\"top-right\"==this.a||\"bottom-right\"==this.a)a[0]=-a[0]+b[0];if(\"bottom-left\"==this.a||\"bottom-right\"==this.a)a[1]=-a[1]+b[1]}return this.f=a};n.Z=function(a){return this.b.Z(a)};\r\nn.Ob=function(){return this.b.a};n.ib=function(){return this.b.c};n.ub=function(){var a=this.b;if(!a.l)if(a.i){var b=a.a[0],c=a.a[1],d=Md(b,c);d.fillRect(0,0,b,c);a.l=d.canvas}else a.l=a.b;return a.l};n.pa=function(){if(this.h)return this.h;var a=this.u;if(\"top-left\"!=this.c){var b=this.Ka(),c=this.b.a;if(!b||!c)return null;a=a.slice();if(\"top-right\"==this.c||\"bottom-right\"==this.c)a[0]=c[0]-b[0]-a[0];if(\"bottom-left\"==this.c||\"bottom-right\"==this.c)a[1]=c[1]-b[1]-a[1]}return this.h=a};\r\nn.Ka=function(){return this.j?this.j:this.b.a};n.Vb=function(a,b){return R(this.b,\"change\",a,b)};n.load=function(){this.b.load()};n.bc=function(a,b){ya(this.b,\"change\",a,b)};function Mk(a,b,c){Yb.call(this);Nk(this,a,b?b:0,c)}B(Mk,Yb);Mk.prototype.clone=function(){var a=new Mk(null);$b(a,this.c,this.o.slice());a.w();return a};Mk.prototype.mb=function(a){var b=this.o,c=b[this.A]-b[0];return ib(b[0]-c,b[1]-c,b[0]+c,b[1]+c,a)};Mk.prototype.$=function(){return\"Circle\"};function Nk(a,b,c,d){if(b){ac(a,d,b,0);a.o||(a.o=[]);d=a.o;b=bc(d,b);d[b++]=d[0]+c;var e;c=1;for(e=a.A;c<e;++c)d[b++]=d[c];d.length=b}else $b(a,\"XY\",null);a.w()};function Ok(a,b,c,d,e){Sf.call(this,a,b);this.g=c;this.a=new Image;null!==d&&(this.a.crossOrigin=d);this.c={};this.f=null;this.h=e}B(Ok,Sf);n=Ok.prototype;n.R=function(){1==this.state&&Pk(this);this.b&&Da(this.b);this.state=5;Tf(this);Sf.prototype.R.call(this)};n.Z=function(a){if(void 0!==a){var b=J(a);if(b in this.c)return this.c[b];a=sa(this.c)?this.a:this.a.cloneNode(!1);return this.c[b]=a}return this.a};n.getKey=function(){return this.g};n.ce=function(){this.state=3;Pk(this);Tf(this)};\r\nn.de=function(){this.state=this.a.naturalWidth&&this.a.naturalHeight?2:4;Pk(this);Tf(this)};n.load=function(){if(0==this.state||3==this.state)this.state=1,Tf(this),this.f=[R(this.a,\"error\",this.ce,this,!0),R(this.a,\"load\",this.de,this,!0)],this.h(this,this.g)};function Pk(a){a.f.forEach(M);a.f=null};function Qk(){return[[-Infinity,-Infinity,Infinity,Infinity]]};var Rk;\r\n(function(){var a={},b={Aa:a};(function(c){if(\"object\"===typeof a&&\"undefined\"!==typeof b)b.Aa=c();else{var d;\"undefined\"!==typeof window?d=window:\"undefined\"!==typeof global?d=global:\"undefined\"!==typeof self?d=self:d=this;d.Re=c()}})(function(){return function d(a,b,g){function h(l,p){if(!b[l]){if(!a[l]){var q=\"function\"==typeof require&&require;if(!p&&q)return q(l,!0);if(k)return k(l,!0);q=Error(\"Cannot find module '\"+l+\"'\");throw q.code=\"MODULE_NOT_FOUND\",q;}q=b[l]={Aa:{}};a[l][0].call(q.Aa,function(b){var d=\r\na[l][1][b];return h(d?d:b)},q,q.Aa,d,a,b,g)}return b[l].Aa}for(var k=\"function\"==typeof require&&require,l=0;l<g.length;l++)h(g[l]);return h}({1:[function(a,b){function f(a,b){if(!(this instanceof f))return new f(a,b);this.Db=Math.max(4,a||9);this.gc=Math.max(2,Math.ceil(.4*this.Db));b&&this.ad(b);this.clear()}function g(a,b){h(a,0,a.children.length,b,a)}function h(a,b,d,e,g){g||(g=r(null));g.H=Infinity;g.J=Infinity;g.I=-Infinity;g.L=-Infinity;for(var f;b<d;b++)f=a.children[b],k(g,a.ga?e(f):f);return g}\r\nfunction k(a,b){a.H=Math.min(a.H,b.H);a.J=Math.min(a.J,b.J);a.I=Math.max(a.I,b.I);a.L=Math.max(a.L,b.L)}function l(a,b){return a.H-b.H}function m(a,b){return a.J-b.J}function p(a){return(a.I-a.H)*(a.L-a.J)}function q(a){return a.I-a.H+(a.L-a.J)}function u(a,b){return a.H<=b.H&&a.J<=b.J&&b.I<=a.I&&b.L<=a.L}function w(a,b){return b.H<=a.I&&b.J<=a.L&&b.I>=a.H&&b.L>=a.J}function r(a){return{children:a,height:1,ga:!0,H:Infinity,J:Infinity,I:-Infinity,L:-Infinity}}function x(a,b,d,e,g){for(var f=[b,d],\r\nh;f.length;)d=f.pop(),b=f.pop(),d-b<=e||(h=b+Math.ceil((d-b)/e/2)*e,D(a,h,b,d,g),f.push(b,h,h,d))}b.Aa=f;var D=a(\"quickselect\");f.prototype={all:function(){return this.cc(this.data,[])},search:function(a){var b=this.data,d=[],e=this.la;if(!w(a,b))return d;for(var g=[],f,h,k,l;b;){f=0;for(h=b.children.length;f<h;f++)k=b.children[f],l=b.ga?e(k):k,w(a,l)&&(b.ga?d.push(k):u(a,l)?this.cc(k,d):g.push(k));b=g.pop()}return d},load:function(a){if(!a||!a.length)return this;if(a.length<this.gc){for(var b=0,\r\nd=a.length;b<d;b++)this.Ha(a[b]);return this}a=this.ec(a.slice(),0,a.length-1,0);this.data.children.length?this.data.height===a.height?this.hc(this.data,a):(this.data.height<a.height&&(b=this.data,this.data=a,a=b),this.fc(a,this.data.height-a.height-1,!0)):this.data=a;return this},Ha:function(a){a&&this.fc(a,this.data.height-1);return this},clear:function(){this.data=r([]);return this},remove:function(a,b){if(!a)return this;for(var d=this.data,e=this.la(a),g=[],f=[],h,k,l,m;d||g.length;){d||(d=g.pop(),\r\nk=g[g.length-1],h=f.pop(),m=!0);if(d.ga){a:{l=a;var p=d.children,q=b;if(q){for(var r=0;r<p.length;r++)if(q(l,p[r])){l=r;break a}l=-1}else l=p.indexOf(l)}if(-1!==l){d.children.splice(l,1);g.push(d);this.$c(g);break}}m||d.ga||!u(d,e)?k?(h++,d=k.children[h],m=!1):d=null:(g.push(d),f.push(h),h=0,k=d,d=d.children[0])}return this},la:function(a){return a},Kb:l,Lb:m,toJSON:function(){return this.data},cc:function(a,b){for(var d=[];a;)a.ga?b.push.apply(b,a.children):d.push.apply(d,a.children),a=d.pop();return b},\r\nec:function(a,b,d,e){var f=d-b+1,h=this.Db,k;if(f<=h)return k=r(a.slice(b,d+1)),g(k,this.la),k;e||(e=Math.ceil(Math.log(f)/Math.log(h)),h=Math.ceil(f/Math.pow(h,e-1)));k=r([]);k.ga=!1;k.height=e;var f=Math.ceil(f/h),h=f*Math.ceil(Math.sqrt(h)),l,m,p;for(x(a,b,d,h,this.Kb);b<=d;b+=h)for(m=Math.min(b+h-1,d),x(a,b,m,f,this.Lb),l=b;l<=m;l+=f)p=Math.min(l+f-1,m),k.children.push(this.ec(a,l,p,e-1));g(k,this.la);return k},Zc:function(a,b,d,e){for(var f,g,h,k,l,m,q,r;;){e.push(b);if(b.ga||e.length-1===d)break;\r\nq=r=Infinity;f=0;for(g=b.children.length;f<g;f++)h=b.children[f],l=p(h),m=(Math.max(h.I,a.I)-Math.min(h.H,a.H))*(Math.max(h.L,a.L)-Math.min(h.J,a.J))-l,m<r?(r=m,q=l<q?l:q,k=h):m===r&&l<q&&(q=l,k=h);b=k||b.children[0]}return b},fc:function(a,b,d){var e=this.la;d=d?a:e(a);var e=[],f=this.Zc(d,this.data,b,e);f.children.push(a);for(k(f,d);0<=b;)if(e[b].children.length>this.Db)this.bd(e,b),b--;else break;this.Wc(d,e,b)},bd:function(a,b){var d=a[b],e=d.children.length,f=this.gc;this.Xc(d,f,e);e=this.Yc(d,\r\nf,e);e=r(d.children.splice(e,d.children.length-e));e.height=d.height;e.ga=d.ga;g(d,this.la);g(e,this.la);b?a[b-1].children.push(e):this.hc(d,e)},hc:function(a,b){this.data=r([a,b]);this.data.height=a.height+1;this.data.ga=!1;g(this.data,this.la)},Yc:function(a,b,d){var e,f,g,k,l,m,q;l=m=Infinity;for(e=b;e<=d-b;e++)f=h(a,0,e,this.la),g=h(a,e,d,this.la),k=Math.max(0,Math.min(f.I,g.I)-Math.max(f.H,g.H))*Math.max(0,Math.min(f.L,g.L)-Math.max(f.J,g.J)),f=p(f)+p(g),k<l?(l=k,q=e,m=f<m?f:m):k===l&&f<m&&(m=\r\nf,q=e);return q},Xc:function(a,b,d){var e=a.ga?this.Kb:l,f=a.ga?this.Lb:m,g=this.dc(a,b,d,e);b=this.dc(a,b,d,f);g<b&&a.children.sort(e)},dc:function(a,b,d,e){a.children.sort(e);e=this.la;var f=h(a,0,b,e),g=h(a,d-b,d,e),l=q(f)+q(g),m,p;for(m=b;m<d-b;m++)p=a.children[m],k(f,a.ga?e(p):p),l+=q(f);for(m=d-b-1;m>=b;m--)p=a.children[m],k(g,a.ga?e(p):p),l+=q(g);return l},Wc:function(a,b,d){for(;0<=d;d--)k(b[d],a)},$c:function(a){for(var b=a.length-1,d;0<=b;b--)0===a[b].children.length?0<b?(d=a[b-1].children,\r\nd.splice(d.indexOf(a[b]),1)):this.clear():g(a[b],this.la)},ad:function(a){var b=[\"return a\",\" - b\",\";\"];this.Kb=new Function(\"a\",\"b\",b.join(a[0]));this.Lb=new Function(\"a\",\"b\",b.join(a[1]));this.la=new Function(\"a\",\"return {minX: a\"+a[0]+\", minY: a\"+a[1]+\", maxX: a\"+a[2]+\", maxY: a\"+a[3]+\"};\")}}},{quickselect:2}],2:[function(a,b){function f(a,b,d,e,q){d=d||0;e=e||a.length-1;for(q=q||h;e>d;){if(600<e-d){var u=e-d+1,w=b-d+1,r=Math.log(u),x=.5*Math.exp(2*r/3),r=.5*Math.sqrt(r*x*(u-x)/u)*(0>w-u/2?-1:\r\n1);f(a,b,Math.max(d,Math.floor(b-w*x/u+r)),Math.min(e,Math.floor(b+(u-w)*x/u+r)),q)}u=a[b];w=d;x=e;g(a,d,b);for(0<q(a[e],u)&&g(a,d,e);w<x;){g(a,w,x);w++;for(x--;0>q(a[w],u);)w++;for(;0<q(a[x],u);)x--}0===q(a[d],u)?g(a,d,x):(x++,g(a,x,e));x<=b&&(d=x+1);b<=x&&(e=x-1)}}function g(a,b,d){var e=a[b];a[b]=a[d];a[d]=e}function h(a,b){return a<b?-1:a>b?1:0}b.Aa=f},{}]},{},[1])(1)});Rk=b.Aa})();function Sk(a){this.b=Rk(a);this.a={}}n=Sk.prototype;n.Ha=function(a,b){var c={H:a[0],J:a[1],I:a[2],L:a[3],value:b};this.b.Ha(c);this.a[J(b)]=c};n.load=function(a,b){for(var c=Array(b.length),d=0,e=b.length;d<e;d++){var f=a[d],g=b[d],f={H:f[0],J:f[1],I:f[2],L:f[3],value:g};c[d]=f;this.a[J(g)]=f}this.b.load(c)};n.remove=function(a){a=J(a);var b=this.a[a];delete this.a[a];return null!==this.b.remove(b)};function Tk(a){return a.b.all().map(function(a){return a.value})}\r\nfunction Uk(a,b){return a.b.search({H:b[0],J:b[1],I:b[2],L:b[3]}).map(function(a){return a.value})}function Vk(a,b,c,d){return Wk(Uk(a,b),c,d)}function Wk(a,b,c){for(var d,e=0,f=a.length;e<f&&!(d=b.call(c,a[e]));e++);return d}n.clear=function(){this.b.clear();this.a={}};n.G=function(){var a=this.b.data;return[a.H,a.J,a.I,a.L]};function Xk(a){a=a||{};vf.call(this,{attributions:a.attributions,logo:a.logo,projection:void 0,state:\"ready\",wrapX:void 0!==a.wrapX?a.wrapX:!0});this.j=I;this.s=a.format;this.u=void 0==a.overlaps?!0:a.overlaps;this.B=a.url;void 0!==a.loader?this.j=a.loader:void 0!==this.B&&(L(this.s,7),this.j=qk(this.B,this.s));this.W=void 0!==a.strategy?a.strategy:Qk;var b=void 0!==a.useSpatialIndex?a.useSpatialIndex:!0;this.X=b?new Sk:null;this.v=new Sk;this.ka={};this.c={};this.f={};this.g={};this.a=null;var c,\r\nd;a.features instanceof cd?(c=a.features,d=c.a):Array.isArray(a.features)&&(d=a.features);b||void 0!==c||(c=new cd(d));void 0!==d&&Yk(this,d);void 0!==c&&Zk(this,c)}B(Xk,vf);n=Xk.prototype;n.Fb=function(a){var b=J(a).toString();if($k(this,b,a)){al(this,b,a);var c=a.S();c?(b=c.G(),this.X&&this.X.Ha(b,a)):this.ka[b]=a;U(this,new bl(\"addfeature\",a))}this.w()};function al(a,b,c){a.g[b]=[R(c,\"change\",a.vc,a),R(c,\"propertychange\",a.vc,a)]}\r\nfunction $k(a,b,c){var d=!0,e=c.Pa();void 0!==e?e.toString()in a.c?d=!1:a.c[e.toString()]=c:(L(!(b in a.f),30),a.f[b]=c);return d}n.Gb=function(a){Yk(this,a);this.w()};function Yk(a,b){var c,d,e,f,g=[],h=[],k=[];d=0;for(e=b.length;d<e;d++)f=b[d],c=J(f).toString(),$k(a,c,f)&&h.push(f);d=0;for(e=h.length;d<e;d++){f=h[d];c=J(f).toString();al(a,c,f);var l=f.S();l?(c=l.G(),g.push(c),k.push(f)):a.ka[c]=f}a.X&&a.X.load(g,k);d=0;for(e=h.length;d<e;d++)U(a,new bl(\"addfeature\",h[d]))}\r\nfunction Zk(a,b){var c=!1;R(a,\"addfeature\",function(a){c||(c=!0,b.push(a.feature),c=!1)});R(a,\"removefeature\",function(a){c||(c=!0,b.remove(a.feature),c=!1)});R(b,hd,function(a){c||(c=!0,this.Fb(a.element),c=!1)},a);R(b,id,function(a){if(!c){c=!0;a=a.element;var b=J(a).toString();b in this.ka?delete this.ka[b]:this.X&&this.X.remove(a);this.Zb(a);this.w();c=!1}},a);a.a=b}\r\nn.clear=function(a){if(a){for(var b in this.g)this.g[b].forEach(M);this.a||(this.g={},this.c={},this.f={})}else if(this.X){a=this.Zb;Wk(Tk(this.X),a,this);for(var c in this.ka)this.Zb(this.ka[c])}this.a&&this.a.clear();this.X&&this.X.clear();this.v.clear();this.ka={};U(this,new bl(\"clear\"));this.w()};n.nd=function(a,b){if(this.X)return Wk(Tk(this.X),a,b);if(this.a)return ed(this.a,a,b)};function Qi(a,b,c,d){a.X?Vk(a.X,b,c,d):a.a&&ed(a.a,c,d)}\r\nn.pd=function(){var a;this.a?a=this.a.a:this.X&&(a=Tk(this.X),sa(this.ka)||Pa(a,ra(this.ka)));return a};n.G=function(){return this.X.G()};\r\nn.vc=function(a){a=a.target;var b=J(a).toString(),c=a.S();if(c)if(c=c.G(),b in this.ka)delete this.ka[b],this.X&&this.X.Ha(c,a);else{if(this.X){var d=this.X,e=d.a[J(a)];lb([e.H,e.J,e.I,e.L],c)||(d.remove(a),d.Ha(c,a))}}else b in this.ka||(this.X&&this.X.remove(a),this.ka[b]=a);c=a.Pa();void 0!==c?(c=c.toString(),b in this.f?(delete this.f[b],this.c[c]=a):this.c[c]!==a&&(cl(this,a),this.c[c]=a)):b in this.f||(cl(this,a),this.f[b]=a);this.w();U(this,new bl(\"changefeature\",a))};\r\nfunction Pi(a,b,c,d){var e=a.v;b=a.W(b,c);var f,g;f=0;for(g=b.length;f<g;++f){var h=b[f];Vk(e,h,function(a){return hb(a.extent,h)})||(a.j.call(a,h,c,d),e.Ha(h,{extent:h.slice()}))}}n.Zb=function(a){var b=J(a).toString();this.g[b].forEach(M);delete this.g[b];var c=a.Pa();void 0!==c?delete this.c[c.toString()]:delete this.f[b];U(this,new bl(\"removefeature\",a))};function cl(a,b){for(var c in a.c)if(a.c[c]===b){delete a.c[c];break}}function bl(a,b){T.call(this,a);this.feature=b}B(bl,T);function dl(a,b){T.call(this,a);this.feature=b}B(dl,T);\r\nfunction el(a){ng.call(this,{handleDownEvent:fl,handleEvent:gl,handleUpEvent:hl});this.W=null;this.s=!1;this.Ga=a.source?a.source:null;this.ma=a.features?a.features:null;this.jd=a.snapTolerance?a.snapTolerance:12;this.P=a.type;this.c=il(this.P);this.wa=a.minPoints?a.minPoints:this.c===jl?3:2;this.va=a.maxPoints?a.maxPoints:Infinity;this.Ab=a.finishCondition?a.finishCondition:yb;var b=a.geometryFunction;if(!b)if(\"Circle\"===this.P)b=function(a,b){var c=b?b:new Mk([NaN,NaN]),g=a[0],h=a[1],k=g[0]-h[0],\r\ng=g[1]-h[1];Nk(c,a[0],Math.sqrt(k*k+g*g));return c};else{var c,b=this.c;b===kl?c=jc:b===ll?c=wk:b===jl&&(c=qc);b=function(a,b){var f=b;f?f.ea(a):f=new c(a);return f}}this.u=b;this.D=this.i=this.a=this.j=this.g=this.h=null;this.kd=a.clickTolerance?a.clickTolerance*a.clickTolerance:36;this.ba=new Y({source:new Xk({useSpatialIndex:!1,wrapX:a.wrapX?a.wrapX:!1}),style:a.style?a.style:ml()});this.Fa=a.geometryName;this.gd=a.condition?a.condition:jg;this.na=a.freehandCondition?a.freehandCondition:kg;R(this,\r\nLa(\"active\"),this.kb,this)}B(el,ng);function ml(){var a=Eh();return function(b){return a[b.S().$()]}}el.prototype.setMap=function(a){ng.prototype.setMap.call(this,a);this.kb()};function gl(a){this.c!==ll&&this.c!==jl||!this.na(a)||(this.s=!0);var b=!this.s;this.s&&a.type===qf?(nl(this,a),b=!1):a.type===pf?b=pl(this,a):a.type===jf&&(b=!1);return og.call(this,a)&&b}function fl(a){return this.gd(a)?(this.W=a.pixel,!0):this.s?(this.W=a.pixel,this.h||ql(this,a),!0):!1}\r\nfunction hl(a){this.s=!1;var b=this.W,c=a.pixel,d=b[0]-c[0],b=b[1]-c[1],c=!0;d*d+b*b<=this.kd&&(pl(this,a),this.h?this.c===rl?sl(this):tl(this,a)?this.Ab(a)&&sl(this):nl(this,a):(ql(this,a),this.c===kl&&sl(this)),c=!1);return c}\r\nfunction pl(a,b){if(a.h){var c=b.coordinate,d=a.g.S(),e;a.c===kl?e=a.a:a.c===jl?(e=a.a[0],e=e[e.length-1],tl(a,b)&&(c=a.h.slice())):(e=a.a,e=e[e.length-1]);e[0]=c[0];e[1]=c[1];a.u(a.a,d);a.j&&a.j.S().ea(c);d instanceof qc&&a.c!==jl?(a.i||(a.i=new kk(new wk(null))),0>=d.ja.length?d=null:(c=new ic(null),$b(c,d.c,d.o.slice(0,d.ja[0])),c.w(),d=c),c=a.i.S(),$b(c,d.c,d.o),c.w()):a.D&&(c=a.i.S(),c.ea(a.D));ul(a)}else d=b.coordinate.slice(),a.j?a.j.S().ea(d):(a.j=new kk(new jc(d)),ul(a));return!0}\r\nfunction tl(a,b){var c=!1;if(a.g){var d=!1,e=[a.h];a.c===ll?d=a.a.length>a.wa:a.c===jl&&(d=a.a[0].length>a.wa,e=[a.a[0][0],a.a[0][a.a[0].length-2]]);if(d)for(var d=b.map,f=0,g=e.length;f<g;f++){var h=e[f],k=ug(d,h),l=b.pixel,c=l[0]-k[0],k=l[1]-k[1],l=a.s&&a.na(b)?1:a.jd;if(c=Math.sqrt(c*c+k*k)<=l){a.h=h;break}}}return c}\r\nfunction ql(a,b){var c=b.coordinate;a.h=c;a.c===kl?a.a=c.slice():a.c===jl?(a.a=[[c.slice(),c.slice()]],a.D=a.a[0]):(a.a=[c.slice(),c.slice()],a.c===rl&&(a.D=a.a));a.D&&(a.i=new kk(new wk(a.D)));c=a.u(a.a);a.g=new kk;a.Fa&&mk(a.g,a.Fa);lk(a.g,c);ul(a);U(a,new dl(\"drawstart\",a.g))}\r\nfunction nl(a,b){var c=b.coordinate,d=a.g.S(),e,f;if(a.c===ll)a.h=c.slice(),f=a.a,f.push(c.slice()),e=f.length>a.va,a.u(f,d);else if(a.c===jl){f=a.a[0];f.push(c.slice());if(e=f.length>a.va)a.h=f[0];a.u(a.a,d)}ul(a);e&&sl(a)}\r\nfunction sl(a){var b=vl(a),c=a.a,d=b.S();a.c===ll?(c.pop(),a.u(c,d)):a.c===jl&&(c[0].pop(),c[0].push(c[0][0]),a.u(c,d));\"MultiPoint\"===a.P?lk(b,new yk([c])):\"MultiLineString\"===a.P?lk(b,new xk([c])):\"MultiPolygon\"===a.P&&lk(b,new zk([c]));U(a,new dl(\"drawend\",b));a.ma&&a.ma.push(b);a.Ga&&a.Ga.Fb(b)}function vl(a){a.h=null;var b=a.g;b&&(a.g=null,a.j=null,a.i=null,a.ba.da().clear(!0));return b}el.prototype.B=zb;\r\nfunction ul(a){var b=[];a.g&&b.push(a.g);a.i&&b.push(a.i);a.j&&b.push(a.j);a=a.ba.da();a.clear(!0);a.Gb(b)}el.prototype.kb=function(){var a=this.aa,b=this.get(\"active\");a&&b||vl(this);this.ba.setMap(b?a:null)};function il(a){var b;\"Point\"===a||\"MultiPoint\"===a?b=kl:\"LineString\"===a||\"MultiLineString\"===a?b=ll:\"Polygon\"===a||\"MultiPolygon\"===a?b=jl:\"Circle\"===a&&(b=rl);return b}var kl=\"Point\",ll=\"LineString\",jl=\"Polygon\",rl=\"Circle\";function wl(a,b,c,d,e,f,g,h,k,l,m){Sf.call(this,e,0);this.u=void 0!==m?m:!1;this.v=g;this.s=h;this.f=null;this.c={};this.g=b;this.l=d;this.i=f?f:e;this.a=[];this.Va=null;this.h=0;f=Qc(d,this.i);h=this.l.G();e=this.g.G();f=h?vb(f,h):f;if(0===ob(f))this.state=4;else if((h=a.G())&&(e?e=vb(e,h):e=h),h=d.O(this.i[0]),m=tb(f),d=Ub(c,a)(m,void 0,m.length),h=c.getPointResolution(h,m),m=Lb(c),void 0!==m&&(h*=m),m=Lb(a),void 0!==m&&(h/=m),d=a.getPointResolution(h,d)/h,isFinite(d)&&0<d&&(h/=d),d=h,!isFinite(d)||\r\n0>=d)this.state=4;else if(this.j=new Ji(a,c,f,e,d*(void 0!==l?l:.5)),0===this.j.f.length)this.state=4;else if(this.h=Xc(b,d),c=Li(this.j),e&&(a.b?(c[1]=ia(c[1],e[1],e[3]),c[3]=ia(c[3],e[1],e[3])):c=vb(c,e)),ob(c)){a=Rc(b,c,this.h);for(b=a.H;b<=a.I;b++)for(c=a.J;c<=a.L;c++)(l=k(this.h,b,c,g))&&this.a.push(l);0===this.a.length&&(this.state=4)}else this.state=4}B(wl,Sf);wl.prototype.R=function(){1==this.state&&(this.Va.forEach(M),this.Va=null);Sf.prototype.R.call(this)};\r\nwl.prototype.Z=function(a){if(void 0!==a){var b=J(a);if(b in this.c)return this.c[b];a=sa(this.c)?this.f:this.f.cloneNode(!1);return this.c[b]=a}return this.f};\r\nwl.prototype.Tc=function(){var a=[];this.a.forEach(function(b){b&&2==b.T()&&a.push({extent:Qc(this.g,b.V),image:b.Z()})},this);this.a.length=0;if(0===a.length)this.state=3;else{var b=this.i[0],c=Wc(this.l,b),d=\"number\"===typeof c?c:c[0],c=\"number\"===typeof c?c:c[1],b=this.l.O(b),e=this.g.O(this.h),f=Qc(this.l,this.i);this.f=Ii(d,c,this.v,e,this.g.G(),b,f,this.j,a,this.s,this.u);this.state=2}Tf(this)};\r\nwl.prototype.load=function(){if(0==this.state){this.state=1;Tf(this);var a=0;this.Va=[];this.a.forEach(function(b){var c=b.T();if(0==c||1==c){a++;var d;d=R(b,\"change\",function(){var c=b.T();if(2==c||3==c||4==c)M(d),a--,0===a&&(this.Va.forEach(M),this.Va=null,this.Tc())},this);this.Va.push(d)}},this);this.a.forEach(function(a){0==a.T()&&a.load()});0===a&&K.setTimeout(this.Tc.bind(this),0)}};function xl(a,b){var c=/\\{z\\}/g,d=/\\{x\\}/g,e=/\\{y\\}/g,f=/\\{-y\\}/g;return function(g){if(g)return a.replace(c,g[0].toString()).replace(d,g[1].toString()).replace(e,function(){return(-g[2]-1).toString()}).replace(f,function(){var a=b.a?b.a[g[0]]:null;L(a,55);return(a.L-a.J+1+g[2]).toString()})}}function yl(a,b){for(var c=a.length,d=Array(c),e=0;e<c;++e)d[e]=xl(a[e],b);return zl(d)}function zl(a){return 1===a.length?a[0]:function(b,c,d){if(b)return a[la((b[1]<<b[0])+b[2],a.length)](b,c,d)}}\r\nfunction Al(){};function Bl(a){Xj.call(this);this.g=void 0!==a?a:2048}B(Bl,Xj);function Cl(a){return a.f>a.g}Bl.prototype.Oa=function(a){for(var b,c;Cl(this);){b=this.b.Na;c=b.V[0].toString();var d;if(d=c in a)b=b.V,d=Hc(a[c],b[1],b[2]);if(d)break;else Da(this.pop())}};function Dl(a){vf.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state,wrapX:a.wrapX});this.u=void 0!==a.opaque?a.opaque:!1;this.aa=void 0!==a.tilePixelRatio?a.tilePixelRatio:1;this.tileGrid=void 0!==a.tileGrid?a.tileGrid:null;this.a=new Bl(a.cacheSize);this.g=[0,0];this.Ia=\"\"}B(Dl,vf);n=Dl.prototype;n.Mc=function(){return Cl(this.a)};n.Oa=function(a,b){var c=this.fb(a);c&&c.Oa(b)};\r\nfunction Sh(a,b,c,d,e){b=a.fb(b);if(!b)return!1;for(var f=!0,g,h,k=d.H;k<=d.I;++k)for(var l=d.J;l<=d.L;++l)g=a.ob(c,k,l),h=!1,Uj(b,g)&&(g=b.get(g),(h=2===g.T())&&(h=!1!==e(g))),h||(f=!1);return f}n.nb=function(){return 0};n.getKey=function(){return this.Ia};n.ob=function(a,b,c){return a+\"/\"+b+\"/\"+c};n.Qb=function(){return this.u};n.sa=function(a){return this.tileGrid?this.tileGrid:Zc(a)};n.fb=function(a){var b=this.ia();return b&&!Tb(b,a)?null:this.a};n.pb=function(){return this.aa};\r\nfunction Ni(a,b,c,d){d=a.sa(d);c=a.pb(c);b=Lc(Wc(d,b),a.g);return 1==c?b:Kc(b,c,a.g)}function El(a,b,c){var d=void 0!==c?c:a.ia();c=a.sa(d);if(a.i&&d.c){var e=b;b=e[0];a=Vc(c,e);var d=$c(d),f=a[0],g=a[1];d[0]<=f&&f<=d[2]&&d[1]<=g&&g<=d[3]?b=e:(e=qb(d),a[0]+=e*Math.ceil((d[0]-a[0])/e),b=Yc(c,a,b))}d=b[0];a=b[1];e=b[2];c=c.minZoom>d||d>c.maxZoom?!1:(c=(f=c.G())?Rc(c,f,d):c.a?c.a[d]:null)?Hc(c,a,e):!0;return c?b:null}n.Ja=function(){this.a.clear();this.w()};n.Vc=I;\r\nfunction Fl(a,b){T.call(this,a);this.tile=b}B(Fl,T);function Gl(a){Dl.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tilePixelRatio:a.tilePixelRatio,wrapX:a.wrapX});this.tileLoadFunction=a.tileLoadFunction;this.tileUrlFunction=this.f?this.f.bind(this):Al;this.urls=null;if(a.urls){var b=a.urls;this.urls=b;var c=b.join(\"\\n\");Hl(this,this.f?this.f.bind(this):yl(b,this.tileGrid),c)}else a.url&&this.s(a.url);a.tileUrlFunction&&Hl(this,a.tileUrlFunction)}\r\nB(Gl,Dl);Gl.prototype.v=function(a){a=a.target;switch(a.T()){case 1:U(this,new Fl(\"tileloadstart\",a));break;case 2:U(this,new Fl(\"tileloadend\",a));break;case 3:U(this,new Fl(\"tileloaderror\",a))}};function Hl(a,b,c){a.tileUrlFunction=b;\"undefined\"!==typeof c?a.Ia!==c&&(a.Ia=c,a.w()):a.w()}\r\nGl.prototype.s=function(a){var b=[],c=/\\{(\\d)-(\\d)\\}/.exec(a)||/\\{([a-z])-([a-z])\\}/.exec(a);if(c){var d=c[2].charCodeAt(0),e;for(e=c[1].charCodeAt(0);e<=d;++e)b.push(a.replace(c[0],String.fromCharCode(e)))}else b.push(a);b=this.urls=b;Hl(this,this.f?this.f.bind(this):yl(b,this.tileGrid),a)};Gl.prototype.Vc=function(a,b,c){a=this.ob(a,b,c);Uj(this.a,a)&&this.a.get(a)};function Il(a){Gl.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:Jl,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:a.wrapX});this.crossOrigin=void 0!==a.crossOrigin?a.crossOrigin:null;this.tileClass=void 0!==a.tileClass?a.tileClass:Ok;this.c={};this.j={};this.W=a.reprojectionErrorThreshold}\r\nB(Il,Gl);n=Il.prototype;n.Mc=function(){if(Cl(this.a))return!0;for(var a in this.c)if(Cl(this.c[a]))return!0;return!1};n.Oa=function(a,b){var c=this.fb(a);this.a.Oa(this.a==c?b:{});for(var d in this.c){var e=this.c[d];e.Oa(e==c?b:{})}};n.nb=function(a){return this.ia()&&a&&Tb(this.ia(),a),0};n.Qb=function(a){return this.ia()&&a&&!Tb(this.ia(),a)?!1:Gl.prototype.Qb.call(this,a)};\r\nn.sa=function(a){var b=this.ia();return!this.tileGrid||b&&!Tb(b,a)?(b=J(a).toString(),b in this.j||(this.j[b]=Zc(a)),this.j[b]):this.tileGrid};n.fb=function(a){var b=this.ia();if(!b||Tb(b,a))return this.a;a=J(a).toString();a in this.c||(this.c[a]=new Bl);return this.c[a]};function Kl(a,b,c,d,e,f,g){b=[b,c,d];e=(c=El(a,b,f))?a.tileUrlFunction(c,e,f):void 0;e=new a.tileClass(b,void 0!==e?0:4,void 0!==e?e:\"\",a.crossOrigin,a.tileLoadFunction);e.key=g;R(e,\"change\",a.v,a);return e}\r\nfunction $h(a,b,c,d,e,f){if(a.ia()&&f&&!Tb(a.ia(),f)){var g=a.fb(f);d=[b,c,d];var h;b=a.ob.apply(a,d);Uj(g,b)&&(h=g.get(b));c=a.getKey();if(h&&h.key==c)return h;var k=a.ia(),l=a.sa(k),m=a.sa(f),p=El(a,d,f);a=new wl(k,l,f,m,d,p,a.pb(e),0,function(a,b,c,d){return Ll(this,a,b,c,d,k)}.bind(a),a.W,!1);a.key=c;h?(a.b=h,Zj(g,b,a)):g.set(b,a);return a}return Ll(a,b,c,d,e,f)}\r\nfunction Ll(a,b,c,d,e,f){var g,h=a.ob(b,c,d),k=a.getKey();if(Uj(a.a,h)){if(g=a.a.get(h),g.key!=k){var l=g;g.b&&g.b.key==k?(g=g.b,2==l.T()&&(g.b=l)):(g=Kl(a,b,c,d,e,f,k),2==l.T()?g.b=l:l.b&&2==l.b.T()&&(g.b=l.b,l.b=null));g.b&&(g.b.b=null);Zj(a.a,h,g)}}else g=Kl(a,b,c,d,e,f,k),a.a.set(h,g);return g}function Jl(a,b){a.Z().src=b};function Ml(a){a=a||{};var b=void 0!==a.projection?a.projection:\"EPSG:3857\",c;if(void 0!==a.tileGrid)c=a.tileGrid;else{c={extent:$c(b),maxZoom:a.maxZoom,minZoom:a.minZoom,tileSize:a.tileSize};var d={};pa(d,void 0!==c?c:{});void 0===d.extent&&(d.extent=Hb(\"EPSG:3857\").G());d.resolutions=ad(d.extent,d.maxZoom,d.tileSize);delete d.maxZoom;c=new Mc(d)}Il.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:a.opaque,projection:b,reprojectionErrorThreshold:a.reprojectionErrorThreshold,\r\ntileGrid:c,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0})}B(Ml,Il);function Nl(a,b){var c=[];Object.keys(b).forEach(function(a){null!==b[a]&&void 0!==b[a]&&c.push(a+\"=\"+encodeURIComponent(b[a]))});var d=c.join(\"&\");a=a.replace(/[?&]$/,\"\");a=-1===a.indexOf(\"?\")?a+\"?\":a+\"&\";return a+d};function Ol(a){a=a||{};var b;void 0!==a.attributions?b=a.attributions:b=[Pl];Ml.call(this,{attributions:b,cacheSize:a.cacheSize,crossOrigin:void 0!==a.crossOrigin?a.crossOrigin:\"anonymous\",opaque:void 0!==a.opaque?a.opaque:!0,maxZoom:void 0!==a.maxZoom?a.maxZoom:19,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:\"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png\",wrapX:a.wrapX})}B(Ol,Ml);var Pl=new bd({html:'© <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors.'});function Ql(a){a=a||{};Il.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.B=a.params||{};this.ba=db()}B(Ql,Il);Ql.prototype.pb=function(a){return a};\r\nQl.prototype.f=function(a,b,c){var d=this.tileGrid;d||(d=this.sa(c));if(!(d.b.length<=a[0])){var e=Qc(d,a,this.ba),f=Lc(Wc(d,a[0]),this.g);1!=b&&(f=Kc(f,b,this.g));d={F:\"image\",FORMAT:\"PNG32\",TRANSPARENT:!0};pa(d,this.B);var g=this.urls;g?(c=c.ya.split(\":\").pop(),d.SIZE=f[0]+\",\"+f[1],d.BBOX=e.join(\",\"),d.BBOXSR=c,d.IMAGESR=c,d.DPI=Math.round(d.DPI?d.DPI*b:90*b),a=1==g.length?g[0]:g[la((a[1]<<a[0])+a[2],g.length)],b=a.replace(/MapServer\\/?$/,\"MapServer/export\").replace(/ImageServer\\/?$/,\"ImageServer/exportImage\"),\r\nb==a&&L(!1,50),d=Nl(b,d)):d=void 0;return d}};function Rl(a){this.j=this.l=this.f=null;this.i=void 0!==a.fill?a.fill:null;this.M=[0,0];this.b=a.points;this.c=void 0!==a.radius?a.radius:a.radius1;this.g=void 0!==a.radius2?a.radius2:this.c;this.h=void 0!==a.angle?a.angle:0;this.a=void 0!==a.stroke?a.stroke:null;this.D=this.Y=this.u=null;var b=a.atlasManager,c=\"\",d=\"\",e=0,f=null,g,h=0;this.a&&(g=nd(this.a.a),h=this.a.c,void 0===h&&(h=1),f=this.a.b,pe||(f=null),d=this.a.g,void 0===d&&(d=\"round\"),c=this.a.f,void 0===c&&(c=\"round\"),e=this.a.h,void 0===\r\ne&&(e=10));var k=2*(this.c+h)+1,c={strokeStyle:g,jb:h,size:k,lineCap:c,lineDash:f,lineJoin:d,miterLimit:e};if(void 0===b){var l=Md(k,k);this.l=l.canvas;b=k=this.l.width;this.Qc(c,l,0,0);this.i?this.j=this.l:(l=Md(c.size,c.size),this.j=l.canvas,this.Pc(c,l,0,0))}else k=Math.round(k),(d=!this.i)&&(l=this.Pc.bind(this,c)),e=this.a?qh(this.a):\"-\",f=this.i?rh(this.i):\"-\",this.f&&e==this.f[1]&&f==this.f[2]&&this.c==this.f[3]&&this.g==this.f[4]&&this.h==this.f[5]&&this.b==this.f[6]||(this.f=[\"r\"+e+f+(void 0!==\r\nthis.c?this.c.toString():\"-\")+(void 0!==this.g?this.g.toString():\"-\")+(void 0!==this.h?this.h.toString():\"-\")+(void 0!==this.b?this.b.toString():\"-\"),e,f,this.c,this.g,this.h,this.b]),l=b.add(this.f[0],k,k,this.Qc.bind(this,c),l),this.l=l.image,this.M=[l.offsetX,l.offsetY],b=l.image.width,d?this.j=l.Nd:this.j=this.l;this.u=[k/2,k/2];this.Y=[k,k];this.D=[b,b];oh.call(this,{opacity:1,rotateWithView:void 0!==a.rotateWithView?a.rotateWithView:!1,rotation:void 0!==a.rotation?a.rotation:0,scale:1,snapToPixel:void 0!==\r\na.snapToPixel?a.snapToPixel:!0})}B(Rl,oh);n=Rl.prototype;n.eb=function(){return this.u};n.ub=function(){return this.j};n.Z=function(){return this.l};n.Ob=function(){return this.D};n.ib=function(){return 2};n.pa=function(){return this.M};n.Ka=function(){return this.Y};n.Vb=I;n.load=I;n.bc=I;\r\nn.Qc=function(a,b,c,d){var e;b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.g!==this.c&&(this.b*=2);for(c=0;c<=this.b;c++)d=2*c*Math.PI/this.b-Math.PI/2+this.h,e=0===c%2?this.c:this.g,b.lineTo(a.size/2+e*Math.cos(d),a.size/2+e*Math.sin(d));this.i&&(b.fillStyle=qd(this.i.b),b.fill());this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.lineCap=a.lineCap,b.lineJoin=a.lineJoin,b.miterLimit=a.miterLimit,b.stroke());b.closePath()};\r\nn.Pc=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.g!==this.c&&(this.b*=2);var e;for(c=0;c<=this.b;c++)e=2*c*Math.PI/this.b-Math.PI/2+this.h,d=0===c%2?this.c:this.g,b.lineTo(a.size/2+d*Math.cos(e),a.size/2+d*Math.sin(e));b.fillStyle=kh;b.fill();this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.jb,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};y(\"ol.format.GeoJSON\",Gk);Gk.prototype.readFeatures=Gk.prototype.a;Gk.prototype.readFeature=Gk.prototype.g;y(\"ol.format.EsriJSON\",Ak);Ak.prototype.readFeatures=Ak.prototype.a;Ak.prototype.readFeature=Ak.prototype.g;y(\"ol.style.Style\",yh);y(\"ol.style.Circle\",ph);y(\"ol.style.RegularShape\",Rl);y(\"ol.style.Fill\",sh);y(\"ol.style.Stroke\",xh);y(\"ol.style.Icon\",Lk);\r\ny(\"ol.style.Text\",function(a){a=a||{};this.b=a.font;this.h=a.rotation;this.g=a.rotateWithView;this.l=a.scale;this.j=a.text;this.C=a.textAlign;this.K=a.textBaseline;this.f=void 0!==a.fill?a.fill:new sh({color:\"#333\"});this.i=void 0!==a.stroke?a.stroke:null;this.a=void 0!==a.offsetX?a.offsetX:0;this.c=void 0!==a.offsetY?a.offsetY:0});y(\"ol.View\",uc);uc.prototype.on=uc.prototype.Y;uc.prototype.getZoom=uc.prototype.rd;uc.prototype.setZoom=uc.prototype.ye;uc.prototype.getCenter=uc.prototype.qa;\r\nuc.prototype.setCenter=uc.prototype.xa;uc.prototype.calculateExtent=uc.prototype.lc;uc.prototype.getProjection=uc.prototype.ia;uc.prototype.fit=uc.prototype.md;y(\"ol.control.defaults\",ee);y(\"ol.layer.Tile\",W);W.prototype.getVisible=W.prototype.gb;W.prototype.setVisible=W.prototype.Cc;W.prototype.getZIndex=W.prototype.Yb;W.prototype.setZIndex=W.prototype.Dc;W.prototype.getOpacity=W.prototype.Xb;W.prototype.setOpacity=W.prototype.Bc;W.prototype.getSource=W.prototype.da;W.prototype.setSource=W.prototype.$b;\r\nW.prototype.on=W.prototype.Y;y(\"ol.layer.Vector\",Y);Y.prototype.getVisible=Y.prototype.gb;Y.prototype.setVisible=Y.prototype.Cc;Y.prototype.getSource=Y.prototype.da;Y.prototype.setStyle=Y.prototype.v;Y.prototype.getZIndex=Y.prototype.Yb;Y.prototype.setZIndex=Y.prototype.Dc;Y.prototype.getOpacity=Y.prototype.Xb;Y.prototype.setOpacity=Y.prototype.Bc;Y.prototype.getSource=Y.prototype.da;Y.prototype.setSource=Y.prototype.$b;Y.prototype.on=Y.prototype.Y;y(\"ol.source.OSM\",Ol);Ol.prototype.refresh=Ol.prototype.Ja;\r\ny(\"ol.source.XYZ\",Ml);Ml.prototype.refresh=Ml.prototype.Ja;Ml.prototype.setUrl=Ml.prototype.s;Ml.prototype.refresh=Ml.prototype.Ja;y(\"ol.Map\",Z);Z.prototype.on=Z.prototype.Y;Z.prototype.getTarget=Z.prototype.Wb;Z.prototype.getTargetElement=Z.prototype.Ra;Z.prototype.getView=Z.prototype.U;Z.prototype.addOverlay=Z.prototype.fd;Z.prototype.addLayer=Z.prototype.ed;Z.prototype.removeLayer=Z.prototype.te;Z.prototype.getEventPixel=Z.prototype.uc;Z.prototype.hasFeatureAtPixel=Z.prototype.Md;\r\nZ.prototype.getSize=Z.prototype.Ta;Z.prototype.updateSize=Z.prototype.yb;Z.prototype.forEachFeatureAtPixel=Z.prototype.od;Z.prototype.addInteraction=Z.prototype.dd;Z.prototype.removeInteraction=Z.prototype.se;Z.prototype.beforeRender=Z.prototype.oa;Z.prototype.addControl=Z.prototype.cd;Z.prototype.once=Z.prototype.hd;Z.prototype.renderSync=Z.prototype.we;y(\"ol.source.Vector\",Xk);Xk.prototype.getFeatures=Xk.prototype.pd;Xk.prototype.getExtent=Xk.prototype.G;Xk.prototype.refresh=Xk.prototype.Ja;\r\nXk.prototype.addFeatures=Xk.prototype.Gb;Xk.prototype.addFeature=Xk.prototype.Fb;Xk.prototype.clear=Xk.prototype.clear;Xk.prototype.forEachFeature=Xk.prototype.nd;Xk.prototype.refresh=Xk.prototype.Ja;y(\"ol.source.TileArcGISRest\",Ql);Ql.prototype.refresh=Ql.prototype.Ja;y(\"ol.Overlay\",gk);gk.prototype.setPosition=gk.prototype.Ac;y(\"ol.Feature\",kk);kk.prototype.getProperties=kk.prototype.Ea;kk.prototype.setProperties=kk.prototype.l;kk.prototype.getGeometry=kk.prototype.S;y(\"ol.geom.Point\",jc);\r\njc.prototype.transform=jc.prototype.transform;jc.prototype.getCoordinates=jc.prototype.za;jc.prototype.getExtent=jc.prototype.G;y(\"ol.geom.Polygon\",qc);qc.prototype.getCoordinates=qc.prototype.za;qc.prototype.getExtent=qc.prototype.G;qc.prototype.transform=qc.prototype.transform;y(\"ol.geom.LineString\",wk);wk.prototype.getCoordinates=wk.prototype.za;wk.prototype.getExtent=wk.prototype.G;wk.prototype.transform=wk.prototype.transform;y(\"ol.proj.Projection\",Eb);Eb.prototype.getCode=Eb.prototype.l;\r\ny(\"ol.interaction.Draw\",el);el.prototype.on=el.prototype.Y;y(\"ol.animation.pan\",Dc);y(\"ol.control.FullScreen\",Xd);y(\"ol.easing.inAndOut\",Bc);\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/custom-ol/ol/ol-build.js\n ** module id = 5\n ** module chunks = 0 2 3 7\n **/","/*!\n * jQuery JavaScript Library v2.2.3\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-04-05T19:26Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\"use strict\";\nvar arr = [];\n\nvar document = window.document;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"2.2.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\tvar realStringObj = obj && obj.toString();\n\t\treturn !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Not own constructor property must be Object\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj, \"constructor\" ) &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype || {}, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf( \"use strict\" ) === 1 ) {\n\t\t\t\tscript = document.createElement( \"script\" );\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\n\t\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t\t// and removal by using an indirect global eval\n\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\n// JSHint would error on this code due to the Symbol not being defined in ES5.\n// Defining this global in .jshintrc would create a danger of using the global\n// unguarded in another place, it seems safer to just disable JSHint for these\n// three lines.\n/* jshint ignore: start */\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n/* jshint ignore: end */\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, nidselect, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rescape, \"\\\\$&\" );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\tnidselect = ridentifier.test( nid ) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = nidselect + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( (parent = document.defaultView) && parent.top !== parent ) {\n\t\t// Support: IE 11\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( document.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\treturn m ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( (oldCache = uniqueCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/ );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && ( pos ?\n\t\t\t\t\tpos.index( cur ) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnotwhite = ( /\\S+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ) ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis === promise ? newDefer.promise() : this,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add( function() {\n\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 ||\n\t\t\t\t( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred.\n\t\t\t// If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) )\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n} );\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n} );\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called\n\t\t// after the browser event has already occurred.\n\t\t// Support: IE9-10 only\n\t\t// Older IE sometimes signals \"interactive\" too soon\n\t\tif ( document.readyState === \"complete\" ||\n\t\t\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\twindow.setTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tregister: function( owner, initial ) {\n\t\tvar value = initial || {};\n\n\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t// use plain assignment\n\t\tif ( owner.nodeType ) {\n\t\t\towner[ this.expando ] = value;\n\n\t\t// Otherwise secure it in a non-enumerable, non-writable property\n\t\t// configurability must be true to allow the property to be\n\t\t// deleted with the delete operator\n\t\t} else {\n\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\tvalue: value,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true\n\t\t\t} );\n\t\t}\n\t\treturn owner[ this.expando ];\n\t},\n\tcache: function( owner ) {\n\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return an empty object.\n\t\tif ( !acceptData( owner ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\t\t\towner[ this.expando ] && owner[ this.expando ][ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase( key ) );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.register( owner );\n\n\t\t} else {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <= 35-45+\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=378607\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data, camelKey;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = dataUser.get( elem, key ) ||\n\n\t\t\t\t\t// Try to find dashed key if it exists (gh-2779)\n\t\t\t\t\t// This is for 2.2.x only\n\t\t\t\t\tdataUser.get( elem, key.replace( rmultiDash, \"-$&\" ).toLowerCase() );\n\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = dataUser.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tcamelKey = jQuery.camelCase( key );\n\t\t\tthis.each( function() {\n\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = dataUser.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdataUser.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf( \"-\" ) > -1 && data !== undefined ) {\n\t\t\t\t\tdataUser.set( this, key, value );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" ||\n\t\t\t!jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() { return tween.cur(); } :\n\t\t\tfunction() { return jQuery.css( elem, prop, \"\" ); },\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([\\w:-]+)/ );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE9\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE9-11+\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret = typeof context.getElementsByTagName !== \"undefined\" ?\n\t\t\tcontext.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== \"undefined\" ?\n\t\t\t\tcontext.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0-4.3, Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE9\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Support (at least): Chrome, IE9\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t//\n\t\t// Support: Firefox<=42+\n\t\t// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)\n\t\tif ( delegateCount && cur.nodeType &&\n\t\t\t( event.type !== \"click\" || isNaN( event.button ) || event.button < 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== \"click\" ) ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matches } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: ( \"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase \" +\n\t\t\"metaKey relatedTarget shiftKey target timeStamp view which\" ).split( \" \" ),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split( \" \" ),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: ( \"button buttons clientX clientY offsetX offsetY pageX pageY \" +\n\t\t\t\"screenX screenY toElement\" ).split( \" \" ),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX +\n\t\t\t\t\t( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -\n\t\t\t\t\t( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY +\n\t\t\t\t\t( doc && doc.scrollTop || body && body.scrollTop || 0 ) -\n\t\t\t\t\t( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://code.google.com/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi,\n\n\t// Support: IE 10-11, Edge 10240+\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName( \"tbody\" )[ 0 ] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement( \"tbody\" ) ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\n\t// Keep domManip exposed until 3.0 (gh-2225)\n\tdomManip: domManip,\n\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\n\nvar iframe,\n\telemdisplay = {\n\n\t\t// Support: Firefox\n\t\t// We have to pre-define these values for FF (#10227)\n\t\tHTML: \"block\",\n\t\tBODY: \"block\"\n\t};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\tdisplay = jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" ) )\n\t\t\t\t.appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = iframe[ 0 ].contentDocument;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\nvar rmargin = ( /^margin/ );\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar documentElement = document.documentElement;\n\n\n\n( function() {\n\tvar pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE9-11+\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tcontainer.style.cssText = \"border:0;width:8px;height:0;top:0;left:-9999px;\" +\n\t\t\"padding:0;margin-top:1px;position:absolute\";\n\tcontainer.appendChild( div );\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\t\tdiv.style.cssText =\n\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;\" +\n\t\t\t\"position:relative;display:block;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"top:1%;width:50%\";\n\t\tdiv.innerHTML = \"\";\n\t\tdocumentElement.appendChild( container );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\t\treliableMarginLeftVal = divStyle.marginLeft === \"2px\";\n\t\tboxSizingReliableVal = divStyle.width === \"4px\";\n\n\t\t// Support: Android 4.0 - 4.3 only\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.marginRight = \"50%\";\n\t\tpixelMarginRightVal = divStyle.marginRight === \"4px\";\n\n\t\tdocumentElement.removeChild( container );\n\t}\n\n\tjQuery.extend( support, {\n\t\tpixelPosition: function() {\n\n\t\t\t// This test is executed only once but we still do memoizing\n\t\t\t// since we can use the boxSizingReliable pre-computing.\n\t\t\t// No need to check if the test was already performed, though.\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\tboxSizingReliable: function() {\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelMarginRight: function() {\n\n\t\t\t// Support: Android 4.0-4.3\n\t\t\t// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal\n\t\t\t// since that compresses better and they're computed together anyway.\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn pixelMarginRightVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\n\t\t\t// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\treliableMarginRight: function() {\n\n\t\t\t// Support: Android 2.3\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t// This support function is only executed once so no memoizing is needed.\n\t\t\tvar ret,\n\t\t\t\tmarginDiv = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\tmarginDiv.style.cssText = div.style.cssText =\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;box-sizing:content-box;\" +\n\t\t\t\t\"display:block;margin:0;border:0;padding:0\";\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\t\t\tdocumentElement.appendChild( container );\n\n\t\t\tret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );\n\n\t\t\tdocumentElement.removeChild( container );\n\t\t\tdiv.removeChild( marginDiv );\n\n\t\t\treturn ret;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;\n\n\t// Support: Opera 12.1x only\n\t// Fall back to style even without computed\n\t// computed is undefined for elems on document fragments\n\tif ( ( ret === \"\" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\tret = jQuery.style( elem, name );\n\t}\n\n\t// Support: IE9\n\t// getPropertyValue is only needed for .css('filter') (#12537)\n\tif ( computed ) {\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// http://dev.w3.org/csswg/cssom/#resolved-values\n\t\tif ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE9-11+\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// At this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// At this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// At this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// Support: IE11 only\n\t// In IE 11 fullscreen elements inside of an iframe have\n\t// 100x too small dimensions (gh-1764).\n\tif ( document.msFullscreenElement && window.top !== window ) {\n\n\t\t// Support: IE11 only\n\t\t// Running getBoundingClientRect on a disconnected node\n\t\t// in IE throws an error.\n\t\tif ( elem.getClientRects().length ) {\n\t\t\tval = Math.round( elem.getBoundingClientRect()[ name ] * 100 );\n\t\t}\n\t}\n\n\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test( val ) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// Use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = dataPriv.get( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = dataPriv.access(\n\t\t\t\t\telem,\n\t\t\t\t\t\"olddisplay\",\n\t\t\t\t\tdefaultDisplay( elem.nodeName )\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display !== \"none\" || !hidden ) {\n\t\t\t\tdataPriv.set(\n\t\t\t\t\telem,\n\t\t\t\t\t\"olddisplay\",\n\t\t\t\t\thidden ? display : jQuery.css( elem, \"display\" )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t\"float\": \"cssFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tstyle[ name ] = value;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\t\t\t\t\telem.offsetWidth === 0 ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = extra && getStyles( elem ),\n\t\t\t\tsubtract = extra && augmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ name ] = value;\n\t\t\t\tvalue = jQuery.css( elem, name );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// Support: Android 2.3\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE9\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE9-10 do not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tdataPriv.get( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\t\t\tstyle.display = \"inline-block\";\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show\n\t\t\t\t// and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// Store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done( function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t} );\n\t\t}\n\t\tanim.done( function() {\n\t\t\tvar prop;\n\n\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t} );\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( ( display === \"none\" ? defaultDisplay( elem.nodeName ) : display ) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( jQuery.isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tjQuery.proxy( result.stop, result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnotwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ?\n\t\topt.duration : opt.duration in jQuery.fx.speeds ?\n\t\t\tjQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\twindow.clearInterval( timerId );\n\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: iOS<=5.1, Android<=4.2+\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE<=11+\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: Android<=2.3\n\t// Options inside disabled selects are incorrectly marked as disabled\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<=11+\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tjQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle;\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ name ];\n\t\t\tattrHandle[ name ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tname.toLowerCase() :\n\t\t\t\tnull;\n\t\t\tattrHandle[ name ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\t\trclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t\t0 :\n\t\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnotwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + curValue + \" \" ).replace( rclass, \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnotwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + curValue + \" \" ).replace( rclass, \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( type === \"string\" ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + getClass( elem ) + \" \" ).replace( rclass, \" \" )\n\t\t\t\t\t.indexOf( className ) > -1\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g,\n\trspaces = /[\\x20\\t\\r\\n\\f]+/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\n\t\t\t\t\t// Handle most common string cases\n\t\t\t\t\tret.replace( rreturn, \"\" ) :\n\n\t\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) ).replace( rspaces, \" \" );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ?\n\t\t\t\t\t\t\t\t!option.disabled : option.getAttribute( \"disabled\" ) === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\n\t\t\t\t// Previously, `originalEvent: {}` was set here, so stopPropagation call\n\t\t\t\t// would not be triggered on donor event, since in our own\n\t\t\t\t// jQuery.event.stopPropagation function we had a check for existence of\n\t\t\t\t// originalEvent.stopPropagation method, so, consequently it would be a noop.\n\t\t\t\t//\n\t\t\t\t// But now, this \"simulate\" function is used only for events\n\t\t\t\t// for which stopPropagation() is noop, so there is no need for that anymore.\n\t\t\t\t//\n\t\t\t\t// For the 1.x branch though, guard for \"click\" and \"submit\"\n\t\t\t\t// events is still used, but was moved to jQuery.event.stopPropagation function\n\t\t\t\t// because `originalEvent` should point to the original event for the constancy\n\t\t\t\t// with other events and for more focused logic\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\n// Support: Firefox\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome, Safari\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = jQuery.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Support: Android 2.3\n// Workaround failure to string-cast null input\njQuery.parseJSON = function( data ) {\n\treturn JSON.parse( data + \"\" );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE9\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" ).replace( rhash, \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE8-11+\n\t\t\t// IE throws exception if url is malformed, e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE8-11+\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapAll( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( this[ 0 ] ) {\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each( function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t} ).end();\n\t}\n} );\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\treturn !jQuery.expr.filters.visible( elem );\n};\njQuery.expr.filters.visible = function( elem ) {\n\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\t// Use OR instead of AND as the element is not visible if either is true\n\t// See tickets #10406 and #13132\n\treturn elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t} ) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE9\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE9\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = callback( \"error\" );\n\n\t\t\t\t// Support: IE9\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = jQuery.trim( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\telem = this[ 0 ],\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\tbox = elem.getBoundingClientRect();\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top + win.pageYOffset - docElem.clientTop,\n\t\t\tleft: box.left + win.pageXOffset - docElem.clientLeft\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n\t\t// because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume getBoundingClientRect is there when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari<7-8+, Chrome<37-44+\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\tsize: function() {\n\t\treturn this.length;\n\t}\n} );\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\nreturn jQuery;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/jquery/dist/jquery.js\n ** module id = 6\n ** module chunks = 0 2 3 4 5 7 8\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport MapMoveCls from './mapMoveCls';\r\n\r\n/**\r\n * The single map move object catch is that it is common to multimap pages\r\n * @type {MapMoveCls}\r\n */\r\n\r\nexport const mapMove = new MapMoveCls();\r\nexport default mapMove;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapMove.ts\n **/","import LayerBaseVector from \"../layers/LayerBaseVector\";\r\nimport MapInteractionBase from './mapInteractionBase';\r\nimport * as checkDefined from '../util/checkDefined';\r\nimport provide from '../util/provide';\r\nimport makeGuid from '../util/makeGuid';\r\nimport ol from 'custom-ol';\r\nimport Timer = NodeJS.Timer;\r\nconst $ = require('jquery');\r\nconst nm = provide('olHelpers');\r\n\r\n\r\nexport interface extentObject{\r\n minX: number;\r\n minY: number;\r\n maxX: number;\r\n maxY: number;\r\n}\r\n\r\nexport interface mapMoveCallbackFunction{\r\n /**\r\n *\r\n * @param extent extent as predefined object minX, minX, maxX, maxY\r\n * @param zoomLevel current zoom level\r\n * @param evtType the event type 'change:center', 'change:resolution'\r\n */\r\n (extent: extentObject, zoomLevel: number, evtType?: string): any\r\n}\r\n\r\n\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nexport class MapMoveCls extends MapInteractionBase {\r\n _mapExtent: extentObject;\r\n _zoomLevel: number;\r\n _lookupLayer: Object;\r\n _arrLayer: Array<LayerBaseVector>;\r\n _arrLyrTimeout: Array<Timer>;\r\n _mapMoveCallbackTimeout: Array<Timer>;\r\n _mapMoveCallbackDelays: Array<number>;\r\n _mapMoveCallbacksLookup: Object;\r\n _mapMoveCallbackContext: Array<Object>;\r\n _mapMoveCallbacks: Array<mapMoveCallbackFunction>;\r\n _arrLyrRequest: Array<any>;\r\n\r\n /**\r\n * constructor called implicitly\r\n */\r\n constructor() {\r\n super('map move');\r\n this._arrLyrRequest = [];\r\n this._arrLyrTimeout = [];\r\n this._arrLayer = [];\r\n this._lookupLayer = {};\r\n\r\n this._mapMoveCallbacks = [];\r\n this._mapMoveCallbacksLookup = {};\r\n this._mapMoveCallbackDelays = [];\r\n this._mapMoveCallbackContext = [];\r\n this._mapMoveCallbackTimeout = [];\r\n\r\n this._mapExtent = undefined;\r\n this._zoomLevel = undefined;\r\n\r\n }\r\n\r\n /**\r\n * initialize the map move object\r\n * @param theMap - the ol map\r\n */\r\n init(theMap: ol.Map){\r\n super.init(theMap);\r\n\r\n this.map.getView().on(['change:center', 'change:resolution'], (e) =>{\r\n\r\n this._updateMapExtent();\r\n\r\n // trigger the layer updates\r\n for (let i = 0; i < this._arrLayer.length; i++) {\r\n this.triggerLyrLoad(this._arrLayer[i], i, e.type);\r\n }\r\n\r\n // trigger the map callbacks\r\n for (let i = 0; i < this._mapMoveCallbacks.length; i++) {\r\n this.triggerMoveCallback(i, e.type);\r\n }\r\n });\r\n }\r\n\r\n _updateMapExtent() {\r\n let theView = this.map.getView();\r\n this._zoomLevel = theView.getZoom();\r\n\r\n let extentArray = theView.calculateExtent(this.map.getSize());\r\n\r\n this._mapExtent = {\r\n minX: extentArray[0],\r\n minY: extentArray[1],\r\n maxX: extentArray[2],\r\n maxY: extentArray[3]\r\n };\r\n }\r\n\r\n /**\r\n * return the map extent\r\n */\r\n get mapExtent() {\r\n if (!this._mapExtent) {\r\n this._updateMapExtent();\r\n }\r\n\r\n return this._mapExtent;\r\n }\r\n\r\n /**\r\n * Trigger the layer load\r\n * @param lyr the layer being acted on\r\n * @param index index of the layer\r\n * @param eventType the event triggering the load, as 'change:center' or 'change:resolution'\r\n */\r\n triggerLyrLoad(lyr: LayerBaseVector, index?: number, eventType?: string) {\r\n\r\n if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n throw 'need to define lyr or index';\r\n } else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n index = this._arrLayer.indexOf(lyr);\r\n } else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n lyr = this._arrLayer[index];\r\n }\r\n\r\n // clear the timeout\r\n if (this._arrLyrTimeout[index] != null) {\r\n clearTimeout(this._arrLyrTimeout[index]);\r\n this._arrLyrTimeout[index] = null;\r\n }\r\n\r\n // abort if necessary and clear the request\r\n if (this._arrLyrRequest[index] != null && this._arrLyrRequest[index] != 4) {\r\n this._arrLyrRequest[index].abort();\r\n this._arrLyrRequest[index] = null;\r\n }\r\n\r\n // dummy callback used if before load returns false\r\n let callbackFunc = function () {};\r\n\r\n if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n\r\n let _this = this;\r\n\r\n callbackFunc = function () {\r\n function innerFunction(theLayer, theIndex) {\r\n let _innerThis = this;\r\n this._arrLyrRequest[theIndex] = $.get(\r\n theLayer.url,\r\n theLayer.mapMoveParams,\r\n function (d) {\r\n /**\r\n * @type {LayerBaseVector}\r\n */\r\n theLayer.mapMoveCallback(d);\r\n theLayer.loadCallback();\r\n }, 'json').fail(\r\n function (jqXHR) {\r\n if (jqXHR.statusText != 'abort') {\r\n console.log('failed');\r\n console.log(theLayer.url);\r\n console.log(theLayer.mapMoveParams);\r\n }\r\n }).always(\r\n function () {\r\n _innerThis._arrLyrTimeout[theIndex] = null;\r\n _innerThis._arrLyrRequest[theIndex] = null;\r\n });\r\n }\r\n innerFunction.call(_this, lyr, index);\r\n };\r\n } else {\r\n lyr.clear();\r\n }\r\n this._arrLyrTimeout[index] = setTimeout(callbackFunc, lyr.onDemandDelay);\r\n }\r\n\r\n /**\r\n * trigger the map move call back at the given index\r\n * @param ind - the index of the layer\r\n * @param eventType=undefined the event triggering the load as 'change:center' or 'change:resolution'\r\n * @param functionId=undefined the function id used to reference the added callback function\r\n */\r\n triggerMoveCallback(ind: number, eventType?: string, functionId?: string) {\r\n\r\n if (typeof ind == 'undefined' && typeof functionId == 'undefined'){\r\n throw 'either the function index or the id must be defined';\r\n }\r\n\r\n if (typeof ind !== 'number'){\r\n ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n }\r\n\r\n if (ind < 0){\r\n console.log('function not found');\r\n\r\n return;\r\n }\r\n\r\n // clear the timeout\r\n if (this._mapMoveCallbackTimeout[ind] != null) {\r\n clearTimeout(this._mapMoveCallbackTimeout[ind]);\r\n this._mapMoveCallbackTimeout[ind] = null;\r\n }\r\n\r\n let ctx = this._mapMoveCallbackContext[ind];\r\n let theFunc = this._mapMoveCallbacks[ind];\r\n\r\n let _this = this;\r\n\r\n let f = function () {\r\n if (ctx !== null) {\r\n theFunc.call(ctx, _this._mapExtent, _this._zoomLevel, eventType);\r\n } else {\r\n theFunc(_this._mapExtent, _this._zoomLevel, eventType);\r\n }\r\n };\r\n\r\n this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\r\n }\r\n\r\n /**\r\n * Add a layer to the interaction\r\n * @param lyr - layer to add\r\n * @param triggerOnAdd - if the layer should be loaded on add\r\n */\r\n addVectorLayer(lyr: LayerBaseVector, triggerOnAdd: boolean = true) {\r\n if (this._arrLayer.indexOf(lyr) > -1) {\r\n console.log('already added ' + lyr.name + ' to map move');\r\n\r\n return;\r\n }\r\n this._checkInit();\r\n\r\n this._arrLyrRequest.push(null);\r\n this._arrLyrTimeout.push(null);\r\n this._arrLayer.push(lyr);\r\n this._lookupLayer[lyr.id] = lyr;\r\n\r\n triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\r\n\r\n if (triggerOnAdd) {\r\n if (this._mapExtent === undefined) {\r\n this._updateMapExtent();\r\n }\r\n this.triggerLyrLoad(lyr, this._arrLayer.length - 1);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * add a callback to the map move event\r\n * @param func - callback function\r\n * @param context - the context to use for this function\r\n * @param delay=50 the delay before call load\r\n * @param triggerOnAdd if the layer should be loaded on add to mapMove\r\n * @param functionId optional id to reference the function later for outside triggering\r\n */\r\n addCallback(func: mapMoveCallbackFunction, context?: any, delay?: number, triggerOnAdd? : boolean, functionId?: string) {\r\n\r\n if (this._mapMoveCallbacks.indexOf(func) > -1) {\r\n console.log('this function already added to map move');\r\n return;\r\n }\r\n this._checkInit();\r\n if (!functionId){\r\n functionId = makeGuid();\r\n }\r\n\r\n this._mapMoveCallbacks.push(func);\r\n this._mapMoveCallbacksLookup[functionId] = functionId;\r\n this._mapMoveCallbackDelays.push(typeof delay == 'number' ? delay : 50);\r\n this._mapMoveCallbackContext.push(checkDefined.definedAndNotNull(context) ? context : null);\r\n this._mapMoveCallbackTimeout.push(null);\r\n\r\n triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\r\n\r\n if (triggerOnAdd) {\r\n if (this._mapExtent === undefined) {\r\n this._updateMapExtent();\r\n }\r\n this.triggerMoveCallback(this._mapMoveCallbacks.length - 1);\r\n }\r\n }\r\n}\r\n\r\nnm.MapMoveCls = MapMoveCls;\r\nexport default MapMoveCls;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapMoveCls.ts\n **/","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nconst nm = provide('olHelpers');\r\n\r\n\r\n\r\n/**\r\n * base interaction\r\n */\r\nexport class MapInteractionBase {\r\n _map: ol.Map;\r\n _initialized: boolean;\r\n _subtype: string;\r\n\r\n /**\r\n * map interaction base\r\n * @param subtype - the interaction subtype\r\n */\r\n constructor(subtype: string) {\r\n this._map = null;\r\n this._initialized = false;\r\n this._subtype = subtype;\r\n }\r\n\r\n /**\r\n * base initializer, returns true for already initialized\r\n * @param theMap - the ol Map\r\n * @returns true for already initialized\r\n */\r\n init(theMap: ol.Map){\r\n if (!this._initialized){\r\n this._map = theMap;\r\n this._initialized = true;\r\n }\r\n }\r\n\r\n /**\r\n * get reference to the ol map object\r\n * @returns {ol.Map} the map object\r\n */\r\n get map() {\r\n return this._map;\r\n }\r\n\r\n /**\r\n * get if is initialized\r\n * @returns {boolean} is initialized\r\n */\r\n get initialized() {\r\n return this._initialized;\r\n }\r\n\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n * @protected\r\n */\r\n _checkInit() {\r\n if (!this.initialized) {\r\n let msg = `${this._subtype} object not initialized`;\r\n alert(msg);\r\n console.log(msg);\r\n throw msg;\r\n }\r\n }\r\n\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n */\r\n checkInit(){\r\n this._checkInit();\r\n }\r\n}\r\n\r\nnm.MapInteractionBase = MapInteractionBase;\r\nexport default MapInteractionBase;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapInteractionBase.ts\n **/","import provide from './provide';\r\nlet nm = provide('util.checkDefined');\r\n\r\n/**\r\n * check if the input is undefined or null\r\n * @param input - input pointer\r\n * @returns true undefined or null\r\n */\r\nexport function undefinedOrNull (input): boolean{\r\n \"use strict\";\r\n\r\n return (typeof input === 'undefined' || input === null);\r\n}\r\n\r\nnm.undefinedOrNull = undefinedOrNull;\r\n\r\n\r\n/**\r\n * check if the input is defined and not null\r\n * @param input - input pointer\r\n * @returns true defined and not null\r\n */\r\nexport function definedAndNotNull (input: any): boolean{\r\n \"use strict\";\r\n\r\n return !(undefinedOrNull(input));\r\n}\r\n\r\nnm.definedAndNotNull = definedAndNotNull;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/util/checkDefined.ts\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport provide from './provide';\r\nlet nm = provide('util');\r\n\r\n\r\n/**\r\n * guids are used to uniquely identify groups and features\r\n * @returns {string} a new guid\r\n */\r\nfunction makeGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\r\n .replace(/[xy]/g, function (c) {\r\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\r\n\r\n return v.toString(16);\r\n });\r\n\r\n}\r\nnm.makeGuid = makeGuid;\r\nexport default makeGuid;\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/util/makeGuid.ts\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport MapPopupCls from './mapPopupCls';\r\n\r\n/**\r\n * The single popup object catch is that it is common to multimap pages\r\n * @type {MapPopupCls}\r\n */\r\n\r\nexport const mapPopup = new MapPopupCls() as MapPopupCls;\r\nexport default mapPopup;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapPopup.ts\n **/","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\r\nimport MapInteractionBase from './mapInteractionBase';\r\nimport propertiesZoomStyle from '../olHelpers/propertiesZoomStyle';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nimport {LayerBaseVector} from \"../layers/LayerBaseVector\";\r\nimport LayerEsriMapServer from \"../layers/LayerEsriMapServer\";\r\n\r\nconst $ = require('jquery');\r\n\r\nconst nm = provide('olHelpers');\r\n\r\nexport interface popupChangedFunction {\r\n ($popContent: JQuery): any;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nexport interface popupCallback {\r\n /**\r\n * Callback function for the popup\r\n * @param featureProperties\r\n * @param jqRef\r\n */\r\n (featureProperties: Object, jqRef?: JQuery): string | boolean;\r\n}\r\n\r\ninterface mapEvent {\r\n coordinate: ol.Coordinate;\r\n pixel: ol.Pixel;\r\n dragging: boolean|any;\r\n originalEvent: Event;\r\n}\r\n\r\n\r\nexport class FeatureLayerProperties {\r\n\r\n feature: ol.Feature;\r\n layer: LayerBaseVector|LayerEsriMapServer;\r\n layerIndex: number;\r\n selectionLayer: ol.layer.Vector;\r\n popupContent: string;\r\n esriLayerName: string;\r\n\r\n /**\r\n *\r\n * @param feature the feature\r\n * @param layer - the layer in the popup\r\n * @param layerIndex - index of the layer\r\n * @param selectionLayer - the ol selection layer\r\n * @param [esriLayerName=undefined] - esri layer name\r\n */\r\n constructor(feature: ol.Feature, layer: LayerBaseVector|LayerEsriMapServer, layerIndex: number, selectionLayer: ol.layer.Vector, esriLayerName?: string) {\r\n this.feature = feature;\r\n this.layer = layer;\r\n this.layerIndex = layerIndex;\r\n this.selectionLayer = selectionLayer;\r\n this.popupContent = '';\r\n this.esriLayerName = typeof esriLayerName == 'string' ? esriLayerName : undefined;\r\n }\r\n\r\n get layerName() {\r\n if (typeof this.esriLayerName == 'string') {\r\n return this.esriLayerName;\r\n } else {\r\n return this.layer.name;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * map popup class\r\n * @augments MapInteractionBase\r\n */\r\nexport class MapPopupCls extends MapInteractionBase {\r\n _popupOpen: boolean;\r\n _passThroughLayerFeatureArray: Array<FeatureLayerProperties>;\r\n _currentPopupIndex: number;\r\n _popupContentLength: number;\r\n _esriMapServiceLayers: Array<LayerEsriMapServer>;\r\n _$popupCloser: JQuery;\r\n _$popupContent: JQuery;\r\n _$popupContainer: JQuery;\r\n _popupOverlay: ol.Overlay;\r\n _arrPopupLayers: Array<LayerBaseVector>;\r\n _popupCoordinate: ol.Coordinate;\r\n _popupChangedFunctions: Array<popupChangedFunction>;\r\n _mapClickFunctions: Array<Function>;\r\n _selectionLayerLookup: Object;\r\n _arrPopupLayerIds: Array<string>;\r\n _arrPopupLayerNames: Array<string>;\r\n _arrPopupOlLayers: Array<ol.layer.Vector>;\r\n _arrPopupContentFunction: Array<popupCallback>;\r\n _selectionLayers: Array<ol.layer.Vector>;\r\n\r\n /**\r\n * Definition for openlayers style function\r\n * @callback olStyleFunction\r\n * ¶m feature the openlayers vector feature\r\n * $param\r\n */\r\n\r\n\r\n /**\r\n * map popup constructor\r\n */\r\n constructor() {\r\n super('map popup');\r\n this._arrPopupLayerIds = [];\r\n this._arrPopupLayerNames = [];\r\n this._arrPopupLayers = [];\r\n this._arrPopupOlLayers = [];\r\n this._arrPopupContentFunction = [];\r\n this._$popupContainer = undefined;\r\n this._$popupContent = undefined;\r\n this._$popupCloser = undefined;\r\n this._popupOverlay = undefined;\r\n this._selectionLayers = [];\r\n this._selectionLayerLookup = {};\r\n this._mapClickFunctions = [];\r\n\r\n //let a = function($jqueryContent){console.log($jqueryContent)};\r\n //this._popupChangedLookup = {'a': a};\r\n this._popupChangedFunctions = [];\r\n this._esriMapServiceLayers = [];\r\n\r\n this._popupOpen = false;\r\n this._popupCoordinate = null;\r\n\r\n this._passThroughLayerFeatureArray = [];\r\n\r\n this._currentPopupIndex = -1;\r\n this._popupContentLength = 0;\r\n\r\n }\r\n\r\n /**\r\n * map popup initialization\r\n * @param {ol.Map} theMap - the ol map\r\n */\r\n init(theMap: ol.Map) {\r\n super.init(theMap);\r\n\r\n let $map;\r\n let target = this.map.getTarget();\r\n\r\n if (typeof target == 'string') {\r\n $map = $('#' + target);\r\n }\r\n else {\r\n $map = $(target);\r\n }\r\n\r\n $map.append(\r\n '<div class=\"ol-popup\">' +\r\n '<span class=\"ol-popup-closer\">X</span>' +\r\n '<div class=\"popup-content\"></div>' +\r\n '</div>'\r\n );\r\n\r\n this._$popupContainer = $map.find('.ol-popup');\r\n this._$popupContent = $map.find('.popup-content');\r\n this._$popupCloser = $map.find('.ol-popup-closer');\r\n\r\n let _ease = (n: number): number => {\r\n return ol.easing.inAndOut(n);\r\n };\r\n\r\n\r\n this._popupOverlay = new ol.Overlay({\r\n element: this._$popupContainer[0],\r\n autoPan: true,\r\n autoPanAnimation: {\r\n duration: 250,\r\n source: theMap.getView().getCenter(),\r\n easing: _ease\r\n }\r\n });\r\n\r\n this._map.addOverlay(this._popupOverlay);\r\n\r\n this._$popupCloser.click((evt) => {\r\n this.closePopup();\r\n });\r\n\r\n // display popup on click\r\n this._map.on('singleclick', (evt) => {\r\n\r\n this.closePopup();\r\n this._popupCoordinate = evt['coordinate'];\r\n\r\n // esri map service layers\r\n if (this._esriMapServiceLayers.length > 0) {\r\n\r\n let queryParams = {\r\n geometry: evt['coordinate'].join(','),\r\n geometryType: 'esriGeometryPoint',\r\n layers: 'all',\r\n sr: this._map.getView().getProjection().getCode().split(':')[1],\r\n mapExtent: (this._map.getView().calculateExtent(this._map.getSize()) as number[]).join(','),\r\n imageDisplay: (this._map.getSize() as number[]).join(',') + ',96',\r\n returnGeometry: true,\r\n tolerance: 15,\r\n f: 'pjson'\r\n };\r\n\r\n for (let l of this._esriMapServiceLayers) {\r\n l.getPopupInfo(queryParams);\r\n }\r\n }\r\n\r\n let layerFeatureObjectArray = this._featuresAtPixel(evt['pixel']);\r\n\r\n this._passThroughLayerFeatureArray = [];\r\n this._currentPopupIndex = -1;\r\n\r\n for (let i = 0; i < layerFeatureObjectArray.length; i++) {\r\n let featObj = layerFeatureObjectArray[i];\r\n\r\n let props = featObj.feature.getProperties();\r\n\r\n let popupContentResponse = this._arrPopupContentFunction[featObj.layerIndex](props, this._$popupContent);\r\n\r\n //skip if return was false\r\n if (popupContentResponse === false) {\r\n //continue;\r\n } else if (typeof popupContentResponse == 'string') {\r\n featObj.popupContent = popupContentResponse as string;\r\n this._passThroughLayerFeatureArray.push(featObj);\r\n } else {\r\n featObj.selectionLayer.getSource().addFeature(featObj.feature);\r\n }\r\n }\r\n\r\n this._popupContentLength = this._passThroughLayerFeatureArray.length;\r\n\r\n this._currentPopupIndex = -1;\r\n\r\n let popupHtml = '<div class=\"ol-popup-nav\">';\r\n popupHtml += '<span class=\"previous-popup ol-popup-nav-arrow\">◀</span>';\r\n popupHtml += '<span class=\"next-popup ol-popup-nav-arrow\">▶</span>';\r\n popupHtml += `<span class=\"current-popup-item-number\" style=\"font-weight: bold;\"></span>`;\r\n popupHtml += `<span> of </span>`;\r\n popupHtml += `<span class=\"popup-content-length\" style=\"font-weight: bold;\">${this._popupContentLength}</span>`;\r\n popupHtml += `<span> - </span>`;\r\n popupHtml += `<span class=\"current-popup-layer-name\"></span>`;\r\n popupHtml += '</div>';\r\n popupHtml += '<div class=\"ol-popup-inner\">';\r\n\r\n popupHtml += '</div>';\r\n\r\n this._$popupContent.html(popupHtml);\r\n\r\n this._$popupContent.find('.previous-popup').click(() => {\r\n if (this._popupContentLength == 1) {\r\n return;\r\n }\r\n\r\n if (this._currentPopupIndex == 0) {\r\n this._currentPopupIndex = this._popupContentLength - 1;\r\n } else {\r\n this._currentPopupIndex--;\r\n }\r\n this._triggerFeatSelect();\r\n });\r\n\r\n let nextPopup = this._$popupContent.find('.next-popup');\r\n\r\n nextPopup.click(() => {\r\n if (this._popupContentLength == 1 && this._currentPopupIndex > -1) {\r\n return;\r\n }\r\n\r\n if (this._currentPopupIndex == this._popupContentLength - 1) {\r\n this._currentPopupIndex = 0;\r\n } else {\r\n this._currentPopupIndex++;\r\n }\r\n this._triggerFeatSelect();\r\n });\r\n\r\n\r\n if (this._popupContentLength > 0) {\r\n nextPopup.trigger('click');\r\n this._popupOverlay.setPosition(this._popupCoordinate);\r\n this._$popupContent.scrollTop(0);\r\n this._popupOpen = true;\r\n }\r\n });\r\n\r\n //change mouse cursor when over marker\r\n this._map.on('pointermove', (evt) => {\r\n if (evt['dragging']) {\r\n return;\r\n }\r\n let pixel = this.map.getEventPixel(evt['originalEvent']);\r\n let hit = this.map.hasFeatureAtPixel(pixel, (lyrCandidate) => {\r\n for (let olLayer of this._arrPopupOlLayers) {\r\n if (lyrCandidate == olLayer) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n let mapElement = this.map.getTargetElement() as HTMLElement;\r\n mapElement.style.cursor = hit ? 'pointer' : '';\r\n });\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * helper to select features\r\n * @private\r\n */\r\n _triggerFeatSelect() {\r\n let $currentPopupItemNumber = this._$popupContent.find('.current-popup-item-number');\r\n let $innerPopup = this._$popupContent.find('.ol-popup-inner');\r\n let $layerNameSpan = this._$popupContent.find('.current-popup-layer-name');\r\n this.clearSelection();\r\n let lyrFeatObj = this._passThroughLayerFeatureArray[this._currentPopupIndex];\r\n $currentPopupItemNumber.html((this._currentPopupIndex + 1).toFixed());\r\n $layerNameSpan.html(lyrFeatObj.layerName);\r\n $innerPopup.html(lyrFeatObj.popupContent);\r\n lyrFeatObj.selectionLayer.getSource().addFeature(lyrFeatObj.feature);\r\n for (let f of this._popupChangedFunctions) {\r\n f(this._$popupContent);\r\n }\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param feature - the ol feature\r\n * @param {LayerEsriMapServer} lyr - the map server layer\r\n * @param {string} popupContent - popup content\r\n * @param {string} esriName - esri layer name\r\n */\r\n addMapServicePopupContent(feature: ol.Feature, lyr: LayerEsriMapServer, popupContent: string, esriName: string) {\r\n\r\n let featLayerObject = new FeatureLayerProperties(\r\n feature, lyr, this._popupContentLength, this._selectionLayerLookup[lyr.id], esriName\r\n );\r\n featLayerObject.popupContent = popupContent;\r\n\r\n this._passThroughLayerFeatureArray.push(featLayerObject);\r\n this._popupContentLength++;\r\n\r\n $('.popup-content-length').html(this._popupContentLength.toFixed());\r\n\r\n if (!this._popupOpen) {\r\n this._$popupContent.find('.next-popup').trigger('click');\r\n\r\n this._popupOverlay.setPosition(this._popupCoordinate);\r\n this._$popupContent.scrollTop(0);\r\n this._popupOpen = true;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param pixel - the ol pixel\r\n * @returns feature layer properties\r\n * @private\r\n */\r\n _featuresAtPixel(pixel: ol.Pixel): Array<FeatureLayerProperties> {\r\n let layerFeatureObjectArray = [];\r\n\r\n this.map.forEachFeatureAtPixel(pixel, (feature: ol.Feature, layer: ol.layer.Vector) => {\r\n let lyrIndex = this._arrPopupOlLayers.indexOf(layer);\r\n\r\n if (lyrIndex > -1) {\r\n layerFeatureObjectArray.push(\r\n new FeatureLayerProperties(\r\n feature, this._arrPopupLayers[lyrIndex], lyrIndex, this._selectionLayers[lyrIndex]));\r\n }\r\n });\r\n\r\n return layerFeatureObjectArray;\r\n }\r\n\r\n closePopup() {\r\n this._checkInit();\r\n this._popupOpen = false;\r\n this._popupOverlay.setPosition(undefined);\r\n this._$popupCloser[0].blur();\r\n this.clearSelection();\r\n this._$popupContent.html('');\r\n\r\n return false;\r\n };\r\n\r\n\r\n /**\r\n *\r\n * @param chgFunction - popup change function\r\n */\r\n addPopupChangedFunction(chgFunction: popupChangedFunction) {\r\n this._popupChangedFunctions.push(chgFunction);\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerBase|*} lyr - the layer being acted on\r\n * @param {object} [selectionStyle={}] the selection style configuration\r\n * @param {string} [selectionStyle.color=rgba(255,170,0,0.5)] the selection color\r\n * @param {number} [selectionStyle.width=10] the selection width for linear features\r\n * @param {object|function} [selectionStyle.olStyle=undefined] an openlayers style object or function\r\n * @returns the new selection layer\r\n * @private\r\n */\r\n _addPopupLayer(lyr, selectionStyle): ol.layer.Vector {\r\n this._checkInit();\r\n\r\n selectionStyle = selectionStyle || {};\r\n selectionStyle.color = selectionStyle.color || 'rgba(255,170,0,0.5)';\r\n selectionStyle.width = selectionStyle.width || 10;\r\n\r\n let theStyle;\r\n\r\n if (selectionStyle.olStyle) {\r\n theStyle = selectionStyle.olStyle;\r\n } else {\r\n theStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: selectionStyle.color,\r\n width: selectionStyle.width\r\n }),\r\n image: new ol.style.Circle({\r\n radius: 7,\r\n fill: new ol.style.Fill({color: selectionStyle.color}),\r\n stroke: new ol.style.Stroke({color: selectionStyle.color, width: 1})\r\n }),\r\n fill: new ol.style.Fill({\r\n color: selectionStyle.color\r\n })\r\n });\r\n }\r\n\r\n let selectionLayer = new ol.layer.Vector(\r\n {\r\n source: new ol.source.Vector(),\r\n style: theStyle\r\n }\r\n );\r\n\r\n selectionLayer.setZIndex(100);\r\n\r\n this._selectionLayers.push(selectionLayer);\r\n this._selectionLayerLookup[lyr.id] = selectionLayer;\r\n this.map.addLayer(selectionLayer);\r\n\r\n return selectionLayer;\r\n }\r\n\r\n\r\n /**\r\n * Add popup to the map\r\n * @param {LayerBase|*} lyr The layer that the popup with act on\r\n * @param {popupCallback} popupContentFunction - popup content function that makes popup info\r\n * @param {object} [selectionStyle={}] the selection style configuration\r\n * @param {string} [selectionStyle.color=rgba(255,170,0,0.5)] the selection color\r\n * @param {number} [selectionStyle.width=10] the selection width for linear features\r\n * @param {object|function} [selectionStyle.olStyle=undefined] an openlayers style object or function\r\n * @returns {object} a reference to the ol selection layer\r\n */\r\n addVectorPopup(lyr: LayerBaseVector, popupContentFunction: popupCallback,\r\n selectionStyle?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction) {\r\n let selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._arrPopupLayerIds.push(lyr.id);\r\n this._arrPopupLayerNames.push(lyr.name);\r\n this._arrPopupLayers.push(lyr);\r\n this._arrPopupOlLayers.push(lyr.olLayer);\r\n this._arrPopupContentFunction.push(popupContentFunction);\r\n\r\n return selectionLayer;\r\n };\r\n\r\n\r\n /**\r\n *\r\n * @param {LayerBase} lyr - layer\r\n */\r\n removeVectorPopup(lyr) {\r\n let idx = this._arrPopupLayerIds.indexOf(lyr.id);\r\n\r\n if (idx > -1) {\r\n this._arrPopupLayerIds.splice(idx, 1);\r\n this._arrPopupLayerNames.splice(idx, 1);\r\n this._arrPopupLayers.splice(idx, 1);\r\n this._arrPopupOlLayers.splice(idx, 1);\r\n this._arrPopupContentFunction.splice(idx, 1);\r\n this._selectionLayers.splice(idx, 1);\r\n delete this._selectionLayerLookup[lyr.id];\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerEsriMapServer} lyr - map server layer\r\n * @param {object} [selectionStyle={}] the selection style configuration\r\n * @param {string} [selectionStyle.color=rgba(255,170,0,0.5)] the selection color\r\n * @param {number} [selectionStyle.width=10] the selection width for linear features\r\n * @param {object|function} [selectionStyle.olStyle=undefined] an openlayers style object or function\r\n * @returns {object} a reference to the ol selection layer\r\n */\r\n addMapServicePopup(lyr, selectionStyle?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction) {\r\n let selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._esriMapServiceLayers.push(lyr);\r\n\r\n return selectionLayer;\r\n }\r\n\r\n clearSelection() {\r\n this._checkInit();\r\n for (let i = 0; i < this._selectionLayers.length; i++) {\r\n this._selectionLayers[i].getSource().clear();\r\n }\r\n for (let f of this._mapClickFunctions) {\r\n f();\r\n }\r\n };\r\n\r\n /**\r\n * Add a function to be called when the map is clicked but before any popups are implemented\r\n * @param {function} func - the map click function\r\n */\r\n addMapClickFunction(func: Function) {\r\n this._mapClickFunctions.push(func);\r\n }\r\n}\r\nnm.MapPopupCls = MapPopupCls;\r\nexport default MapPopupCls;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/mapPopupCls.ts\n **/","import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol'\r\nimport makeGuid from '../util/makeGuid';\r\nconst nm = provide('layers');\r\nconst $ = require('jquery');\r\n\r\n\r\n\r\n\r\n\r\nexport interface LayerBaseOptions{\r\n id?: string;\r\n name?: string;\r\n opacity?: number;\r\n visible?: boolean;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n params?: any;\r\n zIndex?: number;\r\n loadCallback?: Function;\r\n legendCollapse?: boolean;\r\n legendCheckbox?: boolean;\r\n legendContent?: string;\r\n}\r\n\r\n\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nexport abstract class LayerBase {\r\n\r\n _legendCheckbox: boolean;\r\n _url: string;\r\n _opacity: number;\r\n _minZoom: number;\r\n _maxZoom: number;\r\n _visible: boolean;\r\n _loaded: boolean;\r\n _zIndex: number;\r\n _legendContent: string;\r\n _params: any;\r\n id: string;\r\n _name: string;\r\n _source: ol.source.Source;\r\n animate: boolean;\r\n _legendCollapse: boolean;\r\n _maxResolution: number;\r\n _minResolution: number;\r\n _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n _olLayer: ol.layer.Layer;\r\n _applyCollapseCalled: boolean;\r\n\r\n\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - url for source\r\n * @param {object} options - config\r\n * @param {string} [options.id=makeGuid()] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] - the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] - the z index for the layer\r\n * @param {function} [options.loadCallback] - function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] - if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] - if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent=undefined] - additional content to add to the legend\r\n */\r\n constructor(url: string, options: LayerBaseOptions = {}) {\r\n options = options || {} as LayerBaseOptions;\r\n\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\r\n\r\n\r\n this._params = typeof options.params == 'object' ? options.params : {};\r\n this._legendCollapse = typeof options.legendCollapse == 'boolean' ? options.legendCollapse : false;\r\n this._legendCheckbox = typeof options.legendCheckbox == 'boolean' ? options.legendCheckbox : true;\r\n\r\n this.id = options.id || makeGuid();\r\n this._name = options.name || 'Unnamed Layer';\r\n this.animate = false;\r\n this._opacity = typeof options.opacity == 'number' ? options.opacity : 1;\r\n\r\n if (this._opacity > 1) {\r\n this._opacity = 1;\r\n } else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n\r\n this._source = undefined;\r\n\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\r\n\r\n this._maxResolution = zoomResolutionConvert.zoomToResolution(options.minZoom);\r\n if (typeof this._maxResolution !== 'undefined') {\r\n this._maxResolution += 0.00001;\r\n }\r\n this._minResolution = zoomResolutionConvert.zoomToResolution(options.maxZoom);\r\n\r\n this._minZoom = typeof options.minZoom == 'number' ? options.minZoom : undefined;\r\n this._maxZoom = typeof options.maxZoom == 'number' ? options.maxZoom : undefined;\r\n this._zIndex = typeof options.zIndex == 'number' ? options.zIndex : 0;\r\n\r\n this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n\r\n\r\n this._legendContent = '';\r\n\r\n if (this._legendCheckbox) {\r\n this._legendContent += `<input type=\"checkbox\" ${this.visible ? 'checked' : ''} ` +\r\n `class=\"legend-check\" id=\"${this.id}-legend-layer-check\"><span></span>`;\r\n this._legendContent += `<label for=\"${this.id}-legend-layer-check\" class=\"legend-layer-name\">${this.name}</label>`;\r\n } else {\r\n this._legendContent += `<label class=\"legend-layer-name\">${this.name}</label>`;\r\n }\r\n\r\n this._$legendDiv = null;\r\n this._applyCollapseCalled = false;\r\n this._addLegendContent(typeof options.legendContent === 'string' ? options.legendContent : undefined);\r\n }\r\n\r\n /**\r\n * base load function, sets _loaded = true if it is not already\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n _load() {\r\n if (this.loaded == true) {\r\n return true;\r\n } else {\r\n this._loaded = true;\r\n\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Get the legend html, be sure to only add to the DOM once\r\n * @returns {string} html for layer wrapped in a div\r\n */\r\n getLegendDiv() {\r\n return `<div class=\"legend-layer-div\" id=\"${this.id}-legend-layer-div\">${this._legendContent}</div>`;\r\n }\r\n\r\n /**\r\n *\r\n * @param {string|undefined} additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(additionalContent) {\r\n additionalContent = typeof additionalContent == 'string' ? additionalContent : '';\r\n\r\n let addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n\r\n this._legendContent += additionalContent;\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n this._$legendDiv.append(additionalContent);\r\n this.applyCollapse();\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n addLegendContent(additionalContent) {\r\n this._addLegendContent(additionalContent);\r\n }\r\n\r\n applyCollapse() {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n\r\n return undefined;\r\n }\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n\r\n let $expander = this._$legendDiv.find('.legend-items-expander');\r\n\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n\r\n $expander.click(function () {\r\n let $this = $(this);\r\n\r\n $this.siblings('ul').slideToggle();\r\n\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n } else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\r\n }\r\n });\r\n\r\n if (this._legendCollapse) {\r\n $expander.trigger('click');\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * trick to refresh the layer\r\n */\r\n refresh() {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get legendContent() {\r\n return this._legendContent;\r\n }\r\n\r\n /**\r\n * set the legend content directly\r\n * @param {string} newVal - new content\r\n * @protected\r\n */\r\n set legendContent(newVal) {\r\n this._legendContent = newVal;\r\n }\r\n\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get params() {\r\n return this._params;\r\n }\r\n\r\n /**\r\n * set the map get params\r\n * @param {object} newParams - new get params\r\n * @protected\r\n */\r\n set params(newParams) {\r\n this._params = newParams;\r\n }\r\n\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get minResolution() {\r\n return this._minResolution;\r\n }\r\n\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get maxResolution() {\r\n return this._maxResolution;\r\n }\r\n\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get minZoom() {\r\n return this._minZoom;\r\n }\r\n\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get maxZoom() {\r\n return this._maxZoom;\r\n }\r\n\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get url() {\r\n return this._url;\r\n }\r\n\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set visible(visibility: boolean) {\r\n this.setVisible(visibility);\r\n }\r\n\r\n protected setVisible(visibility: boolean) {\r\n this._visible = visibility;\r\n if (this.olLayer) {\r\n this.olLayer.setVisible(this._visible);\r\n if (visibility && !this._loaded) {\r\n this._load();\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get opacity() {\r\n return this._opacity;\r\n }\r\n\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set opacity(opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n }\r\n\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set name(newName) {\r\n this._name = newName;\r\n }\r\n\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get loaded() {\r\n return this._loaded;\r\n }\r\n\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get source(): ol.source.Source {\r\n return this.getSource();\r\n }\r\n\r\n\r\n protected getSource(): ol.source.Source{\r\n return this._source;\r\n }\r\n\r\n /**\r\n * get the z index\r\n */\r\n get zIndex(): number {\r\n return this._zIndex;\r\n }\r\n\r\n /**\r\n * set the z index\r\n */\r\n set zIndex(newZ: number) {\r\n this._zIndex = newZ;\r\n }\r\n\r\n protected setZIndex(newZ: number){\r\n\r\n }\r\n\r\n /**\r\n * the the ol layer\r\n */\r\n get olLayer(): ol.layer.Layer {\r\n return this.getOlLayer();\r\n }\r\n\r\n protected getOlLayer(): ol.layer.Layer{\r\n return this._olLayer;\r\n }\r\n}\r\n\r\nnm.LayerBase = LayerBase;\r\nexport default LayerBase;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/layers/LayerBase.ts\n **/","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nconst nm = provide('olHelpers.zoomResolutionConvert');\r\n\r\nlet _zoomResLookup = [\r\n 156543.03392804097, //0\r\n 78271.51696402048, //1\r\n 39135.75848201024, //2\r\n 19567.87924100512, //3\r\n 9783.93962050256, //4\r\n 4891.96981025128, //5\r\n 2445.98490512564, //6\r\n 1222.99245256282, //7\r\n 611.49622628141, //8\r\n 305.748113140705, //9\r\n 152.8740565703525, //10\r\n 76.43702828517625, //11\r\n 38.21851414258813, //12\r\n 19.109257071294063, //13\r\n 9.554628535647032, //14\r\n 4.777314267823516, //15\r\n 2.388657133911758, //16\r\n 1.194328566955879, //17\r\n 0.5971642834779395, //18\r\n 0.29858214173896974, //19\r\n 0.14929107086948487, //20\r\n 0.07464553543474244, //21\r\n 0.03732276771737122, //22\r\n 0.01866138385868561, //23\r\n 0.009330691929342804, //24\r\n 0.004665345964671402, //25\r\n 0.002332672982335701, //26\r\n 0.0011663364911678506, //27\r\n 0.0005831682455839253 //28\r\n];\r\n\r\n/**\r\n * Get the resolution given the zoom level\r\n * @param {number} zoomLevel - the zoom level\r\n * @returns {number|*} the map resolution\r\n */\r\nexport function zoomToResolution(zoomLevel) {\r\n \"use strict\";\r\n\r\n if (typeof zoomLevel == 'number') {\r\n if (zoomLevel % 1 === 0 && zoomLevel >= 0 && zoomLevel <= 28) {\r\n return _zoomResLookup[zoomLevel];\r\n } else {\r\n console.log(`invalid zoom level provided: ${zoomLevel}`);\r\n\r\n return undefined;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n}\r\nnm.zoomToResolution = zoomToResolution;\r\n\r\n\r\n/**\r\n * Get resolution from the zoom level\r\n * @param {number} resolution - the resolution\r\n * @returns {number|*} the zoom level\r\n */\r\nexport function resolutionToZoom(resolution){\r\n for (let i = 0; i < _zoomResLookup.length; i++){\r\n if (resolution >= _zoomResLookup[i] ){\r\n return i;\r\n }\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nnm.resolutionToZoom = resolutionToZoom;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/olHelpers/zoomResolutionConvert.ts\n **/","import provide from '../util/provide';\r\n\r\nconst nm = provide('domUtil');\r\n\r\nlet mouseIn = false;\r\nlet mouseDown = false;\r\nlet timeout = null;\r\nlet dragged = false;\r\nlet lastVal;\r\nconst $ = require('jquery');\r\n\r\n\r\n/**\r\n * callback on range change interaction, context of this is the firing dom element\r\n * @callback rangeChangeCallback\r\n * @param {number} newValue\r\n * @param {number} ratio value from 0 to 1 relative of the value to the min and max\r\n * @param {object} evt\r\n */\r\n\r\n/***\r\n * callback funcion after the slider has been moved\r\n */\r\nexport interface rangeChangedCallback{\r\n /**\r\n *\r\n * @param newValue new value of the slider\r\n * @param ratio ratio from low to high, 0 to 1\r\n * @param evt the original event\r\n */\r\n (newValue: number, ratio: number, evt: Event): any\r\n}\r\n\r\n\r\n/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nfunction triggerCallback(callback: rangeChangedCallback, evt) {\r\n \"use strict\";\r\n\r\n let val = parseFloat(this.value);\r\n let min = parseFloat(this.min);\r\n let max = parseFloat(this.max);\r\n let step = parseFloat(this.step);\r\n\r\n if (max - val < step){\r\n val = max;\r\n }\r\n\r\n let percent = (val - min) / (max - min);\r\n\r\n if (typeof lastVal == 'number' && val == lastVal){\r\n return;\r\n }\r\n lastVal = val;\r\n callback(val, percent, evt);\r\n}\r\n\r\n\r\n\r\n/**\r\n * Add a variety of listeners for range inputs applied to a common callback\r\n * @param $slider - jquery reference to the slider\r\n * @param {rangeChangeCallback} callback - the callback\r\n * @param {number} [changeTimeout=75] before the callback is called\r\n * @this {jQuery}\r\n * @returns {jQuery} the jQuery object\r\n */\r\nexport function rangeChange ($slider: JQuery, callback: rangeChangedCallback, changeTimeout: number) {\r\n\r\n changeTimeout = typeof changeTimeout == 'number' ? changeTimeout : 75;\r\n\r\n $slider.mouseenter(function () {\r\n mouseIn = true;\r\n });\r\n\r\n $slider.mouseleave(function () {\r\n mouseIn = false;\r\n mouseDown = false;\r\n });\r\n\r\n $slider.mousedown(function () {\r\n mouseDown = true;\r\n });\r\n\r\n $slider.mouseup(function () {\r\n mouseDown = false;\r\n });\r\n\r\n $slider.mousemove(\r\n /**\r\n *\r\n * @param {object} evt - event properties\r\n * @this {HTMLElement}\r\n */\r\n function (evt) {\r\n if (!(mouseIn && mouseDown)) {\r\n return;\r\n }\r\n\r\n dragged = true;\r\n\r\n if (lastVal == this['value']) {\r\n return;\r\n }\r\n lastVal = this['value'];\r\n\r\n if (timeout != null) {\r\n clearTimeout(timeout);\r\n }\r\n\r\n let _this = this;\r\n\r\n timeout = setTimeout(function () {\r\n triggerCallback.call(_this, callback, evt);\r\n timeout = null;\r\n\r\n }, changeTimeout);\r\n });\r\n\r\n $slider.keyup(\r\n /**\r\n *\r\n * @param {object} evt - event properties\r\n */\r\n function (evt) {\r\n if (evt.keyCode == 37 || evt.keyCode == 39) {\r\n triggerCallback.call(this, callback, evt);\r\n }\r\n });\r\n\r\n $slider.change(function (evt) {\r\n if (dragged) {\r\n dragged = false;\r\n\r\n return;\r\n }\r\n triggerCallback.call(this, callback, evt);\r\n });\r\n\r\n return this;\r\n}\r\n\r\nnm.rangeChange = rangeChange;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/domUtil/range-change.ts\n **/","/**\r\n * Created by gavorhes on 11/4/2015.\r\n */\r\n\r\nimport {LayerBaseXyzTile} from './LayerBaseXyzTile';\r\nimport {LayerBaseOptions} from './LayerBase';\r\nimport RealEarthAnimateTile from '../mixin/RealEarthAnimateTile';\r\nimport provide from '../util/provide';\r\nimport {IRealEarthAnimate, timesLoadedCallback} from \"../mixin/RealEarthAnimate\";\r\nconst nm = provide('layers');\r\n\r\nexport interface LayerRealEarthTileOptions extends LayerBaseOptions {\r\n products: string;\r\n animate?: boolean;\r\n timeLoadCallback: timesLoadedCallback;\r\n}\r\n\r\n\r\n/**\r\n * Real earth tile\r\n * @augments LayerBaseXyzTile\r\n */\r\nexport class LayerRealEarthTile extends LayerBaseXyzTile implements IRealEarthAnimate {\r\n _products: string;\r\n animator: RealEarthAnimateTile;\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {object} options - config\r\n * @param {string} [options.id] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] the z index for the layer\r\n * @param {function} [options.loadCallback] function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent] additional content to add to the legend\r\n *\r\n * @param {string} options.products - the products to request\r\n * @param {boolean} [options.hasTimes=false] If the layer is time dependent, fixed set of dates\r\n * @param {boolean} [options.animate=false] if the layer should be animated\r\n */\r\n constructor(options: LayerRealEarthTileOptions) {\r\n options.animate = typeof options.animate == 'boolean' ? options.animate : false;\r\n if (options.animate) {\r\n super('', options);\r\n this._products = options.products;\r\n this.animator = new RealEarthAnimateTile(this, options.timeLoadCallback);\r\n this.animator.timeInit();\r\n } else {\r\n super(`http://realearth.ssec.wisc.edu/api/image?products=${options.products}&x={x}&y={y}&z={z}`, options);\r\n this._products = options.products;\r\n }\r\n }\r\n\r\n setLayerTime(theTime: number): boolean {\r\n if (this.animator) {\r\n return this.animator.setLayerTime(theTime);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n _load(): boolean {\r\n if (this.animator) {\r\n return false;\r\n }\r\n return super._load();\r\n }\r\n}\r\n\r\nnm.LayerRealEarthTile = LayerRealEarthTile;\r\nexport default LayerRealEarthTile;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/layers/LayerRealEarthTile.ts\n **/","/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nimport {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nconst nm = provide('layers');\r\n\r\n\r\n/**\r\n * XYZ tile\r\n * @augments LayerBase\r\n */\r\nexport class LayerBaseXyzTile extends LayerBase {\r\n\r\n\r\n /**\r\n * The XYZ tile layer\r\n * @param {string} url - url for source\r\n * @param {object} options - config\r\n * @param {string} [options.id] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] the z index for the layer\r\n * @param {function} [options.loadCallback] function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent] additional content to add to the legend\r\n * @param {boolean} [options.useEsriStyle=false] if the map service style should be used\r\n */\r\n constructor(url: string, options: LayerBaseOptions) {\r\n super(url, options);\r\n this._source = new ol.source.XYZ({url: this.url == '' ? undefined : this.url});\r\n\r\n this._olLayer = new ol.layer.Tile({\r\n source: this._source as ol.source.XYZ,\r\n visible: this.visible,\r\n opacity: this.opacity,\r\n minResolution: this._minResolution,\r\n maxResolution: this._maxResolution\r\n } );\r\n\r\n this._olLayer.setZIndex(this._zIndex);\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.source.XYZ} the vector source\r\n */\r\n get source(): ol.source.XYZ {\r\n return this._source as ol.source.XYZ;\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.layer.Tile|ol.layer.Base|undefined} the ol layer\r\n */\r\n get olLayer() : ol.layer.Tile {\r\n return this._olLayer as ol.layer.Tile;\r\n }\r\n}\r\n\r\nnm.LayerBaseXyzTile = LayerBaseXyzTile;\r\nexport default LayerBaseXyzTile;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/layers/LayerBaseXyzTile.ts\n **/","/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nimport RealEarthAnimate from './RealEarthAnimate';\r\nimport provide from '../util/provide';\r\nimport ol from 'custom-ol';\r\nimport LayerRealEarthTile from \"../layers/LayerRealEarthTile\";\r\nconst nm = provide('mixin');\r\n\r\n/**\r\n * Animate real earth tile\r\n * @augments RealEarthAnimate\r\n */\r\nclass RealEarthAnimateTile extends RealEarthAnimate {\r\n _sourceUrls: string[];\r\n _source: ol.source.XYZ;\r\n _olLayer: ol.layer.Tile;\r\n\r\n constructor(layer: LayerRealEarthTile, loadCallback?: (lyr: LayerRealEarthTile) => void){\r\n super(layer, loadCallback);\r\n this._source = layer.source;\r\n this._olLayer = layer.olLayer;\r\n }\r\n\r\n\r\n\r\n timeInit() {\r\n super.timeInit();\r\n this._sourceUrls = [];\r\n }\r\n\r\n _loadDates(inString: string): string {\r\n let rawDte = super._loadDates(inString);\r\n let dteProductUrl =\r\n `http://realearth.ssec.wisc.edu/api/image?products=${this._products}_${rawDte}&x={x}&y={y}&z={z}`;\r\n this._sourceUrls.push(dteProductUrl);\r\n return '';\r\n }\r\n\r\n /**\r\n * @protected\r\n */\r\n _loadLatest(): boolean {\r\n if (super._loadLatest()){\r\n this._source.setUrl(this._sourceUrls[this._sourceUrls.length - 1]);\r\n }\r\n return true;\r\n }\r\n\r\n setLayerTime(theTime: number): boolean {\r\n if (super.setLayerTime(theTime)) {\r\n if (this._olLayer.getZIndex() < 0){\r\n this._olLayer.setZIndex(0);\r\n }\r\n this._source.setUrl(this._sourceUrls[this._currentIndex]);\r\n } else {\r\n this._olLayer.setZIndex(-1);\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nnm.RealEarthAnimateTile = RealEarthAnimateTile;\r\nexport default RealEarthAnimateTile;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/mixin/RealEarthAnimateTile.ts\n **/","/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport mapPopup from '../olHelpers/mapPopup';\r\nimport LayerRealEarthTile from \"../layers/LayerRealEarthTile\";\r\nimport {LayerVectorRealEarth} from '../layers/LayerRealEarthVector'\r\nconst $ = require('jquery');\r\nconst nm = provide('mixin');\r\n\r\n\r\n/**\r\n * The GMT offset time in minutes\r\n * @type {number}\r\n */\r\nlet offsetMinutes = (new Date()).getTimezoneOffset();\r\n\r\nexport interface IRealEarthAnimate{\r\n setLayerTime(theTime: number): boolean;\r\n}\r\n\r\nexport interface timesLoadedCallback{\r\n (lyr?: LayerRealEarthTile|LayerVectorRealEarth): void;\r\n}\r\n\r\n\r\n/**\r\n * Mixin to get the product times\r\n * Be sure to call getTimeInit after the mixin has been applied\r\n */\r\nexport class RealEarthAnimate {\r\n _animateEnabled: boolean;\r\n _currentIndex: number;\r\n _localDates: Date[];\r\n _rawDateStrings: string[];\r\n _products: string;\r\n loadCallback: timesLoadedCallback;\r\n localTimes: number[];\r\n _currentTime: number;\r\n\r\n lyr: LayerRealEarthTile|LayerVectorRealEarth;\r\n\r\n constructor(lyr: LayerRealEarthTile|LayerVectorRealEarth, loadCallback?: timesLoadedCallback){\r\n this.lyr = lyr;\r\n this._products = lyr._products;\r\n if (loadCallback){\r\n this.loadCallback = loadCallback;\r\n } else {\r\n this.loadCallback = function(): void {return;};\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Call this after the mixin has been applied\r\n */\r\n timeInit() {\r\n\r\n this._rawDateStrings = [];\r\n this._localDates = [];\r\n this.localTimes = [];\r\n this._animateEnabled = true;\r\n // this._loaded = true;\r\n this._currentTime = undefined;\r\n this._currentIndex = undefined;\r\n\r\n $.get('http://realearth.ssec.wisc.edu/api/products', {products: this._products}, (d) => {\r\n if (d.length == 0) {\r\n console.log(`${this._products} layer not available or does not have times`);\r\n\r\n return;\r\n }\r\n d = d[0];\r\n for (let i = 0; i < d['times'].length; i++) {\r\n this._loadDates.call(this, d['times'][i]);\r\n }\r\n this.loadCallback.call(this.lyr);\r\n this._loadLatest.call(this);\r\n }, 'json');\r\n }\r\n\r\n\r\n /**\r\n * Given the raw time string, add to the arrays to keep track of dates and cache\r\n * @param {string} inString - input string to parse\r\n * @returns {string} the converted string\r\n * @protected\r\n */\r\n _loadDates(inString: string): string {\r\n let yr = inString.slice(0, 4);\r\n let month = inString.slice(4, 6);\r\n let d = inString.slice(6, 8);\r\n let hr = inString.slice(9, 11);\r\n let mn = inString.slice(11, 13);\r\n let sec = inString.slice(13, 15);\r\n\r\n let rawDateStr = inString.replace('.', '_');\r\n this._rawDateStrings.push(rawDateStr);\r\n\r\n let dteStr = `${month}/${d}/${yr} ${hr}:${mn}:${sec}`;\r\n let newDte = new Date(dteStr);\r\n newDte.setMinutes(newDte.getMinutes() - offsetMinutes);\r\n this._localDates.push(newDte);\r\n this.localTimes.push(newDte.getTime());\r\n\r\n return rawDateStr;\r\n }\r\n\r\n /**\r\n *\r\n * @protected\r\n * @returns {boolean} if should continue\r\n */\r\n _loadLatest(){\r\n mapPopup.closePopup();\r\n if (this.localTimes.length > 0){\r\n this._currentIndex = this.localTimes.length -1;\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {number} theTime - the time\r\n * @returns {boolean} true if new index, false if the same or below lowest value\r\n */\r\n setLayerTime(theTime: number): boolean{\r\n\r\n this._currentTime = theTime;\r\n\r\n let newIndex;\r\n\r\n if (theTime < this.localTimes[0]){\r\n return false;\r\n } else if (theTime > this.localTimes[this.localTimes.length - 1]){\r\n newIndex = this.localTimes.length - 1;\r\n }\r\n\r\n for (let i = 0; i < this.localTimes.length; i++){\r\n if (this.localTimes[i] >= theTime){\r\n newIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (newIndex == this._currentIndex){\r\n return false;\r\n } else {\r\n this._currentIndex = newIndex;\r\n mapPopup.closePopup();\r\n\r\n return true;\r\n }\r\n }\r\n}\r\n\r\nnm.RealEarthAnimate = RealEarthAnimate;\r\nexport default RealEarthAnimate;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/mixin/RealEarthAnimate.ts\n **/","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nimport Timer = NodeJS.Timer;\r\nimport provide from '../util/provide';\r\nimport {rangeChange} from './range-change';\r\nconst $ = require('jquery');\r\n\r\nlet nm = provide('domUtil');\r\n\r\n/**\r\n * @callback mediaCallback\r\n * @param {number} tm\r\n */\r\n\r\nfunction timeToLocalDateString(tm) {\r\n \"use strict\";\r\n let d = new Date(tm);\r\n let p1 = d.toLocaleTimeString().split(' ');\r\n let p2 = p1[0].split(':');\r\n p2 = p2.slice(0, 2);\r\n\r\n return d.toLocaleDateString() + '<br>' + p2.join(':') + ' ' + p1[1];\r\n}\r\n\r\nexport interface changeFunction{\r\n (newVal?: number): void;\r\n}\r\n\r\nexport interface mediaRangeConfig{\r\n min?: number;\r\n max?: number;\r\n val?: number;\r\n step?: number;\r\n playInterval?: number;\r\n showAsDate?: boolean;\r\n}\r\n\r\n\r\nexport class MediaControl {\r\n _container: JQuery;\r\n _min: number;\r\n _max: number;\r\n _playInterval: number;\r\n _step: number;\r\n _currentValue: number;\r\n\r\n _playing: boolean;\r\n\r\n _$btnStop: JQuery;\r\n _$slider: JQuery;\r\n _$valLabelVal: JQuery;\r\n _$valLabelMin: JQuery;\r\n _$valLabelMax: JQuery;\r\n _interval: Timer;\r\n _showAsDate: boolean;\r\n\r\n _changeFunc: changeFunction;\r\n\r\n /**\r\n *\r\n * @param element\r\n * @param changeFunc\r\n * @param mediaConfig\r\n */\r\n constructor(\r\n element: JQuery|HTMLElement|string,\r\n changeFunc: changeFunction = (): void => {return;},\r\n mediaConfig: mediaRangeConfig = {}) {\r\n\r\n mediaConfig.min = typeof mediaConfig.min == 'number' ? mediaConfig.min : 0;\r\n mediaConfig.max = typeof mediaConfig.max == 'number' ? mediaConfig.max : 100;\r\n mediaConfig.val = typeof mediaConfig.val == 'number' ? mediaConfig.val : 0;\r\n mediaConfig.step = typeof mediaConfig.step == 'number' ? mediaConfig.step : 5;\r\n mediaConfig.playInterval = typeof mediaConfig.playInterval == 'number' ? mediaConfig.playInterval : 500;\r\n mediaConfig.showAsDate = typeof mediaConfig.showAsDate == 'boolean' ? mediaConfig.showAsDate : false;\r\n\r\n if (typeof element == 'string'){\r\n this._container = $('#' + element);\r\n }\r\n else if (typeof element['style'] !== 'undefined'){\r\n this._container = $(element);\r\n } else {\r\n this._container = element as JQuery;\r\n }\r\n\r\n this._container.addClass('media-control-container');\r\n this._playInterval = mediaConfig.playInterval;\r\n this._changeFunc = changeFunc;\r\n\r\n this._showAsDate = mediaConfig.showAsDate;\r\n\r\n this._currentValue = undefined;\r\n this._min = undefined;\r\n this._max = undefined;\r\n this._step = undefined;\r\n this._playing = false;\r\n\r\n let htmlStr =\r\n '<span class=\"media-player-button media-back\"></span>' +\r\n '<span class=\"media-player-button media-play\"></span>' +\r\n '<span class=\"media-player-button media-pause media-disabled\"></span>' +\r\n '<span class=\"media-player-button media-stop media-disabled\" ></span>' +\r\n '<span class=\"media-player-button media-ahead\"></span>' +\r\n `<input type=\"range\">` +\r\n `<div class=\"media-control-value-label-container\">` +\r\n `<span class=\"media-control-value-label-min\"></span>` +\r\n `<span class=\"media-control-value-label-val\"></span>` +\r\n `<span class=\"media-control-value-label-max\"></span>` +\r\n `</div>`;\r\n\r\n this._container.append(htmlStr);\r\n\r\n // let btnPause = this._container.find('.media-pause');\r\n let btnPlay = this._container.find('.media-play');\r\n this._$btnStop = this._container.find('.media-stop');\r\n let btnAhead = this._container.find('.media-ahead');\r\n let btnBack = this._container.find('.media-back');\r\n this._$slider = this._container.find('input[type=range]');\r\n\r\n this._$valLabelMin = this._container.find('.media-control-value-label-min');\r\n this._$valLabelVal = this._container.find('.media-control-value-label-val');\r\n this._$valLabelMax = this._container.find('.media-control-value-label-max');\r\n\r\n this.setMinMaxValueStep(mediaConfig.min, mediaConfig.max, mediaConfig.val, mediaConfig.step);\r\n\r\n rangeChange(this._$slider,(newVal) => { this.currentValue = newVal;}, 100);\r\n\r\n let ___this = this;\r\n\r\n btnPlay.click(function () {\r\n let $this = $(this);\r\n $this.addClass('media-disabled');\r\n ___this._$btnStop.removeClass('media-disabled');\r\n btnAhead.addClass('media-locked');\r\n btnBack.addClass('media-locked');\r\n ___this._$slider.prop('disabled', true);\r\n ___this._playing = true;\r\n\r\n ___this._interval = setInterval(function () {\r\n ___this.currentValue += ___this._step;\r\n }, ___this._playInterval);\r\n });\r\n\r\n this._$btnStop.click(function () {\r\n clearInterval(___this._interval);\r\n let $this = $(this);\r\n $this.addClass('media-disabled');\r\n btnPlay.removeClass('media-disabled');\r\n btnAhead.removeClass('media-locked');\r\n btnBack.removeClass('media-locked');\r\n ___this._$slider.prop('disabled', false);\r\n ___this._playing = false;\r\n });\r\n\r\n btnAhead.click(function () {\r\n ___this.currentValue = ___this.currentValue + ___this._step;\r\n });\r\n\r\n btnBack.click(function () {\r\n ___this.currentValue = ___this.currentValue - ___this._step;\r\n });\r\n }\r\n\r\n stopPlaying(){\r\n if (this._playing){\r\n this._$btnStop.trigger('click');\r\n }\r\n }\r\n\r\n get playing(){\r\n return this._playing;\r\n }\r\n\r\n get min() {\r\n return this._min;\r\n }\r\n\r\n get max() {\r\n return this._max;\r\n }\r\n\r\n get step() {\r\n return this._step;\r\n }\r\n\r\n get currentValue() {\r\n return this._currentValue;\r\n }\r\n\r\n set currentValue(newValue) {\r\n if (newValue > this._max) {\r\n newValue = this._min;\r\n } else if (newValue < this._min) {\r\n newValue = this._max;\r\n }\r\n this._currentValue = newValue;\r\n this._$slider.val(this._currentValue.toFixed(2));\r\n\r\n if (this._showAsDate) {\r\n this._$valLabelVal.html(timeToLocalDateString(this.currentValue));\r\n } else {\r\n this._$valLabelVal.html(this.currentValue.toString());\r\n }\r\n\r\n this._changeFunc(newValue);\r\n }\r\n\r\n /**\r\n * set min and max value with step\r\n * @param {number} newMin the new min\r\n * @param {number} newMax the new mas\r\n * @param {number} [newValue=newMin] the value to set\r\n * @param {number} [newStep=(newMax-newMin)/20] step value\r\n */\r\n setMinMaxValueStep(newMin, newMax, newValue, newStep) {\r\n this._min = newMin;\r\n this._max = newMax;\r\n\r\n newValue = typeof newValue == 'number' ? newValue : newMin;\r\n newStep = typeof newStep == 'number' ? newStep : (newMax-newMin)/20;\r\n\r\n this._currentValue = newValue;\r\n this._step = newStep;\r\n\r\n this._$slider.prop('min', this.min.toString());\r\n this._$slider.prop('max', this.max.toString());\r\n this._$slider.prop('step', this.step.toString());\r\n this._$slider.val(this.currentValue.toString());\r\n\r\n if (this._showAsDate) {\r\n this._$valLabelMin.html(timeToLocalDateString(this._min));\r\n this._$valLabelVal.html(timeToLocalDateString(this.currentValue));\r\n this._$valLabelMax.html(timeToLocalDateString(this._max));\r\n } else {\r\n this._$valLabelMin.html(this._min.toString());\r\n this._$valLabelVal.html(this.currentValue.toString());\r\n this._$valLabelMax.html(this._max.toString());\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {mediaCallback} newFunc the callback on change\r\n */\r\n set changeFunction(newFunc: changeFunction) {\r\n this._changeFunc = newFunc;\r\n }\r\n}\r\n\r\nnm.MediaControl = MediaControl;\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/domUtil/media-control.ts\n **/"],"sourceRoot":""} \ No newline at end of file